Rev 205 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 205 | Rev 475 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ;~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- |
|
- | 2 | macro iglobal { |
|
- | 3 | IGlobals equ IGlobals, |
|
- | 4 | macro __IGlobalBlock { } |
|
- | 5 | ||
- | 6 | macro uglobal { |
|
- | 7 | UGlobals equ UGlobals, |
|
- | 8 | macro __UGlobalBlock { } |
|
- | 9 | ||
- | 10 | endg fix } ; Use endg for ending iglobal and uglobal blocks. |
|
- | 11 | ||
- | 12 | ||
- | 13 | macro IncludeIGlobals{ |
|
- | 14 | macro IGlobals dummy,[n] \{ __IGlobalBlock |
|
- | 15 | purge __IGlobalBlock \} |
|
- | 16 | match I, IGlobals \{ I \} } |
|
- | 17 | ||
- | 18 | macro IncludeUGlobals{ |
|
- | 19 | macro UGlobals dummy,[n] \{ |
|
- | 20 | \common |
|
- | 21 | \local begin, size |
|
- | 22 | begin = $ |
|
- | 23 | virtual at $ |
|
- | 24 | \forward |
|
- | 25 | __UGlobalBlock |
|
- | 26 | purge __UGlobalBlock |
|
- | 27 | \common |
|
- | 28 | size = $ - begin |
|
- | 29 | end virtual |
|
- | 30 | rb size |
|
- | 31 | \} |
|
- | 32 | match U, UGlobals \{ U \} } |
|
- | 33 | ||
- | 34 | uglobal |
|
- | 35 | endg |
|
- | 36 | ||
- | 37 | iglobal |
|
- | 38 | endg |
|
- | 39 | ||
- | 40 | ;~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- |
|
- | 41 | ; new application structure |
|
1 | ; new application structure |
42 | macro meos_app_start |
2 | macro meos_app_start |
43 | { |
3 | { |
44 | use32 |
4 | use32 |
45 | org 0x0 |
5 | org 0x0 |
46 | |
Line 28... | Line 69... | ||
28 | CODE fix code |
69 | |
Line 29... | Line 70... | ||
29 | 70 | macro data |
|
30 | macro data |
71 | { |
31 | { |
72 | __data: |
- | 73 | IncludeIGlobals |
|
32 | __data: |
74 | } |
33 | } |
75 | DATA fix data |
Line 34... | Line 76... | ||
34 | DATA fix data |
76 | |
35 | 77 | macro udata |
|
Line 42... | Line 84... | ||
42 | rb 255 |
84 | else |
43 | else |
85 | __end: |
44 | __end: |
86 | end if |
45 | end if |
87 | __udata: |
46 | __udata: |
88 | IncludeUGlobals |
- | 89 | } |
|
47 | } |
90 | UDATA fix udata |
48 | UDATA fix udata |
91 | |
Line 49... | Line 92... | ||
49 | 92 | macro meos_app_end |
|
50 | macro meos_app_end |
93 | { |
Line 70... | Line 113... | ||
70 | db sstring |
113 | common |
71 | common |
114 | dd -1 |
72 | dd -1 |
115 | } |
73 | } |
116 | |
Line -... | Line 117... | ||
- | 117 | ; macro for defining multiline text data |
|
- | 118 | struc mls [sstring] { |
|
- | 119 | forward |
|
- | 120 | local ssize |
|
- | 121 | virtual at 0 |
|
- | 122 | db sstring ; mod |
|
- | 123 | ssize = $ |
|
- | 124 | end virtual |
|
- | 125 | db ssize |
|
- | 126 | db sstring |
|
- | 127 | common |
|
- | 128 | ||
- | 129 | db -1 ; mod |
|
- | 130 | } |
|
- | 131 | ||
- | 132 | ||
Line 74... | Line 133... | ||
74 | 133 | ||
75 | 134 | ; strings |
|
76 | ; strings |
135 | macro sz name,[data] { ; from MFAR [mike.dld] |
77 | macro sz name,[data] { ; from MFAR [mike.dld] |
136 | common |
Line 129... | Line 188... | ||
129 | else if (~a eq)&(b eq) |
188 | mov reg,a |
130 | mov reg,a |
189 | end if |
131 | end if |
190 | } |
132 | } |
191 | |
Line -... | Line 192... | ||
- | 192 | __CPU_type equ p5 |
|
- | 193 | SYSENTER_VAR equ 0 |
|
- | 194 | ||
133 | 195 | macro mcall a,b,c,d,e,f { ; mike.dld, updated by Ghost for Fast System Calls |
|
- | 196 | local ..ret_point |
|
134 | macro mcall a,b,c,d,e,f { ; mike.dld |
197 | __mov eax,a |
135 | __mov eax,a |
198 | __mov ebx,b |
136 | __mov ebx,b |
199 | __mov ecx,c |
137 | __mov ecx,c |
200 | __mov edx,d |
138 | __mov edx,d |
201 | __mov esi,e |
139 | __mov esi,e |
202 | __mov edi,f |
- | 203 | ||
- | 204 | if __CPU_type eq p5 |
|
- | 205 | int 0x40 |
|
- | 206 | else |
|
- | 207 | if __CPU_type eq p6 |
|
- | 208 | push ebp |
|
- | 209 | mov ebp, esp |
|
- | 210 | push ..ret_point ; it may be 2 or 5 byte |
|
- | 211 | sysenter |
|
- | 212 | ..ret_point: |
|
- | 213 | pop edx |
|
- | 214 | pop ecx |
|
- | 215 | ||
- | 216 | else |
|
- | 217 | if __CPU_type eq k6 |
|
- | 218 | push ecx |
|
- | 219 | syscall |
|
- | 220 | pop ecx |
|
- | 221 | else |
|
- | 222 | display 'ERROR : unknown CPU type' |
|
140 | __mov edi,f |
223 | int 0x40 |
- | 224 | end if |
|
- | 225 | end if |
|
- | 226 | end if |
|
141 | int 0x40 |
227 | } |
Line -... | Line 228... | ||
- | 228 | ||
142 | } |
229 | |
143 | 230 | ||
Line 144... | Line 231... | ||
144 | 231 | ||
145 | 232 | ; optimize the code for size |