Rev 1863 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1863 | Rev 1937 | ||
---|---|---|---|
1 | @^ fix macro comment { |
1 | @^ fix macro comment { |
2 | ^@ fix } |
2 | ^@ fix } |
3 | 3 | ||
4 | ; ------------------------- |
4 | ; ------------------------- |
5 | macro library [lname,fname] |
5 | macro library [lname,fname] |
6 | { |
6 | { |
7 | forward |
7 | forward |
8 | dd __#lname#_library_table__,__#lname#_library_name__ |
8 | dd __#lname#_library_table__,__#lname#_library_name__ |
9 | common |
9 | common |
10 | dd 0 |
10 | dd 0 |
11 | forward |
11 | forward |
12 | align 4 |
12 | align 4 |
13 | __#lname#_library_name__ db fname,0 |
13 | __#lname#_library_name__ db fname,0 |
14 | } |
14 | } |
15 | 15 | ||
16 | macro import lname,[name,sname] |
16 | macro import lname,[name,sname] |
17 | { |
17 | { |
18 | common |
18 | common |
19 | align 4 |
19 | align 4 |
20 | __#lname#_library_table__: |
20 | __#lname#_library_table__: |
21 | forward |
21 | forward |
22 | if used name |
22 | if used name |
23 | name dd __#name#_import_name__ |
23 | name dd __#name#_import_name__ |
24 | end if |
24 | end if |
25 | common |
25 | common |
26 | dd 0 |
26 | dd 0 |
27 | forward |
27 | forward |
28 | if used name |
28 | if used name |
29 | align 4 |
29 | align 4 |
30 | __#name#_import_name__ db sname,0 |
30 | __#name#_import_name__ db sname,0 |
31 | end if |
31 | end if |
32 | } |
32 | } |
33 | 33 | ||
34 | macro export [name,sname] |
34 | macro export [name,sname] |
35 | { |
35 | { |
36 | forward |
36 | forward |
37 | dd __#name#_export_name__,name |
37 | dd __#name#_export_name__,name |
38 | common |
38 | common |
39 | dd 0 |
39 | dd 0 |
40 | forward |
40 | forward |
41 | align 4 |
41 | align 4 |
42 | __#name#_export_name__ db sname,0 |
42 | __#name#_export_name__ db sname,0 |
43 | } |
43 | } |
44 | ; ------------------------- |
44 | ; ------------------------- |
45 | 45 | ||
46 | macro m2m dest,src { |
46 | macro m2m dest,src { |
47 | push src |
47 | push src |
48 | pop dest |
48 | pop dest |
49 | } |
49 | } |
50 | 50 | ||
51 | 51 | ||
52 | macro iglobal { |
52 | macro iglobal { |
53 | IGlobals equ IGlobals, |
53 | IGlobals equ IGlobals, |
54 | macro __IGlobalBlock { } |
54 | macro __IGlobalBlock { } |
55 | 55 | ||
56 | macro uglobal { |
56 | macro uglobal { |
57 | UGlobals equ UGlobals, |
57 | UGlobals equ UGlobals, |
58 | macro __UGlobalBlock { } |
58 | macro __UGlobalBlock { } |
59 | 59 | ||
60 | endg fix } ; Use endg for ending iglobal and uglobal blocks. |
60 | endg fix } ; Use endg for ending iglobal and uglobal blocks. |
61 | 61 | ||
62 | 62 | ||
63 | macro IncludeIGlobals{ |
63 | macro IncludeIGlobals{ |
64 | macro IGlobals dummy,[n] \{ __IGlobalBlock |
64 | macro IGlobals dummy,[n] \{ __IGlobalBlock |
65 | purge __IGlobalBlock \} |
65 | purge __IGlobalBlock \} |
66 | match I, IGlobals \{ I \} } |
66 | match I, IGlobals \{ I \} } |
67 | 67 | ||
68 | macro IncludeUGlobals{ |
68 | macro IncludeUGlobals{ |
69 | macro UGlobals dummy,[n] \{ |
69 | macro UGlobals dummy,[n] \{ |
70 | \common |
70 | \common |
71 | \local begin, size |
71 | \local begin, size |
72 | begin = $ |
72 | begin = $ |
73 | virtual at $ |
73 | virtual at $ |
74 | \forward |
74 | \forward |
75 | __UGlobalBlock |
75 | __UGlobalBlock |
76 | purge __UGlobalBlock |
76 | purge __UGlobalBlock |
77 | \common |
77 | \common |
78 | size = $ - begin |
78 | size = $ - begin |
79 | end virtual |
79 | end virtual |
80 | rb size |
80 | rb size |
81 | \} |
81 | \} |
82 | match U, UGlobals \{ U \} } |
82 | match U, UGlobals \{ U \} } |
83 | 83 | ||
84 | uglobal |
84 | uglobal |
85 | endg |
85 | endg |
86 | 86 | ||
87 | iglobal |
87 | iglobal |
88 | endg |
88 | endg |
89 | 89 | ||
90 | 90 | ||
91 | ; new application structure |
91 | ; new application structure |
92 | macro meos_app_start |
92 | macro meos_app_start |
93 | { |
93 | { |
94 | use32 |
94 | use32 |
95 | org 0x0 |
95 | org 0x0 |
96 | 96 | ||
97 | db 'MENUET01' |
97 | db 'MENUET01' |
98 | dd 0x01 |
98 | dd 0x01 |
99 | dd __start |
99 | dd __start |
100 | dd __end |
100 | dd __end |
101 | dd __memory |
101 | dd __memory |
102 | dd __stack |
102 | dd __stack |
103 | 103 | ||
104 | if used __params & ~defined __params |
104 | if used __params & ~defined __params |
105 | dd __params |
105 | dd __params |
106 | else |
106 | else |
107 | dd 0x0 |
107 | dd 0x0 |
108 | end if |
108 | end if |
109 | 109 | ||
110 | dd 0x0 |
110 | dd 0x0 |
111 | } |
111 | } |
112 | MEOS_APP_START fix meos_app_start |
112 | MEOS_APP_START fix meos_app_start |
113 | 113 | ||
114 | macro code |
114 | macro code |
115 | { |
115 | { |
116 | __start: |
116 | __start: |
117 | } |
117 | } |
118 | CODE fix code |
118 | CODE fix code |
119 | 119 | ||
120 | macro data |
120 | macro data |
121 | { |
121 | { |
122 | __data: |
122 | __data: |
123 | IncludeIGlobals |
123 | IncludeIGlobals |
124 | } |
124 | } |
125 | DATA fix data |
125 | DATA fix data |
126 | 126 | ||
127 | macro udata |
127 | macro udata |
128 | { |
128 | { |
129 | if used __params & ~defined __params |
129 | if used __params & ~defined __params |
130 | __params: |
130 | __params: |
131 | db 0 |
131 | db 0 |
132 | __end: |
132 | __end: |
133 | rb 255 |
133 | rb 255 |
134 | else |
134 | else |
135 | __end: |
135 | __end: |
136 | end if |
136 | end if |
137 | __udata: |
137 | __udata: |
138 | IncludeUGlobals |
138 | IncludeUGlobals |
139 | } |
139 | } |
140 | UDATA fix udata |
140 | UDATA fix udata |
141 | 141 | ||
142 | macro meos_app_end |
142 | macro meos_app_end |
143 | { |
143 | { |
144 | align 32 |
144 | align 32 |
145 | rb 2048 |
145 | rb 2048 |
146 | __stack: |
146 | __stack: |
147 | __memory: |
147 | __memory: |
148 | } |
148 | } |
149 | MEOS_APP_END fix meos_app_end |
149 | MEOS_APP_END fix meos_app_end |
150 | 150 | ||
151 | 151 | ||
152 | ; macro for defining multiline text data |
152 | ; macro for defining multiline text data |
153 | struc mstr [sstring] |
153 | struc mstr [sstring] |
154 | { |
154 | { |
155 | forward |
155 | forward |
156 | local ssize |
156 | local ssize |
157 | virtual at 0 |
157 | virtual at 0 |
158 | db sstring |
158 | db sstring |
159 | ssize = $ |
159 | ssize = $ |
160 | end virtual |
160 | end virtual |
161 | dd ssize |
161 | dd ssize |
162 | db sstring |
162 | db sstring |
163 | common |
163 | common |
164 | dd -1 |
164 | dd -1 |
165 | } |
165 | } |
166 | 166 | ||
167 | ; macro for defining multiline text data |
167 | ; macro for defining multiline text data |
168 | struc mls [sstring] |
168 | struc mls [sstring] |
169 | { |
169 | { |
170 | forward |
170 | forward |
171 | local ssize |
171 | local ssize |
172 | virtual at 0 |
172 | virtual at 0 |
173 | db sstring ; mod |
173 | db sstring ; mod |
174 | ssize = $ |
174 | ssize = $ |
175 | end virtual |
175 | end virtual |
176 | db ssize |
176 | db ssize |
177 | db sstring |
177 | db sstring |
178 | common |
178 | common |
179 | db -1 ; mod |
179 | db -1 ; mod |
180 | } |
180 | } |
181 | 181 | ||
182 | 182 | ||
183 | 183 | ||
184 | ; strings |
184 | ; strings |
185 | macro sz name,[data] { ; from MFAR [mike.dld] |
185 | macro sz name,[data] { ; from MFAR [mike.dld] |
186 | common |
186 | common |
187 | if used name |
187 | if used name |
188 | name db data |
188 | name db data |
189 | .size = $-name |
189 | .size = $-name |
190 | end if |
190 | end if |
191 | } |
191 | } |
192 | 192 | ||
193 | macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
193 | macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
194 | common |
194 | common |
195 | if used name |
195 | if used name |
196 | label name |
196 | label name |
197 | forward |
197 | forward |
198 | if lang eq lng |
198 | if lang eq lng |
199 | db data |
199 | db data |
200 | end if |
200 | end if |
201 | common |
201 | common |
202 | .size = $-name |
202 | .size = $-name |
203 | end if |
203 | end if |
204 | } |
204 | } |
205 | 205 | ||
206 | macro szc name,elsz,[data] { ; from MFAR [mike.dld] |
206 | macro szc name,elsz,[data] { ; from MFAR [mike.dld] |
207 | common |
207 | common |
208 | local s,m |
208 | local s,m |
209 | m = 0 |
209 | m = 0 |
210 | if used name |
210 | if used name |
211 | label name |
211 | label name |
212 | forward |
212 | forward |
213 | virtual at 0 |
213 | virtual at 0 |
214 | db data |
214 | db data |
215 | s = $ |
215 | s = $ |
216 | end virtual |
216 | end virtual |
217 | d#elsz s |
217 | d#elsz s |
218 | if m < s |
218 | if m < s |
219 | m = s |
219 | m = s |
220 | end if |
220 | end if |
221 | db data |
221 | db data |
222 | common |
222 | common |
223 | .size = $-name |
223 | .size = $-name |
224 | .maxl = m |
224 | .maxl = m |
225 | end if |
225 | end if |
226 | } |
226 | } |
227 | 227 | ||
228 | macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld] |
228 | macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld] |
229 | common |
229 | common |
230 | local s,m,c |
230 | local s,m,c |
231 | m = 0 |
231 | m = 0 |
232 | c = 0 |
232 | c = 0 |
233 | if used name |
233 | if used name |
234 | label name |
234 | label name |
235 | forward |
235 | forward |
236 | if lang eq lng |
236 | if lang eq lng |
237 | virtual at 0 |
237 | virtual at 0 |
238 | db data |
238 | db data |
239 | s = $ |
239 | s = $ |
240 | end virtual |
240 | end virtual |
241 | d#elsz s |
241 | d#elsz s |
242 | if m < s |
242 | if m < s |
243 | m = s |
243 | m = s |
244 | end if |
244 | end if |
245 | db data |
245 | db data |
246 | c = c+1 |
246 | c = c+1 |
247 | end if |
247 | end if |
248 | common |
248 | common |
249 | .size = $-name |
249 | .size = $-name |
250 | .maxl = m |
250 | .maxl = m |
251 | .count = c |
251 | .count = c |
252 | end if |
252 | end if |
253 | } |
253 | } |
254 | 254 | ||
255 | 255 | ||
256 | ; easy system call macro |
256 | ; easy system call macro |
257 | macro mpack dest, hsrc, lsrc |
257 | macro mpack dest, hsrc, lsrc |
258 | { |
258 | { |
259 | if (hsrc eqtype 0) & (lsrc eqtype 0) |
259 | if (hsrc eqtype 0) & (lsrc eqtype 0) |
260 | mov dest, (hsrc) shl 16 + lsrc |
260 | mov dest, (hsrc) shl 16 + lsrc |
261 | else |
261 | else |
262 | if (hsrc eqtype 0) & (~lsrc eqtype 0) |
262 | if (hsrc eqtype 0) & (~lsrc eqtype 0) |
263 | mov dest, (hsrc) shl 16 |
263 | mov dest, (hsrc) shl 16 |
264 | add dest, lsrc |
264 | add dest, lsrc |
265 | else |
265 | else |
266 | mov dest, hsrc |
266 | mov dest, hsrc |
267 | shl dest, 16 |
267 | shl dest, 16 |
268 | add dest, lsrc |
268 | add dest, lsrc |
269 | end if |
269 | end if |
270 | end if |
270 | end if |
271 | } |
271 | } |
272 | 272 | ||
273 | macro __mov reg,a,b { ; mike.dld |
273 | macro __mov reg,a,b { ; mike.dld |
274 | if (~a eq)&(~b eq) |
274 | if (~a eq)&(~b eq) |
275 | mpack reg,a,b |
275 | mpack reg,a,b |
276 | else if (~a eq)&(b eq) |
276 | else if (~a eq)&(b eq) |
277 | mov reg,a |
277 | mov reg,a |
278 | end if |
278 | end if |
279 | } |
279 | } |
280 | 280 | ||
281 | 281 | ||
282 | include 'config.inc' |
282 | include 'config.inc' |
283 | __CPU_type equ p5 |
283 | __CPU_type equ p5 |
284 | SYSENTER_VAR equ 0 |
284 | SYSENTER_VAR equ 0 |
285 | 285 | ||
286 | macro mcall a,b,c,d,e,f { ; mike.dld, updated by Ghost for Fast System Calls |
286 | macro mcall a,b,c,d,e,f { ; mike.dld, updated by Ghost for Fast System Calls |
287 | local ..ret_point |
- | |
288 | __mov eax,a |
287 | __mov eax,a |
289 | __mov ebx,b |
288 | __mov ebx,b |
290 | __mov ecx,c |
289 | __mov ecx,c |
291 | __mov edx,d |
290 | __mov edx,d |
292 | __mov esi,e |
291 | __mov esi,e |
293 | __mov edi,f |
292 | __mov edi,f |
294 | - | ||
295 | if __CPU_type eq p5 |
293 | |
296 | int 0x40 |
- | |
297 | else |
- | |
298 | if __CPU_type eq p6 |
- | |
299 | push ebp |
- | |
300 | mov ebp, esp |
- | |
301 | push ..ret_point ; it may be 2 or 5 byte |
- | |
302 | sysenter |
- | |
303 | ..ret_point: |
- | |
304 | pop edx |
- | |
305 | pop ecx |
- | |
306 | - | ||
307 | else |
- | |
308 | if __CPU_type eq k6 |
- | |
309 | push ecx |
- | |
310 | syscall |
- | |
311 | pop ecx |
- | |
312 | else |
- | |
313 | display 'ERROR : unknown CPU type (set to p5)', 10, 13 |
- | |
314 | __CPU_type equ p5 |
- | |
315 | int 0x40 |
- | |
316 | end if |
- | |
317 | end if |
- | |
318 | end if |
294 | int 0x40 |
319 | } |
295 | } |
320 | 296 | ||
321 | 297 | ||
322 | ; ------------------------- |
298 | ; ------------------------- |
323 | macro header a,[b] { |
299 | macro header a,[b] { |
324 | common |
300 | common |
325 | use32 |
301 | use32 |
326 | org 0 |
302 | org 0 |
327 | db 'MENUET',a |
303 | db 'MENUET',a |
328 | forward |
304 | forward |
329 | if b eq |
305 | if b eq |
330 | dd 0 |
306 | dd 0 |
331 | else |
307 | else |
332 | dd b |
308 | dd b |
333 | end if } |
309 | end if } |
334 | macro section name { align 16 |
310 | macro section name { align 16 |
335 | label name } |
311 | label name } |
336 | macro func name { |
312 | macro func name { |
337 | if ~used name |
313 | if ~used name |
338 | display 'FUNC NOT USED: ',`name,13,10 |
314 | display 'FUNC NOT USED: ',`name,13,10 |
339 | else |
315 | else |
340 | align 4 |
316 | align 4 |
341 | name: |
317 | name: |
342 | ;diff16 `name,0,name |
318 | ;diff16 `name,0,name |
343 | ;pushad |
319 | ;pushad |
344 | ;pushfd |
320 | ;pushfd |
345 | ;dps `name |
321 | ;dps `name |
346 | ;newline |
322 | ;newline |
347 | ;mcall 5,1 |
323 | ;mcall 5,1 |
348 | ;popfd |
324 | ;popfd |
349 | ;popad |
325 | ;popad |
350 | } |
326 | } |
351 | macro endf { end if } |
327 | macro endf { end if } |
352 | 328 | ||
353 | macro diff16 title,l1,l2 |
329 | macro diff16 title,l1,l2 |
354 | { |
330 | { |
355 | local s,d |
331 | local s,d |
356 | s = l2-l1 |
332 | s = l2-l1 |
357 | display title,': 0x' |
333 | display title,': 0x' |
358 | repeat 8 |
334 | repeat 8 |
359 | d = '0' + s shr ((8-%) shl 2) and $0F |
335 | d = '0' + s shr ((8-%) shl 2) and $0F |
360 | if d > '9' |
336 | if d > '9' |
361 | d = d + 'A'-'9'-1 |
337 | d = d + 'A'-'9'-1 |
362 | end if |
338 | end if |
363 | display d |
339 | display d |
364 | end repeat |
340 | end repeat |
365 | display 13,10 |
341 | display 13,10 |
366 | } |
342 | } |
367 | 343 | ||
368 | macro diff10 title,l1,l2 |
344 | macro diff10 title,l1,l2 |
369 | { |
345 | { |
370 | local s,d,z,m |
346 | local s,d,z,m |
371 | s = l2-l1 |
347 | s = l2-l1 |
372 | z = 0 |
348 | z = 0 |
373 | m = 1000000000 |
349 | m = 1000000000 |
374 | display title,': ' |
350 | display title,': ' |
375 | repeat 10 |
351 | repeat 10 |
376 | d = '0' + s / m |
352 | d = '0' + s / m |
377 | s = s - (s/m)*m |
353 | s = s - (s/m)*m |
378 | m = m / 10 |
354 | m = m / 10 |
379 | if d <> '0' |
355 | if d <> '0' |
380 | z = 1 |
356 | z = 1 |
381 | end if |
357 | end if |
382 | if z <> 0 |
358 | if z <> 0 |
383 | display d |
359 | display d |
384 | end if |
360 | end if |
385 | end repeat |
361 | end repeat |
386 | display 13,10 |
362 | display 13,10 |
387 | } |
363 | } |
388 | 364 | ||
389 | ; optimize the code for size |
365 | ; optimize the code for size |
390 | __regs fix |
366 | __regs fix |
391 | 367 | ||
392 | macro add arg1,arg2 |
368 | macro add arg1,arg2 |
393 | { |
369 | { |
394 | if (arg2 eqtype 0) |
370 | if (arg2 eqtype 0) |
395 | if (arg2) = 1 |
371 | if (arg2) = 1 |
396 | inc arg1 |
372 | inc arg1 |
397 | else |
373 | else |
398 | add arg1,arg2 |
374 | add arg1,arg2 |
399 | end if |
375 | end if |
400 | else |
376 | else |
401 | add arg1,arg2 |
377 | add arg1,arg2 |
402 | end if |
378 | end if |
403 | } |
379 | } |
404 | 380 | ||
405 | macro sub arg1,arg2 |
381 | macro sub arg1,arg2 |
406 | { |
382 | { |
407 | if (arg2 eqtype 0) |
383 | if (arg2 eqtype 0) |
408 | if (arg2) = 1 |
384 | if (arg2) = 1 |
409 | dec arg1 |
385 | dec arg1 |
410 | else |
386 | else |
411 | sub arg1,arg2 |
387 | sub arg1,arg2 |
412 | end if |
388 | end if |
413 | else |
389 | else |
414 | sub arg1,arg2 |
390 | sub arg1,arg2 |
415 | end if |
391 | end if |
416 | } |
392 | } |
417 | 393 | ||
418 | macro mov arg1,arg2 |
394 | macro mov arg1,arg2 |
419 | { |
395 | { |
420 | if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0')) |
396 | if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0')) |
421 | if (arg2) = 0 |
397 | if (arg2) = 0 |
422 | xor arg1,arg1 |
398 | xor arg1,arg1 |
423 | else if (arg2) = 1 |
399 | else if (arg2) = 1 |
424 | xor arg1,arg1 |
400 | xor arg1,arg1 |
425 | inc arg1 |
401 | inc arg1 |
426 | else if (arg2) = -1 |
402 | else if (arg2) = -1 |
427 | or arg1,-1 |
403 | or arg1,-1 |
428 | else if (arg2) > -128 & (arg2) < 128 |
404 | else if (arg2) > -128 & (arg2) < 128 |
429 | push arg2 |
405 | push arg2 |
430 | pop arg1 |
406 | pop arg1 |
431 | else |
407 | else |
432 | mov arg1,arg2 |
408 | mov arg1,arg2 |
433 | end if |
409 | end if |
434 | else |
410 | else |
435 | mov arg1,arg2 |
411 | mov arg1,arg2 |
436 | end if |
412 | end if |
437 | } |
413 | } |
438 | 414 | ||
439 | 415 | ||
440 | macro RGB [a] { |
416 | macro RGB [a] { |
441 | common |
417 | common |
442 | match (r=,g=,b),a \{ |
418 | match (r=,g=,b),a \{ |
443 | \dd ((r) shl 16) or ((g) shl 8) or (b) |
419 | \dd ((r) shl 16) or ((g) shl 8) or (b) |
444 | \} |
420 | \} |
445 | } |
421 | } |
446 | 422 | ||
447 | 423 | ||
448 | struc POINT _t,_dx,_dy { |
424 | struc POINT _t,_dx,_dy { |
449 | .x _t _dx |
425 | .x _t _dx |
450 | .y _t _dy |
426 | .y _t _dy |
451 | } |
427 | } |
452 | 428 | ||
453 | ; structure definition helper |
429 | ; structure definition helper |
454 | include 'struct.inc' |
430 | include 'struct.inc' |
455 | 431 | ||
456 | struct RECT |
432 | struct RECT |
457 | left dd ? |
433 | left dd ? |
458 | top dd ? |
434 | top dd ? |
459 | right dd ? |
435 | right dd ? |
460 | bottom dd ? |
436 | bottom dd ? |
461 | ends |
437 | ends |
462 | 438 | ||
463 | struct BOX |
439 | struct BOX |
464 | left dd ? |
440 | left dd ? |
465 | top dd ? |
441 | top dd ? |
466 | width dd ? |
442 | width dd ? |
467 | height dd ? |
443 | height dd ? |
468 | ends |
444 | ends |
469 | 445 | ||
470 | ; structures used in MeOS |
446 | ; structures used in MeOS |
471 | struct process_information |
447 | struct process_information |
472 | cpu_usage dd ? ; +0 |
448 | cpu_usage dd ? ; +0 |
473 | window_stack_position dw ? ; +4 |
449 | window_stack_position dw ? ; +4 |
474 | window_stack_value dw ? ; +6 |
450 | window_stack_value dw ? ; +6 |
475 | dw ? ; +8 |
451 | dw ? ; +8 |
476 | process_name rb 12 ; +10 |
452 | process_name rb 12 ; +10 |
477 | memory_start dd ? ; +22 |
453 | memory_start dd ? ; +22 |
478 | used_memory dd ? ; +26 |
454 | used_memory dd ? ; +26 |
479 | PID dd ? ; +30 |
455 | PID dd ? ; +30 |
480 | box BOX ; +34 |
456 | box BOX ; +34 |
481 | slot_state dw ? ; +50 |
457 | slot_state dw ? ; +50 |
482 | dw ? ; +52 |
458 | dw ? ; +52 |
483 | client_box BOX ; +54 |
459 | client_box BOX ; +54 |
484 | wnd_state db ? ; +70 |
460 | wnd_state db ? ; +70 |
485 | rb (1024-71) |
461 | rb (1024-71) |
486 | ends |
462 | ends |
487 | 463 | ||
488 | struct system_colors |
464 | struct system_colors |
489 | frame dd ? |
465 | frame dd ? |
490 | grab dd ? |
466 | grab dd ? |
491 | grab_button dd ? |
467 | grab_button dd ? |
492 | grab_button_text dd ? |
468 | grab_button_text dd ? |
493 | grab_text dd ? |
469 | grab_text dd ? |
494 | work dd ? |
470 | work dd ? |
495 | work_button dd ? |
471 | work_button dd ? |
496 | work_button_text dd ? |
472 | work_button_text dd ? |
497 | work_text dd ? |
473 | work_text dd ? |
498 | work_graph dd ? |
474 | work_graph dd ? |
499 | ends |
475 | ends |
500 | 476 | ||
501 | struct FILEDATE |
477 | struct FILEDATE |
502 | Second db ? |
478 | Second db ? |
503 | Minute db ? |
479 | Minute db ? |
504 | Hour db ? |
480 | Hour db ? |
505 | db ? |
481 | db ? |
506 | Day db ? |
482 | Day db ? |
507 | Month db ? |
483 | Month db ? |
508 | Year dw ? |
484 | Year dw ? |
509 | ends |
485 | ends |
510 | 486 | ||
511 | struct FILEINFO |
487 | struct FILEINFO |
512 | Attributes dd ? |
488 | Attributes dd ? |
513 | IsUnicode db ? |
489 | IsUnicode db ? |
514 | db 3 dup(?) |
490 | db 3 dup(?) |
515 | DateCreate FILEDATE |
491 | DateCreate FILEDATE |
516 | DateAccess FILEDATE |
492 | DateAccess FILEDATE |
517 | DateModify FILEDATE |
493 | DateModify FILEDATE |
518 | Size dq ? |
494 | Size dq ? |
519 | ends |
495 | ends |
520 | 496 | ||
521 | ; constants |
497 | ; constants |
522 | 498 | ||
523 | ; events |
499 | ; events |
524 | EV_IDLE = 0 |
500 | EV_IDLE = 0 |
525 | EV_TIMER = 0 |
501 | EV_TIMER = 0 |
526 | EV_REDRAW = 1 |
502 | EV_REDRAW = 1 |
527 | EV_KEY = 2 |
503 | EV_KEY = 2 |
528 | EV_BUTTON = 3 |
504 | EV_BUTTON = 3 |
529 | EV_EXIT = 4 |
505 | EV_EXIT = 4 |
530 | EV_BACKGROUND = 5 |
506 | EV_BACKGROUND = 5 |
531 | EV_MOUSE = 6 |
507 | EV_MOUSE = 6 |
532 | EV_IPC = 7 |
508 | EV_IPC = 7 |
533 | EV_STACK = 8 |
509 | EV_STACK = 8 |
534 | 510 | ||
535 | ; event mask bits for function 40 |
511 | ; event mask bits for function 40 |
536 | EVM_REDRAW = 1b |
512 | EVM_REDRAW = 1b |
537 | EVM_KEY = 10b |
513 | EVM_KEY = 10b |
538 | EVM_BUTTON = 100b |
514 | EVM_BUTTON = 100b |
539 | EVM_EXIT = 1000b |
515 | EVM_EXIT = 1000b |
540 | EVM_BACKGROUND = 10000b |
516 | EVM_BACKGROUND = 10000b |
541 | EVM_MOUSE = 100000b |
517 | EVM_MOUSE = 100000b |
542 | EVM_IPC = 1000000b |
518 | EVM_IPC = 1000000b |
543 | EVM_STACK = 10000000b>>>>> |
519 | EVM_STACK = 10000000b>>>>> |