Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4867 | leency | 1 | ZZ=D4 ( |
2 | |||
3 | ) |
||
4 | |||
5 | Code SYS1 ;( n -- n1 ) |
||
6 | |||
7 | 59E2C9 E0 E2 59 00 00 04 53 59 53 31 AE E2 59 00 00 00 Y...SYS1Y... |
||
8 | 59E2D9 00 00 00 00 00 00 00 ....... |
||
9 | |||
10 | INT 40H |
||
11 | |||
12 | 59E2E0 CD 40 @ |
||
13 | |||
14 | RET |
||
15 | |||
16 | 59E2E2 C3 |
||
17 | |||
18 | EndCode |
||
19 | |||
20 | Code SYS2 ;( n n1 -- n2 ) |
||
21 | |||
22 | 59E2E3 00 E3 59 00 00 04 53 59 53 32 CE E2 59 00 00 00 .Y...SYS2Y... |
||
23 | 59E2F3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
||
24 | |||
25 | MOV EBX, [EBP] |
||
26 | |||
27 | 59E300 8B 5D 00 ]. |
||
28 | |||
29 | INT 40H |
||
30 | |||
31 | 59E303 CD 40 @ |
||
32 | |||
33 | LEA EBP, [EBP+4] |
||
34 | |||
35 | 59E305 8D 6D 04 m. |
||
36 | |||
37 | RET |
||
38 | |||
39 | 59E308 C3 |
||
40 | |||
41 | EndCode |
||
42 | |||
43 | Code SYS3 ;( n n1 n2 -- n3 ) |
||
44 | |||
45 | 59E309 20 E3 59 00 00 04 53 59 53 33 E8 E2 59 00 00 00 Y...SYS3Y... |
||
46 | 59E319 00 00 00 00 00 00 00 ....... |
||
47 | |||
48 | MOV ECX, [EBP+4] |
||
49 | |||
50 | 59E320 8B 4D 04 M. |
||
51 | |||
52 | MOV EBX, [EBP] |
||
53 | |||
54 | 59E323 8B 5D 00 ]. |
||
55 | |||
56 | INT 40H |
||
57 | |||
58 | 59E326 CD 40 @ |
||
59 | |||
60 | LEA EBP, [EBP+8] |
||
61 | |||
62 | 59E328 8D 6D 08 m. |
||
63 | |||
64 | RET |
||
65 | |||
66 | 59E32B C3 |
||
67 | |||
68 | EndCode |
||
69 | |||
70 | Code SYS4 ;( n n1 n2 n3 -- n4 ) |
||
71 | |||
72 | 59E32C 40 E3 59 00 00 04 53 59 53 34 0E E3 59 00 00 00 @Y...SYS4.Y... |
||
73 | 59E33C 00 00 00 00 .... |
||
74 | |||
75 | MOV EDX, [EBP+8] |
||
76 | |||
77 | 59E340 8B 55 08 U. |
||
78 | |||
79 | MOV ECX, [EBP+4] |
||
80 | |||
81 | 59E343 8B 4D 04 M. |
||
82 | |||
83 | MOV EBX, [EBP] |
||
84 | |||
85 | 59E346 8B 5D 00 ]. |
||
86 | |||
87 | INT 40H |
||
88 | |||
89 | 59E349 CD 40 @ |
||
90 | |||
91 | LEA EBP, [EBP+0CH] |
||
92 | |||
93 | 59E34B 8D 6D 0C m. |
||
94 | |||
95 | RET |
||
96 | |||
97 | 59E34E C3 |
||
98 | |||
99 | EndCode |
||
100 | |||
101 | Code SYS5 ;( n n1 n2 n3 n4 -- n5 ) |
||
102 | |||
103 | 59E34F 60 E3 59 00 00 04 53 59 53 35 31 E3 59 00 00 00 `Y...SYS51Y... |
||
104 | 59E35F 00 . |
||
105 | |||
106 | MOV ESI, [EBP+0CH] |
||
107 | |||
108 | 59E360 8B 75 0C u. |
||
109 | |||
110 | MOV EDX, [EBP+8] |
||
111 | |||
112 | 59E363 8B 55 08 U. |
||
113 | |||
114 | MOV ECX, [EBP+4] |
||
115 | |||
116 | 59E366 8B 4D 04 M. |
||
117 | |||
118 | MOV EBX, [EBP] |
||
119 | |||
120 | 59E369 8B 5D 00 ]. |
||
121 | |||
122 | INT 40H |
||
123 | |||
124 | 59E36C CD 40 @ |
||
125 | |||
126 | LEA EBP, [EBP+10H] |
||
127 | |||
128 | 59E36E 8D 6D 10 m. |
||
129 | |||
130 | RET |
||
131 | |||
132 | 59E371 C3 |
||
133 | |||
134 | EndCode |
||
135 | |||
136 | Code SYS6 ;( n n1 n2 n3 n4 n5 -- n6 ) |
||
137 | |||
138 | 59E372 80 E3 59 00 00 04 53 59 53 36 54 E3 59 00 Y...SYS6TY. |
||
139 | |||
140 | PUSH EDI |
||
141 | |||
142 | 59E380 57 W |
||
143 | |||
144 | MOV EDI, [EBP+10H] |
||
145 | |||
146 | 59E381 8B 7D 10 }. |
||
147 | |||
148 | MOV ESI, [EBP+0CH] |
||
149 | |||
150 | 59E384 8B 75 0C u. |
||
151 | |||
152 | MOV EDX, [EBP+8] |
||
153 | |||
154 | 59E387 8B 55 08 U. |
||
155 | |||
156 | MOV ECX, [EBP+4] |
||
157 | |||
158 | 59E38A 8B 4D 04 M. |
||
159 | |||
160 | MOV EBX, [EBP] |
||
161 | |||
162 | 59E38D 8B 5D 00 ]. |
||
163 | |||
164 | INT 40H |
||
165 | |||
166 | 59E390 CD 40 @ |
||
167 | |||
168 | LEA EBP, [EBP+14H] |
||
169 | |||
170 | 59E392 8D 6D 14 m. |
||
171 | |||
172 | POP EDI |
||
173 | |||
174 | 59E395 5F _ |
||
175 | |||
176 | RET |
||
177 | |||
178 | 59E396 C3 |
||
179 | |||
180 | EndCode |
||
181 | |||
182 | VARIABLE reg_struc |
||
183 | |||
184 | 59E397 AB E3 59 00 00 09 72 65 67 5F 73 74 72 75 63 77 Y...reg_strucw |
||
185 | 59E3A7 E3 59 00 00 E8 6C 3C FA FF 00 00 00 00 Y..l<.... |
||
186 | |||
187 | |||
188 | Code SYSV ;( -- n ) |
||
189 | |||
190 | 59E3B4 D0 E3 59 00 00 04 53 59 53 56 9C E3 59 00 00 00 Y...SYSVY... |
||
191 | 59E3C4 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
||
192 | |||
193 | LEA EBP, [EBP-4] |
||
194 | |||
195 | 59E3D0 8D 6D FC m |
||
196 | |||
197 | MOV [EBP], EAX |
||
198 | |||
199 | 59E3D3 89 45 00 E. |
||
200 | |||
201 | MOV EAX, { ' reg_struc } |
||
202 | |||
203 | 59E3D6 B8 AB E3 59 00 Y. |
||
204 | |||
205 | PUSH EDI |
||
206 | |||
207 | 59E3DB 57 W |
||
208 | |||
209 | MOV EDI, [EAX+14H] |
||
210 | |||
211 | 59E3DC 8B 78 14 x. |
||
212 | |||
213 | MOV ESI, [EAX+10H] |
||
214 | |||
215 | 59E3DF 8B 70 10 p. |
||
216 | |||
217 | MOV EDX, [EAX+0CH] |
||
218 | |||
219 | 59E3E2 8B 50 0C P. |
||
220 | |||
221 | MOV ECX, [EAX+8] |
||
222 | |||
223 | 59E3E5 8B 48 08 H. |
||
224 | |||
225 | MOV EBX, [EAX+4] |
||
226 | |||
227 | 59E3E8 8B 58 04 X. |
||
228 | |||
229 | MOV EAX, [EAX] |
||
230 | |||
231 | 59E3EB 8B 00 . |
||
232 | |||
233 | INT 40H |
||
234 | |||
235 | 59E3ED CD 40 @ |
||
236 | |||
237 | POP EDI |
||
238 | |||
239 | 59E3EF 5F _ |
||
240 | |||
241 | RET |
||
242 | |||
243 | 59E3F0 C3 |
||
244 | |||
245 | EndCode |
||
246 | |||
247 | |||
248 | |||
249 | 80 VALUE SCR_WIDTH |
||
250 | |||
251 | 59E3F1 10 E4 59 00 00 09 53 43 52 5F 57 49 44 54 48 B9 .Y...SCR_WIDTH |
||
252 | 59E401 E3 59 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 Y............. |
||
253 | 59E411 27 3C FA FF 50 00 00 00 E8 E6 3C FA FF ' |
||
254 | |||
255 | 60 VALUE SCR_WIDTH-S |
||
256 | |||
257 | 59E41E 40 E4 59 00 00 0B 53 43 52 5F 57 49 44 54 48 2D @Y...SCR_WIDTH- |
||
258 | 59E42E 53 F6 E3 59 00 00 00 00 00 00 00 00 00 00 00 00 SY............ |
||
259 | 59E43E 00 00 E8 F7 3B FA FF 3C 00 00 00 E8 B6 3C FA FF ..;<...< |
||
260 | |||
261 | 25 VALUE SCR_HEIGHT |
||
262 | |||
263 | 59E44E 70 E4 59 00 00 0A 53 43 52 5F 48 45 49 47 48 54 pY...SCR_HEIGHT |
||
264 | 59E45E 23 E4 59 00 00 00 00 00 00 00 00 00 00 00 00 00 #Y............. |
||
265 | 59E46E 00 00 E8 C7 3B FA FF 19 00 00 00 E8 86 3C FA FF ..;....< |
||
266 | |||
267 | |||
268 | |||
269 | CREATE &AT-XY 0 , 0 , |
||
270 | |||
271 | 59E47E 8F E4 59 00 00 06 26 41 54 2D 58 59 53 E4 59 00 Y...&AT-XYSY. |
||
272 | 59E48E 00 E8 88 3B FA FF 00 00 00 00 00 00 00 00 .;........ |
||
273 | |||
274 | CREATE &KEY 0 , |
||
275 | |||
276 | 59E49C AB E4 59 00 00 04 26 4B 45 59 83 E4 59 00 00 E8 Y...&KEYY.. |
||
277 | 59E4AC 6C 3B FA FF 00 00 00 00 l;.... |
||
278 | |||
279 | CREATE &ATRIB 0x0000FFFF , |
||
280 | |||
281 | 59E4B4 C7 E4 59 00 00 06 26 41 54 52 49 42 A1 E4 59 00 Y...&ATRIBY. |
||
282 | 59E4C4 00 00 00 E8 50 3B FA FF FF FF 00 00 ...P;.. |
||
283 | |||
284 | |||
285 | 0x0011000D VALUE >PIC |
||
286 | |||
287 | 59E4D0 E0 E4 59 00 00 04 3E 50 49 43 B9 E4 59 00 00 00 Y...>PICY... |
||
288 | 59E4E0 E8 57 3B FA FF 0D 00 11 00 E8 16 3C FA FF W;.....< |
||
289 | |||
290 | |||
291 | CREATE SCR_BUF SCR_WIDTH SCR_HEIGHT 1+ * ALLOT |
||
292 | |||
293 | 59E4EE FF E4 59 00 00 07 53 43 52 5F 42 55 46 D5 E4 59 Y...SCR_BUFY |
||
294 | 59E4FE 00 E8 18 3B FA FF 00 00 00 00 00 00 00 00 00 00 ..;.......... |
||
295 | 59E50E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
||
296 | 59E51E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
||
297 | 59E52E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
||
298 | 59ED24 7E6 bytes |
||
299 | |||
300 | : AT-XY ( X Y -- ) |
||
301 | |||
302 | 59ED24 40 ED 59 00 00 05 41 54 2D 58 59 F3 E4 59 00 00 @Y...AT-XYY.. |
||
303 | 59ED34 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
||
304 | |||
305 | SWAP 16 LSHIFT + &AT-XY ! ; |
||
306 | MOV EDX , [EBP ] |
||
307 | MOV [EBP ], EAX |
||
308 | MOV [EBP -4], EDX |
||
309 | MOV EAX , $10 |
||
310 | MOV ECX , EAX |
||
311 | MOV EAX , [EBP -4] |
||
312 | SHL EAX , CL |
||
313 | ADD EAX , [EBP ] |
||
314 | LEA EBP , [EBP +4] |
||
315 | CALL @@&AT-XY |
||
316 | MOV EDX , [EBP ] |
||
317 | MOV [EAX ], EDX |
||
318 | MOV EAX , [EBP +4] |
||
319 | LEA EBP , [EBP +8] |
||
320 | RET |
||
321 | |||
322 | : AT-XY? ( -- X Y ) |
||
323 | |||
324 | 59ED6C 80 ED 59 00 00 06 41 54 2D 58 59 3F 29 ED 59 00 Y...AT-XY?)Y. |
||
325 | 59ED7C 00 00 00 00 .... |
||
326 | |||
327 | &AT-XY 2+ W@ &AT-XY W@ ; |
||
328 | CALL @@&AT-XY |
||
329 | LEA EAX , [EAX +2] |
||
330 | MOVZX EAX , WORD PTR [EAX ] |
||
331 | CALL @@&AT-XY |
||
332 | MOVZX EAX , WORD PTR [EAX ] |
||
333 | RET |
||
334 | |||
335 | : __PAGE-UP |
||
336 | |||
337 | 59ED94 B0 ED 59 00 00 09 5F 5F 50 41 47 45 2D 55 50 71 Y...__PAGE-UPq |
||
338 | 59EDA4 ED 59 00 00 00 00 00 00 00 00 00 00 Y.......... |
||
339 | |||
340 | SCR_BUF SCR_WIDTH + SCR_BUF SCR_WIDTH SCR_HEIGHT * CMOVE |
||
341 | CALL @@SCR_BUF |
||
342 | CALL @@SCR_WIDTH |
||
343 | ADD EAX , [EBP ] |
||
344 | LEA EBP , [EBP +4] |
||
345 | CALL @@SCR_BUF |
||
346 | CALL @@SCR_WIDTH |
||
347 | CALL @@SCR_HEIGHT |
||
348 | IMUL [EBP ] |
||
349 | LEA EBP , [EBP +4] |
||
350 | CALL @@CMOVE |
||
351 | SCR_BUF SCR_WIDTH SCR_HEIGHT 1- * + SCR_WIDTH BLANK |
||
352 | CALL @@SCR_BUF |
||
353 | CALL @@SCR_WIDTH |
||
354 | CALL @@SCR_HEIGHT |
||
355 | LEA EAX , [EAX -1] |
||
356 | IMUL [EBP ] |
||
357 | ADD EAX , [EBP +4] |
||
358 | LEA EBP , [EBP +8] |
||
359 | CALL @@SCR_WIDTH |
||
360 | CALL @@BLANK |
||
361 | AT-XY? 1- 0 MAX AT-XY ; |
||
362 | CALL @@AT-XY? |
||
363 | LEA EAX , [EAX -1] |
||
364 | MOV [EBP -4], EAX |
||
365 | XOR EAX , EAX |
||
366 | LEA EBP , [EBP -4] |
||
367 | CALL @@MAX |
||
368 | CALL @@AT-XY |
||
369 | RET |
||
370 | |||
371 | VECT PAGE-UP |
||
372 | |||
373 | 59EE1A 30 EE 59 00 00 07 50 41 47 45 2D 55 50 99 ED 59 0Y...PAGE-UPY |
||
374 | 59EE2A 00 00 00 00 00 00 E8 B3 32 FA FF 60 F0 59 00 E8 ......2`Y. |
||
375 | 59EE3A C6 32 FA FF 2 |
||
376 | |||
377 | |||
378 | : ?PAGE-UP ( n -- ) |
||
379 | |||
380 | 59EE3E 50 EE 59 00 00 08 3F 50 41 47 45 2D 55 50 1F EE PY...?PAGE-UP. |
||
381 | 59EE4E 59 00 Y. |
||
382 | |||
383 | |||
384 | &AT-XY 2+ W@ + SCR_WIDTH /MOD SWAP &AT-XY 2+ W! |
||
385 | CALL @@&AT-XY |
||
386 | LEA EAX , [EAX +2] |
||
387 | MOVZX EAX , WORD PTR [EAX ] |
||
388 | ADD EAX , [EBP ] |
||
389 | LEA EBP , [EBP +4] |
||
390 | CALL @@SCR_WIDTH |
||
391 | MOV ECX , EAX |
||
392 | MOV EAX , [EBP ] |
||
393 | CDQ |
||
394 | IDIV ECX |
||
395 | MOV [EBP ], EDX |
||
396 | MOV EDX , [EBP ] |
||
397 | MOV [EBP ], EAX |
||
398 | MOV EAX , EDX |
||
399 | CALL @@&AT-XY |
||
400 | LEA EAX , [EAX +2] |
||
401 | CALL @@W! |
||
402 | &AT-XY W@ + SCR_HEIGHT /MOD |
||
403 | CALL @@&AT-XY |
||
404 | MOVZX EAX , WORD PTR [EAX ] |
||
405 | ADD EAX , [EBP ] |
||
406 | LEA EBP , [EBP +4] |
||
407 | CALL @@SCR_HEIGHT |
||
408 | MOV ECX , EAX |
||
409 | MOV EAX , [EBP ] |
||
410 | CDQ |
||
411 | IDIV ECX |
||
412 | MOV [EBP ], EDX |
||
413 | IF PAGE-UP DROP SCR_HEIGHT 1- THEN &AT-XY W! ; |
||
414 | OR EAX , EAX |
||
415 | MOV EAX , [EBP ] |
||
416 | LEA EBP , [EBP +4] |
||
417 | JE [OFFSET ?PAGE-UP] |
||
418 | CALL @@PAGE-UP |
||
419 | MOV EAX , [EBP ] |
||
420 | LEA EBP , [EBP +4] |
||
421 | CALL @@SCR_HEIGHT |
||
422 | LEA EAX , [EAX -1] |
||
423 | @59EEC1: CALL @@&AT-XY |
||
424 | CALL @@W! |
||
425 | RET |
||
426 | |||
427 | : SCR_CR |
||
428 | |||
429 | 59EECC E0 EE 59 00 00 06 53 43 52 5F 43 52 43 EE 59 00 Y...SCR_CRCY. |
||
430 | 59EEDC 00 00 00 00 .... |
||
431 | |||
432 | &AT-XY @ 0xFFFF AND 1+ &AT-XY ! 0 ?PAGE-UP ; |
||
433 | CALL @@&AT-XY |
||
434 | MOV EAX , [EAX ] |
||
435 | MOV [EBP -4], EAX |
||
436 | MOV EAX , $FFFF |
||
437 | AND EAX , [EBP -4] |
||
438 | LEA EAX , [EAX +1] |
||
439 | CALL @@&AT-XY |
||
440 | MOV EDX , [EBP ] |
||
441 | MOV [EAX ], EDX |
||
442 | XOR EAX , EAX |
||
443 | LEA EBP , [EBP +4] |
||
444 | CALL @@?PAGE-UP |
||
445 | RET |
||
446 | |||
447 | : SCR_TYPE ( addr len -- ) |
||
448 | |||
449 | 59EF0A 20 EF 59 00 00 08 53 43 52 5F 54 59 50 45 D1 EE Y...SCR_TYPE |
||
450 | 59EF1A 59 00 00 00 00 00 Y..... |
||
451 | |||
452 | TUCK SWAP |
||
453 | MOV EDX , [EBP ] |
||
454 | MOV [EBP -4], EDX |
||
455 | MOV [EBP ], EAX |
||
456 | MOV EDX , [EBP -4] |
||
457 | MOV [EBP -4], EAX |
||
458 | MOV EAX , EDX |
||
459 | LEA EBP , [EBP -4] |
||
460 | &ATRIB @ |
||
461 | CALL @@&ATRIB |
||
462 | MOV EAX , [EAX ] |
||
463 | &AT-XY 2+ W@ 0x60000 * |
||
464 | CALL @@&AT-XY |
||
465 | MOVZX EAX , WORD PTR [EAX +2] |
||
466 | MOV [EBP -4], EAX |
||
467 | MOV EAX , $60000 |
||
468 | IMUL [EBP -4] |
||
469 | &AT-XY W@ 0xD * + |
||
470 | CALL @@&AT-XY |
||
471 | MOVZX EAX , WORD PTR [EAX ] |
||
472 | MOV [EBP -4], EAX |
||
473 | MOV EAX , $D |
||
474 | IMUL [EBP -4] |
||
475 | ADD EAX , [EBP ] |
||
476 | LEA EAX , [$60018][EAX ] |
||
477 | 0x00060018 + |
||
478 | MOV [EBP ], EAX |
||
479 | MOV EAX , $4 |
||
480 | 4 SYS5 DROP |
||
481 | CALL @@SYS5 |
||
482 | MOV EAX , [EBP ] |
||
483 | LEA EBP , [EBP +4] |
||
484 | \ &AT-XY 2+ +! |
||
485 | ?PAGE-UP |
||
486 | CALL @@?PAGE-UP |
||
487 | ; |
||
488 | RET |
||
489 | |||
490 | : DRAW_LINS |
||
491 | |||
492 | 59EF84 A0 EF 59 00 00 09 44 52 41 57 5F 4C 49 4E 53 0F Y...DRAW_LINS. |
||
493 | 59EF94 EF 59 00 00 00 00 00 00 00 00 00 00 Y.......... |
||
494 | |||
495 | ['] PAGE-UP >BODY @ |
||
496 | MOV [EBP -4], EAX |
||
497 | MOV EAX , $59EE30 |
||
498 | MOV EAX , [EAX +5] |
||
499 | MOV [EBP -8], EAX |
||
500 | MOV EAX , $59D240 |
||
501 | ['] NOOP TO PAGE-UP |
||
502 | LEA EBP , [EBP -8] |
||
503 | CALL [OFFSET PAGE-UP] |
||
504 | AT-XY? |
||
505 | CALL @@AT-XY? |
||
506 | |||
507 | MOV [EBP -4], EAX |
||
508 | MOV [EBP -8], $0 |
||
509 | XOR EAX , EAX |
||
510 | LEA EBP , [EBP -8] |
||
511 | CALL @@AT-XY |
||
512 | SCR_BUF SCR_WIDTH SCR_HEIGHT * BOUNDS |
||
513 | CALL @@SCR_BUF |
||
514 | CALL @@SCR_WIDTH |
||
515 | CALL @@SCR_HEIGHT |
||
516 | IMUL [EBP ] |
||
517 | ADD EAX , [EBP +4] |
||
518 | MOV EDX , [EBP +4] |
||
519 | MOV [EBP +4], EAX |
||
520 | MOV EAX , EDX |
||
521 | MOV EDX , $80000000 |
||
522 | DO I SCR_WIDTH SCR_TYPE \ SCR_CR |
||
523 | SUB EDX , [EBP +4] |
||
524 | LEA EBX , [EDX ][EAX ] |
||
525 | MOV EAX , [EBP +8] |
||
526 | LEA EBP , [EBP +12] |
||
527 | PUSH , $59F037 |
||
528 | PUSH EDX |
||
529 | PUSH EBX |
||
530 | XCHG EAX, EAX |
||
531 | XCHG EAX, EAX |
||
532 | XCHG EAX, EAX |
||
533 | MOV [EBP -4]EAX |
||
534 | MOV EAX , [ESP ] |
||
535 | SUB EAX , [ESP +4] |
||
536 | LEA EBP , [EBP -4] |
||
537 | CALL @@SCR_WIDTH |
||
538 | CALL @@SCR_TYPE |
||
539 | SCR_WIDTH |
||
540 | CALL @@SCR_WIDTH |
||
541 | +LOOP |
||
542 | ADD [ESP ], EAX |
||
543 | MOV EAX , [EBP ] |
||
544 | LEA EBP , [EBP +4] |
||
545 | JNO [OFFSET DRAW_LINS] |
||
546 | LEA ESP , [ESP +12] |
||
547 | AT-XY |
||
548 | CALL @@AT-XY |
||
549 | TO PAGE-UP ; |
||
550 | CALL [OFFSET PAGE-UP] |
||
551 | RET |
||
552 | |||
553 | : _PAGE-UP |
||
554 | |||
555 | 59F042 60 F0 59 00 00 08 5F 50 41 47 45 2D 55 50 89 EF `Y..._PAGE-UP |
||
556 | 59F052 59 00 00 00 00 00 00 00 00 00 00 00 00 00 Y............. |
||
557 | |||
558 | draw_window __PAGE-UP |
||
559 | CALL @@draw_window |
||
560 | CALL @@__PAGE-UP |
||
561 | DRAW_LINS |
||
562 | CALL @@DRAW_LINS |
||
563 | ; |
||
564 | RET |
||
565 | |||
566 | ' _PAGE-UP TO PAGE-UP |
||
567 | |||
568 | CREATE LAST_CUR 0 , 0 , |
||
569 | |||
570 | 59F070 83 F0 59 00 00 08 4C 41 53 54 5F 43 55 52 47 F0 Y...LAST_CURG |
||
571 | 59F080 59 00 00 E8 94 2F FA FF 00 00 00 00 00 00 00 00 Y../........ |
||
572 | |||
573 | |||
574 | : CORSOR_DROW |
||
575 | |||
576 | 59F090 B0 F0 59 00 00 0B 43 4F 52 53 4F 52 5F 44 52 4F Y...CORSOR_DRO |
||
577 | 59F0A0 57 75 F0 59 00 00 00 00 00 00 00 00 00 00 00 00 WuY............ |
||
578 | |||
579 | |||
580 | MOV [EBP -4], EAX |
||
581 | XOR EAX , EAX |
||
582 | LEA EBP , [EBP -4] |
||
583 | CALL @@LAST_CUR |
||
584 | MOV EDX , [EAX +4] |
||
585 | MOV [EBP -4], EDX |
||
586 | MOV EAX , [EAX ] |
||
587 | MOV [EBP -8], EAX |
||
588 | MOV EAX , $26 |
||
589 | MOV EDX , [EBP ] |
||
590 | MOV ECX , [EBP -4] |
||
591 | MOV EBX , [EBP -8] |
||
592 | INT $40 |
||
593 | MOV EAX , $FF00FF |
||
594 | LEA EBP , [EBP +4] |
||
595 | 0x00FF00FF |
||
596 | &AT-XY W@ 0xD * 0x21 + DUP 16 LSHIFT + |
||
597 | CALL @@&AT-XY |
||
598 | MOVZX EAX , WORD PTR [EAX ] |
||
599 | MOV [EBP -4], EAX |
||
600 | MOV EAX , $D |
||
601 | IMUL [EBP -4] |
||
602 | MOV [EBP -4], EAX |
||
603 | MOV EAX , $21 |
||
604 | ADD EAX , [EBP -4] |
||
605 | MOV [EBP -4], EAX |
||
606 | MOV [EBP -8], EAX |
||
607 | MOV EAX , $10 |
||
608 | MOV ECX , EAX |
||
609 | MOV EAX , [EBP -8] |
||
610 | SHL EAX , CL |
||
611 | ADD EAX , [EBP -4] |
||
612 | &AT-XY 2+ W@ 0x6 * 6 + DUP 6 + 16 LSHIFT + |
||
613 | CALL @@&AT-XY |
||
614 | MOVZX EAX , WORD PTR [EAX +2] |
||
615 | MOV [EBP -4], EAX |
||
616 | MOV EAX , $6 |
||
617 | IMUL [EBP -4] |
||
618 | MOV [EBP -4], EAX |
||
619 | MOV EAX , $6 |
||
620 | ADD EAX , [EBP -4] |
||
621 | MOV [EBP -4], EAX |
||
622 | LEA EAX , [EAX +6] |
||
623 | MOV [EBP -8], EAX |
||
624 | MOV EAX , $10 |
||
625 | MOV ECX , EAX |
||
626 | MOV EAX , [EBP -8] |
||
627 | SHL EAX , CL |
||
628 | ADD EAX , [EBP -4] |
||
629 | 2DUP LAST_CUR 2! |
||
630 | MOV EDX , [EBP ] |
||
631 | MOV [EBP -4], EAX |
||
632 | MOV [EBP -8], EDX |
||
633 | LEA EBP , [EBP -8] |
||
634 | CALL @@LAST_CUR |
||
635 | CALL @@2! |
||
636 | 38 SYS4 DROP |
||
637 | MOV [EBP -4], EAX |
||
638 | MOV EAX , $26 |
||
639 | MOV EDX , [EBP +4] |
||
640 | MOV ECX , [EBP ] |
||
641 | MOV EBX , [EBP -4] |
||
642 | INT $40 |
||
643 | MOV EAX , [EBP +8] |
||
644 | LEA EBP , [EBP +12] |
||
645 | ; |
||
646 | RET |
||
647 | : REDRAW |
||
648 | |||
649 | 59F17A 90 F1 59 00 00 06 52 45 44 52 41 57 95 F0 59 00 Y...REDRAWY. |
||
650 | 59F18A 00 00 00 00 00 00 ...... |
||
651 | |||
652 | draw_window |
||
653 | CALL @@draw_window |
||
654 | DRAW_LINS CORSOR_DROW ; |
||
655 | CALL @@DRAW_LINS |
||
656 | CALL @@CORSOR_DROW |
||
657 | RET |
||
658 | |||
659 | : EVENT-CASE |
||
660 | |||
661 | 59F1A0 C0 F1 59 00 00 0A 45 56 45 4E 54 2D 43 41 53 45 Y...EVENT-CASE |
||
662 | 59F1B0 7F F1 59 00 00 00 00 00 00 00 00 00 00 00 00 00 Y............. |
||
663 | |||
664 | 11 SYS1 |
||
665 | MOV [EBP -4], EAX |
||
666 | MOV EAX , $B |
||
667 | INT $40 |
||
668 | MOV [EBP -8], EAX |
||
669 | DUP 1 = IF DROP REDRAW EXIT THEN |
||
670 | CMP EAX , $1 |
||
671 | MOV EAX , [EBP -8] |
||
672 | LEA EBP , [EBP -4] |
||
673 | JNE [OFFSET EVENT-CASE] |
||
674 | MOV EAX , [EBP ] |
||
675 | LEA EBP , [EBP +4] |
||
676 | CALL @@REDRAW |
||
677 | RET |
||
678 | DUP 2 = IF DROP 2 SYS1 8 RSHIFT &KEY C! EXIT THEN |
||
679 | @59F1E6: MOV [EBP -4], EAX |
||
680 | CMP EAX , $2 |
||
681 | MOV EAX , [EBP -4] |
||
682 | JNE [OFFSET EVENT-CASE] |
||
683 | MOV EAX , $2 |
||
684 | INT $40 |
||
685 | MOV [EBP -4], EAX |
||
686 | MOV EAX , $8 |
||
687 | MOV ECX , EAX |
||
688 | MOV EAX , [EBP -4] |
||
689 | SHR EAX , CL |
||
690 | CALL @@&KEY |
||
691 | MOV EDX , [EBP ] |
||
692 | MOV [EAX ], DL |
||
693 | MOV EAX , [EBP +4] |
||
694 | LEA EBP , [EBP +8] |
||
695 | RET |
||
696 | 3 = IF -1 SYS1 EXIT THEN ; |
||
697 | @59F21A: CMP EAX , $3 |
||
698 | MOV EAX , [EBP ] |
||
699 | LEA EBP , [EBP +4] |
||
700 | JNE [OFFSET EVENT-CASE] |
||
701 | MOV [EBP -4], EAX |
||
702 | MOV EAX , $FFFFFFFF |
||
703 | INT $40 |
||
704 | LEA EBP , [EBP -4] |
||
705 | RET |
||
706 | @59F235: RET |
||
707 | |||
708 | |||
709 | |||
710 | CELL FIELD .CODE |
||
711 | |||
712 | 59F236 50 F2 59 00 00 05 2E 43 4F 44 45 A5 F1 59 00 00 PY....CODEY.. |
||
713 | 59F246 00 00 00 00 00 00 00 00 00 00 C3 .......... |
||
714 | |||
715 | 2 CELLS FIELD .FIRST \ 䠩 ( ) |
||
716 | |||
717 | 59F251 70 F2 59 00 00 06 2E 46 49 52 53 54 3B F2 59 00 pY....FIRST;Y. |
||
718 | 59F261 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 ............... |
||
719 | 59F271 45 FC B8 04 00 00 00 03 45 FC C3 E.....E |
||
720 | |||
721 | CELL FIELD .SIZE \ 쪮 R/W |
||
722 | |||
723 | 59F27C 90 F2 59 00 00 05 2E 53 49 5A 45 56 F2 59 00 00 Y....SIZEVY.. |
||
724 | 59F28C 00 00 00 00 89 45 FC B8 0C 00 00 00 03 45 FC C3 ....E.....E |
||
725 | |||
726 | CELL FIELD .DATA \ 㪠⥫ |
||
727 | |||
728 | 59F29C B0 F2 59 00 00 05 2E 44 41 54 41 81 F2 59 00 00 Y....DATAY.. |
||
729 | 59F2AC 00 00 00 00 89 45 FC B8 10 00 00 00 03 45 FC C3 ....E.....E |
||
730 | |||
731 | 222 FIELD .NAME \ ASCIIZ- 䠩 |
||
732 | |||
733 | 59F2BC D0 F2 59 00 00 05 2E 4E 41 4D 45 A1 F2 59 00 00 Y....NAMEY.. |
||
734 | 59F2CC 00 00 00 00 89 45 FC B8 14 00 00 00 03 45 FC C3 ....E.....E |
||
735 | |||
736 | CONSTANT FILE_STR |
||
737 | |||
738 | 59F2DC F0 F2 59 00 00 08 46 49 4C 45 5F 53 54 52 C1 F2 Y...FILE_STR |
||
739 | 59F2EC 59 00 00 00 E8 47 2D FA FF F2 00 00 00 Y...G-... |
||
740 | |||
741 | |||
742 | : WINDOW |
||
743 | |||
744 | 59F2F9 10 F3 59 00 00 06 57 49 4E 44 4F 57 E1 F2 59 00 .Y...WINDOWY. |
||
745 | 59F309 00 00 00 00 00 00 00 ....... |
||
746 | |||
747 | draw_window CC_LINES ; |
||
748 | CALL @@draw_window |
||
749 | CALL @@CC_LINES |
||
750 | RET |
||
751 | |||
752 | ZZ=D4 |