Rev 1846 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1846 | Rev 1848 | ||
---|---|---|---|
1 | //===== «®¡ «ìë¥ ª®áâ âë |
1 | //===== «®¡ «ìë¥ ª®áâ âë |
2 | #define SHOW "WRITESTR" |
- | |
3 | // ---- |
- | |
4 | #define STD_INPUT_HANDLE -10 |
2 | #define STD_INPUT_HANDLE -10 |
5 | #define STD_OUTPUT_HANDLE -11 |
3 | #define STD_OUTPUT_HANDLE -11 |
6 | #define STD_ERROR_HANDLE -12 |
4 | #define STD_ERROR_HANDLE -12 |
7 | #define CREATE_NEW 1 |
5 | #define CREATE_NEW 1 |
8 | #define CREATE_ALWAYS 2 |
6 | #define CREATE_ALWAYS 2 |
9 | #define OPEN_EXISTING 3 |
7 | #define OPEN_EXISTING 3 |
10 | #define OPEN_ALWAYS 4 |
8 | #define OPEN_ALWAYS 4 |
11 | #define TRUNCATE_EXISTING 5 |
9 | #define TRUNCATE_EXISTING 5 |
12 | // ---- |
10 | // ---- |
13 | #define GENERIC_READ 0x80000000 |
11 | #define GENERIC_READ 0x80000000 |
14 | #define GENERIC_WRITE 0x40000000 |
12 | #define GENERIC_WRITE 0x40000000 |
15 | #define GENERIC_EXECUTE 0x20000000 |
13 | #define GENERIC_EXECUTE 0x20000000 |
16 | #define GENERIC_ALL 0x10000000 |
14 | #define GENERIC_ALL 0x10000000 |
17 | // ---- ®áâ âë ª®¬¯¨«ïâ®à |
15 | // ---- ®áâ âë ª®¬¯¨«ïâ®à |
18 | #define _END 0x1B |
16 | #define _END 0x1B |
19 | #define FILENAMESIZE 80 |
17 | #define FILENAMESIZE 80 |
20 | #define IDLENGTH 65 // «¨ ¨¬¥¨ ¨¤¥â¨ä¨ª â®à , ¢ª«îç ï NULL-â¥à¬¨ â®à |
18 | #define IDLENGTH 65 // «¨ ¨¬¥¨ ¨¤¥â¨ä¨ª â®à , ¢ª«îç ï NULL-â¥à¬¨ â®à |
21 | #define MAXDATA 512000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ª®¤ ¨ ¤ ë¥ |
19 | #define MAXDATA 512000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ª®¤ ¨ ¤ ë¥ |
22 | #define MAXDBGS 50000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ®â« ¤®çã ¨ä®à¬ æ¨î |
20 | #define MAXDBGS 50000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ®â« ¤®çã ¨ä®à¬ æ¨î |
23 | #define MAXDLLS 100 |
21 | #define MAXDLLS 100 |
24 | #define MAXINPUT 512000 // ªá¨¬ «ìë à §¬¥à ¢å®¤®£® ä ©« |
22 | #define MAXINPUT 512000 // ªá¨¬ «ìë à §¬¥à ¢å®¤®£® ä ©« |
25 | #define MAXMDL 100 // ªá¨¬ «ì®¥ ç¨á«® includes |
23 | #define MAXMDL 100 // ªá¨¬ «ì®¥ ç¨á«® includes |
26 | #define MAXPOSTS 150000 // §¬¥à ¡ãä¥à®¢ ¯®¤ POST ®¡à ¡®âªã |
24 | #define MAXPOSTS 150000 // §¬¥à ¡ãä¥à®¢ ¯®¤ POST ®¡à ¡®âªã |
27 | #define NULL 0 |
25 | #define NULL 0 |
28 | #define SORTSIZE 20 |
26 | #define SORTSIZE 20 |
29 | #define STRLEN 1000 // «¨ ¡ãä¥à ¯®¤ token |
27 | #define STRLEN 1000 // «¨ ¡ãä¥à ¯®¤ token |
30 | // ------------------------------------------ |
28 | // ------------------------------------------ |
31 | //===== 㬥஢ ë¥ ª®áâ âë |
29 | //===== 㬥஢ ë¥ ª®áâ âë |
32 | // ---- ®¤ë ¢®§¢à â |
30 | // ---- ®¤ë ¢®§¢à â |
33 | enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors, |
31 | enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors, |
34 | e_internalerror, e_noinputspecified, e_unknowncommandline, |
32 | e_internalerror, e_noinputspecified, e_unknowncommandline, |
35 | e_extract, e_cannotopenmapfile, e_someerrors }; |
33 | e_extract, e_cannotopenmapfile, e_someerrors }; |
36 | // ---- ®¤ë tokens tk_xxxx |
34 | // ---- ®¤ë tokens tk_xxxx |
37 | enum{ |
35 | enum{ |
38 | tk_eof,tk_number,tk_string,tk_var, |
36 | tk_eof,tk_number,tk_string,tk_var, |
39 | tk_id, |
37 | tk_id, |
40 | tk_db,tk_dw,tk_dd,tk_dq, // ¨¯ë ¯¥à¥¬¥ëå |
38 | tk_db,tk_dw,tk_dd,tk_dq, // ¨¯ë ¯¥à¥¬¥ëå |
41 | tk_byte,tk_char,tk_word,tk_short, |
39 | tk_byte,tk_char,tk_word,tk_short, |
42 | tk_dword,tk_int, |
40 | tk_dword,tk_int, |
43 | tk_enum, // 㬥஢ ë¥ ª®áâ âë |
41 | tk_enum, // 㬥஢ ë¥ ª®áâ âë |
44 | tk_struc, // ¯à¥¤¥«¥¨¥ áâàãªâãàë |
42 | tk_struc, // ¯à¥¤¥«¥¨¥ áâàãªâãàë |
45 | tk_if,tk_else,tk_endif, // á«®¢ ï ª®¬¯¨«ïæ¨ï |
43 | tk_if,tk_else,tk_endif, // á«®¢ ï ª®¬¯¨«ïæ¨ï |
46 | tk_include,tk_define, // ª«î票¥ ä « //¯à¥¤¥«¥¨¥ ª®áâ âë |
44 | tk_include,tk_define, // ª«î票¥ ä « //¯à¥¤¥«¥¨¥ ª®áâ âë |
47 | tk_import, // ¬¯®àâ ¨§ DLL |
45 | tk_import, // ¬¯®àâ ¨§ DLL |
48 | tk_map, // ¥¥à æ¨ï MAP-ä ©« |
46 | tk_map, // ¥¥à æ¨ï MAP-ä ©« |
49 | tk_debug, // ¥¥à æ¨ï ®â« ¤®ç®© ¨ä®à¬ 樨 |
47 | tk_debug, // ¥¥à æ¨ï ®â« ¤®ç®© ¨ä®à¬ 樨 |
50 | tk_list, // ë¤ ç ASM-«¨á⨣ |
48 | tk_list, // ë¤ ç ASM-«¨á⨣ |
51 | tk_dll, // ¥¥à æ¨ï DLL-ä ©« |
49 | tk_dll, // ¥¥à æ¨ï DLL-ä ©« |
52 | tk_loop,tk_return,tk_do, |
50 | tk_loop,tk_return,tk_do, |
53 | tk_while,tk_void, |
51 | tk_while,tk_void, |
54 | tk_continue,tk_break, |
52 | tk_continue,tk_break, |
55 | tk_docase,tk_case,tk_default, |
53 | tk_docase,tk_case,tk_default, |
56 | tk_carryflag,tk_extract,tk_FALSE,tk_from, |
54 | tk_carryflag,tk_extract,tk_FALSE,tk_from, |
57 | tk_notcarryflag,tk_notoverflow,tk_overflow,tk_TRUE, |
55 | tk_notcarryflag,tk_notoverflow,tk_overflow,tk_TRUE, |
58 | tk_zeroflag,tk_notzeroflag, |
56 | tk_zeroflag,tk_notzeroflag, |
59 | tk_assign,tk_swap, |
57 | tk_assign,tk_swap, |
60 | tk_minus,tk_plus, |
58 | tk_minus,tk_plus, |
61 | tk_minusminus,tk_plusplus,tk_mult,tk_div,tk_mod, |
59 | tk_minusminus,tk_plusplus,tk_mult,tk_div,tk_mod, |
62 | tk_multminus,tk_divminus,tk_modminus,tk_rr,tk_ll, |
60 | tk_multminus,tk_divminus,tk_modminus,tk_rr,tk_ll, |
63 | tk_rrminus, |
61 | tk_rrminus, |
64 | tk_llminus, |
62 | tk_llminus, |
65 | tk_minusequals,tk_plusequals,tk_rrequals,tk_llequals, |
63 | tk_minusequals,tk_plusequals,tk_rrequals,tk_llequals, |
66 | tk_or,tk_and,tk_xor,tk_not, |
64 | tk_or,tk_and,tk_xor,tk_not, |
67 | tk_orminus, |
65 | tk_orminus, |
68 | tk_andminus,tk_xorminus, |
66 | tk_andminus,tk_xorminus, |
69 | tk_orequals,tk_andequals,tk_xorequals, |
67 | tk_orequals,tk_andequals,tk_xorequals, |
70 | tk_equalto, |
68 | tk_equalto, |
71 | tk_notequal,tk_greater,tk_greaterequal,tk_less, |
69 | tk_notequal,tk_greater,tk_greaterequal,tk_less, |
72 | tk_lessequal, |
70 | tk_lessequal, |
73 | tk_oror,tk_andand,tk_openbrace,tk_closebrace, |
71 | tk_oror,tk_andand,tk_openbrace,tk_closebrace, |
74 | tk_openbracket,tk_closebracket,tk_openblock,tk_closeblock, |
72 | tk_openbracket,tk_closebracket,tk_openblock,tk_closeblock, |
75 | tk_colon,tk_semicolon,tk_comma,tk_period, |
73 | tk_colon,tk_semicolon,tk_comma,tk_period, |
76 | tk_dollar,tk_question,tk_tilda, |
74 | tk_dollar,tk_question,tk_tilda, |
77 | tk_reg,tk_controlreg,tk_debugreg,tk_testreg,tk_seg, |
75 | tk_reg,tk_controlreg,tk_debugreg,tk_testreg,tk_seg, |
78 | tk_undefproc,tk_proc, |
76 | tk_undefproc,tk_proc, |
79 | tk_postnumber, |
77 | tk_postnumber, |
80 | tk_local,tk_locallabel,tk_param,tk_locnumber, |
78 | tk_local,tk_locallabel,tk_param,tk_locnumber, |
81 | tk_DLL,tk_API,tk_directive,tk_command,tk_mnemonics, |
79 | tk_DLL,tk_API,tk_directive,tk_command,tk_mnemonics, |
82 | tokens |
80 | tokens |
83 | }; |
81 | }; |
84 | // ---- ®¤¨à®¢ª ⨯ ¯à®æ¥¤ãà |
82 | // ---- ®¤¨à®¢ª ⨯ ¯à®æ¥¤ãà |
85 | enum{ cpt_near, cpt_far }; |
83 | enum{ cpt_near, cpt_far }; |
86 | // ---- ®¤¨à®¢ª POST § ¯¨á¥© |
84 | // ---- ®¤¨à®¢ª POST § ¯¨á¥© |
87 | enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR }; |
85 | enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR }; |
88 | // ---- ¯¨á ¨¥ áâàãªâãàë ¢ dbginfo: dbg_... |
86 | // ---- ¯¨á ¨¥ áâàãªâãàë ¢ dbginfo: dbg_... |
89 | enum{ dbg_mod=0, // ®¬¥à ¬®¤ã«ï |
87 | enum{ dbg_mod=0, // ®¬¥à ¬®¤ã«ï |
90 | dbg_line=4, // ®¬¥à áâப ¢ ¬®¤ã«¥ |
88 | dbg_line=4, // ®¬¥à áâப ¢ ¬®¤ã«¥ |
91 | dbg_loc=8, // ®§¨æ¨ï ¢ EXE-ä ©«¥ |
89 | dbg_loc=8, // ®§¨æ¨ï ¢ EXE-ä ©«¥ |
92 | dbg_size=12}; // à §¬¥à áâàãªâãàë |
90 | dbg_size=12}; // à §¬¥à áâàãªâãàë |
93 | // ---- ¯¨á ¨¥ áâàãªâãàë idrec |
91 | // ---- ¯¨á ¨¥ áâàãªâãàë idrec |
94 | enum{ left=0, // ª § ⥫ì idrec |
92 | enum{ left=0, // ª § ⥫ì idrec |
95 | right=4, // ª § ⥫ì idrec |
93 | right=4, // ª § ⥫ì idrec |
96 | recid=8, // ¬ï ¨¤¥â¨ä¨ª â®à |
94 | recid=8, // ¬ï ¨¤¥â¨ä¨ª â®à |
97 | newid=recid+4, // ª § â¥«ì «¨ á ¤«ï recid |
95 | newid=recid+4, // ª § â¥«ì «¨ á ¤«ï recid |
98 | rectok=newid+4, // ®¬¥à token |
96 | rectok=newid+4, // ®¬¥à token |
99 | rectype=rectok+4, // ¨¯ token: void, byte, char, word, ... |
97 | rectype=rectok+4, // ¨¯ token: void, byte, char, word, ... |
100 | recsrc=rectype+4, // áå®¤ë© â¥ªáâ |
98 | recsrc=rectype+4, // áå®¤ë© â¥ªáâ |
101 | recpost=recsrc+4, // « £ POST ¯¥à¥¬¥®© |
99 | recpost=recsrc+4, // « £ POST ¯¥à¥¬¥®© |
102 | recnumber=recpost+4, // 票¥ ¨«¨ offset ¢ recsrc |
100 | recnumber=recpost+4, // 票¥ ¨«¨ offset ¢ recsrc |
103 | recmodline=recnumber+4,// ®¬¥à ¬®¤ã«ï ¨ áâப¨ |
101 | recmodline=recnumber+4,// ®¬¥à ¬®¤ã«ï ¨ áâப¨ |
104 | recsize=recnumber+4};// à §¬¥à áâàãªâãàë |
102 | recsize=recnumber+4};// à §¬¥à áâàãªâãàë |
105 | // ---- ¯¨á ¨¥ áâàãªâãàë localrec |
103 | // ---- ¯¨á ¨¥ áâàãªâãàë localrec |
106 | enum{ localnext=0, // ª § ⥫ì á«¥¤ãîéãî localrec |
104 | enum{ localnext=0, // ª § ⥫ì á«¥¤ãîéãî localrec |
107 | localid=4, // ¬ï «®ª «ì® ¯¥à¥¬¥®© |
105 | localid=4, // ¬ï «®ª «ì® ¯¥à¥¬¥®© |
108 | localtok=localid+IDLENGTH,// 票¥ token |
106 | localtok=localid+IDLENGTH,// 票¥ token |
109 | localtype=localtok+4, // ⨯ ¯¥à¥¬¥®© |
107 | localtype=localtok+4, // ⨯ ¯¥à¥¬¥®© |
110 | localnumber=localtype+4, // ®§¨æ¨ï ¢ á⥪¥ |
108 | localnumber=localtype+4, // ®§¨æ¨ï ¢ á⥪¥ |
111 | local_size=localnumber+4}; // §¬¥à áâàãªâãàë |
109 | local_size=localnumber+4}; // §¬¥à áâàãªâãàë |