Rev 6446 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6446 | Rev 7700 | ||
---|---|---|---|
1 | //void PrintMem(void *mem); |
1 | //void PrintMem(void *mem); |
2 | //void CheckMem(); |
2 | //void CheckMem(); |
3 | 3 | ||
4 | #include "port.h" |
4 | #include "port.h" |
5 | 5 | ||
6 | #include |
6 | #include |
7 | #include |
7 | #include |
8 | #include |
8 | #include |
9 | #include |
9 | #include |
10 | #include |
10 | #include |
11 | 11 | ||
12 | 12 | ||
13 | //#define DEBUGMODE |
13 | //#define DEBUGMODE |
14 | 14 | ||
15 | #define OPTVARCONST // Çàìåíà ïåðåìåííûõ ñîíñòàíòàìè |
15 | #define OPTVARCONST // Çàìåíà ïåðåìåííûõ ñîíñòàíòàìè |
16 | 16 | ||
17 | #define MAXNUMPATH 16 |
17 | #define MAXNUMPATH 16 |
18 | #define DATATYPES 9 // number of data types |
18 | #define DATATYPES 9 // number of data types |
19 | #define MAXDATA 65500 /* output run file buffer 65500 bytes */ |
19 | #define MAXDATA 65500 /* output run file buffer 65500 bytes */ |
20 | 20 | ||
21 | #define DYNAMIC_USED 0 |
21 | #define DYNAMIC_USED 0 |
22 | #define DYNAMIC 1 |
22 | #define DYNAMIC 1 |
23 | #define NOT_DYNAMIC 2 /* flag value specifing a non-dynamic proc */ |
23 | #define NOT_DYNAMIC 2 /* flag value specifing a non-dynamic proc */ |
24 | #define DYNAMIC_SET 3 |
24 | #define DYNAMIC_SET 3 |
25 | 25 | ||
26 | #define FILENAMESIZE 80 |
26 | #define FILENAMESIZE 80 |
27 | #define SHORTMAX 127 // largest 8 bit signed value |
27 | #define SHORTMAX 127 // largest 8 bit signed value |
28 | #define SHORTMIN -128 // smallest 8 bit signed value |
28 | #define SHORTMIN -128 // smallest 8 bit signed value |
29 | #define IDLENGTH 65 /* length of significance of IDS + NULL, therefore 32 */ |
29 | #define IDLENGTH 65 /* length of significance of IDS + NULL, therefore 32 */ |
30 | #define STRLEN 2048 /* length of string token holder */ |
30 | #define STRLEN 2048 /* length of string token holder */ |
31 | #define MAXPOSTS 2048 |
31 | #define MAXPOSTS 2048 |
32 | #define SIZEBUF 16384 |
32 | #define SIZEBUF 16384 |
33 | #define ID2S 6*DATATYPES |
33 | #define ID2S 6*DATATYPES |
34 | #define MAXSYSCOM 25 |
34 | #define MAXSYSCOM 25 |
35 | #define NUMNUM 32 |
35 | #define NUMNUM 32 |
36 | #define NUMNUM64 64 |
36 | #define NUMNUM64 64 |
37 | #define OBJECTALIGN 4096 //âûðàâíèâàíèå ñåêöèé â ïàìÿòè |
37 | #define OBJECTALIGN 4096 //âûðàâíèâàíèå ñåêöèé â ïàìÿòè |
38 | #define WARNCOUNT 15 //÷èñëî ðàçëè÷íûõ ïðåäóïðåæäåíèé |
38 | #define WARNCOUNT 15 //÷èñëî ðàçëè÷íûõ ïðåäóïðåæäåíèé |
39 | 39 | ||
40 | #define ver1 0 |
40 | #define ver1 0 |
41 | #define ver2 239 |
41 | #define ver2 239 |
42 | 42 | ||
43 | #define BETTA |
43 | #define BETTA |
44 | 44 | ||
45 | #ifdef BETTA |
45 | #ifdef BETTA |
46 | #define betta " b26" |
46 | #define betta " b26" |
47 | #else |
47 | #else |
48 | #define betta "" |
48 | #define betta "" |
49 | #endif |
49 | #endif |
50 | 50 | ||
51 | #include "const.h" |
51 | #include "const.h" |
52 | #include "struct.h" |
52 | #include "struct.h" |
53 | 53 | ||
54 | #ifdef _UNIX_ |
54 | #ifdef _UNIX_ |
55 | #ifndef stricmp |
55 | #ifndef stricmp |
56 | #define stricmp strcasecmp |
56 | #define stricmp strcasecmp |
57 | #endif |
57 | #endif |
58 | #endif |
58 | #endif |
59 | 59 | ||
60 | #ifdef _UNIX_ |
60 | #ifdef _UNIX_ |
61 | #ifndef O_BINARY |
61 | #ifndef O_BINARY |
62 | #define O_BINARY 0 |
62 | #define O_BINARY 0 |
63 | #endif |
63 | #endif |
64 | #endif |
64 | #endif |
65 | 65 | ||
66 | extern unsigned char FixUpTable; //çàïðåòèòü ñîçäàíèå òàáëèöè Fix UP for Windows |
66 | extern unsigned char FixUpTable; //çàïðåòèòü ñîçäàíèå òàáëèöè Fix UP for Windows |
67 | extern unsigned char WinMonoBlock; |
67 | extern unsigned char WinMonoBlock; |
68 | extern unsigned int currentfileinfo; |
68 | extern unsigned int currentfileinfo; |
69 | 69 | ||
70 | #if !defined (_MAIN_) |
70 | #if !defined (_MAIN_) |
71 | extern char fobj; //ïðèçíàê ãåíåðàöèè obj |
71 | extern char fobj; //ïðèçíàê ãåíåðàöèè obj |
72 | extern char *rawfilename; |
72 | extern char *rawfilename; |
73 | extern struct tm timeptr; |
73 | extern struct tm timeptr; |
74 | extern char outext[]; |
74 | extern char outext[]; |
75 | extern unsigned char compilerstr[]; /* compiler ID string */ |
75 | extern unsigned char compilerstr[]; /* compiler ID string */ |
76 | extern LISTCOM *listcom; |
76 | extern LISTCOM *listcom; |
77 | extern unsigned char gwarning; |
77 | extern unsigned char gwarning; |
78 | extern EWAR wartype,errfile; |
78 | extern EWAR wartype,errfile; |
79 | extern int numfindpath; |
79 | extern int numfindpath; |
80 | extern char *findpath[]; |
80 | extern char *findpath[]; |
81 | extern char bufpath[]; |
81 | extern char bufpath[]; |
82 | extern unsigned int startptr; |
82 | extern unsigned int startptr; |
83 | extern unsigned char wconsole;//ïðèçíàê ãåíåðàöèè êîíñîëüíîãî ïðèëîæåíèÿ windows |
83 | extern unsigned char wconsole;//ïðèçíàê ãåíåðàöèè êîíñîëüíîãî ïðèëîæåíèÿ windows |
84 | extern unsigned long ImageBase; |
84 | extern unsigned long ImageBase; |
85 | extern int numexport; |
85 | extern int numexport; |
86 | extern struct listexport *lexport; |
86 | extern struct listexport *lexport; |
87 | extern unsigned char optstr; //îïòèìèçàöèÿ ñòðîêîâûõ êîíñòàíò |
87 | extern unsigned char optstr; //îïòèìèçàöèÿ ñòðîêîâûõ êîíñòàíò |
88 | extern unsigned char crif; //check reply include file |
88 | extern unsigned char crif; //check reply include file |
89 | extern unsigned char idasm; //àññåìáëåðíûå èíñòðóêöèè ñ÷èòàòü èäåíòèôèêàòîðàìè |
89 | extern unsigned char idasm; //àññåìáëåðíûå èíñòðóêöèè ñ÷èòàòü èäåíòèôèêàòîðàìè |
90 | extern char modelmem; |
90 | extern char modelmem; |
91 | extern char *stubfile; |
91 | extern char *stubfile; |
92 | extern char comsymbios; |
92 | extern char comsymbios; |
93 | extern unsigned char sobj; |
93 | extern unsigned char sobj; |
94 | extern short dllflag; |
94 | extern short dllflag; |
95 | extern char *bufstr; //áóôåð äëÿ ñòðîê èç ïðîöåäóð |
95 | extern char *bufstr; //áóôåð äëÿ ñòðîê èç ïðîöåäóð |
96 | extern int sbufstr; //íà÷àëüíûé ðàçìåð ýòîãî áóôåðà |
96 | extern int sbufstr; //íà÷àëüíûé ðàçìåð ýòîãî áóôåðà |
97 | extern unsigned char wbss; //ïîñò ïåðåìåííûå â îòäåëüíóþ ñåêöèþ |
97 | extern unsigned char wbss; //ïîñò ïåðåìåííûå â îòäåëüíóþ ñåêöèþ |
98 | extern int numrel; //÷èñëî ýëåìåíòîâ â òàáëèöå ïåðåìåùåíèé |
98 | extern int numrel; //÷èñëî ýëåìåíòîâ â òàáëèöå ïåðåìåùåíèé |
99 | extern unsigned char usestub; |
99 | extern unsigned char usestub; |
100 | extern char *winstub; |
100 | extern char *winstub; |
101 | extern unsigned char dpmistub; |
101 | extern unsigned char dpmistub; |
102 | extern unsigned char useordinal; |
102 | extern unsigned char useordinal; |
103 | extern int startupfile; |
103 | extern int startupfile; |
104 | extern int alignproc,aligncycle; |
104 | extern int alignproc,aligncycle; |
105 | extern FILE *hout; |
105 | extern FILE *hout; |
106 | extern unsigned char useDOS4GW; |
106 | extern unsigned char useDOS4GW; |
107 | extern unsigned char use_env; //ïåðåìåííàÿ îêðóæåíèÿ |
107 | extern unsigned char use_env; //ïåðåìåííàÿ îêðóæåíèÿ |
108 | extern unsigned char clearpost; |
108 | extern unsigned char clearpost; |
109 | extern unsigned char uselea; |
109 | extern unsigned char uselea; |
110 | extern unsigned char regoverstack; |
110 | extern unsigned char regoverstack; |
111 | extern unsigned char shortimport; |
111 | extern unsigned char shortimport; |
112 | extern char *namestartupfile; |
112 | extern char *namestartupfile; |
113 | extern unsigned char useinline; |
113 | extern unsigned char useinline; |
114 | extern unsigned char ocoff; |
114 | extern unsigned char ocoff; |
115 | extern unsigned char ESPloc; |
115 | extern unsigned char ESPloc; |
116 | 116 | ||
117 | #endif |
117 | #endif |
118 | 118 | ||
119 | extern unsigned char string[STRLEN],string2[STRLEN+20]; |
119 | extern unsigned char string[STRLEN],string2[STRLEN+20]; |
120 | 120 | ||
121 | #if !defined (_TOKC_) |
121 | #if !defined (_TOKC_) |
122 | extern unsigned int outptrsize; //ðàçìåð âûõîäíîãî áóôåðà |
122 | extern unsigned int outptrsize; //ðàçìåð âûõîäíîãî áóôåðà |
123 | extern unsigned char string3[STRLEN]; |
123 | extern unsigned char string3[STRLEN]; |
124 | extern char *BackTextBlock; //áóôåð äëÿ ïåðåíåñåííîãî òåêñòà |
124 | extern char *BackTextBlock; //áóôåð äëÿ ïåðåíåñåííîãî òåêñòà |
125 | extern int SizeBackBuf; |
125 | extern int SizeBackBuf; |
126 | extern unsigned char cha; |
126 | extern unsigned char cha; |
127 | extern unsigned int inptr; |
127 | extern unsigned int inptr; |
128 | extern unsigned char AlignProc; |
128 | extern unsigned char AlignProc; |
129 | extern unsigned int secondcallnum; //# of different second calls and labels |
129 | extern unsigned int secondcallnum; //# of different second calls and labels |
130 | extern unsigned char header; |
130 | extern unsigned char header; |
131 | extern unsigned char killctrlc; |
131 | extern unsigned char killctrlc; |
132 | extern unsigned char optimizespeed; |
132 | extern unsigned char optimizespeed; |
133 | extern unsigned char alignword; |
133 | extern unsigned char alignword; |
134 | extern unsigned int outptr,outptrdata; |
134 | extern unsigned int outptr,outptrdata; |
135 | extern unsigned char comfile; |
135 | extern unsigned char comfile; |
136 | extern unsigned char chip; |
136 | extern unsigned char chip; |
137 | extern unsigned char dos1,dos2; |
137 | extern unsigned char dos1,dos2; |
138 | extern unsigned int stacksize; |
138 | extern unsigned int stacksize; |
139 | extern int error; |
139 | extern int error; |
140 | extern unsigned char *output,*outputdata; |
140 | extern unsigned char *output,*outputdata; |
141 | extern unsigned char notdoneprestuff; |
141 | extern unsigned char notdoneprestuff; |
142 | extern unsigned long postsize; |
142 | extern unsigned long postsize; |
143 | extern unsigned int posts; |
143 | extern unsigned int posts; |
144 | extern postinfo *postbuf; |
144 | extern postinfo *postbuf; |
145 | extern int maxposts; |
145 | extern int maxposts; |
146 | extern unsigned char cpu; |
146 | extern unsigned char cpu; |
147 | extern long runfilesize; |
147 | extern long runfilesize; |
148 | extern unsigned char *input; /* dynamic input buffer */ |
148 | extern unsigned char *input; /* dynamic input buffer */ |
149 | extern unsigned int endinptr; /* end index of input array */ |
149 | extern unsigned int endinptr; /* end index of input array */ |
150 | extern unsigned int localsize,paramsize; |
150 | extern unsigned int localsize,paramsize; |
151 | extern char endoffile; |
151 | extern char endoffile; |
152 | extern unsigned int current_proc_type; /* current procedure type */ |
152 | extern unsigned int current_proc_type; /* current procedure type */ |
153 | extern unsigned char aligner; |
153 | extern unsigned char aligner; |
154 | extern unsigned int alignersize; |
154 | extern unsigned int alignersize; |
155 | extern unsigned int datasize; |
155 | extern unsigned int datasize; |
156 | extern unsigned char warning; |
156 | extern unsigned char warning; |
157 | extern unsigned int startStartup; |
157 | extern unsigned int startStartup; |
158 | extern unsigned char useStartup; |
158 | extern unsigned char useStartup; |
159 | extern unsigned int endStartup; |
159 | extern unsigned int endStartup; |
160 | extern unsigned char notpost; |
160 | extern unsigned char notpost; |
161 | extern unsigned char am32; // ðåæèì 32 áèòíîé àäðåñàöèè |
161 | extern unsigned char am32; // ðåæèì 32 áèòíîé àäðåñàöèè |
162 | extern unsigned int externnum; |
162 | extern unsigned int externnum; |
163 | extern unsigned char FastCallApi; //ðàçðåøèòü áûñòðûé âûçîâ API ïðîöåäóð |
163 | extern unsigned char FastCallApi; //ðàçðåøèòü áûñòðûé âûçîâ API ïðîöåäóð |
164 | extern unsigned char FixUp; //Äåëàòü ëè òàáëèöó ïåðåìåùåíèé |
164 | extern unsigned char FixUp; //Äåëàòü ëè òàáëèöó ïåðåìåùåíèé |
165 | extern void *liststring; //öåïî÷êà èíôîðìàöèîííûõ áëîêîâ î ñòðîêàõ |
165 | extern void *liststring; //öåïî÷êà èíôîðìàöèîííûõ áëîêîâ î ñòðîêàõ |
166 | extern struct FILEINFO *startfileinfo; |
166 | extern struct FILEINFO *startfileinfo; |
167 | extern unsigned int totalmodule; |
167 | extern unsigned int totalmodule; |
168 | extern int retproc; |
168 | extern int retproc; |
169 | extern unsigned char splitdata; //îòäåëèòü äàííûå îò êîäà |
169 | extern unsigned char splitdata; //îòäåëèòü äàííûå îò êîäà |
170 | extern unsigned char AlignCycle; //âûðàâíèâàòü íà÷àëà öèêëîâ |
170 | extern unsigned char AlignCycle; //âûðàâíèâàòü íà÷àëà öèêëîâ |
171 | extern char param[]; //áóôåð äëÿ ïàðàìåòðîâ ïðîöåäóðû |
171 | extern char param[]; //áóôåð äëÿ ïàðàìåòðîâ ïðîöåäóðû |
172 | extern unsigned char dynamic_flag; //ôëàã îáðàáîòêè äèíàìè÷åñêèõ ýëåìåíòîâ |
172 | extern unsigned char dynamic_flag; //ôëàã îáðàáîòêè äèíàìè÷åñêèõ ýëåìåíòîâ |
173 | extern unsigned char setzeroflag; //îïåðàöèÿ ìåíÿåò zero flag |
173 | extern unsigned char setzeroflag; //îïåðàöèÿ ìåíÿåò zero flag |
174 | extern unsigned char insertmode; |
174 | extern unsigned char insertmode; |
175 | extern unsigned int numblocks; //íîìåð âëîæåííîãî áëîêà |
175 | extern unsigned int numblocks; //íîìåð âëîæåííîãî áëîêà |
176 | extern unsigned char notunreach; |
176 | extern unsigned char notunreach; |
177 | extern idrec *staticlist; |
177 | extern idrec *staticlist; |
178 | extern unsigned int procedure_start; /* address of start of procedure */ |
178 | extern unsigned int procedure_start; /* address of start of procedure */ |
179 | extern int lastcommand; //ïîñëåäíèé îïåðàòîð â áëîêå |
179 | extern int lastcommand; //ïîñëåäíèé îïåðàòîð â áëîêå |
180 | extern unsigned int initBP; |
180 | extern unsigned int initBP; |
181 | extern unsigned char fstatic; |
181 | extern unsigned char fstatic; |
182 | //extern int sizestack; //ðàçìåð íå êîìïåíñèðîâàííûõ ïàðàìåòðîâ ôóíêöèé |
182 | //extern int sizestack; //ðàçìåð íå êîìïåíñèðîâàííûõ ïàðàìåòðîâ ôóíêöèé |
183 | extern unsigned char addstack; |
183 | extern unsigned char addstack; |
184 | extern unsigned long addESP; //äîáàâêà ñòåêà |
184 | extern unsigned long addESP; //äîáàâêà ñòåêà |
185 | extern unsigned char blockproc; //èäåòðàçáîðêà áëîêà ôóíêöèè |
185 | extern unsigned char blockproc; //èäåòðàçáîðêà áëîêà ôóíêöèè |
186 | extern treelocalrec *tlr; //öåïî÷êà ëîêàëüíûõ áëîêîâ |
186 | extern treelocalrec *tlr; //öåïî÷êà ëîêàëüíûõ áëîêîâ |
187 | extern treelocalrec *btlr; //öåïî÷êà èñïîëüçîâàíûõ ëîêàëüíûõ áëîêîâ |
187 | extern treelocalrec *btlr; //öåïî÷êà èñïîëüçîâàíûõ ëîêàëüíûõ áëîêîâ |
188 | extern int returntype; /* return type, (void, byte, word, ...) */ |
188 | extern int returntype; /* return type, (void, byte, word, ...) */ |
189 | #endif |
189 | #endif |
190 | extern int tok,tok2; |
190 | extern int tok,tok2; |
191 | 191 | ||
192 | #if !defined (_TOKR_) |
192 | #if !defined (_TOKR_) |
193 | extern char useasm; |
193 | extern char useasm; |
194 | extern short ofsmnem[]; |
194 | extern unsigned short ofsmnem[]; |
195 | extern unsigned char asmMnem[]; |
195 | extern unsigned char asmMnem[]; |
196 | extern char asmparam; |
196 | extern char asmparam; |
197 | #endif |
197 | #endif |
198 | 198 | ||
199 | #if !defined (_TOKA_) |
199 | #if !defined (_TOKA_) |
200 | extern unsigned char id[]; |
200 | extern unsigned char id[]; |
201 | extern short idofs[]; |
201 | extern unsigned short idofs[]; |
202 | extern char id2[ID2S][9]; |
202 | extern char id2[ID2S][9]; |
203 | extern char regs[2][8][4]; |
203 | extern char regs[2][8][4]; |
204 | extern char begs[8][3]; |
204 | extern char begs[8][3]; |
205 | extern char segs[8][3]; |
205 | extern char segs[8][3]; |
206 | extern struct idrec *treestart; |
206 | extern struct idrec *treestart; |
207 | extern unsigned int linenum2; |
207 | extern unsigned int linenum2; |
208 | extern unsigned int inptr2; |
208 | extern unsigned int inptr2; |
209 | extern unsigned char cha2; |
209 | extern unsigned char cha2; |
210 | extern char displaytokerrors; |
210 | extern char displaytokerrors; |
211 | extern char *bufrm; |
211 | extern char *bufrm; |
212 | extern UNDEFOFF *undefoffstart; |
212 | extern UNDEFOFF *undefoffstart; |
213 | extern DLLLIST *listdll; |
213 | extern DLLLIST *listdll; |
214 | extern char skipfind; |
214 | extern char skipfind; |
215 | extern struct structteg *tegtree; //ãëîáàëüíûé ñðèñîê òåãîâ |
215 | extern struct structteg *tegtree; //ãëîáàëüíûé ñðèñîê òåãîâ |
216 | extern struct structteg *ltegtree; //ëîêàëüíûé ñðèñîê òåãîâ |
216 | extern struct structteg *ltegtree; //ëîêàëüíûé ñðèñîê òåãîâ |
217 | //extern struct idrec *lstructlist; //ñïèñîê ëîêàëüíûõ ñòðóêòóð |
217 | //extern struct idrec *lstructlist; //ñïèñîê ëîêàëüíûõ ñòðóêòóð |
218 | extern struct idrec *definestart; |
218 | extern struct idrec *definestart; |
219 | extern SINFO strinf; |
219 | extern SINFO strinf; |
220 | extern char *startline, *endinput; |
220 | extern char *startline, *endinput; |
221 | extern ITOK structadr; |
221 | extern ITOK structadr; |
222 | extern int scanlexmode; |
222 | extern int scanlexmode; |
223 | extern COM_MOD *cur_mod; |
223 | extern COM_MOD *cur_mod; |
224 | extern unsigned char bytesize; |
224 | extern unsigned char bytesize; |
225 | #endif |
225 | #endif |
226 | 226 | ||
227 | #if !defined (_TOKE_) |
227 | #if !defined (_TOKE_) |
228 | extern int maxerrors; |
228 | extern int maxerrors; |
229 | extern char mesmain[]; |
229 | extern char mesmain[]; |
230 | extern int endifcount; |
230 | extern int endifcount; |
231 | extern int sysstack; |
231 | extern int sysstack; |
232 | extern int sysnumcom; |
232 | extern int sysnumcom; |
233 | extern int syscom; |
233 | extern int syscom; |
234 | extern unsigned char fargc; |
234 | extern unsigned char fargc; |
235 | extern unsigned char jumptomain; |
235 | extern unsigned char jumptomain; |
236 | extern unsigned int startptrdata; |
236 | extern unsigned int startptrdata; |
237 | extern unsigned char parsecommandline; |
237 | extern unsigned char parsecommandline; |
238 | extern unsigned int romsize; |
238 | extern unsigned int romsize; |
239 | extern unsigned char resizemem; |
239 | extern unsigned char resizemem; |
240 | extern unsigned int resizesizeaddress; |
240 | extern unsigned int resizesizeaddress; |
241 | extern unsigned int stackstartaddress; |
241 | extern unsigned int stackstartaddress; |
242 | extern int dataromstart,dataromsize; |
242 | extern int dataromstart,dataromsize; |
243 | extern unsigned char startuptomain; |
243 | extern unsigned char startuptomain; |
244 | extern unsigned char dosstring; |
244 | extern unsigned char dosstring; |
245 | extern unsigned int numdomain; //÷èñëî ïðîöåäóð çàïóñêàåìûõ äî main |
245 | extern unsigned int numdomain; //÷èñëî ïðîöåäóð çàïóñêàåìûõ äî main |
246 | extern char *domain; //áóôåð èìåí ïðîöåäóð çàïóñêàåìûõ äî main |
246 | extern char *domain; //áóôåð èìåí ïðîöåäóð çàïóñêàåìûõ äî main |
247 | extern unsigned char usedirectiv; //èäåò îáðàáîòêà äèðåêòèâû |
247 | extern unsigned char usedirectiv; //èäåò îáðàáîòêà äèðåêòèâû |
248 | extern unsigned char atex; |
248 | extern unsigned char atex; |
249 | extern unsigned int postnumflag; //ôëàã ïîñëåäíåãî èäåíòèôèêàòîðà â âû÷èñëåíèè íîìåðà |
249 | extern unsigned int postnumflag; //ôëàã ïîñëåäíåãî èäåíòèôèêàòîðà â âû÷èñëåíèè íîìåðà |
250 | extern unsigned char sdp_mode; //ðåæèì ïðèíóäèòåëüíîé âûãðóçêè äèíàìè÷åñêèõ ïðîöåäóð |
250 | extern unsigned char sdp_mode; //ðåæèì ïðèíóäèòåëüíîé âûãðóçêè äèíàìè÷åñêèõ ïðîöåäóð |
251 | extern int calcnumber; |
251 | extern int calcnumber; |
252 | extern int strpackdef; |
252 | extern int strpackdef; |
253 | extern int strpackcur; |
253 | extern int strpackcur; |
254 | #ifdef DEBUGMODE |
254 | #ifdef DEBUGMODE |
255 | extern int debug; |
255 | extern int debug; |
256 | #endif |
256 | #endif |
257 | extern int dirmode; |
257 | extern int dirmode; |
258 | 258 | ||
259 | #endif |
259 | #endif |
260 | 260 | ||
261 | extern ITOK itok,itok2,ptok; |
261 | extern ITOK itok,itok2,ptok; |
262 | 262 | ||
263 | #if !defined (_TOKB_) |
263 | #if !defined (_TOKB_) |
264 | extern int divexpand; |
264 | extern int divexpand; |
265 | extern int optnumber; |
265 | extern int optnumber; |
266 | extern char *badadr; |
266 | extern char *badadr; |
267 | extern LISTFLOAT *floatnum; //ñïèñîê float êîíñòàíò |
267 | extern LISTFLOAT *floatnum; //ñïèñîê float êîíñòàíò |
268 | extern unsigned int numfloatconst; |
268 | extern unsigned int numfloatconst; |
269 | extern unsigned int ofsfloatlist; |
269 | extern unsigned int ofsfloatlist; |
270 | #endif |
270 | #endif |
271 | extern unsigned int linenumber; |
271 | extern unsigned int linenumber; |
272 | 272 | ||
273 | #if !defined (_DEBUG_) |
273 | #if !defined (_DEBUG_) |
274 | extern unsigned int ooutptr; |
274 | extern unsigned int ooutptr; |
275 | extern unsigned int outputcodestart; |
275 | extern unsigned int outputcodestart; |
276 | extern unsigned char dbg,dbgact; |
276 | extern unsigned char dbg,dbgact; |
277 | extern unsigned int pdbg; // number of post entrys |
277 | extern unsigned int pdbg; // number of post entrys |
278 | #endif |
278 | #endif |
279 | 279 | ||
280 | #if !defined (_OUTPE_) |
280 | #if !defined (_OUTPE_) |
281 | extern unsigned long ImageBase; |
281 | extern unsigned long ImageBase; |
282 | extern unsigned long vsizeheader; //âèðòóàëüíûé ðàçìåð çàãîëîâêà. |
282 | extern unsigned long vsizeheader; //âèðòóàëüíûé ðàçìåð çàãîëîâêà. |
283 | extern int filingzerope; |
283 | extern int filingzerope; |
284 | extern unsigned long FILEALIGN; // âûðàâíèâàíèå ñåêöèé â ôàéëå |
284 | extern unsigned long FILEALIGN; // âûðàâíèâàíèå ñåêöèé â ôàéëå |
285 | #endif |
285 | #endif |
286 | 286 | ||
287 | #if !defined (_ERRORS_) |
287 | #if !defined (_ERRORS_) |
288 | extern WARNACT wact[]; |
288 | extern WARNACT wact[]; |
289 | extern unsigned char mapfile; |
289 | extern unsigned char mapfile; |
290 | #endif |
290 | #endif |
291 | 291 | ||
292 | #if !defined (_DISASM_) |
292 | #if !defined (_DISASM_) |
293 | extern unsigned char seg_size; /* default size is 16 */ |
293 | extern unsigned char seg_size; /* default size is 16 */ |
294 | extern unsigned long instruction_offset; |
294 | extern unsigned long instruction_offset; |
295 | #endif |
295 | #endif |
296 | 296 | ||
297 | #if !defined (_SWITCH_) |
297 | #if !defined (_SWITCH_) |
298 | extern FSWI *swtables; |
298 | extern FSWI *swtables; |
299 | extern int numswtable; |
299 | extern int numswtable; |
300 | #endif |
300 | #endif |
301 | 301 | ||
302 | #if !defined (_CLASS_) |
302 | #if !defined (_CLASS_) |
303 | extern structteg *searchteg; |
303 | extern structteg *searchteg; |
304 | extern int destructor; |
304 | extern int destructor; |
305 | #endif |
305 | #endif |
306 | 306 | ||
307 | #if !defined (_RES_) |
307 | #if !defined (_RES_) |
308 | extern unsigned char *resbuf; |
308 | extern unsigned char *resbuf; |
309 | extern unsigned int curposbuf; |
309 | extern unsigned int curposbuf; |
310 | extern int numres; //òåêóùåå ÷èñëî ðåñóðñîâ |
310 | extern int numres; //òåêóùåå ÷èñëî ðåñóðñîâ |
311 | extern int numstrtbl; |
311 | extern int numstrtbl; |
312 | #endif |
312 | #endif |
313 | 313 | ||
314 | extern unsigned char idxregs[5]; |
314 | extern unsigned char idxregs[5]; |
315 | 315 | ||
316 | // start of procedure pre-definitions |
316 | // start of procedure pre-definitions |
317 | /*-----------------19.09.98 17:18------------------- |
317 | /*-----------------19.09.98 17:18------------------- |
318 | Ôóíêöèè îïðåäåëåííûå â main.cpp |
318 | Ôóíêöèè îïðåäåëåííûå â main.cpp |
319 | --------------------------------------------------*/ |
319 | --------------------------------------------------*/ |
320 | void *MALLOC(unsigned long size); |
320 | void *MALLOC(unsigned long size); |
321 | void *REALLOC(void *block,unsigned long size); |
321 | void *REALLOC(void *block,unsigned long size); |
322 | void IncludePath(char *buf); |
322 | void IncludePath(char *buf); |
323 | int SelectComand(char *pptr,int *count); |
323 | int SelectComand(char *pptr,int *count); |
324 | void strbtrim(char *st); |
324 | void strbtrim(char *st); |
325 | unsigned long Align(unsigned long size,unsigned long val); |
325 | unsigned long Align(unsigned long size,unsigned long val); |
326 | int AlignCD(char segm,int val); //âûðàâíÿòü äàííûå èëè êîä |
326 | int AlignCD(char segm,int val); //âûðàâíÿòü äàííûå èëè êîä |
327 | void ErrOpenFile(char *str); |
327 | void ErrOpenFile(char *str); |
328 | unsigned int EntryPoint(); |
328 | unsigned int EntryPoint(); |
329 | long CopyFile(FILE *in,FILE *out); |
329 | long CopyFile(FILE *in,FILE *out); |
330 | unsigned long getnumber(unsigned char *buf); |
330 | unsigned long getnumber(unsigned char *buf); |
331 | void addinitvar(); |
331 | void addinitvar(); |
332 | FILE *CreateOutPut(char *ext,char *mode); |
332 | FILE *CreateOutPut(char *ext,char *mode); |
333 | void SetLST(unsigned char neg); |
333 | void SetLST(unsigned char neg); |
334 | void AddUndefClassProc(); |
334 | void AddUndefClassProc(); |
335 | int MakeCoff(); |
335 | int MakeCoff(); |
336 | void setdindata(idrec *ptr,int i); |
336 | void setdindata(idrec *ptr,int i); |
337 | 337 | ||
338 | /*-----------------08.03.98 20:10------------------- |
338 | /*-----------------08.03.98 20:10------------------- |
339 | Ôóíêöèè îïðåäåëåíûå â toka.c |
339 | Ôóíêöèè îïðåäåëåíûå â toka.c |
340 | --------------------------------------------------*/ |
340 | --------------------------------------------------*/ |
341 | void CheckAllMassiv(char *&buf,int sizeel,SINFO *strc,ITOK *ctok=&itok,int reg1=idxregs[0],int reg2=idxregs[1]); |
341 | void CheckAllMassiv(char *&buf,int sizeel,SINFO *strc,ITOK *ctok=&itok,int reg1=idxregs[0],int reg2=idxregs[1]); |
342 | void docalls(); //attempt to declare undefs from library and dynamic proc's |
342 | void docalls(); //attempt to declare undefs from library and dynamic proc's |
343 | int FindOff(unsigned char *name,int base); |
343 | int FindOff(unsigned char *name,int base); |
344 | void nextchar(); //îïð â toke |
344 | void nextchar(); //îïð â toke |
345 | void nexttok(); |
345 | void nexttok(); |
346 | void whitespace(); //ïðîïóñê íçíà÷àùèõ ñèìâîëîâ |
346 | void whitespace(); //ïðîïóñê íçíà÷àùèõ ñèìâîëîâ |
347 | int searchtree(ITOK *itk4,int *tk4,unsigned char *strin4); |
347 | int searchtree(ITOK *itk4,int *tk4,unsigned char *strin4); |
348 | void AddUndefOff(int segm,char *ostring); |
348 | void AddUndefOff(int segm,char *ostring); |
349 | void InitStruct(); //èíèöèàëèçèðîâàòü ñòðóêòóðó |
349 | void InitStruct(); //èíèöèàëèçèðîâàòü ñòðóêòóðó |
350 | unsigned long LocalStruct(int flag,int *localline); //èíèöèàëèçèðîâàòü ëîêàëüíóþ ñòðóêòóðó |
350 | unsigned long LocalStruct(int flag,int *localline); //èíèöèàëèçèðîâàòü ëîêàëüíóþ ñòðóêòóðó |
351 | struct structteg * FindTeg(int Global,char *name=itok.name); //íàéòè òåã |
351 | struct structteg * FindTeg(int Global,char *name=itok.name); //íàéòè òåã |
352 | void dostruct(); |
352 | void dostruct(); |
353 | int FastSearch(unsigned char *list,short *ofs,int type,char *str); |
353 | int FastSearch(unsigned char *list,short unsigned *ofs,int type,char *str); |
354 | void FindDirectiv(); |
354 | void FindDirectiv(); |
355 | unsigned long long scannumber(int *rm); |
355 | unsigned long long scannumber(int *rm); |
356 | void FastTok(int mode,int *tok4=&tok,ITOK *itok4=&itok); |
356 | void FastTok(int mode,int *tok4=&tok,ITOK *itok4=&itok); |
357 | unsigned int initstructvar(structteg *tteg,int numel); |
357 | unsigned int initstructvar(structteg *tteg,int numel); |
358 | unsigned int ScanTok3(); |
358 | unsigned int ScanTok3(); |
359 | int GetVarSize(int var); |
359 | int GetVarSize(int var); |
360 | void compressoffset(ITOK *thetok); |
360 | void compressoffset(ITOK *thetok); |
361 | void AddDynamicList(idrec *ptr); |
361 | void AddDynamicList(idrec *ptr); |
362 | int CheckUseAsUndef(unsigned char *name); |
362 | int CheckUseAsUndef(unsigned char *name); |
363 | int CheckMassiv(char *&buf,int sizeel,int treg,int *idx=0,int *base=0,long *num=0); |
363 | int CheckMassiv(char *&buf,int sizeel,int treg,int *idx=0,int *base=0,long *num=0); |
364 | void AutoDestructor(); |
364 | void AutoDestructor(); |
365 | void dodelete(); |
365 | void dodelete(); |
366 | void donew(); |
366 | void donew(); |
367 | void RunNew(int size); |
367 | void RunNew(int size); |
368 | int CallDestructor(structteg *searcht); |
368 | int CallDestructor(structteg *searcht); |
369 | int FindUseName(char *name); //ïîèñê ññûëîê íà òåêóùåå èìÿ |
369 | int FindUseName(char *name); //ïîèñê ññûëîê íà òåêóùåå èìÿ |
370 | void DateToStr(char *buf); |
370 | void DateToStr(char *buf); |
371 | int CalcRm16(int base,int idx); |
371 | int CalcRm16(int base,int idx); |
372 | int CheckDef(); |
372 | int CheckDef(); |
373 | void SetNewStr(char *name); |
373 | void SetNewStr(char *name); |
374 | struct structteg *CreatTeg(int Global,int useunion=FALSE,int noname=FALSE); |
374 | struct structteg *CreatTeg(int Global,int useunion=FALSE,int noname=FALSE); |
375 | void InitStruct2(unsigned int flag,structteg *tteg); |
375 | void InitStruct2(unsigned int flag,structteg *tteg); |
376 | unsigned long LocalStruct2(int flag,int *localline,int binptr,char bcha,structteg *tteg); |
376 | unsigned long LocalStruct2(int flag,int *localline,int binptr,char bcha,structteg *tteg); |
377 | void retoldscanmode(int mode); |
377 | void retoldscanmode(int mode); |
378 | void ExpandRm(int rm,int sib,int *zoom,int *base,int *idx); |
378 | void ExpandRm(int rm,int sib,int *zoom,int *base,int *idx); |
379 | void BackMod(); |
379 | void BackMod(); |
380 | 380 | ||
381 | /*-----------------08.03.98 21:45------------------- |
381 | /*-----------------08.03.98 21:45------------------- |
382 | Ôóíêöèè îïðåäåëåíûå â tokb.h |
382 | Ôóíêöèè îïðåäåëåíûå â tokb.h |
383 | --------------------------------------------------*/ |
383 | --------------------------------------------------*/ |
384 | void AddReloc(int segm=itok.segm); |
384 | void AddReloc(int segm=itok.segm); |
385 | int doalmath(int sign,char **ofsstr); |
385 | int doalmath(int sign,char **ofsstr); |
386 | int do_e_axmath(int sign,int razr,char **ofsstr); |
386 | int do_e_axmath(int sign,int razr,char **ofsstr); |
387 | void getintoal(int gtok,ITOK *gstok,char *&gbuf,SINFO *gstr); /* AH may also be changed */ |
387 | void getintoal(int gtok,ITOK *gstok,char *&gbuf,SINFO *gstr); /* AH may also be changed */ |
388 | void getinto_e_ax(int sign,int gtok,ITOK *gstok,char *&gbuf,SINFO *gstr,int razr,int useAX=FALSE); |
388 | void getinto_e_ax(int sign,int gtok,ITOK *gstok,char *&gbuf,SINFO *gstr,int razr,int useAX=FALSE); |
389 | int doeaxfloatmath(int itreturn=tk_reg32,int reg=AX,int addop=0); |
389 | int doeaxfloatmath(int itreturn=tk_reg32,int reg=AX,int addop=0); |
390 | int dobytevar(int sign,int terminater=tk_semicolon); // byte, char |
390 | int dobytevar(int sign,int terminater=tk_semicolon); // byte, char |
391 | int do_d_wordvar(int sign,int razr,int terminater=tk_semicolon); /* signed or unsigned 16 bit memory variable */ |
391 | int do_d_wordvar(int sign,int razr,int terminater=tk_semicolon); /* signed or unsigned 16 bit memory variable */ |
392 | int doreg_32(int reg,int razr,int terminater=tk_semicolon); |
392 | int doreg_32(int reg,int razr,int terminater=tk_semicolon); |
393 | void doseg(int seg); |
393 | void doseg(int seg); |
394 | int caselong(unsigned long val); |
394 | int caselong(unsigned long val); |
395 | int dobeg(int beg,int terminater=tk_semicolon); |
395 | int dobeg(int beg,int terminater=tk_semicolon); |
396 | void dobegmath(int beg); /* math done is on all begs except AL */ |
396 | void dobegmath(int beg); /* math done is on all begs except AL */ |
397 | void doregmath_32(int reg,int razr,int sign,char **ofsstr,int i=0); /* math done is on all regs except AX */ |
397 | void doregmath_32(int reg,int razr,int sign,char **ofsstr,int i=0); /* math done is on all regs except AX */ |
398 | int getintobeg(int beg,char **ofsstr); |
398 | int getintobeg(int beg,char **ofsstr); |
399 | int getintoreg_32(int reg,int razr,int sign,char **ofsstr,int useloop=TRUE); /* get into word reg (except AX) with enum */ |
399 | int getintoreg_32(int reg,int razr,int sign,char **ofsstr,int useloop=TRUE); /* get into word reg (except AX) with enum */ |
400 | void outaddress(ITOK *outtok); |
400 | void outaddress(ITOK *outtok); |
401 | void FloatToNumer(int addop=0); |
401 | void FloatToNumer(int addop=0); |
402 | int dofloatvar(int addop=0,int retrez=tk_floatvar,int terminater=tk_semicolon); |
402 | int dofloatvar(int addop=0,int retrez=tk_floatvar,int terminater=tk_semicolon); |
403 | void fwait3(); |
403 | void fwait3(); |
404 | void AddFloatConst(long long fnumber,int type=tk_float); |
404 | void AddFloatConst(long long fnumber,int type=tk_float); |
405 | void setwordpost(ITOK *); /* for post word num setting */ |
405 | void setwordpost(ITOK *); /* for post word num setting */ |
406 | void setwordext(long *id); |
406 | void setwordext(long *id); |
407 | void RegMulNum(int reg,unsigned long num,int razr,int sign,int *expand,int flag); |
407 | void RegMulNum(int reg,unsigned long num,int razr,int sign,int *expand,int flag); |
408 | int OnlyNumber(int sign); |
408 | int OnlyNumber(int sign); |
409 | void PopSeg(int seg); |
409 | void PopSeg(int seg); |
410 | void PushSeg(int seg); |
410 | void PushSeg(int seg); |
411 | void MovRegNum(int razr,int relocf,unsigned long number,int reg); |
411 | void MovRegNum(int razr,int relocf,unsigned long number,int reg); |
412 | int CheckMinusNum(); |
412 | int CheckMinusNum(); |
413 | int getintoreg(int reg,int razr,int sign,char **ofsstr); |
413 | int getintoreg(int reg,int razr,int sign,char **ofsstr); |
414 | void dobits(); |
414 | void dobits(); |
415 | void bits2reg(int reg,int razr); |
415 | void bits2reg(int reg,int razr); |
416 | void getoperand(int reg=BX); |
416 | void getoperand(int reg=BX); |
417 | int optnumadd(unsigned long num,int reg,int razr,int vop); |
417 | int optnumadd(unsigned long num,int reg,int razr,int vop); |
418 | int MultiAssign(int razr,int usereg,int npointr=0); |
418 | int MultiAssign(int razr,int usereg,int npointr=0); |
419 | void CheckInitBP(); |
419 | void CheckInitBP(); |
420 | void RestoreBP(); |
420 | void RestoreBP(); |
421 | void fistp_stack(int addop=0); |
421 | void fistp_stack(int addop=0); |
422 | void fld_stack(int size); |
422 | void fld_stack(int size); |
423 | void fildq_stack(); |
423 | void fildq_stack(); |
424 | void cpointr(int reg,int numpointr); |
424 | void cpointr(int reg,int numpointr); |
425 | int doqwordvar(int terminater=tk_semicolon); //64 bit memory variable |
425 | int doqwordvar(int terminater=tk_semicolon); //64 bit memory variable |
426 | void doreg64(int reg,int terminater=tk_semicolon); |
426 | void doreg64(int reg,int terminater=tk_semicolon); |
427 | void doregmath64(int reg); |
427 | void doregmath64(int reg); |
428 | void getintoreg64(int reg); |
428 | void getintoreg64(int reg); |
429 | void float2stack(int num); |
429 | void float2stack(int num); |
430 | void dofloatstack(int num); |
430 | void dofloatstack(int num); |
431 | 431 | ||
432 | /*-----------------08.03.98 20:59------------------- |
432 | /*-----------------08.03.98 20:59------------------- |
433 | Ôóíêöèè îïðåäåëåíûå â tokc.c |
433 | Ôóíêöèè îïðåäåëåíûå â tokc.c |
434 | --------------------------------------------------*/ |
434 | --------------------------------------------------*/ |
435 | localrec * addlocalvar(char *str,int tok,unsigned int num,int addmain=FALSE); |
435 | localrec * addlocalvar(char *str,int tok,unsigned int num,int addmain=FALSE); |
436 | int addpoststring(int segm=CS,int len=itok.number, int term=itok.flag); /* add a string to the post queue */ |
436 | int addpoststring(int segm=CS,int len=itok.number, int term=itok.flag); /* add a string to the post queue */ |
437 | void define_locallabel(); |
437 | void define_locallabel(); |
438 | unsigned int dofrom(); |
438 | unsigned int dofrom(); |
439 | unsigned int doextract(); |
439 | unsigned int doextract(); |
440 | int doparams(); /* do stack procedure parameter pushing */ |
440 | int doparams(); /* do stack procedure parameter pushing */ |
441 | int swapparam(); |
441 | int swapparam(); |
442 | long updatetree(); |
442 | long updatetree(); |
443 | void addacall(unsigned int idnum,unsigned char callkind); |
443 | void addacall(unsigned int idnum,unsigned char callkind); |
444 | idrec * addtotree(char *keystring); |
444 | idrec * addtotree(char *keystring); |
445 | void compilefile(char *filename,int firstflag); |
445 | void compilefile(char *filename,int firstflag); |
446 | void convert_returnvalue(int expectedreturn,int actualreturn); |
446 | void convert_returnvalue(int expectedreturn,int actualreturn); |
447 | int doid (char uppercase,int expectedreturn); |
447 | int doid (char uppercase,int expectedreturn); |
448 | void insert_dynamic(int insert=FALSE); |
448 | void insert_dynamic(int insert=FALSE); |
449 | int macros(int expectedreturn); |
449 | int macros(int expectedreturn); |
450 | void op(int byte); |
450 | void op(int byte); |
451 | void opd(int byte); //âûâîä áàéòà â ñåãìåíò äàííûõ |
451 | void opd(int byte); //âûâîä áàéòà â ñåãìåíò äàííûõ |
452 | void op66(int ctoc); |
452 | void op66(int ctoc); |
453 | int op67(int ctok); |
453 | int op67(int ctok); |
454 | void outqwordd (unsigned long long); |
454 | void outqwordd (unsigned long long); |
455 | void outqword (unsigned long long); |
455 | void outqword (unsigned long long); |
456 | void outdwordd (unsigned long); |
456 | void outdwordd (unsigned long); |
457 | void outdword (unsigned long); |
457 | void outdword (unsigned long); |
458 | void outwordd (unsigned int); |
458 | void outwordd (unsigned int); |
459 | void outword (unsigned int); |
459 | void outword (unsigned int); |
460 | void outseg(ITOK *outtok,unsigned int locadd); |
460 | void outseg(ITOK *outtok,unsigned int locadd); |
461 | int procdo(int expectedreturn); |
461 | int procdo(int expectedreturn); |
462 | int updatecall(unsigned int which,unsigned int where,unsigned int top); |
462 | int updatecall(unsigned int which,unsigned int where,unsigned int top); |
463 | void AddBackBuf(int,char); |
463 | void AddBackBuf(int,char); |
464 | void CharToBackBuf(char c); |
464 | void CharToBackBuf(char c); |
465 | void missingpar(char *name=""); |
465 | void missingpar(char *name=(char *)""); |
466 | int CheckCodeSize(); |
466 | int CheckCodeSize(); |
467 | void CheckPosts(); |
467 | void CheckPosts(); |
468 | int doanyundefproc(int jumpsend=FALSE); |
468 | int doanyundefproc(int jumpsend=FALSE); |
469 | int doanyproc(int jumpsend=FALSE); |
469 | int doanyproc(int jumpsend=FALSE); |
470 | void killpost(unsigned int poz); |
470 | void killpost(unsigned int poz); |
471 | char *BackString(char *str); |
471 | char *BackString(char *str); |
472 | DLLLIST *FindDLL(); |
472 | DLLLIST *FindDLL(); |
473 | long initglobalvar(int type,long elements,long ssize,char typev); |
473 | long initglobalvar(int type,long elements,long ssize,char typev); |
474 | int typesize(int vartype); |
474 | int typesize(int vartype); |
475 | void dopoststrings(); |
475 | void dopoststrings(); |
476 | char *dynamic_var(); |
476 | char *dynamic_var(); |
477 | void uptdbr(/*int usesw=FALSE*/); |
477 | void uptdbr(/*int usesw=FALSE*/); |
478 | void docommand(); /* do a single command */ |
478 | void docommand(); /* do a single command */ |
479 | //int CheckStopBlock(); |
479 | //int CheckStopBlock(); |
480 | void MakeBreak(unsigned char typeb); |
480 | void MakeBreak(unsigned char typeb); |
481 | void SetBreakLabel(); |
481 | void SetBreakLabel(); |
482 | void SetContinueLabel(); |
482 | void SetContinueLabel(); |
483 | void CheckDir(); |
483 | void CheckDir(); |
484 | int SkipParam(); |
484 | int SkipParam(); |
485 | long GetBitMask(int ofs,int size); |
485 | long GetBitMask(int ofs,int size); |
486 | void AddPostData(unsigned int loop); |
486 | void AddPostData(unsigned int loop); |
487 | //void NotPostUnion(); |
487 | //void NotPostUnion(); |
488 | unsigned int initparamproc(); |
488 | unsigned int initparamproc(); |
489 | void CorrectStack(unsigned int num); |
489 | void CorrectStack(unsigned int num); |
490 | int testInitVar(int checkaldef=TRUE); |
490 | int testInitVar(int checkaldef=TRUE); |
491 | void declareparamreg(); |
491 | void declareparamreg(); |
492 | void declareparamstack(); /* declare procedure parameters */ |
492 | void declareparamstack(); /* declare procedure parameters */ |
493 | void declareparams(); /* declare procedure parameters */ |
493 | void declareparams(); /* declare procedure parameters */ |
494 | void declarelocals(int mode,int finline=FALSE); /* declare locals */ |
494 | void declarelocals(int mode,int finline=FALSE); /* declare locals */ |
495 | void doblock2(); |
495 | void doblock2(); |
496 | void doblock(); |
496 | void doblock(); |
497 | void setreturn(); |
497 | void setreturn(); |
498 | int CidOrID(); |
498 | int CidOrID(); |
499 | void dynamic_proc(); |
499 | void dynamic_proc(); |
500 | void setproc(int defflag); |
500 | void setproc(int defflag); |
501 | void define_procedure(); |
501 | void define_procedure(); |
502 | void doregparams(); |
502 | void doregparams(); |
503 | int CheckDeclareProc(); |
503 | int CheckDeclareProc(); |
504 | int loadfile(char *filename,int firstflag); |
504 | int loadfile(char *filename,int firstflag); |
505 | void RestoreStack(); |
505 | void RestoreStack(); |
506 | void IsUses(idrec *rec); |
506 | void IsUses(idrec *rec); |
507 | int SkipBlock(); |
507 | int SkipBlock(); |
508 | void declareanonim(); |
508 | void declareanonim(); |
509 | void declareunion(); |
509 | void declareunion(); |
510 | void startblock(); |
510 | void startblock(); |
511 | void endblock(); |
511 | void endblock(); |
512 | void LLabel(); |
512 | void LLabel(); |
513 | void AddApiToPost(unsigned int num); |
513 | void AddApiToPost(unsigned int num); |
514 | 514 | ||
515 | /*-----------------08.03.98 20:06------------------- |
515 | /*-----------------08.03.98 20:06------------------- |
516 | ôóíêöèè îïðåäåëåíû â toke.c |
516 | ôóíêöèè îïðåäåëåíû â toke.c |
517 | --------------------------------------------------*/ |
517 | --------------------------------------------------*/ |
518 | void jumperror(unsigned int line,char *type); |
518 | void jumperror(unsigned int line,char *type); |
519 | void beep(); /* beep for any internal errors */ |
519 | void beep(); /* beep for any internal errors */ |
520 | void codeexpected(); |
520 | void codeexpected(); |
521 | void datatype_expected(int type=0); |
521 | void datatype_expected(int type=0); |
522 | unsigned long doconstdwordmath(); |
522 | unsigned long doconstdwordmath(); |
523 | signed long doconstlongmath(); |
523 | signed long doconstlongmath(); |
524 | long doconstfloatmath(); |
524 | long doconstfloatmath(); |
525 | void dwordvalexpected(); |
525 | void dwordvalexpected(); |
526 | void idalreadydefined(); |
526 | void idalreadydefined(); |
527 | void illegalfloat(); |
527 | void illegalfloat(); |
528 | void internalerror (char *str);// serious internal compiler error message |
528 | void internalerror (char *str);// serious internal compiler error message |
529 | void maxoutputerror(); |
529 | void maxoutputerror(); |
530 | void maxwordpostserror(); |
530 | void maxwordpostserror(); |
531 | void nextseminext(); |
531 | void nextseminext(); |
532 | void numexpected(int type=0); |
532 | void numexpected(int type=0); |
533 | void operatorexpected(); |
533 | void operatorexpected(); |
534 | void seminext(); |
534 | void seminext(); |
535 | void shortjumptoolarge(); |
535 | void shortjumptoolarge(); |
536 | void stringexpected(); |
536 | void stringexpected(); |
537 | void swaperror(); |
537 | void swaperror(); |
538 | void SwTok(int want); |
538 | void SwTok(int want); |
539 | void unabletoopen(char *str); |
539 | void unabletoopen(char *str); |
540 | void unexpectedeof(); |
540 | void unexpectedeof(); |
541 | void unknowncompop(); |
541 | void unknowncompop(); |
542 | void valueexpected(); |
542 | void valueexpected(); |
543 | void varexpected(int type); |
543 | void varexpected(int type); |
544 | void wordvalexpected(); |
544 | void wordvalexpected(); |
545 | int includeit(int type); |
545 | int includeit(int type); |
546 | int includeproc(); |
546 | int includeproc(); |
547 | int CheckMacros(); |
547 | int CheckMacros(); |
548 | void tobigpost(); |
548 | void tobigpost(); |
549 | void expected (char ch); |
549 | void expected (char ch); |
550 | int expecting(int want); |
550 | int expecting(int want); |
551 | void outprocedure(unsigned char *array,unsigned int length); |
551 | void outprocedure(unsigned char *array,unsigned int length); |
552 | void preerror(char *str);//error on currentline with line number and file name |
552 | void preerror(char *str);//error on currentline with line number and file name |
553 | void thisundefined(char *str,int next=TRUE); |
553 | void thisundefined(char *str,int next=TRUE); |
554 | void addconsttotree(char *keystring,long long constvalue,int type=tk_dword); |
554 | void addconsttotree(char *keystring,long long constvalue,int type=tk_dword); |
555 | void directive(); |
555 | void directive(); |
556 | void doenum(); |
556 | void doenum(); |
557 | void doprestuff(); //do initial code things, like resize mem, jump to main... |
557 | void doprestuff(); //do initial code things, like resize mem, jump to main... |
558 | void searchvar(char *name,int err=1); |
558 | void searchvar(char *name,int err=1); |
559 | void expectingoperand(int want); |
559 | void expectingoperand(int want); |
560 | void InitDefineConst(); |
560 | void InitDefineConst(); |
561 | unsigned long long doconstqwordmath(); |
561 | unsigned long long doconstqwordmath(); |
562 | long long doconstdoublemath(); |
562 | long long doconstdoublemath(); |
563 | int calclongnumber(long *retnum,long number,int operand); |
563 | int calclongnumber(long *retnum,long number,int operand); |
564 | int calcqwordnumber(unsigned long long *retnum,unsigned long long number,int operand); |
564 | int calcqwordnumber(unsigned long long *retnum,unsigned long long number,int operand); |
565 | int calcdwordnumber(unsigned long *retnum,unsigned long number,int operand); |
565 | int calcdwordnumber(unsigned long *retnum,unsigned long number,int operand); |
566 | int calcfloatnumber(float *retnum,float number,int operand); |
566 | int calcfloatnumber(float *retnum,float number,int operand); |
567 | int calcdoublenumber(double *retnum,double number,int operand); |
567 | int calcdoublenumber(double *retnum,double number,int operand); |
568 | 568 | ||
569 | /*-----------------08.03.98 22:24------------------- |
569 | /*-----------------08.03.98 22:24------------------- |
570 | Ôóíêöèè îïðåäåëåíûå â tokr.c |
570 | Ôóíêöèè îïðåäåëåíûå â tokr.c |
571 | --------------------------------------------------*/ |
571 | --------------------------------------------------*/ |
572 | void doasm(int next=FALSE); |
572 | void doasm(int next=FALSE); |
573 | int short_ok(long thenumber,int reg32=FALSE); |
573 | int short_ok(long thenumber,int reg32=FALSE); |
574 | void callloc(long loc); /* produce CALL # */ |
574 | void callloc(long loc); /* produce CALL # */ |
575 | void callloc0(); |
575 | void callloc0(); |
576 | void cbw(void); |
576 | void cbw(void); |
577 | int GOTO(); |
577 | int GOTO(); |
578 | void expecting2(int want); |
578 | void expecting2(int want); |
579 | unsigned char gotol(int faradd); |
579 | unsigned char gotol(int faradd); |
580 | void jumploc(long loc); /* produce JUMP # */ |
580 | void jumploc(long loc); /* produce JUMP # */ |
581 | void jumploc0(); |
581 | void jumploc0(); |
582 | void movsb(void); |
582 | void movsb(void); |
583 | void movsd(void); |
583 | void movsd(void); |
584 | void movsw(void); |
584 | void movsw(void); |
585 | void popes(); /* produce POP ES */ |
585 | void popes(); /* produce POP ES */ |
586 | void pushds(); /* produce PUSH DS */ |
586 | void pushds(); /* produce PUSH DS */ |
587 | void pushss(); |
587 | void pushss(); |
588 | void ret(); /* produce RET */ |
588 | void ret(); /* produce RET */ |
589 | void retf(); /* produce RETF */ |
589 | void retf(); /* produce RETF */ |
590 | void stosb(void); |
590 | void stosb(void); |
591 | void stosd(void); |
591 | void stosd(void); |
592 | void stosw(void); |
592 | void stosw(void); |
593 | void fwait(); |
593 | void fwait(); |
594 | void xorAHAH(void); /* produce XOR AH,AH */ |
594 | void xorAHAH(void); /* produce XOR AH,AH */ |
595 | void xorAXAX(void); /* produce XOR AX,AX */ |
595 | void xorAXAX(void); /* produce XOR AX,AX */ |
596 | void xorEAXEAX(void); /* produce XOR EAX,EAX */ |
596 | void xorEAXEAX(void); /* produce XOR EAX,EAX */ |
597 | void nextexpecting2(int want); |
597 | void nextexpecting2(int want); |
598 | void tobedefined(int callkind,int expectedreturn); |
598 | void tobedefined(int callkind,int expectedreturn); |
599 | void cwdq(int razr); |
599 | void cwdq(int razr); |
600 | void Leave(); |
600 | void Leave(); |
601 | void CheckIP(); |
601 | void CheckIP(); |
602 | int iTest(int mode=0); |
602 | int iTest(int mode=0); |
603 | void ZeroReg(int reg, int razr); |
603 | void ZeroReg(int reg, int razr); |
604 | int Push(ITOK *wtok=NULL); |
604 | int Push(ITOK *wtok=NULL); |
605 | 605 | ||
606 | /*-----------------08.08.00 22:50------------------- |
606 | /*-----------------08.08.00 22:50------------------- |
607 | errors.cpp |
607 | errors.cpp |
608 | --------------------------------------------------*/ |
608 | --------------------------------------------------*/ |
609 | void warningstring(); |
609 | void warningstring(); |
610 | void warningexpand(); |
610 | void warningexpand(); |
611 | void warningjmp(char *str2,int line=linenumber,int file=currentfileinfo); |
611 | void warningjmp(char *str2,int line=linenumber,int file=currentfileinfo); |
612 | void warningreg(char *str2); |
612 | void warningreg(char *str2); |
613 | void preerror3(char *str,unsigned int line,unsigned int file=currentfileinfo);// error message at a different than current line |
613 | void preerror3(char *str,unsigned int line,unsigned int file=currentfileinfo);// error message at a different than current line |
614 | void unableopenfile(char *name); |
614 | void unableopenfile(char *name); |
615 | void tegnotfound(); |
615 | void tegnotfound(); |
616 | void errstruct(); |
616 | void errstruct(); |
617 | void warningdefined(char *); |
617 | void warningdefined(char *); |
618 | void extraparam(char *name=""); |
618 | void extraparam(char *name=""); |
619 | void warningretsign(); |
619 | void warningretsign(); |
620 | void ErrWrite(); |
620 | void ErrWrite(); |
621 | void ErrReadStub(); |
621 | void ErrReadStub(); |
622 | void warningnotused(char *name,int type); |
622 | void warningnotused(char *name,int type); |
623 | void regBXDISIBPexpected(); |
623 | void regBXDISIBPexpected(); |
624 | void reg32expected(int type=0); |
624 | void reg32expected(int type=0); |
625 | void InvOperComp(); |
625 | void InvOperComp(); |
626 | void warningusenotintvar(char *name); |
626 | void warningusenotintvar(char *name); |
627 | void warningdestroyflags(); |
627 | void warningdestroyflags(); |
628 | void warningunreach(); |
628 | void warningunreach(); |
629 | void unuseableinput(); |
629 | void unuseableinput(); |
630 | void redeclare(char *name); |
630 | void redeclare(char *name); |
631 | void undefclass(char *name); |
631 | void undefclass(char *name); |
632 | void badinfile(char *name); |
632 | void badinfile(char *name); |
633 | void errorreadingfile(char *name); |
633 | void errorreadingfile(char *name); |
634 | void expectederror(char *str); |
634 | void expectederror(char *str); |
635 | void unknowntype(); |
635 | void unknowntype(); |
636 | void unknownstruct (char *name,char *sname); |
636 | void unknownstruct (char *name,char *sname); |
637 | void unknowntagstruct (char *name); |
637 | void unknowntagstruct (char *name); |
638 | void warninline(); |
638 | void warninline(); |
639 | void ZeroMassiv(); |
639 | void ZeroMassiv(); |
640 | void bytevalexpected(int type); |
640 | void bytevalexpected(int type); |
641 | void FindStopTok(); |
641 | void FindStopTok(); |
642 | //void not_union_static(); |
642 | //void not_union_static(); |
643 | extern void edpip(int num=0); |
643 | extern void edpip(int num=0); |
644 | void waralreadinit(char *reg); |
644 | void waralreadinit(char *reg); |
645 | void waralreadinitreg(char *reg,char *reg2); |
645 | void waralreadinitreg(char *reg,char *reg2); |
646 | void OnlyComFile(); |
646 | void OnlyComFile(); |
647 | void warnsize(); |
647 | void warnsize(); |
648 | void destrdestreg(); |
648 | void destrdestreg(); |
649 | void qwordvalexpected(); |
649 | void qwordvalexpected(); |
650 | void fpustdestroed(); |
650 | void fpustdestroed(); |
651 | void unknownobj(char *name); |
651 | void unknownobj(char *name); |
652 | void FindEndLex(); |
652 | void FindEndLex(); |
653 | void fpu0expected(); |
653 | void fpu0expected(); |
654 | void unknownpragma(char *name); |
654 | void unknownpragma(char *name); |
655 | void warpragmapackpop(); |
655 | void warpragmapackpop(); |
656 | void SkipBlock2(); |
656 | void SkipBlock2(); |
657 | void warreplasevar(char *name); |
657 | void warreplasevar(char *name); |
658 | void warcompneqconst(); |
658 | void warcompneqconst(); |
659 | void warcompeqconst(); |
659 | void warcompeqconst(); |
660 | void warpointerstruct(); |
660 | void warpointerstruct(); |
661 | void warESP(); |
661 | void warESP(); |
662 | void waralreadinitvar(char *name,unsigned int num); |
662 | void waralreadinitvar(char *name,unsigned int num); |
663 | void warningprint(char *str,unsigned int line,unsigned int file); |
663 | void warningprint(char *str,unsigned int line,unsigned int file); |
664 | void notexternfun(); |
664 | void notexternfun(); |
665 | 665 | ||
666 | void AddDataLine(char ssize/*,char typev*/); |
666 | void AddDataLine(char ssize/*,char typev*/); |
667 | void mapfun(int); |
667 | void mapfun(int); |
668 | 668 | ||
669 | /*-----------------24.01.01 01:42------------------- |
669 | /*-----------------24.01.01 01:42------------------- |
670 | disasm.cpp |
670 | disasm.cpp |
671 | --------------------------------------------------*/ |
671 | --------------------------------------------------*/ |
672 | void undata(unsigned ofs,unsigned long len,unsigned int type); |
672 | void undata(unsigned ofs,unsigned long len,unsigned int type); |
673 | void unassemble(unsigned long ofs); |
673 | void unassemble(unsigned long ofs); |
674 | 674 | ||
675 | /*-----------------25.01.01 23:02------------------- |
675 | /*-----------------25.01.01 23:02------------------- |
676 | debug.cpp |
676 | debug.cpp |
677 | --------------------------------------------------*/ |
677 | --------------------------------------------------*/ |
678 | void AddLine(int SkipLine=FALSE); |
678 | void AddLine(int SkipLine=FALSE); |
679 | void DoTDS(); |
679 | void DoTDS(); |
680 | void InitDbg(); |
680 | void InitDbg(); |
681 | void KillLastLine(); |
681 | void KillLastLine(); |
682 | void AddDataNullLine(char ssize/* new!!! */,char *name=NULL); |
682 | void AddDataNullLine(char ssize/* new!!! */,char *name=NULL); |
683 | void AddCodeNullLine(char *name=NULL); |
683 | void AddCodeNullLine(char *name=NULL); |
684 | void AddEndLine(); |
684 | void AddEndLine(); |
685 | #ifdef DEBUGMODE |
685 | #ifdef DEBUGMODE |
686 | void printdebuginfo(); |
686 | void printdebuginfo(); |
687 | #endif |
687 | #endif |
688 | //void AddMainLine(); |
688 | //void AddMainLine(); |
689 | 689 | ||
690 | /*-----------------12.04.01 22:46------------------- |
690 | /*-----------------12.04.01 22:46------------------- |
691 | outpe |
691 | outpe |
692 | --------------------------------------------------*/ |
692 | --------------------------------------------------*/ |
693 | void CreatStub(char *name); |
693 | void CreatStub(char *name); |
694 | void CreatWinStub(); |
694 | void CreatWinStub(); |
695 | void ChSize(long size); |
695 | void ChSize(long size); |
696 | 696 | ||
697 | /*-----------------12.04.01 22:57------------------- |
697 | /*-----------------12.04.01 22:57------------------- |
698 | outle |
698 | outle |
699 | --------------------------------------------------*/ |
699 | --------------------------------------------------*/ |
700 | int MakeLE(); |
700 | int MakeLE(); |
701 | int MakeMEOS(); |
701 | int MakeMEOS(); |
702 | int MakeBin32(); |
702 | int MakeBin32(); |
703 | 703 | ||
704 | /*-----------------08.12.01 23:43------------------- |
704 | /*-----------------08.12.01 23:43------------------- |
705 | pointer |
705 | pointer |
706 | --------------------------------------------------*/ |
706 | --------------------------------------------------*/ |
707 | void dopointer(); |
707 | void dopointer(); |
708 | void dovalpointer(); |
708 | void dovalpointer(); |
709 | void getpointeradr(ITOK *gstok,char *&gbuf,SINFO *gstr,int numpointer,int razr,int reg=BX); |
709 | void getpointeradr(ITOK *gstok,char *&gbuf,SINFO *gstr,int numpointer,int razr,int reg=BX); |
710 | void dopointerproc(); |
710 | void dopointerproc(); |
711 | 711 | ||
712 | /*-----------------09.12.01 00:28------------------- |
712 | /*-----------------09.12.01 00:28------------------- |
713 | new_type |
713 | new_type |
714 | --------------------------------------------------*/ |
714 | --------------------------------------------------*/ |
715 | void convert_type(int *sign,int *rettype,int *pointr,int reg=BX); |
715 | void convert_type(int *sign,int *rettype,int *pointr,int reg=BX); |
716 | 716 | ||
717 | /*-----------------23.12.01 02:39------------------- |
717 | /*-----------------23.12.01 02:39------------------- |
718 | class |
718 | class |
719 | --------------------------------------------------*/ |
719 | --------------------------------------------------*/ |
720 | void doclassproc(unsigned int); |
720 | void doclassproc(unsigned int); |
721 | void AddThis(); |
721 | void AddThis(); |
722 | 722 | ||
723 | /*-----------------27.01.02 23:39------------------- |
723 | /*-----------------27.01.02 23:39------------------- |
724 | res |
724 | res |
725 | --------------------------------------------------*/ |
725 | --------------------------------------------------*/ |
726 | void input_res(); |
726 | void input_res(); |
727 | int MakeRes(unsigned long ofsres,LISTRELOC **listrel); |
727 | int MakeRes(unsigned long ofsres,LISTRELOC **listrel); |
728 | void CreatStrTabRes(); |
728 | void CreatStrTabRes(); |
729 | 729 | ||
730 | /*-----------------14.04.03 21:31------------------- |
730 | /*-----------------14.04.03 21:31------------------- |
731 | optreg |
731 | optreg |
732 | --------------------------------------------------*/ |
732 | --------------------------------------------------*/ |
733 | void initregstat(); |
733 | void initregstat(); |
734 | void deinitregstat(); |
734 | void deinitregstat(); |
735 | void IDXToReg(char *name,int size,int reg); |
735 | void IDXToReg(char *name,int size,int reg); |
736 | int CheckIDXReg(char *name,int size,int reg); |
736 | int CheckIDXReg(char *name,int size,int reg); |
737 | void IDZToReg(char *name,int reg,int razr); |
737 | void IDZToReg(char *name,int reg,int razr); |
738 | int CheckIDZReg(char *name,int reg,int razr); |
738 | int CheckIDZReg(char *name,int reg,int razr); |
739 | void clearregstat(int regs=0); |
739 | void clearregstat(int regs=0); |
740 | void ConstToReg(unsigned long num,int reg,int razr); |
740 | void ConstToReg(unsigned long num,int reg,int razr); |
741 | void ClearReg(int reg); |
741 | void ClearReg(int reg); |
742 | int RegSwapReg(int reg1,int reg2,int razr); |
742 | int RegSwapReg(int reg1,int reg2,int razr); |
743 | char *GetLecsem(int stop1,int stop2=tk_eof,int type=-1); |
743 | char *GetLecsem(int stop1,int stop2=tk_eof,int type=-1); |
744 | REGISTERSTAT *BakRegStat(); |
744 | REGISTERSTAT *BakRegStat(); |
745 | void CopyRegStat(REGISTERSTAT *bak); |
745 | void CopyRegStat(REGISTERSTAT *bak); |
746 | void KillVar(char *name); |
746 | void KillVar(char *name); |
747 | void CompareRegStat(REGISTERSTAT *bak); |
747 | void CompareRegStat(REGISTERSTAT *bak); |
748 | int RegToReg(int regd,int regs,int razr); |
748 | int RegToReg(int regd,int regs,int razr); |
749 | void GenRegToReg(int regd,int reds,int razr); |
749 | void GenRegToReg(int regd,int reds,int razr); |
750 | void GetEndLex(int stop1,int stop2=tk_eof,int type=-1); |
750 | void GetEndLex(int stop1,int stop2=tk_eof,int type=-1); |
751 | int GetRegNumber(int reg,unsigned long *num,int razr); |
751 | int GetRegNumber(int reg,unsigned long *num,int razr); |
752 | int GetNumberR(int reg,unsigned long *num,int razr,unsigned long number); |
752 | int GetNumberR(int reg,unsigned long *num,int razr,unsigned long number); |
753 | void FreeStat(REGISTERSTAT *bak); |
753 | void FreeStat(REGISTERSTAT *bak); |
754 | void AddRegVar(int reg, int razr,ITOK *itok4); |
754 | void AddRegVar(int reg, int razr,ITOK *itok4); |
755 | int GetRegVar(ITOK *itok4); |
755 | int GetRegVar(ITOK *itok4); |
756 | #ifdef OPTVARCONST |
756 | #ifdef OPTVARCONST |
757 | void CreateMainLVIC(); |
757 | void CreateMainLVIC(); |
758 | void KillMainLVIC(); |
758 | void KillMainLVIC(); |
759 | void ClearLVIC(); |
759 | void ClearLVIC(); |
760 | int Const2Var(ITOK *itok4,long long num,int typenum); |
760 | int Const2Var(ITOK *itok4,long long num,int typenum); |
761 | void ClearVarByNum(ITOK *itok4); |
761 | void ClearVarByNum(ITOK *itok4); |
762 | int UpdVarConst(ITOK *itok4,long long num,int typenum,int operand); |
762 | int UpdVarConst(ITOK *itok4,long long num,int typenum,int operand); |
763 | void FreeGlobalConst(); |
763 | void FreeGlobalConst(); |
764 | int CheckRegToConst(int reg,ITOK *itok4,int razr); |
764 | int CheckRegToConst(int reg,ITOK *itok4,int razr); |
765 | int CheckUpdRegToConst(int reg,ITOK *itok4,int operand,int razr); |
765 | int CheckUpdRegToConst(int reg,ITOK *itok4,int operand,int razr); |
766 | int SwapVarConst(ITOK *itok2,ITOK *itok4); |
766 | int SwapVarConst(ITOK *itok2,ITOK *itok4); |
767 | int SwapVarRegConst(int reg,ITOK *itok4,int razr); |
767 | int SwapVarRegConst(int reg,ITOK *itok4,int razr); |
768 | int CheckConstVar(ITOK *itok4); |
768 | int CheckConstVar(ITOK *itok4); |
769 | //int CheckConstVar2(ITOK *itok4,long long *num,int *typenum); |
769 | //int CheckConstVar2(ITOK *itok4,long long *num,int *typenum); |
770 | void CheckConstVar3(int *tok4,ITOK *itok4,int razr); |
770 | void CheckConstVar3(int *tok4,ITOK *itok4,int razr); |
771 | void Const2VarRec(LVIC *varconst); |
771 | void Const2VarRec(LVIC *varconst); |
772 | #endif |
772 | #endif |
773 | 773 | ||
774 | #ifndef _REGOPT_ |
774 | #ifndef _REGOPT_ |
775 | extern unsigned char optinitreg; |
775 | extern unsigned char optinitreg; |
776 | #ifdef OPTVARCONST |
776 | #ifdef OPTVARCONST |
777 | extern unsigned char replasevar; |
777 | extern unsigned char replasevar; |
778 | extern LVIC *listvic; |
778 | extern LVIC *listvic; |
779 | #endif |
779 | #endif |
780 | #endif |
780 | #endif |
781 | 781 | ||
782 | /*----------------------- |
782 | /*----------------------- |
783 | libobj |
783 | libobj |
784 | -------------------------*/ |
784 | -------------------------*/ |
785 | void AddNameObj(char *name,int typefind,int type); |
785 | void AddNameObj(char *name,int typefind,int type); |
786 | void AddObj(); |
786 | void AddObj(); |
787 | 787 | ||
788 | #ifdef __NEWLEX__ |
788 | #ifdef __NEWLEX__ |
789 | void inittokn(); |
789 | void inittokn(); |
790 | void doblockstart(char *); |
790 | void doblockstart(char *); |
791 | 791 | ||
792 | #endif |
792 | #endif |
793 | /* end of TOK.H */ |
793 | /* end of TOK.H */ |