| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | enum { arch_65816, arch_spc700, arch_spc700_inline, arch_superfx }; | ||
| 4 | extern int arch; | ||
| 5 | |||
| 6 | bool assemblemapper(char** word, int numwords); | ||
| 7 | |||
| 8 | struct snes_struct { | ||
| 9 | string parent; | ||
| 10 | int base_end; | ||
| 11 | int struct_size; | ||
| 12 | int object_size; | ||
| 13 | bool is_static; | ||
| 14 | }; | ||
| 15 | |||
| 16 | extern assocarr<snes_struct> structs; | ||
| 17 | |||
| 18 | |||
| 19 | struct snes_label { | ||
| 20 | unsigned int pos; | ||
| 21 | bool is_static; | ||
| 22 | |||
| 23 | 5872 | snes_label() | |
| 24 | 5872 | { | |
| 25 | 5872 | pos = 0; | |
| 26 | 5872 | is_static = false; | |
| 27 | 5872 | } | |
| 28 | }; | ||
| 29 | |||
| 30 | |||
| 31 | // RPG Hacker: Really the only purpose of this struct is to support pushtable and pulltable | ||
| 32 | // Also don't know where else to put this, so putting it in this header | ||
| 33 | struct chartabledata { | ||
| 34 | unsigned int table[256]; | ||
| 35 | }; | ||
| 36 | |||
| 37 | extern chartabledata table; | ||
| 38 | |||
| 39 | struct whiletracker { | ||
| 40 | bool iswhile; | ||
| 41 | int startline; | ||
| 42 | bool cond; | ||
| 43 | bool is_for; | ||
| 44 | string for_variable; | ||
| 45 | string for_var_backup; | ||
| 46 | bool for_has_var_backup; | ||
| 47 | int for_start; | ||
| 48 | int for_end; | ||
| 49 | int for_cur; | ||
| 50 | }; | ||
| 51 | |||
| 52 | extern autoarray<whiletracker> whilestatus; | ||
| 53 | |||
| 54 | // 0 - not first block, not in for | ||
| 55 | // 1 - first block | ||
| 56 | // 2 - inside single-line for | ||
| 57 | // 3 - after endfor | ||
| 58 | extern int single_line_for_tracker; | ||
| 59 | |||
| 60 | bool confirmname(const char * name); | ||
| 61 | string posneglabelname(const char ** input, bool define); | ||
| 62 | |||
| 63 | void write1_pick(unsigned int num); | ||
| 64 | void write2(unsigned int num); | ||
| 65 | void write3(unsigned int num); | ||
| 66 | void write4(unsigned int num); | ||
| 67 | |||
| 68 | int read1(int snespos); | ||
| 69 | int read2(int snespos); | ||
| 70 | int read3(int snespos); | ||
| 71 | |||
| 72 | int snestopc_pick(int addr); | ||
| 73 | |||
| 74 | int getlenfromchar(char c); | ||
| 75 | |||
| 76 | snes_label labelval(const char ** rawname, bool define = false); | ||
| 77 | snes_label labelval(char ** rawname, bool define = false); | ||
| 78 | snes_label labelval(string name, bool define = false); | ||
| 79 | bool labelval(const char ** rawname, snes_label * rval, bool define = false); | ||
| 80 | bool labelval(char ** rawname, snes_label * rval, bool define = false); | ||
| 81 | bool labelval(string name, snes_label * rval, bool define = false); | ||
| 82 | |||
| 83 | const char * safedequote(char * str); | ||
| 84 | |||
| 85 | void checkbankcross(); | ||
| 86 | |||
| 87 | void initstuff(); | ||
| 88 | void finishpass(); | ||
| 89 | |||
| 90 | void assembleblock(const char * block, bool isspecialline); | ||
| 91 | |||
| 92 | extern int snespos; | ||
| 93 | extern int realsnespos; | ||
| 94 | extern int startpos; | ||
| 95 | extern int realstartpos; | ||
| 96 | |||
| 97 | extern int bytes; | ||
| 98 | |||
| 99 | extern int numopcodes; | ||
| 100 | |||
| 101 | extern bool warnxkas; | ||
| 102 | |||
| 103 | extern int numif; | ||
| 104 | extern int numtrue; | ||
| 105 | |||
| 106 | extern bool emulatexkas; | ||
| 107 | |||
| 108 | extern int freespaceextra; | ||
| 109 | extern bool freespace_is_freecode; | ||
| 110 | |||
| 111 | extern assocarr<snes_label> labels; | ||
| 112 | |||
| 113 | extern autoarray<int>* macroposlabels; | ||
| 114 | extern autoarray<int>* macroneglabels; | ||
| 115 | extern autoarray<string>* macrosublabels; | ||
| 116 | |||
| 117 | extern autoarray<string> sublabels; | ||
| 118 | extern string ns; | ||
| 119 | extern autoarray<string> namespace_list; | ||
| 120 | |||
| 121 | extern autoarray<string> includeonce; | ||
| 122 |