Subversion Repositories Kolibri OS

Rev

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