Subversion Repositories Kolibri OS

Rev

Rev 109 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 109 Rev 135
1
; CMD - Command line interpreter
1
; CMD - Command line interpreter
2
; copyleft Chemist dmitry_gt@tut.by
2
; copyleft Chemist dmitry_gt@tut.by
3
;
3
;
4
; Compile with FASM for Menuet
4
; Compile with FASM for Menuet
5
;
5
;
6
;
6
;
7
 
7
 
8
use32
8
use32
9
 
9
 
10
 org 0x0
10
 org 0x0
11
 
11
 
12
 db 'MENUET01'
12
 db 'MENUET01'
13
 dd 0x01
13
 dd 0x01
14
 dd START
14
 dd START
15
 dd I_END
15
 dd I_END
16
 dd 0x300000
16
 dd 0x300000
17
 dd 0x7fff0
17
 dd 0x7fff0
18
 dd 0x0
18
 dd 0x0
19
 dd 0x0
19
 dd 0x0
20
 
20
 
21
include "macros.inc"
21
include "macros.inc"
22
 
-
 
-
 
22
include "lang.inc"
23
START:
23
START:
24
 
24
 
25
 call cmdexist
25
 call cmdexist
26
 call draw
26
 call draw
27
 call fill
27
 call fill
28
 call clearcmd
28
 call clearcmd
29
 call autoexec
29
 call autoexec
30
 call ppr
30
 call ppr
31
 call cursor
31
 call cursor
32
 
32
 
33
still:
33
still:
34
 
34
 
35
 mov eax,10
35
 mov eax,10
36
 int 0x40
36
 int 0x40
37
 
37
 
38
 cmp eax,1
38
 cmp eax,1
39
 je re
39
 je re
40
 cmp eax,2
40
 cmp eax,2
41
 je key
41
 je key
42
 cmp eax,3
42
 cmp eax,3
43
 je button
43
 je button
44
 
44
 
45
 jmp still
45
 jmp still
46
 
46
 
47
button:
47
button:
48
 mov eax,17
48
 mov eax,17
49
 int 0x40
49
 int 0x40
50
 
50
 
51
 cmp ah,1
51
 cmp ah,1
52
 jne noclose
52
 jne noclose
53
 
53
 
54
 jmp exit
54
 jmp exit
55
 
55
 
56
noclose:
56
noclose:
57
 jmp still
57
 jmp still
58
 
58
 
59
re:
59
re:
60
 call draw
60
 call draw
61
 call red
61
 call red
62
 jmp still
62
 jmp still
63
 
63
 
64
red:
64
red:
65
 call cls1
65
 call cls1
66
 
66
 
67
 mov dword [xpos],24
67
 mov dword [xpos],24
68
 
68
 
69
 mov dword [linev],2000
69
 mov dword [linev],2000
70
 
70
 
71
 mov eax,dword [ypos]
71
 mov eax,dword [ypos]
72
 push eax
72
 push eax
73
 
73
 
74
 mov dword [ypos],6
74
 mov dword [ypos],6
75
 
75
 
76
 mov ecx,dword [lpress]
76
 mov ecx,dword [lpress]
77
loop1:
77
loop1:
78
 push ecx
78
 push ecx
79
 mov eax,4
79
 mov eax,4
80
 mov ebx,[ypos]
80
 mov ebx,[ypos]
81
 shl ebx,16
81
 shl ebx,16
82
 add ebx,[xpos]
82
 add ebx,[xpos]
83
 mov ecx,0x00ddeeff
83
 mov ecx,0x00ddeeff
84
 mov edx,tic_table
84
 mov edx,tic_table
85
 add edx,dword [linev]
85
 add edx,dword [linev]
86
 mov esi,81
86
 mov esi,81
87
 int 0x40
87
 int 0x40
88
 add dword [xpos],10
88
 add dword [xpos],10
89
 add dword [linev],81
89
 add dword [linev],81
90
 pop ecx
90
 pop ecx
91
 loop loop1
91
 loop loop1
92
 
92
 
93
 sub dword [xpos],10
93
 sub dword [xpos],10
94
 
94
 
95
no_line:
95
no_line:
96
 pop eax
96
 pop eax
97
 mov dword [ypos],eax
97
 mov dword [ypos],eax
98
 
98
 
99
no_red:
99
no_red:
100
 ret
100
 ret
101
 
101
 
102
key:
102
key:
103
 mov eax,2
103
 mov eax,2
104
 int 0x40
104
 int 0x40
105
 
105
 
106
 cmp ah,27
106
 cmp ah,27
107
 jne no_escape
107
 jne no_escape
108
 
108
 
109
 mov dword [ypos],42
109
 mov dword [ypos],42
110
 call clearstr
110
 call clearstr
111
 call ppr
111
 call ppr
112
 mov dword [count],0
112
 mov dword [count],0
113
 call cursor
113
 call cursor
114
 jmp still
114
 jmp still
115
 
115
 
116
no_escape:
116
no_escape:
117
 cmp ah,178
117
 cmp ah,178
118
 jne no_aup
118
 jne no_aup
119
 cmp dword [count],0
119
 cmp dword [count],0
120
 jne no_aup
120
 jne no_aup
121
 cmp dword [oldcount],0
121
 cmp dword [oldcount],0
122
 je no_aup
122
 je no_aup
123
 
123
 
124
 call clearsum
124
 call clearsum
125
 sub dword [ypos],6
125
 sub dword [ypos],6
126
 
126
 
127
 cld
127
 cld
128
 mov ecx,81
128
 mov ecx,81
129
 mov edi,tic_table+600
129
 mov edi,tic_table+600
130
 mov esi,tic_table+900
130
 mov esi,tic_table+900
131
 rep movsb
131
 rep movsb
132
 
132
 
133
 cld
133
 cld
134
 mov ecx,dword [oldcount]
134
 mov ecx,dword [oldcount]
135
 mov edi,tic_table
135
 mov edi,tic_table
136
 add edi,dword [linen]
136
 add edi,dword [linen]
137
 mov esi,tic_table+600
137
 mov esi,tic_table+600
138
 rep movsb
138
 rep movsb
139
 
139
 
140
 call red
140
 call red
141
 
141
 
142
 mov eax,dword [oldcount]
142
 mov eax,dword [oldcount]
143
 mov dword [count],eax
143
 mov dword [count],eax
144
 
144
 
145
 add dword [linen],eax
145
 add dword [linen],eax
146
 add dword [linel],eax
146
 add dword [linel],eax
147
 
147
 
148
 mov ebx,6
148
 mov ebx,6
149
 imul ebx,eax
149
 imul ebx,eax
150
 
150
 
151
 add dword [ypos],ebx
151
 add dword [ypos],ebx
152
 
152
 
153
 call cursor
153
 call cursor
154
 
154
 
155
 jmp still
155
 jmp still
156
 
156
 
157
no_aup:
157
no_aup:
158
 cmp ah,8
158
 cmp ah,8
159
 jne no_backspace
159
 jne no_backspace
160
 cmp dword [count],0
160
 cmp dword [count],0
161
 je still
161
 je still
162
 
162
 
163
 cmp dword [count],0
163
 cmp dword [count],0
164
 je no_backspace
164
 je no_backspace
165
 
165
 
166
 call clearsum
166
 call clearsum
167
 sub dword [ypos],12
167
 sub dword [ypos],12
168
 call clearsum
168
 call clearsum
169
 sub dword [ypos],6
169
 sub dword [ypos],6
170
 call cursor
170
 call cursor
171
 dec dword [count]
171
 dec dword [count]
172
 jmp still
172
 jmp still
173
 
173
 
174
no_backspace:
174
no_backspace:
175
 cmp ah,13
175
 cmp ah,13
176
 jne no_enter
176
 jne no_enter
177
 
177
 
178
 cmp dword [count],0
178
 cmp dword [count],0
179
 jne enter_ok
179
 jne enter_ok
180
 call clearsum
180
 call clearsum
181
 jmp ecmd2
181
 jmp ecmd2
182
 
182
 
183
enter_ok:
183
enter_ok:
184
 call checkcmd
184
 call checkcmd
185
 
185
 
186
 cmp byte [tic_table+600],'/'
186
 cmp byte [tic_table+600],'/'
187
 jne no_script
187
 jne no_script
188
 cmp dword [count],1
188
 cmp dword [count],1
189
 je nparam5
189
 je nparam5
190
 
190
 
191
 jmp command
191
 jmp command
192
 
192
 
193
no_script:
193
no_script:
194
 
194
 
195
 call oldcmd
195
 call oldcmd
196
 
196
 
197
 call checkprg
197
 call checkprg
198
 
198
 
199
 jmp ecmd2
199
 jmp ecmd2
200
 
200
 
201
no_enter:
201
no_enter:
202
 
202
 
203
 cmp ah,176    ; Arrow keys, HOME, END, and DEL are unsupported now
203
 cmp ah,176    ; Arrow keys, HOME, END, and DEL are unsupported now
204
 je still
204
 je still
205
 cmp ah,179
205
 cmp ah,179
206
 je still
206
 je still
207
 cmp ah,177
207
 cmp ah,177
208
 je still
208
 je still
209
 cmp ah,178
209
 cmp ah,178
210
 je still
210
 je still
211
 cmp ah,182
211
 cmp ah,182
212
 je still
212
 je still
213
 cmp ah,180
213
 cmp ah,180
214
 je still
214
 je still
215
 cmp ah,181
215
 cmp ah,181
216
 je still
216
 je still
217
 
217
 
218
 cmp dword [count],74
218
 cmp dword [count],74
219
 je still
219
 je still
220
 
220
 
221
 mov byte [smb],ah
221
 mov byte [smb],ah
222
 
222
 
223
 mov edi,tic_table+600
223
 mov edi,tic_table+600
224
 add edi,dword [count]
224
 add edi,dword [count]
225
 mov esi,smb
225
 mov esi,smb
226
 movsb
226
 movsb
227
 
227
 
228
 inc dword [count]
228
 inc dword [count]
229
 
229
 
230
 call clearsum
230
 call clearsum
231
 sub dword [ypos],6
231
 sub dword [ypos],6
232
 call print
232
 call print
233
 add dword [ypos],6
233
 add dword [ypos],6
234
 call cursor
234
 call cursor
235
 
235
 
236
 jmp still
236
 jmp still
237
 
237
 
238
clearstr:
238
clearstr:
239
 mov dword [ypos],6
239
 mov dword [ypos],6
240
 mov dword [clr],480
240
 mov dword [clr],480
241
 call clear
241
 call clear
242
 
242
 
243
 mov eax,dword [linel]
243
 mov eax,dword [linel]
244
 sub dword [linen],eax
244
 sub dword [linen],eax
245
 mov dword [linel],0
245
 mov dword [linel],0
246
 
246
 
247
 mov ecx,eax
247
 mov ecx,eax
248
 push eax
248
 push eax
249
loop4:
249
loop4:
250
 push ecx
250
 push ecx
251
 mov edi,tic_table
251
 mov edi,tic_table
252
 add edi,dword [linen]
252
 add edi,dword [linen]
253
 mov esi,fill1
253
 mov esi,fill1
254
 movsb
254
 movsb
255
 
255
 
256
 inc dword [linen]
256
 inc dword [linen]
257
 pop ecx
257
 pop ecx
258
 loop loop4
258
 loop loop4
259
 
259
 
260
 pop eax
260
 pop eax
261
 sub dword [linen],eax
261
 sub dword [linen],eax
262
 
262
 
263
 mov dword [ypos],42
263
 mov dword [ypos],42
264
 
264
 
265
 ret
265
 ret
266
 
266
 
267
clearsum:
267
clearsum:
268
 mov dword [clr],6
268
 mov dword [clr],6
269
 call clear
269
 call clear
270
 
270
 
271
 dec dword [linen]
271
 dec dword [linen]
272
 dec dword [linel]
272
 dec dword [linel]
273
 
273
 
274
 mov edi,tic_table
274
 mov edi,tic_table
275
 add edi,dword [linen]
275
 add edi,dword [linen]
276
 mov esi,fill1
276
 mov esi,fill1
277
 movsb
277
 movsb
278
 
278
 
279
 ret
279
 ret
280
 
280
 
281
clear:
281
clear:
282
 mov eax,13
282
 mov eax,13
283
 mov ebx,[ypos]
283
 mov ebx,[ypos]
284
 shl ebx,16
284
 shl ebx,16
285
 add ebx,[clr]
285
 add ebx,[clr]
286
 mov ecx,[xpos]
286
 mov ecx,[xpos]
287
 shl ecx,16
287
 shl ecx,16
288
 add ecx,9
288
 add ecx,9
289
 mov edx,0
289
 mov edx,0
290
 int 0x40
290
 int 0x40
291
 add dword [ypos],6
291
 add dword [ypos],6
292
 ret
292
 ret
293
 
293
 
294
draw:
294
draw:
295
 
295
 
296
 mov eax,12
296
 mov eax,12
297
 mov ebx,1
297
 mov ebx,1
298
 int 0x40
298
 int 0x40
299
 
299
 
300
 mov eax,0
300
 mov eax,0
301
 mov ebx,100*65536+492
301
 mov ebx,100*65536+492
302
 mov ecx,100*65536+280
302
 mov ecx,100*65536+280
303
 mov edx,0
303
 mov edx,0x3000000
304
 mov esi,0x805080d0
304
 mov esi,0x805080d0
305
 mov edi,0x005080d0
305
 mov edi,0x005080d0
306
 int 0x40
306
 int 0x40
307
 
307
 
308
 mov eax,4
308
 mov eax,4
309
 mov ebx,8*65536+8
309
 mov ebx,8*65536+8
310
 mov ecx,0x10ddeeff
310
 mov ecx,0x10ddeeff
311
 mov edx,title
311
 mov edx,title
312
 mov esi,title_end-title
312
 mov esi,title_end-title
313
 int 0x40
313
 int 0x40
314
 
314
 
315
 mov eax,8
315
; mov eax,8
316
 mov ebx,(492-19)*65536+12
316
; mov ebx,(492-19)*65536+12
317
 mov ecx,5*65536+12
317
; mov ecx,5*65536+12
318
 mov edx,1
318
; mov edx,1
319
 mov esi,0x6688dd
319
; mov esi,0x6688dd
320
 int 0x40
320
; int 0x40
321
 
321
 
322
 mov eax,12
322
 mov eax,12
323
 mov ebx,2
323
 mov ebx,2
324
 int 0x40
324
 int 0x40
325
 
325
 
326
 ret
326
 ret
327
 
327
 
328
print:
328
print:
329
 mov eax,4
329
 mov eax,4
330
 mov ebx,[ypos]
330
 mov ebx,[ypos]
331
 shl ebx,16
331
 shl ebx,16
332
 add ebx,[xpos]
332
 add ebx,[xpos]
333
 mov ecx,0x00ddeeff
333
 mov ecx,0x00ddeeff
334
 mov edx,smb
334
 mov edx,smb
335
 mov esi,1
335
 mov esi,1
336
 int 0x40
336
 int 0x40
337
 
337
 
338
 mov edi,tic_table
338
 mov edi,tic_table
339
 add edi,dword [linen]
339
 add edi,dword [linen]
340
 mov esi,smb
340
 mov esi,smb
341
 movsb
341
 movsb
342
 inc dword [linen]
342
 inc dword [linen]
343
 inc dword [linel]
343
 inc dword [linel]
344
 
344
 
345
 ret
345
 ret
346
 
346
 
347
cursor:
347
cursor:
348
 mov eax,4
348
 mov eax,4
349
 mov ebx,[ypos]
349
 mov ebx,[ypos]
350
 shl ebx,16
350
 shl ebx,16
351
 add ebx,[xpos]
351
 add ebx,[xpos]
352
 mov ecx,0x00ddeeff
352
 mov ecx,0x00ddeeff
353
 mov edx,smb_cursor
353
 mov edx,smb_cursor
354
 mov esi,1
354
 mov esi,1
355
 int 0x40
355
 int 0x40
356
 
356
 
357
 mov edi,tic_table
357
 mov edi,tic_table
358
 mov esi,smb_cursor
358
 mov esi,smb_cursor
359
 add edi,dword [linen]
359
 add edi,dword [linen]
360
 movsb
360
 movsb
361
 inc dword [linen]
361
 inc dword [linen]
362
 inc dword [linel]
362
 inc dword [linel]
363
 
363
 
364
 ret
364
 ret
365
 
365
 
366
ppr:
366
ppr:
367
 mov eax,4
367
 mov eax,4
368
 mov ebx,6
368
 mov ebx,6
369
 shl ebx,16
369
 shl ebx,16
370
 add ebx,[xpos]
370
 add ebx,[xpos]
371
 mov ecx,0x00ddeeff
371
 mov ecx,0x00ddeeff
372
 mov edx,prompt
372
 mov edx,prompt
373
 mov esi,5
373
 mov esi,5
374
 int 0x40
374
 int 0x40
375
 mov dword [ypos],42
375
 mov dword [ypos],42
376
 
376
 
377
 cld
377
 cld
378
 mov ecx,5
378
 mov ecx,5
379
 mov edi,tic_table
379
 mov edi,tic_table
380
 add edi,dword [linen]
380
 add edi,dword [linen]
381
 mov esi,prompt
381
 mov esi,prompt
382
 rep movsb
382
 rep movsb
383
 
383
 
384
 add dword [linen],6
384
 add dword [linen],6
385
 add dword [linel],6
385
 add dword [linel],6
386
 
386
 
387
 ret
387
 ret
388
 
388
 
389
help:
389
help:
390
 cmp byte [callp],1
390
 cmp byte [callp],1
391
 je gonext8
391
 je gonext8
392
 call clearsum
392
 call clearsum
393
gonext8:
393
gonext8:
394
 call newline
394
 call newline
395
 call newline
395
 call newline
396
 mov edx,h1
396
 mov edx,h1
397
 call printf
397
 call printf
398
 call newline
398
 call newline
399
 mov edx,h2
399
 mov edx,h2
400
 call printf
400
 call printf
401
 call newline
401
 call newline
402
 call newline
402
 call newline
403
 mov edx,h3
403
 mov edx,h3
404
 call printf
404
 call printf
405
 call newline
405
 call newline
406
 call newline
406
 call newline
407
 mov edx,h4
407
 mov edx,h4
408
 call printf
408
 call printf
409
 call newline
409
 call newline
410
 mov edx,h5
410
 mov edx,h5
411
 call printf
411
 call printf
412
 call newline
412
 call newline
413
 mov edx,h6
413
 mov edx,h6
414
 call printf
414
 call printf
415
 call newline
415
 call newline
416
 mov edx,h7
416
 mov edx,h7
417
 call printf
417
 call printf
418
 call newline
418
 call newline
419
 call newline
419
 call newline
420
 mov edx,h8
420
 mov edx,h8
421
 call printf
421
 call printf
422
 call newline
422
 call newline
423
 mov edx,h9
423
 mov edx,h9
424
 call printf
424
 call printf
425
 call newline
425
 call newline
426
 mov edx,h10
426
 mov edx,h10
427
 call printf
427
 call printf
428
 call newline
428
 call newline
429
 mov edx,h11
429
 mov edx,h11
430
 call printf
430
 call printf
431
 call newline
431
 call newline
432
 mov edx,h12
432
 mov edx,h12
433
 call printf
433
 call printf
434
 call newline
434
 call newline
435
 mov edx,h13
435
 mov edx,h13
436
 call printf
436
 call printf
437
 call newline
437
 call newline
438
 call newline
438
 call newline
439
 mov edx,h14
439
 mov edx,h14
440
 call printf
440
 call printf
441
 call newline
441
 call newline
442
 call newline
442
 call newline
443
 mov edx,h15
443
 mov edx,h15
444
 call printf
444
 call printf
445
 call newline
445
 call newline
446
 mov edx,h16
446
 mov edx,h16
447
 call printf
447
 call printf
448
 call newline
448
 call newline
449
 
449
 
450
 cmp byte [callp],1
450
 cmp byte [callp],1
451
 je go
451
 je go
452
 
452
 
453
 jmp ecmd
453
 jmp ecmd
454
 
454
 
455
ver:
455
ver:
456
 cmp byte [callp],1
456
 cmp byte [callp],1
457
 je gonext7
457
 je gonext7
458
 call clearsum
458
 call clearsum
459
gonext7:
459
gonext7:
460
 call newline
460
 call newline
461
 mov edx,about
461
 mov edx,about
462
 call printf
462
 call printf
463
 
463
 
464
 cmp byte [callp],1
464
 cmp byte [callp],1
465
 je go
465
 je go
466
 
466
 
467
 jmp ecmd
467
 jmp ecmd
468
 
468
 
469
pause1:
469
pause1:
470
 cmp byte [callp],1
470
 cmp byte [callp],1
471
 je gonext1
471
 je gonext1
472
 call clearsum
472
 call clearsum
473
gonext1:
473
gonext1:
474
 call pause2
474
 call pause2
475
 
475
 
476
 cmp byte [callp],1
476
 cmp byte [callp],1
477
 je go
477
 je go
478
 
478
 
479
 jmp ecmd
479
 jmp ecmd
480
 
480
 
481
ls:
481
ls:
482
 call oldcmd
482
 call oldcmd
483
 call cls2
483
 call cls2
484
 
484
 
485
loopls:
485
loopls:
486
 inc dword [blockcnt]
486
 inc dword [blockcnt]
487
 
487
 
488
 mov eax,34
488
 mov eax,34
489
 mov ebx,0
489
 mov ebx,0
490
 mov ecx,0
490
 mov ecx,0
491
 mov edx,0
491
 mov edx,0
492
 add edx,dword [blockcnt]
492
 add edx,dword [blockcnt]
493
 mov esi,1
493
 mov esi,1
494
 mov edi,tic_table+7000
494
 mov edi,tic_table+7000
495
 int 0x40
495
 int 0x40
496
 
496
 
497
 mov ecx,16
497
 mov ecx,16
498
loop40:
498
loop40:
499
 push ecx
499
 push ecx
500
 
500
 
501
 cld
501
 cld
502
 mov ecx,8
502
 mov ecx,8
503
 mov edi,filename
503
 mov edi,filename
504
 mov esi,tic_table
504
 mov esi,tic_table
505
 add esi,dword [lscnt]
505
 add esi,dword [lscnt]
506
 rep movsb
506
 rep movsb
507
 
507
 
508
 add dword [lscnt],8
508
 add dword [lscnt],8
509
 
509
 
510
 mov edi,filename+8
510
 mov edi,filename+8
511
 mov esi,ddot
511
 mov esi,ddot
512
 movsb
512
 movsb
513
 
513
 
514
 cld
514
 cld
515
 mov ecx,3
515
 mov ecx,3
516
 mov edi,filename+9
516
 mov edi,filename+9
517
 mov esi,tic_table
517
 mov esi,tic_table
518
 add esi,dword [lscnt]
518
 add esi,dword [lscnt]
519
 rep movsb
519
 rep movsb
520
 
520
 
521
 cmp byte [filename+10],0
521
 cmp byte [filename+10],0
522
 jne no_fn_space1
522
 jne no_fn_space1
523
 
523
 
524
 mov edi,filename+10
524
 mov edi,filename+10
525
 mov esi,dzero
525
 mov esi,dzero
526
 movsb
526
 movsb
527
 
527
 
528
no_fn_space1:
528
no_fn_space1:
529
 cmp byte [filename],0xe5  ; deleted file
529
 cmp byte [filename],0xe5  ; deleted file
530
 je no_newline
530
 je no_newline
531
 cmp byte [filename],0xf   ; long fat32 filename
531
 cmp byte [filename],0xf   ; long fat32 filename
532
 je no_newline
532
 je no_newline
533
 cmp byte [filename],0x10  ; folder
533
 cmp byte [filename],0x10  ; folder
534
 je no_newline
534
 je no_newline
535
 
535
 
536
 cmp word [filename],'AK'
536
 cmp word [filename],'AK'
537
 jne filename_ok
537
 jne filename_ok
538
 cmp byte [filename+3],'e'
538
 cmp byte [filename+3],'e'
539
 jne filename_ok
539
 jne filename_ok
540
 cmp byte [filename+5],'y'
540
 cmp byte [filename+5],'y'
541
 jne filename_ok
541
 jne filename_ok
542
 cmp byte [filename+7],'a'
542
 cmp byte [filename+7],'a'
543
 jne filename_ok
543
 jne filename_ok
544
 cmp byte [filename+10],'s'
544
 cmp byte [filename+10],'s'
545
 jne filename_ok
545
 jne filename_ok
546
 
546
 
547
 jmp no_newline
547
 jmp no_newline
548
 
548
 
549
filename_ok:
549
filename_ok:
550
 mov eax,6
550
 mov eax,6
551
 mov ebx,filename
551
 mov ebx,filename
552
 mov ecx,0
552
 mov ecx,0
553
 mov edx,-1
553
 mov edx,-1
554
 mov esi,tic_table+25000
554
 mov esi,tic_table+25000
555
 int 0x40
555
 int 0x40
556
 
556
 
557
 cmp eax,4294967295
557
 cmp eax,4294967295
558
 jne ls_print
558
 jne ls_print
559
 
559
 
560
 jmp no_newline
560
 jmp no_newline
561
 
561
 
562
ls_print_done:
562
ls_print_done:
563
 inc byte [lscntf]
563
 inc byte [lscntf]
564
 
564
 
565
 add dword [ypos],96
565
 add dword [ypos],96
566
 
566
 
567
 cmp byte [lscntf],5
567
 cmp byte [lscntf],5
568
 jne no_newline
568
 jne no_newline
569
 
569
 
570
 mov byte [lscntf],0
570
 mov byte [lscntf],0
571
 inc byte [lscntx]
571
 inc byte [lscntx]
572
 
572
 
573
 cmp byte [lscntx],23
573
 cmp byte [lscntx],23
574
 je pause2n
574
 je pause2n
575
 
575
 
576
 mov dword [ypos],6
576
 mov dword [ypos],6
577
 call newline
577
 call newline
578
 
578
 
579
no_newline:
579
no_newline:
580
 add dword [lscnt],24
580
 add dword [lscnt],24
581
 
581
 
582
 pop ecx
582
 pop ecx
583
 dec ecx
583
 dec ecx
584
 cmp ecx,0
584
 cmp ecx,0
585
 jne loop40
585
 jne loop40
586
 
586
 
587
 cmp dword [blockcnt],16
587
 cmp dword [blockcnt],16
588
 je ls_end
588
 je ls_end
589
 
589
 
590
 jmp no_pause2
590
 jmp no_pause2
591
 
591
 
592
pause2n:
592
pause2n:
593
 mov byte [lscntx],0
593
 mov byte [lscntx],0
594
 
594
 
595
 call newline
595
 call newline
596
 call pause2
596
 call pause2
597
 call cls2
597
 call cls2
598
 mov dword [lscnt],8024
598
 mov dword [lscnt],8024
599
 jmp loopls
599
 jmp loopls
600
 
600
 
601
no_pause2:
601
no_pause2:
602
 mov dword [lscnt],8024
602
 mov dword [lscnt],8024
603
 
603
 
604
 jmp loopls
604
 jmp loopls
605
 
605
 
606
ls_end:
606
ls_end:
607
 mov dword [blockcnt],0
607
 mov dword [blockcnt],0
608
 mov dword [lscnt],8024
608
 mov dword [lscnt],8024
609
 mov byte [lscntf],0
609
 mov byte [lscntf],0
610
 mov byte [lscntx],0
610
 mov byte [lscntx],0
611
 
611
 
612
 cmp byte [callp],1
612
 cmp byte [callp],1
613
 je go
613
 je go
614
 
614
 
615
 jmp ecmd2
615
 jmp ecmd2
616
 
616
 
617
ls_print:
617
ls_print:
618
 mov edi,filename+8
618
 mov edi,filename+8
619
 mov esi,fill1
619
 mov esi,fill1
620
 movsb
620
 movsb
621
 
621
 
622
 mov eax,4
622
 mov eax,4
623
 mov ebx,[ypos]
623
 mov ebx,[ypos]
624
 shl ebx,16
624
 shl ebx,16
625
 add ebx,[xpos]
625
 add ebx,[xpos]
626
 mov edx,filename
626
 mov edx,filename
627
 mov ecx,0x00ddeeff
627
 mov ecx,0x00ddeeff
628
 mov esi,12
628
 mov esi,12
629
 int 0x40
629
 int 0x40
630
 
630
 
631
 cld
631
 cld
632
 mov ecx,12
632
 mov ecx,12
633
 mov edi,tic_table
633
 mov edi,tic_table
634
 add edi,dword [linen]
634
 add edi,dword [linen]
635
 mov esi,filename
635
 mov esi,filename
636
 rep movsb
636
 rep movsb
637
 
637
 
638
 add dword [linen],16
638
 add dword [linen],16
639
 add dword [linel],16
639
 add dword [linel],16
640
 
640
 
641
 jmp ls_print_done
641
 jmp ls_print_done
642
 
642
 
643
lscheck:
643
lscheck:
644
 cmp byte [callp],1
644
 cmp byte [callp],1
645
 je gonext9
645
 je gonext9
646
 call clearsum
646
 call clearsum
647
gonext9:
647
gonext9:
648
 sub dword [count],3
648
 sub dword [count],3
649
 
649
 
650
 cld
650
 cld
651
 mov ecx,dword [count]
651
 mov ecx,dword [count]
652
 mov edi,tic_table+400
652
 mov edi,tic_table+400
653
 mov esi,tic_table+600
653
 mov esi,tic_table+600
654
 add esi,3
654
 add esi,3
655
 rep movsb
655
 rep movsb
656
 
656
 
657
 mov ebx,tic_table+400
657
 mov ebx,tic_table+400
658
 push esi edi ecx eax
658
 push esi edi ecx eax
659
 mov esi,ebx
659
 mov esi,ebx
660
 
660
 
661
 mov edi,tic_table+400
661
 mov edi,tic_table+400
662
 mov ecx,70
662
 mov ecx,70
663
strup2:
663
strup2:
664
 mov al,[esi]
664
 mov al,[esi]
665
 cmp al,'A'
665
 cmp al,'A'
666
 jb @f
666
 jb @f
667
 cmp al,'z'
667
 cmp al,'z'
668
 ja @f
668
 ja @f
669
 cmp al,'a'
669
 cmp al,'a'
670
 jb @f
670
 jb @f
671
 add al,-0x20
671
 add al,-0x20
672
@@:
672
@@:
673
 mov [edi],al
673
 mov [edi],al
674
 inc esi
674
 inc esi
675
 inc edi
675
 inc edi
676
 dec ecx
676
 dec ecx
677
 jnz strup2
677
 jnz strup2
678
 pop eax ecx edi esi
678
 pop eax ecx edi esi
679
 
679
 
680
 mov ecx,dword [count]
680
 mov ecx,dword [count]
681
 
681
 
682
looplsc:
682
looplsc:
683
 cmp byte [tic_table+400+ecx],'.'
683
 cmp byte [tic_table+400+ecx],'.'
684
 je chdot
684
 je chdot
685
 
685
 
686
 loop looplsc
686
 loop looplsc
687
 
687
 
688
 jmp chnodot
688
 jmp chnodot
689
 
689
 
690
chdot:
690
chdot:
691
 mov ebx,dword [count]
691
 mov ebx,dword [count]
692
 
692
 
693
 cld
693
 cld
694
 mov ecx,5
694
 mov ecx,5
695
 mov edi,tic_table+400
695
 mov edi,tic_table+400
696
 add edi,ebx
696
 add edi,ebx
697
 mov esi,dzero
697
 mov esi,dzero
698
 rep movsb
698
 rep movsb
699
 
699
 
700
 mov eax,6
700
 mov eax,6
701
 mov ebx,tic_table+400
701
 mov ebx,tic_table+400
702
 mov ecx,0
702
 mov ecx,0
703
 mov edx,-1
703
 mov edx,-1
704
 mov esi,tic_table+25000
704
 mov esi,tic_table+25000
705
 int 0x40
705
 int 0x40
706
 
706
 
707
 cmp eax,4294967295
707
 cmp eax,4294967295
708
 je nosuchfile
708
 je nosuchfile
709
 
709
 
710
 jmp lschok
710
 jmp lschok
711
 
711
 
712
chnodot:
712
chnodot:
713
 mov ebx,dword [count]
713
 mov ebx,dword [count]
714
 
714
 
715
 mov edi,tic_table+400
715
 mov edi,tic_table+400
716
 add edi,ebx
716
 add edi,ebx
717
 mov esi,ddot
717
 mov esi,ddot
718
 movsb
718
 movsb
719
 
719
 
720
 inc ebx
720
 inc ebx
721
 
721
 
722
 cld
722
 cld
723
 mov ecx,3
723
 mov ecx,3
724
 mov edi,tic_table+400
724
 mov edi,tic_table+400
725
 add edi,ebx
725
 add edi,ebx
726
 mov esi,fill3
726
 mov esi,fill3
727
 rep movsb
727
 rep movsb
728
 
728
 
729
 mov eax,6
729
 mov eax,6
730
 mov ebx,tic_table+400
730
 mov ebx,tic_table+400
731
 mov ecx,0
731
 mov ecx,0
732
 mov edx,-1
732
 mov edx,-1
733
 mov esi,tic_table+25000
733
 mov esi,tic_table+25000
734
 int 0x40
734
 int 0x40
735
 
735
 
736
 cmp eax,4294967295
736
 cmp eax,4294967295
737
 je nosuchfile
737
 je nosuchfile
738
 
738
 
739
 mov edi,tic_table+400
739
 mov edi,tic_table+400
740
 add edi,dword [count]
740
 add edi,dword [count]
741
 mov esi,fill1
741
 mov esi,fill1
742
 movsb
742
 movsb
743
 
743
 
744
lschok:
744
lschok:
745
 call newline
745
 call newline
746
 
746
 
747
 mov eax,4
747
 mov eax,4
748
 mov ebx,6
748
 mov ebx,6
749
 shl ebx,16
749
 shl ebx,16
750
 add ebx,[xpos]
750
 add ebx,[xpos]
751
 mov edx,tic_table+400
751
 mov edx,tic_table+400
752
 mov esi,12
752
 mov esi,12
753
 mov ecx,0x00ddeeff
753
 mov ecx,0x00ddeeff
754
 int 0x40
754
 int 0x40
755
 
755
 
756
 cld
756
 cld
757
 mov ecx,12
757
 mov ecx,12
758
 mov edi,tic_table
758
 mov edi,tic_table
759
 add edi,dword [linen]
759
 add edi,dword [linen]
760
 mov esi,tic_table+400
760
 mov esi,tic_table+400
761
 rep movsb
761
 rep movsb
762
 
762
 
763
 add dword [linen],12
763
 add dword [linen],12
764
 add dword [linel],12
764
 add dword [linel],12
765
 
765
 
766
 add dword [count],3
766
 add dword [count],3
767
 
767
 
768
 cmp byte [callp],1
768
 cmp byte [callp],1
769
 je go
769
 je go
770
 
770
 
771
 jmp ecmd
771
 jmp ecmd
772
 
772
 
773
ps:
773
ps:
774
 call oldcmd
774
 call oldcmd
775
 call cls2
775
 call cls2
776
 call newline
776
 call newline
777
 mov edx,proc_head
777
 mov edx,proc_head
778
 call printf
778
 call printf
779
 call newline
779
 call newline
780
 mov edx,proc_hd11
780
 mov edx,proc_hd11
781
 call printf
781
 call printf
782
 call newline
782
 call newline
783
 call newline
783
 call newline
784
 
784
 
785
 mov eax,9
785
 mov eax,9
786
 mov ebx,tic_table
786
 mov ebx,tic_table
787
 mov ecx,1
787
 mov ecx,1
788
 int 0x40
788
 int 0x40
789
 
789
 
790
 mov dword [count2],eax
790
 mov dword [count2],eax
791
 
791
 
792
ll1:
792
ll1:
793
 inc dword [pn]
793
 inc dword [pn]
794
 mov eax,9
794
 mov eax,9
795
 mov ebx,tic_table
795
 mov ebx,tic_table
796
 mov ecx,[pn]
796
 mov ecx,[pn]
797
 int 0x40
797
 int 0x40
798
 
798
 
799
 mov ebx,[tic_table+30]
799
 mov ebx,[tic_table+30]
800
 mov dword [fnumb],4
800
 mov dword [fnumb],4
801
 mov dword [ypos],6
801
 mov dword [ypos],6
802
 call decnumb
802
 call decnumb
803
 
803
 
804
 cld
804
 cld
805
 mov ecx,4
805
 mov ecx,4
806
 mov edi,tic_table
806
 mov edi,tic_table
807
 add edi,dword [linen]
807
 add edi,dword [linen]
808
 mov esi,tic_table+200
808
 mov esi,tic_table+200
809
 rep movsb
809
 rep movsb
810
 
810
 
811
 add dword [linen],5
811
 add dword [linen],5
812
 add dword [linel],5
812
 add dword [linel],5
813
 
813
 
814
 cld
814
 cld
815
 mov ecx,11
815
 mov ecx,11
816
 mov esi,tic_table+10
816
 mov esi,tic_table+10
817
 mov edi,pname
817
 mov edi,pname
818
 rep movsb
818
 rep movsb
819
 
819
 
820
 mov dword [ypos],36
820
 mov dword [ypos],36
821
 mov edx,pname
821
 mov edx,pname
822
 mov eax,4
822
 mov eax,4
823
 mov ebx,[ypos]
823
 mov ebx,[ypos]
824
 shl ebx,16
824
 shl ebx,16
825
 add ebx,[xpos]
825
 add ebx,[xpos]
826
 mov ecx,0x00ddeeff
826
 mov ecx,0x00ddeeff
827
 mov esi,12
827
 mov esi,12
828
 int 0x40
828
 int 0x40
829
 
829
 
830
 cld
830
 cld
831
 mov ecx,11
831
 mov ecx,11
832
 mov edi,tic_table
832
 mov edi,tic_table
833
 add edi,dword [linen]
833
 add edi,dword [linen]
834
 mov esi,pname
834
 mov esi,pname
835
 rep movsb
835
 rep movsb
836
 
836
 
837
 add dword [linen],10
837
 add dword [linen],10
838
 add dword [linel],10
838
 add dword [linel],10
839
 
839
 
840
 mov dword [ypos],94
840
 mov dword [ypos],94
841
 mov ebx,[tic_table+22]
841
 mov ebx,[tic_table+22]
842
 mov dword [fnumb],8
842
 mov dword [fnumb],8
843
 call decnumb
843
 call decnumb
844
 
844
 
845
 cld
845
 cld
846
 mov ecx,8
846
 mov ecx,8
847
 mov edi,tic_table
847
 mov edi,tic_table
848
 add edi,dword [linen]
848
 add edi,dword [linen]
849
 mov esi,tic_table+200
849
 mov esi,tic_table+200
850
 rep movsb
850
 rep movsb
851
 
851
 
852
 add dword [linen],10
852
 add dword [linen],10
853
 add dword [linel],10
853
 add dword [linel],10
854
 
854
 
855
 mov dword [ypos],154
855
 mov dword [ypos],154
856
 mov ebx,[tic_table+26]
856
 mov ebx,[tic_table+26]
857
 mov dword [fnumb],8
857
 mov dword [fnumb],8
858
 call decnumb
858
 call decnumb
859
 
859
 
860
 cld
860
 cld
861
 mov ecx,8
861
 mov ecx,8
862
 mov edi,tic_table
862
 mov edi,tic_table
863
 add edi,dword [linen]
863
 add edi,dword [linen]
864
 mov esi,tic_table+200
864
 mov esi,tic_table+200
865
 rep movsb
865
 rep movsb
866
 
866
 
867
 add dword [linen],12
867
 add dword [linen],12
868
 add dword [linel],12
868
 add dword [linel],12
869
 
869
 
870
 mov dword [ypos],228
870
 mov dword [ypos],228
871
 mov ebx,[pn]
871
 mov ebx,[pn]
872
 mov dword [fnumb],4
872
 mov dword [fnumb],4
873
 call decnumb
873
 call decnumb
874
 
874
 
875
 cld
875
 cld
876
 mov ecx,4
876
 mov ecx,4
877
 mov edi,tic_table
877
 mov edi,tic_table
878
 add edi,dword [linen]
878
 add edi,dword [linen]
879
 mov esi,tic_table+200
879
 mov esi,tic_table+200
880
 rep movsb
880
 rep movsb
881
 
881
 
882
 add dword [linel],4
882
 add dword [linel],4
883
 add dword [linen],4
883
 add dword [linen],4
884
 
884
 
885
 call newline
885
 call newline
886
 
886
 
887
 mov dword [ypos],60
887
 mov dword [ypos],60
888
 
888
 
889
 cmp dword [xpos],254
889
 cmp dword [xpos],254
890
 jne nscreen
890
 jne nscreen
891
 
891
 
892
 call pause2
892
 call pause2
893
 call cls2
893
 call cls2
894
 
894
 
895
 mov dword [xpos],24
895
 mov dword [xpos],24
896
 call newline
896
 call newline
897
 mov dword [ypos],60
897
 mov dword [ypos],60
898
 
898
 
899
 mov edx,proc_head
899
 mov edx,proc_head
900
 call printf
900
 call printf
901
 call newline
901
 call newline
902
 mov edx,proc_hd11
902
 mov edx,proc_hd11
903
 call printf
903
 call printf
904
 call newline
904
 call newline
905
 call newline
905
 call newline
906
 
906
 
907
nscreen:
907
nscreen:
908
 mov eax, dword [count2]
908
 mov eax, dword [count2]
909
 cmp dword [pn],eax
909
 cmp dword [pn],eax
910
 jne ll1
910
 jne ll1
911
 mov dword [pn],0
911
 mov dword [pn],0
912
 
912
 
913
 cmp byte [callp],1
913
 cmp byte [callp],1
914
 je go
914
 je go
915
 
915
 
916
 jmp ecmd2
916
 jmp ecmd2
917
 
917
 
918
printn:
918
printn:
919
 mov eax,47
919
 mov eax,47
920
 shl ebx,16
920
 shl ebx,16
921
 mov edx,[ypos]
921
 mov edx,[ypos]
922
 shl edx,16
922
 shl edx,16
923
 add edx,[xpos]
923
 add edx,[xpos]
924
 mov esi,0x00ddeeff
924
 mov esi,0x00ddeeff
925
 int 0x40
925
 int 0x40
926
 ret
926
 ret
927
 
927
 
928
pause2:
928
pause2:
929
 call newline
929
 call newline
930
 mov edx,mess1
930
 mov edx,mess1
931
 call printf
931
 call printf
932
 
932
 
933
 mov eax,10
933
 mov eax,10
934
 int 0x40
934
 int 0x40
935
 
935
 
936
red3:
936
red3:
937
 cmp eax,2
937
 cmp eax,2
938
 je back
938
 je back
939
 cmp eax,3
939
 cmp eax,3
940
 je exit
940
 je exit
941
 
941
 
942
 call draw
942
 call draw
943
 call red
943
 call red
944
 
944
 
945
 mov eax,10
945
 mov eax,10
946
 int 0x40
946
 int 0x40
947
 jmp red3
947
 jmp red3
948
 
948
 
949
back:
949
back:
950
 mov eax,2
950
 mov eax,2
951
 int 0x40
951
 int 0x40
952
 cmp ah,27
952
 cmp ah,27
953
 je checmd
953
 je checmd
954
 ret
954
 ret
955
 
955
 
956
exit:
956
exit:
957
 mov eax,-1
957
 mov eax,-1
958
 int 0x40
958
 int 0x40
959
 
959
 
960
checmd:
960
checmd:
961
 cmp byte [callp],1
961
 cmp byte [callp],1
962
 je ecmd3
962
 je ecmd3
963
 
963
 
964
 jmp ecmd
964
 jmp ecmd
965
 
965
 
966
err:
966
err:
967
 call clearsum
967
 call clearsum
968
 
968
 
969
 call newline
969
 call newline
970
 
970
 
971
 call ppr
971
 call ppr
972
 cmp dword [count],0
972
 cmp dword [count],0
973
 je ecmd1
973
 je ecmd1
974
 mov edx,err1
974
 mov edx,err1
975
 mov eax,4
975
 mov eax,4
976
 mov ebx,[ypos]
976
 mov ebx,[ypos]
977
 shl ebx,16
977
 shl ebx,16
978
 add ebx,[xpos]
978
 add ebx,[xpos]
979
 mov ecx,0x00ddeeff
979
 mov ecx,0x00ddeeff
980
 mov esi,27
980
 mov esi,33
981
 int 0x40
981
 int 0x40
982
 
982
 
983
 cld
983
 cld
984
 mov ecx,27
984
 mov ecx,27
985
 mov edi,tic_table
985
 mov edi,tic_table
986
 add edi,dword [linen]
986
 add edi,dword [linen]
987
 mov esi,err1
987
 mov esi,err1
988
 rep movsb
988
 rep movsb
989
 
989
 
990
 add dword [linen],27
990
 add dword [linen],27
991
 add dword [linel],27
991
 add dword [linel],27
992
 
992
 
993
 call clearcmd
993
 call clearcmd
994
 
994
 
995
 jmp cmd_ok2
995
 jmp cmd_ok2
996
 
996
 
997
nparam:
997
nparam:
998
 cmp byte [callp],1
998
 cmp byte [callp],1
999
 je gonext4
999
 je gonext4
1000
 call clearsum
1000
 call clearsum
1001
gonext4:
1001
gonext4:
1002
 call newline
1002
 call newline
1003
 mov edx,mess2
1003
 mov edx,mess2
1004
 call printf
1004
 call printf
1005
 
1005
 
1006
 cmp byte [callp],1
1006
 cmp byte [callp],1
1007
 je go
1007
 je go
1008
 
1008
 
1009
 jmp ecmd
1009
 jmp ecmd
1010
 
1010
 
1011
nparam2:
1011
nparam2:
1012
 cmp byte [callp],1
1012
 cmp byte [callp],1
1013
 je gonext3
1013
 je gonext3
1014
 call clearsum
1014
 call clearsum
1015
gonext3:
1015
gonext3:
1016
 call newline
1016
 call newline
1017
 mov edx,mess5
1017
 mov edx,mess5
1018
 call printf
1018
 call printf
1019
 
1019
 
1020
 cmp byte [callp],0
1020
 cmp byte [callp],0
1021
 je ecmd
1021
 je ecmd
1022
 
1022
 
1023
 jmp go
1023
 jmp go
1024
 
1024
 
1025
cp:
1025
cp:
1026
 cmp byte [callp],1
1026
 cmp byte [callp],1
1027
 je gonext10
1027
 je gonext10
1028
 call clearsum
1028
 call clearsum
1029
gonext10:
1029
gonext10:
1030
 sub dword [count],3
1030
 sub dword [count],3
1031
 
1031
 
1032
 cld
1032
 cld
1033
 mov ecx,dword [count]
1033
 mov ecx,dword [count]
1034
 mov edi,tic_table+400
1034
 mov edi,tic_table+400
1035
 mov esi,tic_table+600
1035
 mov esi,tic_table+600
1036
 add esi,3
1036
 add esi,3
1037
 rep movsb
1037
 rep movsb
1038
 
1038
 
1039
 mov ecx,12
1039
 mov ecx,12
1040
loop50:
1040
loop50:
1041
 cmp byte [tic_table+400+ecx],'+'
1041
 cmp byte [tic_table+400+ecx],'+'
1042
 je file2
1042
 je file2
1043
 
1043
 
1044
 loop loop50
1044
 loop loop50
1045
 
1045
 
1046
 add dword [count],3
1046
 add dword [count],3
1047
 jmp nparam3
1047
 jmp nparam3
1048
 
1048
 
1049
file2:
1049
file2:
1050
 mov dword [f1len],ecx
1050
 mov dword [f1len],ecx
1051
 
1051
 
1052
 inc ecx
1052
 inc ecx
1053
 mov ebx,ecx
1053
 mov ebx,ecx
1054
 cld
1054
 cld
1055
 mov edi,tic_table+9000
1055
 mov edi,tic_table+9000
1056
 mov esi,tic_table+400
1056
 mov esi,tic_table+400
1057
 rep movsb
1057
 rep movsb
1058
 
1058
 
1059
 mov ecx,12
1059
 mov ecx,12
1060
 mov edi,tic_table+9100
1060
 mov edi,tic_table+9100
1061
 mov esi,tic_table+400
1061
 mov esi,tic_table+400
1062
 add esi,ebx
1062
 add esi,ebx
1063
 rep movsb
1063
 rep movsb
1064
 
1064
 
1065
 mov ebx,tic_table+9000
1065
 mov ebx,tic_table+9000
1066
 push esi edi ecx eax
1066
 push esi edi ecx eax
1067
 mov esi,ebx
1067
 mov esi,ebx
1068
 
1068
 
1069
 mov edi,tic_table+9000
1069
 mov edi,tic_table+9000
1070
 mov ecx,12
1070
 mov ecx,12
1071
strup3:
1071
strup3:
1072
 mov al,[esi]
1072
 mov al,[esi]
1073
 cmp al,'A'
1073
 cmp al,'A'
1074
 jb @f
1074
 jb @f
1075
 cmp al,'z'
1075
 cmp al,'z'
1076
 ja @f
1076
 ja @f
1077
 cmp al,'a'
1077
 cmp al,'a'
1078
 jb @f
1078
 jb @f
1079
 add al,-0x20
1079
 add al,-0x20
1080
@@:
1080
@@:
1081
 mov [edi],al
1081
 mov [edi],al
1082
 inc esi
1082
 inc esi
1083
 inc edi
1083
 inc edi
1084
 dec ecx
1084
 dec ecx
1085
 jnz strup3
1085
 jnz strup3
1086
 pop eax ecx edi esi
1086
 pop eax ecx edi esi
1087
 
1087
 
1088
 mov ecx,dword [f1len]
1088
 mov ecx,dword [f1len]
1089
 
1089
 
1090
loopcp:
1090
loopcp:
1091
 cmp byte [tic_table+9000+ecx],'.'
1091
 cmp byte [tic_table+9000+ecx],'.'
1092
 je chdotcp
1092
 je chdotcp
1093
 
1093
 
1094
 loop loopcp
1094
 loop loopcp
1095
 
1095
 
1096
 jmp chnodotcp
1096
 jmp chnodotcp
1097
 
1097
 
1098
chdotcp:
1098
chdotcp:
1099
 mov ebx,dword [f1len]
1099
 mov ebx,dword [f1len]
1100
 
1100
 
1101
 cld
1101
 cld
1102
 mov ecx,4
1102
 mov ecx,4
1103
 mov edi,tic_table+9000
1103
 mov edi,tic_table+9000
1104
 add edi,ebx
1104
 add edi,ebx
1105
 mov esi,dzero
1105
 mov esi,dzero
1106
 rep movsb
1106
 rep movsb
1107
 
1107
 
1108
 jmp gocp1
1108
 jmp gocp1
1109
 
1109
 
1110
chnodotcp:
1110
chnodotcp:
1111
 mov ebx,dword [f1len]
1111
 mov ebx,dword [f1len]
1112
 
1112
 
1113
 mov edi,tic_table+9000
1113
 mov edi,tic_table+9000
1114
 add edi,ebx
1114
 add edi,ebx
1115
 mov esi,ddot
1115
 mov esi,ddot
1116
 movsb
1116
 movsb
1117
 
1117
 
1118
 inc ebx
1118
 inc ebx
1119
 
1119
 
1120
 cld
1120
 cld
1121
 mov ecx,3
1121
 mov ecx,3
1122
 mov edi,tic_table+9000
1122
 mov edi,tic_table+9000
1123
 add edi,ebx
1123
 add edi,ebx
1124
 mov esi,fill3
1124
 mov esi,fill3
1125
 rep movsb
1125
 rep movsb
1126
 
1126
 
1127
gocp1:
1127
gocp1:
1128
 mov eax,6
1128
 mov eax,6
1129
 mov ebx,tic_table+9000
1129
 mov ebx,tic_table+9000
1130
 mov ecx,0
1130
 mov ecx,0
1131
 mov edx,-1
1131
 mov edx,-1
1132
 mov esi,tic_table+25000
1132
 mov esi,tic_table+25000
1133
 int 0x40
1133
 int 0x40
1134
 
1134
 
1135
 cmp eax,4294967295
1135
 cmp eax,4294967295
1136
 je nosuchfile
1136
 je nosuchfile
1137
 
1137
 
1138
 mov dword [filesize],eax
1138
 mov dword [filesize],eax
1139
 
1139
 
1140
 mov ebx,tic_table+9100
1140
 mov ebx,tic_table+9100
1141
 push esi edi ecx eax
1141
 push esi edi ecx eax
1142
 mov esi,ebx
1142
 mov esi,ebx
1143
 
1143
 
1144
 mov edi,tic_table+9100
1144
 mov edi,tic_table+9100
1145
 mov ecx,12
1145
 mov ecx,12
1146
strup4:
1146
strup4:
1147
 mov al,[esi]
1147
 mov al,[esi]
1148
 cmp al,'A'
1148
 cmp al,'A'
1149
 jb @f
1149
 jb @f
1150
 cmp al,'z'
1150
 cmp al,'z'
1151
 ja @f
1151
 ja @f
1152
 cmp al,'a'
1152
 cmp al,'a'
1153
 jb @f
1153
 jb @f
1154
 add al,-0x20
1154
 add al,-0x20
1155
@@:
1155
@@:
1156
 mov [edi],al
1156
 mov [edi],al
1157
 inc esi
1157
 inc esi
1158
 inc edi
1158
 inc edi
1159
 dec ecx
1159
 dec ecx
1160
 jnz strup4
1160
 jnz strup4
1161
 pop eax ecx edi esi
1161
 pop eax ecx edi esi
1162
 
1162
 
1163
 mov ebx,dword [f1len]
1163
 mov ebx,dword [f1len]
1164
 mov ecx,dword [count]
1164
 mov ecx,dword [count]
1165
 sub ecx,ebx
1165
 sub ecx,ebx
1166
 
1166
 
1167
 mov dword [f2len],ecx
1167
 mov dword [f2len],ecx
1168
 
1168
 
1169
loopcp2:
1169
loopcp2:
1170
 cmp byte [tic_table+9100+ecx],'.'
1170
 cmp byte [tic_table+9100+ecx],'.'
1171
 je chdotcp2
1171
 je chdotcp2
1172
 
1172
 
1173
 loop loopcp2
1173
 loop loopcp2
1174
 
1174
 
1175
 jmp chnodotcp2
1175
 jmp chnodotcp2
1176
 
1176
 
1177
chdotcp2:
1177
chdotcp2:
1178
 mov ebx,dword [f2len]
1178
 mov ebx,dword [f2len]
1179
 
1179
 
1180
 cld
1180
 cld
1181
 mov ecx,4
1181
 mov ecx,4
1182
 mov edi,tic_table+9100
1182
 mov edi,tic_table+9100
1183
 add edi,ebx
1183
 add edi,ebx
1184
 mov esi,dzero
1184
 mov esi,dzero
1185
 rep movsb
1185
 rep movsb
1186
 
1186
 
1187
 jmp gocp2
1187
 jmp gocp2
1188
 
1188
 
1189
chnodotcp2:
1189
chnodotcp2:
1190
 mov ebx,dword [f2len]
1190
 mov ebx,dword [f2len]
1191
 
1191
 
1192
 mov edi,tic_table+9100
1192
 mov edi,tic_table+9100
1193
 add edi,ebx
1193
 add edi,ebx
1194
 mov esi,ddot
1194
 mov esi,ddot
1195
 movsb
1195
 movsb
1196
 
1196
 
1197
 inc ebx
1197
 inc ebx
1198
 
1198
 
1199
 cld
1199
 cld
1200
 mov ecx,3
1200
 mov ecx,3
1201
 mov edi,tic_table+9100
1201
 mov edi,tic_table+9100
1202
 add edi,ebx
1202
 add edi,ebx
1203
 mov esi,fill3
1203
 mov esi,fill3
1204
 rep movsb
1204
 rep movsb
1205
 
1205
 
1206
gocp2:
1206
gocp2:
1207
 mov eax,6
1207
 mov eax,6
1208
 mov ebx,tic_table+9100
1208
 mov ebx,tic_table+9100
1209
 mov ecx,0
1209
 mov ecx,0
1210
 mov edx,-1
1210
 mov edx,-1
1211
 mov esi,tic_table+25000
1211
 mov esi,tic_table+25000
1212
 int 0x40
1212
 int 0x40
1213
 
1213
 
1214
 cmp eax,4294967295
1214
 cmp eax,4294967295
1215
 jne alreadyexist
1215
 jne alreadyexist
1216
 
1216
 
1217
 mov eax,33
1217
 mov eax,33
1218
 mov ebx,tic_table+9100
1218
 mov ebx,tic_table+9100
1219
 mov ecx,tic_table+25000
1219
 mov ecx,tic_table+25000
1220
 mov edx,dword [filesize]
1220
 mov edx,dword [filesize]
1221
 mov esi,0
1221
 mov esi,0
1222
 int 0x40
1222
 int 0x40
1223
 
1223
 
1224
 cmp eax,0
1224
 cmp eax,0
1225
 jne no_ok
1225
 jne no_ok
1226
 
1226
 
1227
 mov eax,6
1227
 mov eax,6
1228
 mov ebx,tic_table+9100
1228
 mov ebx,tic_table+9100
1229
 mov ecx,0
1229
 mov ecx,0
1230
 mov edx,-1
1230
 mov edx,-1
1231
 mov esi,tic_table+25000
1231
 mov esi,tic_table+25000
1232
 int 0x40
1232
 int 0x40
1233
 
1233
 
1234
 cmp eax,4294967295
1234
 cmp eax,4294967295
1235
 je no_ok
1235
 je no_ok
1236
 
1236
 
1237
 call newline
1237
 call newline
1238
 mov edx,mess11
1238
 mov edx,mess11
1239
 call printf
1239
 call printf
1240
 jmp cp_end
1240
 jmp cp_end
1241
 
1241
 
1242
no_ok:
1242
no_ok:
1243
 call newline
1243
 call newline
1244
 mov edx,mess12
1244
 mov edx,mess12
1245
 call printf
1245
 call printf
1246
 
1246
 
1247
cp_end:
1247
cp_end:
1248
 add dword [count],3
1248
 add dword [count],3
1249
 
1249
 
1250
 cmp byte [callp],1
1250
 cmp byte [callp],1
1251
 je go
1251
 je go
1252
 
1252
 
1253
 jmp ecmd
1253
 jmp ecmd
1254
 
1254
 
1255
alreadyexist:
1255
alreadyexist:
1256
 add dword [count],3
1256
 add dword [count],3
1257
 call newline
1257
 call newline
1258
 mov edx,mess13
1258
 mov edx,mess13
1259
 call printf
1259
 call printf
1260
 
1260
 
1261
 cmp byte [callp],1
1261
 cmp byte [callp],1
1262
 je go
1262
 je go
1263
 
1263
 
1264
 jmp ecmd
1264
 jmp ecmd
1265
 
1265
 
1266
rn:
1266
rn:
1267
 cmp byte [callp],1
1267
 cmp byte [callp],1
1268
 je gonext11
1268
 je gonext11
1269
 call clearsum
1269
 call clearsum
1270
gonext11:
1270
gonext11:
1271
 sub dword [count],3
1271
 sub dword [count],3
1272
 
1272
 
1273
 cld
1273
 cld
1274
 mov ecx,dword [count]
1274
 mov ecx,dword [count]
1275
 mov edi,tic_table+400
1275
 mov edi,tic_table+400
1276
 mov esi,tic_table+600
1276
 mov esi,tic_table+600
1277
 add esi,3
1277
 add esi,3
1278
 rep movsb
1278
 rep movsb
1279
 
1279
 
1280
 mov ecx,12
1280
 mov ecx,12
1281
loop51:
1281
loop51:
1282
 push ecx
1282
 push ecx
1283
 cmp byte [tic_table+400+ecx],'+'
1283
 cmp byte [tic_table+400+ecx],'+'
1284
 je file3
1284
 je file3
1285
 
1285
 
1286
 pop ecx
1286
 pop ecx
1287
 loop loop51
1287
 loop loop51
1288
 
1288
 
1289
 add dword [count],3
1289
 add dword [count],3
1290
 jmp nparam4
1290
 jmp nparam4
1291
 
1291
 
1292
file3:
1292
file3:
1293
 mov dword [f1len],ecx
1293
 mov dword [f1len],ecx
1294
 
1294
 
1295
 inc ecx
1295
 inc ecx
1296
 mov ebx,ecx
1296
 mov ebx,ecx
1297
 cld
1297
 cld
1298
 mov edi,tic_table+9000
1298
 mov edi,tic_table+9000
1299
 mov esi,tic_table+400
1299
 mov esi,tic_table+400
1300
 rep movsb
1300
 rep movsb
1301
 
1301
 
1302
 mov ecx,12
1302
 mov ecx,12
1303
 mov edi,tic_table+9100
1303
 mov edi,tic_table+9100
1304
 mov esi,tic_table+400
1304
 mov esi,tic_table+400
1305
 add esi,ebx
1305
 add esi,ebx
1306
 rep movsb
1306
 rep movsb
1307
 
1307
 
1308
 mov ebx,tic_table+9000
1308
 mov ebx,tic_table+9000
1309
 push esi edi ecx eax
1309
 push esi edi ecx eax
1310
 mov esi,ebx
1310
 mov esi,ebx
1311
 
1311
 
1312
 mov edi,tic_table+9000
1312
 mov edi,tic_table+9000
1313
 mov ecx,12
1313
 mov ecx,12
1314
strup5:
1314
strup5:
1315
 mov al,[esi]
1315
 mov al,[esi]
1316
 cmp al,'A'
1316
 cmp al,'A'
1317
 jb @f
1317
 jb @f
1318
 cmp al,'z'
1318
 cmp al,'z'
1319
 ja @f
1319
 ja @f
1320
 cmp al,'a'
1320
 cmp al,'a'
1321
 jb @f
1321
 jb @f
1322
 add al,-0x20
1322
 add al,-0x20
1323
@@:
1323
@@:
1324
 mov [edi],al
1324
 mov [edi],al
1325
 inc esi
1325
 inc esi
1326
 inc edi
1326
 inc edi
1327
 dec ecx
1327
 dec ecx
1328
 jnz strup5
1328
 jnz strup5
1329
 pop eax ecx edi esi
1329
 pop eax ecx edi esi
1330
 
1330
 
1331
 mov ecx,dword [f1len]
1331
 mov ecx,dword [f1len]
1332
 
1332
 
1333
looprn:
1333
looprn:
1334
 cmp byte [tic_table+9000+ecx],'.'
1334
 cmp byte [tic_table+9000+ecx],'.'
1335
 je chdotrn
1335
 je chdotrn
1336
 
1336
 
1337
 loop looprn
1337
 loop looprn
1338
 
1338
 
1339
 jmp chnodotrn
1339
 jmp chnodotrn
1340
 
1340
 
1341
chdotrn:
1341
chdotrn:
1342
 mov ebx,dword [f1len]
1342
 mov ebx,dword [f1len]
1343
 
1343
 
1344
 cld
1344
 cld
1345
 mov ecx,4
1345
 mov ecx,4
1346
 mov edi,tic_table+9000
1346
 mov edi,tic_table+9000
1347
 add edi,ebx
1347
 add edi,ebx
1348
 mov esi,dzero
1348
 mov esi,dzero
1349
 rep movsb
1349
 rep movsb
1350
 
1350
 
1351
 jmp gorn1
1351
 jmp gorn1
1352
 
1352
 
1353
chnodotrn:
1353
chnodotrn:
1354
 mov ebx,dword [f1len]
1354
 mov ebx,dword [f1len]
1355
 
1355
 
1356
 mov edi,tic_table+9000
1356
 mov edi,tic_table+9000
1357
 add edi,ebx
1357
 add edi,ebx
1358
 mov esi,ddot
1358
 mov esi,ddot
1359
 movsb
1359
 movsb
1360
 
1360
 
1361
 inc ebx
1361
 inc ebx
1362
 
1362
 
1363
 cld
1363
 cld
1364
 mov ecx,3
1364
 mov ecx,3
1365
 mov edi,tic_table+9000
1365
 mov edi,tic_table+9000
1366
 add edi,ebx
1366
 add edi,ebx
1367
 mov esi,fill3
1367
 mov esi,fill3
1368
 rep movsb
1368
 rep movsb
1369
 
1369
 
1370
gorn1:
1370
gorn1:
1371
 mov eax,6
1371
 mov eax,6
1372
 mov ebx,tic_table+9000
1372
 mov ebx,tic_table+9000
1373
 mov ecx,0
1373
 mov ecx,0
1374
 mov edx,-1
1374
 mov edx,-1
1375
 mov esi,tic_table+25000
1375
 mov esi,tic_table+25000
1376
 int 0x40
1376
 int 0x40
1377
 
1377
 
1378
 cmp eax,4294967295
1378
 cmp eax,4294967295
1379
 je nosuchfile
1379
 je nosuchfile
1380
 
1380
 
1381
 mov ebx,tic_table+9100
1381
 mov ebx,tic_table+9100
1382
 push esi edi ecx eax
1382
 push esi edi ecx eax
1383
 mov esi,ebx
1383
 mov esi,ebx
1384
 
1384
 
1385
 mov edi,tic_table+9100
1385
 mov edi,tic_table+9100
1386
 mov ecx,12
1386
 mov ecx,12
1387
strup6:
1387
strup6:
1388
 mov al,[esi]
1388
 mov al,[esi]
1389
 cmp al,'A'
1389
 cmp al,'A'
1390
 jb @f
1390
 jb @f
1391
 cmp al,'z'
1391
 cmp al,'z'
1392
 ja @f
1392
 ja @f
1393
 cmp al,'a'
1393
 cmp al,'a'
1394
 jb @f
1394
 jb @f
1395
 add al,-0x20
1395
 add al,-0x20
1396
@@:
1396
@@:
1397
 mov [edi],al
1397
 mov [edi],al
1398
 inc esi
1398
 inc esi
1399
 inc edi
1399
 inc edi
1400
 dec ecx
1400
 dec ecx
1401
 jnz strup6
1401
 jnz strup6
1402
 pop eax ecx edi esi
1402
 pop eax ecx edi esi
1403
 
1403
 
1404
 mov ebx,dword [f1len]
1404
 mov ebx,dword [f1len]
1405
 mov ecx,dword [count]
1405
 mov ecx,dword [count]
1406
 sub ecx,ebx
1406
 sub ecx,ebx
1407
 
1407
 
1408
 mov dword [f2len],ecx
1408
 mov dword [f2len],ecx
1409
 
1409
 
1410
looprn2:
1410
looprn2:
1411
 cmp byte [tic_table+9100+ecx],'.'
1411
 cmp byte [tic_table+9100+ecx],'.'
1412
 je chdotrn2
1412
 je chdotrn2
1413
 
1413
 
1414
 loop looprn2
1414
 loop looprn2
1415
 
1415
 
1416
 jmp chnodotrn2
1416
 jmp chnodotrn2
1417
 
1417
 
1418
chdotrn2:
1418
chdotrn2:
1419
 mov ebx,dword [f2len]
1419
 mov ebx,dword [f2len]
1420
 
1420
 
1421
 cld
1421
 cld
1422
 mov ecx,4
1422
 mov ecx,4
1423
 mov edi,tic_table+9100
1423
 mov edi,tic_table+9100
1424
 add edi,ebx
1424
 add edi,ebx
1425
 mov esi,dzero
1425
 mov esi,dzero
1426
 rep movsb
1426
 rep movsb
1427
 
1427
 
1428
 jmp gorn2
1428
 jmp gorn2
1429
 
1429
 
1430
chnodotrn2:
1430
chnodotrn2:
1431
 mov ebx,dword [f2len]
1431
 mov ebx,dword [f2len]
1432
 
1432
 
1433
 mov edi,tic_table+9100
1433
 mov edi,tic_table+9100
1434
 add edi,ebx
1434
 add edi,ebx
1435
 mov esi,ddot
1435
 mov esi,ddot
1436
 movsb
1436
 movsb
1437
 
1437
 
1438
 inc ebx
1438
 inc ebx
1439
 
1439
 
1440
 cld
1440
 cld
1441
 mov ecx,3
1441
 mov ecx,3
1442
 mov edi,tic_table+9100
1442
 mov edi,tic_table+9100
1443
 add edi,ebx
1443
 add edi,ebx
1444
 mov esi,fill3
1444
 mov esi,fill3
1445
 rep movsb
1445
 rep movsb
1446
 
1446
 
1447
gorn2:
1447
gorn2:
1448
 mov eax,6
1448
 mov eax,6
1449
 mov ebx,tic_table+9100
1449
 mov ebx,tic_table+9100
1450
 mov ecx,0
1450
 mov ecx,0
1451
 mov edx,-1
1451
 mov edx,-1
1452
 mov esi,tic_table+25000
1452
 mov esi,tic_table+25000
1453
 int 0x40
1453
 int 0x40
1454
 
1454
 
1455
 cmp eax,4294967295
1455
 cmp eax,4294967295
1456
 jne alreadyexist
1456
 jne alreadyexist
1457
 
1457
 
1458
 mov eax,6
1458
 mov eax,6
1459
 mov ebx,tic_table+9000
1459
 mov ebx,tic_table+9000
1460
 mov ecx,0
1460
 mov ecx,0
1461
 mov edx,-1
1461
 mov edx,-1
1462
 mov esi,tic_table+25000
1462
 mov esi,tic_table+25000
1463
 int 0x40
1463
 int 0x40
1464
 
1464
 
1465
 mov dword [filesize],eax
1465
 mov dword [filesize],eax
1466
 
1466
 
1467
 mov eax,33
1467
 mov eax,33
1468
 mov ebx,tic_table+9100
1468
 mov ebx,tic_table+9100
1469
 mov ecx,tic_table+25000
1469
 mov ecx,tic_table+25000
1470
 mov edx,dword [filesize]
1470
 mov edx,dword [filesize]
1471
 mov esi,0
1471
 mov esi,0
1472
 int 0x40
1472
 int 0x40
1473
 
1473
 
1474
 cmp eax,0
1474
 cmp eax,0
1475
 jne no_ok1
1475
 jne no_ok1
1476
 
1476
 
1477
 mov eax,6
1477
 mov eax,6
1478
 mov ebx,tic_table+9100
1478
 mov ebx,tic_table+9100
1479
 mov ecx,0
1479
 mov ecx,0
1480
 mov edx,-1
1480
 mov edx,-1
1481
 mov esi,tic_table+25000
1481
 mov esi,tic_table+25000
1482
 int 0x40
1482
 int 0x40
1483
 
1483
 
1484
 cmp eax,4294967295
1484
 cmp eax,4294967295
1485
 je no_ok1
1485
 je no_ok1
1486
 
1486
 
1487
 mov eax,32
1487
 mov eax,32
1488
 mov ebx,tic_table+9000
1488
 mov ebx,tic_table+9000
1489
 int 0x40
1489
 int 0x40
1490
 
1490
 
1491
 call newline
1491
 call newline
1492
 mov edx,mess14
1492
 mov edx,mess14
1493
 call printf
1493
 call printf
1494
 jmp rn_end
1494
 jmp rn_end
1495
 
1495
 
1496
no_ok1:
1496
no_ok1:
1497
 call newline
1497
 call newline
1498
 mov edx,mess15
1498
 mov edx,mess15
1499
 call printf
1499
 call printf
1500
 
1500
 
1501
rn_end:
1501
rn_end:
1502
 add dword [count],3
1502
 add dword [count],3
1503
 
1503
 
1504
 cmp byte [callp],1
1504
 cmp byte [callp],1
1505
 je go
1505
 je go
1506
 
1506
 
1507
 jmp ecmd
1507
 jmp ecmd
1508
 
1508
 
1509
del:
1509
del:
1510
 cmp byte [callp],1
1510
 cmp byte [callp],1
1511
 je gonext12
1511
 je gonext12
1512
 call clearsum
1512
 call clearsum
1513
gonext12:
1513
gonext12:
1514
 sub dword [count],4
1514
 sub dword [count],4
1515
 
1515
 
1516
 cld
1516
 cld
1517
 mov ecx,dword [count]
1517
 mov ecx,dword [count]
1518
 mov edi,tic_table+400
1518
 mov edi,tic_table+400
1519
 mov esi,tic_table+600
1519
 mov esi,tic_table+600
1520
 add esi,4
1520
 add esi,4
1521
 rep movsb
1521
 rep movsb
1522
 
1522
 
1523
 mov ebx,tic_table+400
1523
 mov ebx,tic_table+400
1524
 push esi edi ecx eax
1524
 push esi edi ecx eax
1525
 mov esi,ebx
1525
 mov esi,ebx
1526
 
1526
 
1527
 mov edi,tic_table+400
1527
 mov edi,tic_table+400
1528
 mov ecx,70
1528
 mov ecx,70
1529
strup1:
1529
strup1:
1530
 mov al,[esi]
1530
 mov al,[esi]
1531
 cmp al,'A'
1531
 cmp al,'A'
1532
 jb @f
1532
 jb @f
1533
 cmp al,'z'
1533
 cmp al,'z'
1534
 ja @f
1534
 ja @f
1535
 cmp al,'a'
1535
 cmp al,'a'
1536
 jb @f
1536
 jb @f
1537
 add al,-0x20
1537
 add al,-0x20
1538
@@:
1538
@@:
1539
 mov [edi],al
1539
 mov [edi],al
1540
 inc esi
1540
 inc esi
1541
 inc edi
1541
 inc edi
1542
 dec ecx
1542
 dec ecx
1543
 jnz strup1
1543
 jnz strup1
1544
 pop eax ecx edi esi
1544
 pop eax ecx edi esi
1545
 
1545
 
1546
 mov ecx,dword [count]
1546
 mov ecx,dword [count]
1547
 
1547
 
1548
loopdel:
1548
loopdel:
1549
 cmp byte [tic_table+400+ecx],'.'
1549
 cmp byte [tic_table+400+ecx],'.'
1550
 je chdotdel
1550
 je chdotdel
1551
 
1551
 
1552
 loop loopdel
1552
 loop loopdel
1553
 
1553
 
1554
 jmp chnodotdel
1554
 jmp chnodotdel
1555
 
1555
 
1556
chdotdel:
1556
chdotdel:
1557
 mov ebx,dword [count]
1557
 mov ebx,dword [count]
1558
 
1558
 
1559
 cld
1559
 cld
1560
 mov ecx,4
1560
 mov ecx,4
1561
 mov edi,tic_table+400
1561
 mov edi,tic_table+400
1562
 add edi,ebx
1562
 add edi,ebx
1563
 mov esi,dzero
1563
 mov esi,dzero
1564
 rep movsb
1564
 rep movsb
1565
 
1565
 
1566
 jmp godel
1566
 jmp godel
1567
 
1567
 
1568
chnodotdel:
1568
chnodotdel:
1569
 mov ebx,dword [count]
1569
 mov ebx,dword [count]
1570
 
1570
 
1571
 mov edi,tic_table+400
1571
 mov edi,tic_table+400
1572
 add edi,ebx
1572
 add edi,ebx
1573
 mov esi,ddot
1573
 mov esi,ddot
1574
 movsb
1574
 movsb
1575
 
1575
 
1576
 inc ebx
1576
 inc ebx
1577
 
1577
 
1578
 cld
1578
 cld
1579
 mov ecx,3
1579
 mov ecx,3
1580
 mov edi,tic_table+400
1580
 mov edi,tic_table+400
1581
 add edi,ebx
1581
 add edi,ebx
1582
 mov esi,fill3
1582
 mov esi,fill3
1583
 rep movsb
1583
 rep movsb
1584
 
1584
 
1585
godel:
1585
godel:
1586
 mov eax,6
1586
 mov eax,6
1587
 mov ebx,tic_table+400
1587
 mov ebx,tic_table+400
1588
 mov ecx,0
1588
 mov ecx,0
1589
 mov edx,-1
1589
 mov edx,-1
1590
 mov esi,tic_table+25000
1590
 mov esi,tic_table+25000
1591
 int 0x40
1591
 int 0x40
1592
 
1592
 
1593
 cmp eax,4294967295
1593
 cmp eax,4294967295
1594
 je nosuchfile2
1594
 je nosuchfile2
1595
 
1595
 
1596
 mov eax,32
1596
 mov eax,32
1597
 mov ebx,tic_table+400
1597
 mov ebx,tic_table+400
1598
 int 0x40
1598
 int 0x40
1599
 
1599
 
1600
 call newline
1600
 call newline
1601
 mov edx,mess6
1601
 mov edx,mess6
1602
 call printf
1602
 call printf
1603
 
1603
 
1604
 add dword [count],4
1604
 add dword [count],4
1605
 
1605
 
1606
del_end:
1606
del_end:
1607
 add dword [count],4
1607
 add dword [count],4
1608
 
1608
 
1609
 cmp byte [callp],1
1609
 cmp byte [callp],1
1610
 je go
1610
 je go
1611
 
1611
 
1612
 jmp ecmd
1612
 jmp ecmd
1613
 
1613
 
1614
nosuchfile:
1614
nosuchfile:
1615
 add dword [count],3
1615
 add dword [count],3
1616
 call newline
1616
 call newline
1617
 mov edx,mess7
1617
 mov edx,mess7
1618
 call printf
1618
 call printf
1619
 
1619
 
1620
 cmp byte [callp],0
1620
 cmp byte [callp],0
1621
 je ecmd
1621
 je ecmd
1622
 
1622
 
1623
 jmp go
1623
 jmp go
1624
 
1624
 
1625
nosuchfile2:
1625
nosuchfile2:
1626
 add dword [count],4
1626
 add dword [count],4
1627
 call newline
1627
 call newline
1628
 mov edx,mess7
1628
 mov edx,mess7
1629
 call printf
1629
 call printf
1630
 
1630
 
1631
 cmp byte [callp],1
1631
 cmp byte [callp],1
1632
 je go
1632
 je go
1633
 
1633
 
1634
 jmp ecmd
1634
 jmp ecmd
1635
 
1635
 
1636
nosuchfile3:
1636
nosuchfile3:
1637
 inc dword [count]
1637
 inc dword [count]
1638
 call newline
1638
 call newline
1639
 mov edx,mess7
1639
 mov edx,mess7
1640
 call printf
1640
 call printf
1641
 jmp ecmd
1641
 jmp ecmd
1642
 
1642
 
1643
autoexec:
1643
autoexec:
1644
 mov eax,6
1644
 mov eax,6
1645
 mov ebx,autoexfile
1645
 mov ebx,autoexfile
1646
 mov ecx,0
1646
 mov ecx,0
1647
 mov edx,-1
1647
 mov edx,-1
1648
 mov esi,tic_table+15000
1648
 mov esi,tic_table+15000
1649
 int 0x40
1649
 int 0x40
1650
 
1650
 
1651
 cmp eax,4294967295
1651
 cmp eax,4294967295
1652
 je noaxfile
1652
 je noaxfile
1653
 
1653
 
1654
 sub dword [linen],81
1654
 sub dword [linen],81
1655
 sub dword [xpos],10
1655
 sub dword [xpos],10
1656
 dec dword [lpress]
1656
 dec dword [lpress]
1657
 
1657
 
1658
 jmp autolabel
1658
 jmp autolabel
1659
 
1659
 
1660
noaxfile:
1660
noaxfile:
1661
 ret
1661
 ret
1662
 
1662
 
1663
command:
1663
command:
1664
 call clearsum
1664
 call clearsum
1665
 dec dword [count]
1665
 dec dword [count]
1666
 
1666
 
1667
 cld
1667
 cld
1668
 mov ecx,dword [count]
1668
 mov ecx,dword [count]
1669
 mov edi,filename
1669
 mov edi,filename
1670
 mov esi,tic_table+601
1670
 mov esi,tic_table+601
1671
 rep movsb
1671
 rep movsb
1672
 
1672
 
1673
 mov ebx,filename
1673
 mov ebx,filename
1674
 push esi edi ecx eax
1674
 push esi edi ecx eax
1675
 mov esi,ebx
1675
 mov esi,ebx
1676
 
1676
 
1677
 mov edi,filename
1677
 mov edi,filename
1678
 mov ecx,12
1678
 mov ecx,12
1679
strup7:
1679
strup7:
1680
 mov al,[esi]
1680
 mov al,[esi]
1681
 cmp al,'A'
1681
 cmp al,'A'
1682
 jb @f
1682
 jb @f
1683
 cmp al,'z'
1683
 cmp al,'z'
1684
 ja @f
1684
 ja @f
1685
 cmp al,'a'
1685
 cmp al,'a'
1686
 jb @f
1686
 jb @f
1687
 add al,-0x20
1687
 add al,-0x20
1688
@@:
1688
@@:
1689
 mov [edi],al
1689
 mov [edi],al
1690
 inc esi
1690
 inc esi
1691
 inc edi
1691
 inc edi
1692
 dec ecx
1692
 dec ecx
1693
 jnz strup7
1693
 jnz strup7
1694
 pop eax ecx edi esi
1694
 pop eax ecx edi esi
1695
 
1695
 
1696
 cld
1696
 cld
1697
 mov ecx,4
1697
 mov ecx,4
1698
 mov edi,filename+8
1698
 mov edi,filename+8
1699
 mov esi,dcmd
1699
 mov esi,dcmd
1700
 rep movsb
1700
 rep movsb
1701
 
1701
 
1702
 mov eax,6
1702
 mov eax,6
1703
 mov ebx,filename
1703
 mov ebx,filename
1704
 mov ecx,0
1704
 mov ecx,0
1705
 mov edx,-1
1705
 mov edx,-1
1706
 mov esi,tic_table+15000
1706
 mov esi,tic_table+15000
1707
 int 0x40
1707
 int 0x40
1708
 
1708
 
1709
 cmp eax,4294967295
1709
 cmp eax,4294967295
1710
 je nosuchfile3
1710
 je nosuchfile3
1711
 
1711
 
1712
autolabel:
1712
autolabel:
1713
 mov dword [filesize2],eax
1713
 mov dword [filesize2],eax
1714
 mov byte [callp],1
1714
 mov byte [callp],1
1715
 
1715
 
1716
go:
1716
go:
1717
 call clearcmd
1717
 call clearcmd
1718
 
1718
 
1719
gonext:
1719
gonext:
1720
 cmp dword [filesize2],0
1720
 cmp dword [filesize2],0
1721
 je ecmd3
1721
 je ecmd3
1722
 
1722
 
1723
 mov ebx,tic_table
1723
 mov ebx,tic_table
1724
 add ebx,dword [readcnt]
1724
 add ebx,dword [readcnt]
1725
 cmp byte [ebx],13
1725
 cmp byte [ebx],13
1726
 je read
1726
 je read
1727
 
1727
 
1728
 inc dword [readcnt]
1728
 inc dword [readcnt]
1729
 inc dword [readcnt2]
1729
 inc dword [readcnt2]
1730
 dec dword [filesize2]
1730
 dec dword [filesize2]
1731
 
1731
 
1732
 jmp gonext
1732
 jmp gonext
1733
 
1733
 
1734
read:
1734
read:
1735
 mov ecx,dword [readcnt2]
1735
 mov ecx,dword [readcnt2]
1736
 mov ebx,0
1736
 mov ebx,0
1737
 mov edx,dword [readcnt]
1737
 mov edx,dword [readcnt]
1738
 sub edx,dword [readcnt2]
1738
 sub edx,dword [readcnt2]
1739
loop60:
1739
loop60:
1740
 push ecx
1740
 push ecx
1741
 mov edi,tic_table+600
1741
 mov edi,tic_table+600
1742
 add edi,ebx
1742
 add edi,ebx
1743
 mov esi,tic_table
1743
 mov esi,tic_table
1744
 add esi,edx
1744
 add esi,edx
1745
 movsb
1745
 movsb
1746
 
1746
 
1747
 inc ebx
1747
 inc ebx
1748
 inc edx
1748
 inc edx
1749
 
1749
 
1750
 pop ecx
1750
 pop ecx
1751
 loop loop60
1751
 loop loop60
1752
 
1752
 
1753
 mov eax,dword [readcnt2]
1753
 mov eax,dword [readcnt2]
1754
 mov dword [count],eax
1754
 mov dword [count],eax
1755
 
1755
 
1756
 mov dword [readcnt2],0
1756
 mov dword [readcnt2],0
1757
 add dword [readcnt],2
1757
 add dword [readcnt],2
1758
 
1758
 
1759
 jmp checkcmd
1759
 jmp checkcmd
1760
 
1760
 
1761
decnumb:
1761
decnumb:
1762
 cmp dword [fnumb],4
1762
 cmp dword [fnumb],4
1763
 je go1
1763
 je go1
1764
 
1764
 
1765
 call divide
1765
 call divide
1766
 mov dword [n8],edx
1766
 mov dword [n8],edx
1767
 mov ebx,eax
1767
 mov ebx,eax
1768
 call divide
1768
 call divide
1769
 mov dword [n7],edx
1769
 mov dword [n7],edx
1770
 mov ebx,eax
1770
 mov ebx,eax
1771
 call divide
1771
 call divide
1772
 mov dword [n6],edx
1772
 mov dword [n6],edx
1773
 mov ebx,eax
1773
 mov ebx,eax
1774
 call divide
1774
 call divide
1775
 mov dword [n5],edx
1775
 mov dword [n5],edx
1776
 mov ebx,eax
1776
 mov ebx,eax
1777
 
1777
 
1778
go1:
1778
go1:
1779
 call divide
1779
 call divide
1780
 mov dword [n4],edx
1780
 mov dword [n4],edx
1781
 mov ebx,eax
1781
 mov ebx,eax
1782
 call divide
1782
 call divide
1783
 mov dword [n3],edx
1783
 mov dword [n3],edx
1784
 mov ebx,eax
1784
 mov ebx,eax
1785
 call divide
1785
 call divide
1786
 mov dword [n2],edx
1786
 mov dword [n2],edx
1787
 mov ebx,eax
1787
 mov ebx,eax
1788
 call divide
1788
 call divide
1789
 mov dword [n1],edx
1789
 mov dword [n1],edx
1790
 
1790
 
1791
 add dword [n1],48
1791
 add dword [n1],48
1792
 add dword [n2],48
1792
 add dword [n2],48
1793
 add dword [n3],48
1793
 add dword [n3],48
1794
 add dword [n4],48
1794
 add dword [n4],48
1795
 
1795
 
1796
 cmp dword [fnumb],4
1796
 cmp dword [fnumb],4
1797
 je go2
1797
 je go2
1798
 
1798
 
1799
 add dword [n5],48
1799
 add dword [n5],48
1800
 add dword [n6],48
1800
 add dword [n6],48
1801
 add dword [n7],48
1801
 add dword [n7],48
1802
 add dword [n8],48
1802
 add dword [n8],48
1803
 
1803
 
1804
go2:
1804
go2:
1805
 mov edi,tic_table+200
1805
 mov edi,tic_table+200
1806
 mov esi,n1
1806
 mov esi,n1
1807
 movsb
1807
 movsb
1808
 mov edi,tic_table+201
1808
 mov edi,tic_table+201
1809
 mov esi,n2
1809
 mov esi,n2
1810
 movsb
1810
 movsb
1811
 mov edi,tic_table+202
1811
 mov edi,tic_table+202
1812
 mov esi,n3
1812
 mov esi,n3
1813
 movsb
1813
 movsb
1814
 mov edi,tic_table+203
1814
 mov edi,tic_table+203
1815
 mov esi,n4
1815
 mov esi,n4
1816
 movsb
1816
 movsb
1817
 
1817
 
1818
 cmp dword [fnumb],4
1818
 cmp dword [fnumb],4
1819
 je go4
1819
 je go4
1820
 
1820
 
1821
 mov edi,tic_table+204
1821
 mov edi,tic_table+204
1822
 mov esi,n5
1822
 mov esi,n5
1823
 movsb
1823
 movsb
1824
 mov edi,tic_table+205
1824
 mov edi,tic_table+205
1825
 mov esi,n6
1825
 mov esi,n6
1826
 movsb
1826
 movsb
1827
 mov edi,tic_table+206
1827
 mov edi,tic_table+206
1828
 mov esi,n7
1828
 mov esi,n7
1829
 movsb
1829
 movsb
1830
 mov edi,tic_table+207
1830
 mov edi,tic_table+207
1831
 mov esi,n8
1831
 mov esi,n8
1832
 movsb
1832
 movsb
1833
 
1833
 
1834
go4:
1834
go4:
1835
 mov eax,4
1835
 mov eax,4
1836
 mov ebx,[ypos]
1836
 mov ebx,[ypos]
1837
 shl ebx,16
1837
 shl ebx,16
1838
 add ebx,[xpos]
1838
 add ebx,[xpos]
1839
 mov ecx,0x00ddeeff
1839
 mov ecx,0x00ddeeff
1840
 mov edx,tic_table+200
1840
 mov edx,tic_table+200
1841
 mov esi,dword [fnumb]
1841
 mov esi,dword [fnumb]
1842
 int 0x40
1842
 int 0x40
1843
 
1843
 
1844
 ret
1844
 ret
1845
 
1845
 
1846
divide:
1846
divide:
1847
 mov eax,ebx
1847
 mov eax,ebx
1848
 xor edx,edx
1848
 xor edx,edx
1849
 mov ecx,10
1849
 mov ecx,10
1850
 div ecx
1850
 div ecx
1851
 ret
1851
 ret
1852
 
1852
 
1853
kill:
1853
kill:
1854
 mov eax,0
1854
 mov eax,0
1855
 mov ebx,0
1855
 mov ebx,0
1856
 mov ecx,0
1856
 mov ecx,0
1857
 mov edx,0
1857
 mov edx,0
1858
 
1858
 
1859
 mov al, byte [tic_table+608]
1859
 mov al, byte [tic_table+608]
1860
 mov bl, byte [tic_table+607]
1860
 mov bl, byte [tic_table+607]
1861
 mov cl, byte [tic_table+606]
1861
 mov cl, byte [tic_table+606]
1862
 mov dl, byte [tic_table+605]
1862
 mov dl, byte [tic_table+605]
1863
 
1863
 
1864
 sub al,48
1864
 sub al,48
1865
 sub bl,48
1865
 sub bl,48
1866
 sub cl,48
1866
 sub cl,48
1867
 sub dl,48
1867
 sub dl,48
1868
 
1868
 
1869
 imul ebx,10
1869
 imul ebx,10
1870
 imul ecx,100
1870
 imul ecx,100
1871
 imul edx,1000
1871
 imul edx,1000
1872
 
1872
 
1873
 mov esi,0
1873
 mov esi,0
1874
 add esi,eax
1874
 add esi,eax
1875
 add esi,ebx
1875
 add esi,ebx
1876
 add esi,ecx
1876
 add esi,ecx
1877
 add esi,edx
1877
 add esi,edx
1878
 mov ecx,esi
1878
 mov ecx,esi
1879
 
1879
 
1880
 mov eax,9
1880
 mov eax,9
1881
 mov ebx,tic_table
1881
 mov ebx,tic_table
1882
 int 0x40
1882
 int 0x40
1883
 
1883
 
1884
 cmp eax,ecx
1884
 cmp eax,ecx
1885
 jb nosuchprocess
1885
 jb nosuchprocess
1886
 
1886
 
1887
 mov eax,18
1887
 mov eax,18
1888
 mov ebx,2
1888
 mov ebx,2
1889
 mov edx,0
1889
 mov edx,0
1890
 int 0x40
1890
 int 0x40
1891
 
1891
 
1892
 call clearsum
1892
 call clearsum
1893
 call newline
1893
 call newline
1894
 mov edx,mess3
1894
 mov edx,mess3
1895
 call printf
1895
 call printf
1896
 call newline
1896
 call newline
1897
 mov edx,mess4
1897
 mov edx,mess4
1898
 call printf
1898
 call printf
1899
 
1899
 
1900
 cmp byte [callp],1
1900
 cmp byte [callp],1
1901
 je go
1901
 je go
1902
 
1902
 
1903
 jmp ecmd
1903
 jmp ecmd
1904
 
1904
 
1905
ecmd1:
1905
ecmd1:
1906
 sub dword [xpos],10
1906
 sub dword [xpos],10
1907
 jmp ecmd
1907
 jmp ecmd
1908
 
1908
 
1909
nosuchprocess:
1909
nosuchprocess:
1910
 call clearsum
1910
 call clearsum
1911
 call newline
1911
 call newline
1912
 mov edx,mess8
1912
 mov edx,mess8
1913
 call printf
1913
 call printf
1914
 
1914
 
1915
 cmp byte [callp],1
1915
 cmp byte [callp],1
1916
 je go
1916
 je go
1917
 
1917
 
1918
 jmp ecmd
1918
 jmp ecmd
1919
 
1919
 
1920
echoeol:
1920
echoeol:
1921
 cmp byte [callp],1
1921
 cmp byte [callp],1
1922
 je gonext15
1922
 je gonext15
1923
 call clearsum
1923
 call clearsum
1924
gonext15:
1924
gonext15:
1925
 call newline
1925
 call newline
1926
 
1926
 
1927
 cmp byte [callp],1
1927
 cmp byte [callp],1
1928
 je go
1928
 je go
1929
 
1929
 
1930
 jmp ecmd
1930
 jmp ecmd
1931
 
1931
 
1932
echo:
1932
echo:
1933
 cmp byte [callp],1
1933
 cmp byte [callp],1
1934
 je gonext13
1934
 je gonext13
1935
 call clearsum
1935
 call clearsum
1936
gonext13:
1936
gonext13:
1937
 sub dword [count],5
1937
 sub dword [count],5
1938
 
1938
 
1939
 cld
1939
 cld
1940
 mov ecx,dword [count]
1940
 mov ecx,dword [count]
1941
 mov edi,tic_table+300
1941
 mov edi,tic_table+300
1942
 mov esi,tic_table+600
1942
 mov esi,tic_table+600
1943
 add esi,5
1943
 add esi,5
1944
 rep movsb
1944
 rep movsb
1945
 
1945
 
1946
 call newline
1946
 call newline
1947
 
1947
 
1948
 mov eax,4
1948
 mov eax,4
1949
 mov ebx,6
1949
 mov ebx,6
1950
 shl ebx,16
1950
 shl ebx,16
1951
 add ebx,[xpos]
1951
 add ebx,[xpos]
1952
 mov edx,tic_table+300
1952
 mov edx,tic_table+300
1953
 mov ecx,0x00ddeeff
1953
 mov ecx,0x00ddeeff
1954
 mov esi,dword [count]
1954
 mov esi,dword [count]
1955
 int 0x40
1955
 int 0x40
1956
 
1956
 
1957
 cld
1957
 cld
1958
 mov ecx,dword [count]
1958
 mov ecx,dword [count]
1959
 mov edi,tic_table
1959
 mov edi,tic_table
1960
 add edi,dword [linen]
1960
 add edi,dword [linen]
1961
 mov esi,tic_table+300
1961
 mov esi,tic_table+300
1962
 rep movsb
1962
 rep movsb
1963
 
1963
 
1964
 mov eax,dword [count]
1964
 mov eax,dword [count]
1965
 add dword [linen],eax
1965
 add dword [linen],eax
1966
 add dword [linel],eax
1966
 add dword [linel],eax
1967
 
1967
 
1968
 add dword [count],5
1968
 add dword [count],5
1969
 
1969
 
1970
 cmp byte [callp],1
1970
 cmp byte [callp],1
1971
 je go
1971
 je go
1972
 
1972
 
1973
 jmp ecmd
1973
 jmp ecmd
1974
 
1974
 
1975
printf:
1975
printf:
1976
 mov eax,4
1976
 mov eax,4
1977
 mov ebx,6
1977
 mov ebx,6
1978
 shl ebx,16
1978
 shl ebx,16
1979
 add ebx,[xpos]
1979
 add ebx,[xpos]
1980
 mov ecx,0x00ddeeff
1980
 mov ecx,0x00ddeeff
1981
 mov esi,45
1981
 mov esi,45
1982
 int 0x40
1982
 int 0x40
1983
 
1983
 
1984
 cld
1984
 cld
1985
 mov ecx,45
1985
 mov ecx,45
1986
 mov edi,tic_table
1986
 mov edi,tic_table
1987
 add edi,dword [linen]
1987
 add edi,dword [linen]
1988
 mov esi,edx
1988
 mov esi,edx
1989
 rep movsb
1989
 rep movsb
1990
 
1990
 
1991
 add dword [linen],46
1991
 add dword [linen],46
1992
 add dword [linel],46
1992
 add dword [linel],46
1993
 
1993
 
1994
 add dword [ypos],6
1994
 add dword [ypos],6
1995
 
1995
 
1996
 ret
1996
 ret
1997
 
1997
 
1998
printipc:
1998
printipc:
1999
 mov eax,4
1999
 mov eax,4
2000
 mov ebx,6
2000
 mov ebx,6
2001
 shl ebx,16
2001
 shl ebx,16
2002
 add ebx,[xpos]
2002
 add ebx,[xpos]
2003
 mov ecx,0x00ddeeff
2003
 mov ecx,0x00ddeeff
2004
 mov esi,79
2004
 mov esi,79
2005
 int 0x40
2005
 int 0x40
2006
 
2006
 
2007
 cld
2007
 cld
2008
 mov ecx,79
2008
 mov ecx,79
2009
 mov edi,tic_table
2009
 mov edi,tic_table
2010
 add edi,dword [linen]
2010
 add edi,dword [linen]
2011
 mov esi,edx
2011
 mov esi,edx
2012
 rep movsb
2012
 rep movsb
2013
 
2013
 
2014
 add dword [linen],80
2014
 add dword [linen],80
2015
 add dword [linel],80
2015
 add dword [linel],80
2016
 
2016
 
2017
 mov dword [ypos],480
2017
 mov dword [ypos],480
2018
 
2018
 
2019
 ret
2019
 ret
2020
 
2020
 
2021
clearcmd:
2021
clearcmd:
2022
 cld
2022
 cld
2023
 mov ecx,80
2023
 mov ecx,80
2024
 mov edi,tic_table+600
2024
 mov edi,tic_table+600
2025
 mov esi,tic_table+500
2025
 mov esi,tic_table+500
2026
 rep movsb
2026
 rep movsb
2027
 
2027
 
2028
 mov ecx,80
2028
 mov ecx,80
2029
 mov edi,tic_table+400
2029
 mov edi,tic_table+400
2030
 mov esi,tic_table+500
2030
 mov esi,tic_table+500
2031
 rep movsb
2031
 rep movsb
2032
 
2032
 
2033
 mov ecx,81
2033
 mov ecx,81
2034
 mov edi,tic_table+800
2034
 mov edi,tic_table+800
2035
 mov [esi],byte 'x'
2035
 mov [esi],byte 'x'
2036
 rep movsb
2036
 rep movsb
2037
 
2037
 
2038
 mov ecx,12
2038
 mov ecx,12
2039
 mov edi,filename
2039
 mov edi,filename
2040
 mov esi,pname
2040
 mov esi,pname
2041
 rep movsb
2041
 rep movsb
2042
 
2042
 
2043
 mov dword [count],0
2043
 mov dword [count],0
2044
 mov dword [pn],0
2044
 mov dword [pn],0
2045
 mov dword [blockcnt],0
2045
 mov dword [blockcnt],0
2046
 mov dword [lscnt],8024
2046
 mov dword [lscnt],8024
2047
 ret
2047
 ret
2048
 
2048
 
2049
oldcmd:
2049
oldcmd:
2050
 mov eax,dword [count]
2050
 mov eax,dword [count]
2051
 mov dword [oldcount],eax
2051
 mov dword [oldcount],eax
2052
 
2052
 
2053
 cld
2053
 cld
2054
 mov ecx,81
2054
 mov ecx,81
2055
 mov edi,tic_table+900
2055
 mov edi,tic_table+900
2056
 mov esi,tic_table+500
2056
 mov esi,tic_table+500
2057
 rep movsb
2057
 rep movsb
2058
 
2058
 
2059
 cld
2059
 cld
2060
 mov ecx,81
2060
 mov ecx,81
2061
 mov edi,tic_table+900
2061
 mov edi,tic_table+900
2062
 mov esi,tic_table+600
2062
 mov esi,tic_table+600
2063
 rep movsb
2063
 rep movsb
2064
 
2064
 
2065
 ret
2065
 ret
2066
 
2066
 
2067
ecmd:
2067
ecmd:
2068
 call oldcmd
2068
 call oldcmd
2069
 call clearcmd
2069
 call clearcmd
2070
 call newline
2070
 call newline
2071
 
2071
 
2072
 call ppr
2072
 call ppr
2073
 call cursor
2073
 call cursor
2074
 
2074
 
2075
 jmp still
2075
 jmp still
2076
 
2076
 
2077
ecmd2:
2077
ecmd2:
2078
 call clearcmd
2078
 call clearcmd
2079
 call newline
2079
 call newline
2080
 
2080
 
2081
 call ppr
2081
 call ppr
2082
 call cursor
2082
 call cursor
2083
 jmp still
2083
 jmp still
2084
 
2084
 
2085
ecmd3:
2085
ecmd3:
2086
 call clearcmd
2086
 call clearcmd
2087
 call newline
2087
 call newline
2088
 
2088
 
2089
 call ppr
2089
 call ppr
2090
 call cursor
2090
 call cursor
2091
 
2091
 
2092
 mov dword [readcnt],15000
2092
 mov dword [readcnt],15000
2093
 mov dword [readcnt2],0
2093
 mov dword [readcnt2],0
2094
 mov byte [callp],0
2094
 mov byte [callp],0
2095
 mov dword [filesize2],0
2095
 mov dword [filesize2],0
2096
 
2096
 
2097
 jmp still
2097
 jmp still
2098
 
2098
 
2099
chparam:
2099
chparam:
2100
 pop ecx
2100
 pop ecx
2101
 mov eax,ecx
2101
 mov eax,ecx
2102
 mov edx,eax
2102
 mov edx,eax
2103
 push edx
2103
 push edx
2104
 inc eax
2104
 inc eax
2105
 
2105
 
2106
 cld
2106
 cld
2107
 mov edi,tic_table+400
2107
 mov edi,tic_table+400
2108
 mov esi,tic_table+600
2108
 mov esi,tic_table+600
2109
 rep movsb
2109
 rep movsb
2110
 
2110
 
2111
 mov ecx,dword [count]
2111
 mov ecx,dword [count]
2112
 sub ecx,eax
2112
 sub ecx,eax
2113
 
2113
 
2114
 cld
2114
 cld
2115
 mov edi,tic_table+800
2115
 mov edi,tic_table+800
2116
 mov esi,tic_table+600
2116
 mov esi,tic_table+600
2117
 add esi,eax
2117
 add esi,eax
2118
 rep movsb
2118
 rep movsb
2119
 
2119
 
2120
 pop edx
2120
 pop edx
2121
 
2121
 
2122
 mov dword [ipccount],edx
2122
 mov dword [ipccount],edx
2123
 
2123
 
2124
 cld
2124
 cld
2125
 mov ecx,11
2125
 mov ecx,11
2126
 mov edi,tic_table+400
2126
 mov edi,tic_table+400
2127
 add edi,edx
2127
 add edi,edx
2128
 mov esi,qspace
2128
 mov esi,qspace
2129
 rep movsb
2129
 rep movsb
2130
 
2130
 
2131
 mov eax,19
2131
 mov eax,19
2132
 mov ebx,tic_table+400
2132
 mov ebx,tic_table+400
2133
 mov ecx,tic_table+800
2133
 mov ecx,tic_table+800
2134
 int 0x40
2134
 int 0x40
2135
 
2135
 
2136
 cmp eax,0xfffffff0
2136
 cmp eax,0xfffffff0
2137
 jb cmd_ok
2137
 jb cmd_ok
2138
 
2138
 
2139
 jmp err
2139
 jmp err
2140
 
2140
 
2141
cls:
2141
cls:
2142
 call oldcmd
2142
 call oldcmd
2143
 call cls2
2143
 call cls2
2144
 
2144
 
2145
 cmp byte [callp],0
2145
 cmp byte [callp],0
2146
 jne needret
2146
 jne needret
2147
 
2147
 
2148
 call clearcmd
2148
 call clearcmd
2149
 call ppr
2149
 call ppr
2150
 call cursor
2150
 call cursor
2151
 
2151
 
2152
 jmp still
2152
 jmp still
2153
 
2153
 
2154
needret:
2154
needret:
2155
 sub dword [linen],81
2155
 sub dword [linen],81
2156
 dec dword [lpress]
2156
 dec dword [lpress]
2157
 sub dword [xpos],10
2157
 sub dword [xpos],10
2158
 
2158
 
2159
 jmp gonext
2159
 jmp gonext
2160
 
2160
 
2161
cls1:
2161
cls1:
2162
 mov eax,13
2162
 mov eax,13
2163
 mov ebx,6*65536+486
2163
 mov ebx,6*65536+486
2164
 mov ecx,24*65536+250
2164
 mov ecx,24*65536+250
2165
 mov edx,0
2165
 mov edx,0
2166
 int 0x40
2166
 int 0x40
2167
 ret
2167
 ret
2168
 
2168
 
2169
cls2:
2169
cls2:
2170
 mov dword [linen],2000
2170
 mov dword [linen],2000
2171
 mov ecx,2025
2171
 mov ecx,2025
2172
loop2:
2172
loop2:
2173
 push ecx
2173
 push ecx
2174
 mov edi,tic_table
2174
 mov edi,tic_table
2175
 add edi,dword [linen]
2175
 add edi,dword [linen]
2176
 mov esi,fill1
2176
 mov esi,fill1
2177
 movsb
2177
 movsb
2178
 
2178
 
2179
 inc dword [linen]
2179
 inc dword [linen]
2180
 pop ecx
2180
 pop ecx
2181
 loop loop2
2181
 loop loop2
2182
 
2182
 
2183
 mov dword [linel],0
2183
 mov dword [linel],0
2184
 mov dword [linen],2000
2184
 mov dword [linen],2000
2185
 mov dword [linev],2000
2185
 mov dword [linev],2000
2186
 mov dword [xpos],24
2186
 mov dword [xpos],24
2187
 mov dword [ypos],6
2187
 mov dword [ypos],6
2188
 mov dword [lpress],1
2188
 mov dword [lpress],1
2189
 mov dword [stnum],1
2189
 mov dword [stnum],1
2190
 
2190
 
2191
 call cls1
2191
 call cls1
2192
 
2192
 
2193
 ret
2193
 ret
2194
 
2194
 
2195
chscr:
2195
chscr:
2196
 cmp dword [xpos],264
2196
 cmp dword [xpos],264
2197
 jne no_scr
2197
 jne no_scr
2198
 
2198
 
2199
 mov dword [cnt_loop1],4500
2199
 mov dword [cnt_loop1],4500
2200
 mov dword [cnt_loop2],2000
2200
 mov dword [cnt_loop2],2000
2201
 
2201
 
2202
 mov ecx,2025
2202
 mov ecx,2025
2203
loop10:
2203
loop10:
2204
 push ecx
2204
 push ecx
2205
 mov edi,tic_table
2205
 mov edi,tic_table
2206
 add edi,dword [cnt_loop1]
2206
 add edi,dword [cnt_loop1]
2207
 mov esi,tic_table
2207
 mov esi,tic_table
2208
 add esi,dword [cnt_loop2]
2208
 add esi,dword [cnt_loop2]
2209
 movsb
2209
 movsb
2210
 
2210
 
2211
 inc dword [cnt_loop1]
2211
 inc dword [cnt_loop1]
2212
 inc dword [cnt_loop2]
2212
 inc dword [cnt_loop2]
2213
 
2213
 
2214
 pop ecx
2214
 pop ecx
2215
 loop loop10
2215
 loop loop10
2216
 
2216
 
2217
 mov dword [cnt_loop1],2000
2217
 mov dword [cnt_loop1],2000
2218
 
2218
 
2219
 mov ecx,2025
2219
 mov ecx,2025
2220
loop11:
2220
loop11:
2221
 push ecx
2221
 push ecx
2222
 mov edi,tic_table
2222
 mov edi,tic_table
2223
 add edi,dword [cnt_loop1]
2223
 add edi,dword [cnt_loop1]
2224
 mov esi,fill1
2224
 mov esi,fill1
2225
 movsb
2225
 movsb
2226
 
2226
 
2227
 inc dword [cnt_loop1]
2227
 inc dword [cnt_loop1]
2228
 
2228
 
2229
 pop ecx
2229
 pop ecx
2230
 loop loop11
2230
 loop loop11
2231
 
2231
 
2232
 mov dword [cnt_loop1],2000
2232
 mov dword [cnt_loop1],2000
2233
 mov dword [cnt_loop2],4581
2233
 mov dword [cnt_loop2],4581
2234
 
2234
 
2235
 mov ecx,1944
2235
 mov ecx,1944
2236
loop12:
2236
loop12:
2237
 push ecx
2237
 push ecx
2238
 mov edi,tic_table
2238
 mov edi,tic_table
2239
 add edi,dword [cnt_loop1]
2239
 add edi,dword [cnt_loop1]
2240
 mov esi,tic_table
2240
 mov esi,tic_table
2241
 add esi,dword [cnt_loop2]
2241
 add esi,dword [cnt_loop2]
2242
 movsb
2242
 movsb
2243
 
2243
 
2244
 inc dword [cnt_loop1]
2244
 inc dword [cnt_loop1]
2245
 inc dword [cnt_loop2]
2245
 inc dword [cnt_loop2]
2246
 
2246
 
2247
 pop ecx
2247
 pop ecx
2248
 loop loop12
2248
 loop loop12
2249
 
2249
 
2250
 dec dword [lpress]
2250
 dec dword [lpress]
2251
 sub dword [linen],81
2251
 sub dword [linen],81
2252
 
2252
 
2253
 mov dword [xpos],264
2253
 mov dword [xpos],264
2254
 mov dword [ypos],6
2254
 mov dword [ypos],6
2255
 mov dword [clr],480
2255
 mov dword [clr],480
2256
 call clear
2256
 call clear
2257
 
2257
 
2258
 call red
2258
 call red
2259
 
2259
 
2260
no_scr:
2260
no_scr:
2261
 ret
2261
 ret
2262
 
2262
 
2263
newline:
2263
newline:
2264
 call chscr
2264
 call chscr
2265
 push edx
2265
 push edx
2266
 mov edx,81
2266
 mov edx,81
2267
 sub edx,dword [linel]
2267
 sub edx,dword [linel]
2268
 add dword [linen],edx
2268
 add dword [linen],edx
2269
 pop edx
2269
 pop edx
2270
 
2270
 
2271
 inc dword [lpress]
2271
 inc dword [lpress]
2272
 
2272
 
2273
 mov dword [linel],0
2273
 mov dword [linel],0
2274
 add dword [xpos],10
2274
 add dword [xpos],10
2275
 ret
2275
 ret
2276
 
2276
 
2277
fill:
2277
fill:
2278
 cld
2278
 cld
2279
 mov ecx,81
2279
 mov ecx,81
2280
 mov edi,tic_table+500
2280
 mov edi,tic_table+500
2281
 mov esi,fill1
2281
 mov esi,fill1
2282
 rep movsb
2282
 rep movsb
2283
 ret
2283
 ret
2284
 
2284
 
2285
nparam3:
2285
nparam3:
2286
 cmp byte [callp],1
2286
 cmp byte [callp],1
2287
 je gonext5
2287
 je gonext5
2288
 call clearsum
2288
 call clearsum
2289
gonext5:
2289
gonext5:
2290
 call newline
2290
 call newline
2291
 mov edx,mess9
2291
 mov edx,mess9
2292
 call printf
2292
 call printf
2293
 
2293
 
2294
 cmp byte [callp],1
2294
 cmp byte [callp],1
2295
 je go
2295
 je go
2296
 
2296
 
2297
 jmp ecmd
2297
 jmp ecmd
2298
 
2298
 
2299
nparam4:
2299
nparam4:
2300
 cmp byte [callp],1
2300
 cmp byte [callp],1
2301
 je gonext6
2301
 je gonext6
2302
 call clearsum
2302
 call clearsum
2303
gonext6:
2303
gonext6:
2304
 call newline
2304
 call newline
2305
 mov edx,mess0
2305
 mov edx,mess0
2306
 call printf
2306
 call printf
2307
 
2307
 
2308
 cmp byte [callp],1
2308
 cmp byte [callp],1
2309
 je go
2309
 je go
2310
 
2310
 
2311
 jmp ecmd
2311
 jmp ecmd
2312
 
2312
 
2313
nparam5:
2313
nparam5:
2314
 cmp byte [callp],1
2314
 cmp byte [callp],1
2315
 je gonext14
2315
 je gonext14
2316
 call clearsum
2316
 call clearsum
2317
gonext14:
2317
gonext14:
2318
 call newline
2318
 call newline
2319
 mov edx,mess16
2319
 mov edx,mess16
2320
 call printf
2320
 call printf
2321
 jmp ecmd
2321
 jmp ecmd
2322
 
2322
 
2323
endscr:
2323
endscr:
2324
 cmp byte [callp],1
2324
 cmp byte [callp],1
2325
 je ecmd3
2325
 je ecmd3
2326
 call clearsum
2326
 call clearsum
2327
 call newline
2327
 call newline
2328
 mov edx,mess17
2328
 mov edx,mess17
2329
 call printf
2329
 call printf
2330
 jmp ecmd
2330
 jmp ecmd
2331
 
2331
 
2332
checkcmd:
2332
checkcmd:
2333
 cmp dword [tic_table+600],'help'
2333
 cmp dword [tic_table+600],'help'
2334
 jne no_help
2334
 jne no_help
2335
 cmp dword [count],4
2335
 cmp dword [count],4
2336
 jne no_help
2336
 jne no_help
2337
 
2337
 
2338
 jmp help
2338
 jmp help
2339
 
2339
 
2340
no_help:
2340
no_help:
2341
 cmp dword [tic_table+600],'exit'
2341
 cmp dword [tic_table+600],'exit'
2342
 jne no_exit
2342
 jne no_exit
2343
 cmp dword [count],4
2343
 cmp dword [count],4
2344
 jne no_exit
2344
 jne no_exit
2345
 
2345
 
2346
 jmp exit
2346
 jmp exit
2347
 
2347
 
2348
no_exit:
2348
no_exit:
2349
 cmp word [tic_table+600],'ve'
2349
 cmp word [tic_table+600],'ve'
2350
 jne no_ver
2350
 jne no_ver
2351
 cmp byte [tic_table+602],'r'
2351
 cmp byte [tic_table+602],'r'
2352
 jne no_ver
2352
 jne no_ver
2353
 cmp dword [count],3
2353
 cmp dword [count],3
2354
 jne no_ver
2354
 jne no_ver
2355
 
2355
 
2356
 jmp ver
2356
 jmp ver
2357
 
2357
 
2358
no_ver:
2358
no_ver:
2359
 cmp word [tic_table+600],'cl'
2359
 cmp word [tic_table+600],'cl'
2360
 jne no_cls
2360
 jne no_cls
2361
 cmp byte [tic_table+602],'s'
2361
 cmp byte [tic_table+602],'s'
2362
 jne no_cls
2362
 jne no_cls
2363
 cmp dword [count],3
2363
 cmp dword [count],3
2364
 jne no_cls
2364
 jne no_cls
2365
 
2365
 
2366
 jmp cls
2366
 jmp cls
2367
 
2367
 
2368
no_cls:
2368
no_cls:
2369
 cmp dword [tic_table+600],'shut'
2369
 cmp dword [tic_table+600],'shut'
2370
 jne no_shutdown
2370
 jne no_shutdown
2371
 cmp dword [tic_table+604],'down'
2371
 cmp dword [tic_table+604],'down'
2372
 jne no_shutdown
2372
 jne no_shutdown
2373
 cmp dword [count],8
2373
 cmp dword [count],8
2374
 jne no_shutdown
2374
 jne no_shutdown
2375
 
2375
 
2376
 mov eax,18
2376
 mov eax,18
2377
 mov ebx,1
2377
 mov ebx,1
2378
 int 0x40
2378
 int 0x40
2379
 
2379
 
2380
 mov eax,5
2380
 mov eax,5
2381
 mov ebx,200
2381
 mov ebx,200
2382
 int 0x40
2382
 int 0x40
2383
 
2383
 
2384
no_shutdown:
2384
no_shutdown:
2385
 cmp word [tic_table+600],'ps'
2385
 cmp word [tic_table+600],'ps'
2386
 jne no_ps
2386
 jne no_ps
2387
 cmp dword [count],2
2387
 cmp dword [count],2
2388
 je ps
2388
 je ps
2389
 
2389
 
2390
no_ps:
2390
no_ps:
2391
 cmp dword [tic_table+600],'kill'
2391
 cmp dword [tic_table+600],'kill'
2392
 jne no_kill
2392
 jne no_kill
2393
 cmp byte [tic_table+604],' '
2393
 cmp byte [tic_table+604],' '
2394
 jne no_kill
2394
 jne no_kill
2395
 cmp dword [count],9
2395
 cmp dword [count],9
2396
 je kill
2396
 je kill
2397
 
2397
 
2398
 jmp nparam
2398
 jmp nparam
2399
 
2399
 
2400
no_kill:
2400
no_kill:
2401
 cmp dword [tic_table+600],'paus'
2401
 cmp dword [tic_table+600],'paus'
2402
 jne no_pause
2402
 jne no_pause
2403
 cmp byte [tic_table+604],'e'
2403
 cmp byte [tic_table+604],'e'
2404
 jne no_pause
2404
 jne no_pause
2405
 cmp dword [count],5
2405
 cmp dword [count],5
2406
 je pause1
2406
 je pause1
2407
 
2407
 
2408
no_pause:
2408
no_pause:
2409
 cmp dword [tic_table+600],'echo'
2409
 cmp dword [tic_table+600],'echo'
2410
 jne no_echo
2410
 jne no_echo
2411
 cmp dword [count],4
2411
 cmp dword [count],4
2412
 je echoeol
2412
 je echoeol
2413
 cmp byte [tic_table+604],' '
2413
 cmp byte [tic_table+604],' '
2414
 je echo
2414
 je echo
2415
 
2415
 
2416
no_echo:
2416
no_echo:
2417
 cmp word [tic_table+600],'de'
2417
 cmp word [tic_table+600],'de'
2418
 jne no_del
2418
 jne no_del
2419
 cmp byte [tic_table+602],'l'
2419
 cmp byte [tic_table+602],'l'
2420
 jne no_del
2420
 jne no_del
2421
 cmp byte [tic_table+603],' '
2421
 cmp byte [tic_table+603],' '
2422
 jne no_del
2422
 jne no_del
2423
 cmp dword [count],3
2423
 cmp dword [count],3
2424
 je nparam2
2424
 je nparam2
2425
 cmp dword [count],4
2425
 cmp dword [count],4
2426
 je nparam2
2426
 je nparam2
2427
 
2427
 
2428
 jmp del
2428
 jmp del
2429
 
2429
 
2430
no_del:
2430
no_del:
2431
 cmp word [tic_table+600],'ls'
2431
 cmp word [tic_table+600],'ls'
2432
 jne no_ls
2432
 jne no_ls
2433
 cmp dword [count],2
2433
 cmp dword [count],2
2434
 je ls
2434
 je ls
2435
 cmp dword [count],3
2435
 cmp dword [count],3
2436
 je ls
2436
 je ls
2437
 
2437
 
2438
 jmp lscheck
2438
 jmp lscheck
2439
 
2439
 
2440
no_ls:
2440
no_ls:
2441
 cmp word [tic_table+600],'cp'
2441
 cmp word [tic_table+600],'cp'
2442
 jne no_cp
2442
 jne no_cp
2443
 cmp dword [count],2
2443
 cmp dword [count],2
2444
 je nparam3
2444
 je nparam3
2445
 cmp dword [count],3
2445
 cmp dword [count],3
2446
 je nparam3
2446
 je nparam3
2447
 cmp dword [count],4
2447
 cmp dword [count],4
2448
 je nparam3
2448
 je nparam3
2449
 cmp dword [count],5
2449
 cmp dword [count],5
2450
 je nparam3
2450
 je nparam3
2451
 cmp byte [tic_table+602],' '
2451
 cmp byte [tic_table+602],' '
2452
 jne no_cp
2452
 jne no_cp
2453
 
2453
 
2454
 jmp cp
2454
 jmp cp
2455
 
2455
 
2456
no_cp:
2456
no_cp:
2457
 cmp word [tic_table+600],'rn'
2457
 cmp word [tic_table+600],'rn'
2458
 jne no_rn
2458
 jne no_rn
2459
 cmp dword [count],2
2459
 cmp dword [count],2
2460
 je nparam4
2460
 je nparam4
2461
 cmp dword [count],3
2461
 cmp dword [count],3
2462
 je nparam4
2462
 je nparam4
2463
 cmp dword [count],4
2463
 cmp dword [count],4
2464
 je nparam4
2464
 je nparam4
2465
 cmp dword [count],5
2465
 cmp dword [count],5
2466
 je nparam4
2466
 je nparam4
2467
 cmp byte [tic_table+602],' '
2467
 cmp byte [tic_table+602],' '
2468
 jne no_rn
2468
 jne no_rn
2469
 
2469
 
2470
 jmp rn
2470
 jmp rn
2471
 
2471
 
2472
no_rn:
2472
no_rn:
2473
 cmp dword [tic_table+600],'ends'
2473
 cmp dword [tic_table+600],'ends'
2474
 jne no_end
2474
 jne no_end
2475
 cmp dword [count],4
2475
 cmp dword [count],4
2476
 je endscr
2476
 je endscr
2477
 
2477
 
2478
no_end:
2478
no_end:
2479
 cmp byte [callp],1
2479
 cmp byte [callp],1
2480
 je checkprg
2480
 je checkprg
2481
 
2481
 
2482
 ret
2482
 ret
2483
 
2483
 
2484
checkprg:
2484
checkprg:
2485
 mov ebx,tic_table+600
2485
 mov ebx,tic_table+600
2486
 push esi edi ecx eax
2486
 push esi edi ecx eax
2487
 mov esi,ebx
2487
 mov esi,ebx
2488
 
2488
 
2489
 mov edi,tic_table+600
2489
 mov edi,tic_table+600
2490
 mov ecx,74
2490
 mov ecx,74
2491
strup:
2491
strup:
2492
 mov al,[esi]
2492
 mov al,[esi]
2493
 cmp al,'A'
2493
 cmp al,'A'
2494
 jb @f
2494
 jb @f
2495
 cmp al,'z'
2495
 cmp al,'z'
2496
 ja @f
2496
 ja @f
2497
 cmp al,'a'
2497
 cmp al,'a'
2498
 jb @f
2498
 jb @f
2499
 add al,-0x20
2499
 add al,-0x20
2500
@@:
2500
@@:
2501
 mov [edi],al
2501
 mov [edi],al
2502
 inc esi
2502
 inc esi
2503
 inc edi
2503
 inc edi
2504
 dec ecx
2504
 dec ecx
2505
 jnz strup
2505
 jnz strup
2506
 pop eax ecx edi esi
2506
 pop eax ecx edi esi
2507
 
2507
 
2508
 mov ecx,dword [count]
2508
 mov ecx,dword [count]
2509
loop20:
2509
loop20:
2510
 push ecx
2510
 push ecx
2511
 cmp byte [tic_table+600+ecx],'&'
2511
 cmp byte [tic_table+600+ecx],'&'
2512
 je chparam
2512
 je chparam
2513
 
2513
 
2514
 pop ecx
2514
 pop ecx
2515
 loop loop20
2515
 loop loop20
2516
 
2516
 
2517
 cld
2517
 cld
2518
 mov ecx,11
2518
 mov ecx,11
2519
 mov edi,tic_table+600
2519
 mov edi,tic_table+600
2520
 add edi,dword [count]
2520
 add edi,dword [count]
2521
 mov esi,qspace
2521
 mov esi,qspace
2522
 rep movsb
2522
 rep movsb
2523
 
2523
 
2524
 mov eax,19
2524
 mov eax,19
2525
 mov ebx,tic_table+600
2525
 mov ebx,tic_table+600
2526
 mov ecx,0
2526
 mov ecx,0
2527
 int 0x40
2527
 int 0x40
2528
 
2528
 
2529
 cmp eax,0xfffffff0
2529
 cmp eax,0xfffffff0
2530
 jb cmd_ok_1
2530
 jb cmd_ok_1
2531
 
2531
 
2532
 jmp err
2532
 jmp err
2533
 
2533
 
2534
cmd_ok_1:
2534
cmd_ok_1:
2535
 mov eax,dword [count]
2535
 mov eax,dword [count]
2536
 mov dword [ipccount],eax
2536
 mov dword [ipccount],eax
2537
 
2537
 
2538
cmd_ok:
2538
cmd_ok:
2539
 mov eax,60
2539
 mov eax,60
2540
 mov ebx,1
2540
 mov ebx,1
2541
 mov ecx,ipcb
2541
 mov ecx,ipcb
2542
 mov edx,118
2542
 mov edx,118
2543
 int 0x40
2543
 int 0x40
2544
 
2544
 
2545
 call clearipc
2545
 call clearipc
2546
 
2546
 
2547
 mov eax,40
2547
 mov eax,40
2548
 mov ebx,01000111b
2548
 mov ebx,01000111b
2549
 int 0x40
2549
 int 0x40
2550
 
2550
 
2551
 mov eax,23
2551
 mov eax,23
2552
 mov ebx,10
2552
 mov ebx,10
2553
 int 0x40
2553
 int 0x40
2554
 
2554
 
2555
 cmp eax,7
2555
 cmp eax,7
2556
 jne noipc
2556
 jne noipc
2557
 
2557
 
2558
 cmp byte [callp],1
2558
 cmp byte [callp],1
2559
 je printipcprgname
2559
 je printipcprgname
2560
 
2560
 
2561
 call clearsum
2561
 call clearsum
2562
 
2562
 
2563
ipccontinue:
2563
ipccontinue:
2564
 mov eax,9
2564
 mov eax,9
2565
 mov ebx,tic_table+100000
2565
 mov ebx,tic_table+100000
2566
 mov ecx,-1
2566
 mov ecx,-1
2567
 int 0x40
2567
 int 0x40
2568
 
2568
 
2569
 mov ecx,eax
2569
 mov ecx,eax
2570
loopfindipc:
2570
loopfindipc:
2571
 push ecx
2571
 push ecx
2572
 
2572
 
2573
 mov eax,9
2573
 mov eax,9
2574
 mov ebx,tic_table+100000
2574
 mov ebx,tic_table+100000
2575
 int 0x40
2575
 int 0x40
2576
 
2576
 
2577
 mov bl,[tic_table+600]
2577
 mov bl,[tic_table+600]
2578
 cmp byte [tic_table+100000+10],bl
2578
 cmp byte [tic_table+100000+10],bl
2579
 jne goonipc
2579
 jne goonipc
2580
 cmp dword [ipccount],1
2580
 cmp dword [ipccount],1
2581
 je ipcfinished
2581
 je ipcfinished
2582
 
2582
 
2583
 mov bl,[tic_table+601]
2583
 mov bl,[tic_table+601]
2584
 cmp byte [tic_table+100000+11],bl
2584
 cmp byte [tic_table+100000+11],bl
2585
 jne goonipc
2585
 jne goonipc
2586
 cmp dword [ipccount],2
2586
 cmp dword [ipccount],2
2587
 je ipcfinished
2587
 je ipcfinished
2588
 
2588
 
2589
 mov bl,[tic_table+602]
2589
 mov bl,[tic_table+602]
2590
 cmp byte [tic_table+100000+12],bl
2590
 cmp byte [tic_table+100000+12],bl
2591
 jne goonipc
2591
 jne goonipc
2592
 cmp dword [ipccount],3
2592
 cmp dword [ipccount],3
2593
 je ipcfinished
2593
 je ipcfinished
2594
 
2594
 
2595
 mov bl,[tic_table+603]
2595
 mov bl,[tic_table+603]
2596
 cmp byte [tic_table+100000+13],bl
2596
 cmp byte [tic_table+100000+13],bl
2597
 jne goonipc
2597
 jne goonipc
2598
 cmp dword [ipccount],4
2598
 cmp dword [ipccount],4
2599
 je ipcfinished
2599
 je ipcfinished
2600
 
2600
 
2601
 mov bl,[tic_table+604]
2601
 mov bl,[tic_table+604]
2602
 cmp byte [tic_table+100000+14],bl
2602
 cmp byte [tic_table+100000+14],bl
2603
 jne goonipc
2603
 jne goonipc
2604
 cmp dword [ipccount],5
2604
 cmp dword [ipccount],5
2605
 je ipcfinished
2605
 je ipcfinished
2606
 
2606
 
2607
 mov bl,[tic_table+605]
2607
 mov bl,[tic_table+605]
2608
 cmp byte [tic_table+100000+15],bl
2608
 cmp byte [tic_table+100000+15],bl
2609
 jne goonipc
2609
 jne goonipc
2610
 cmp dword [ipccount],6
2610
 cmp dword [ipccount],6
2611
 je ipcfinished
2611
 je ipcfinished
2612
 
2612
 
2613
 mov bl,[tic_table+606]
2613
 mov bl,[tic_table+606]
2614
 cmp byte [tic_table+100000+16],bl
2614
 cmp byte [tic_table+100000+16],bl
2615
 jne goonipc
2615
 jne goonipc
2616
 cmp dword [ipccount],7
2616
 cmp dword [ipccount],7
2617
 je ipcfinished
2617
 je ipcfinished
2618
 
2618
 
2619
 mov bl,[tic_table+607]
2619
 mov bl,[tic_table+607]
2620
 cmp byte [tic_table+100000+17],bl
2620
 cmp byte [tic_table+100000+17],bl
2621
 jne goonipc
2621
 jne goonipc
2622
 
2622
 
2623
goonipc:
2623
goonipc:
2624
 pop ecx
2624
 pop ecx
2625
 dec ecx
2625
 dec ecx
2626
 jnz loopfindipc
2626
 jnz loopfindipc
2627
 
2627
 
2628
ipcfinished:
2628
ipcfinished:
2629
 mov ebx,[tic_table+100000+30]
2629
 mov ebx,[tic_table+100000+30]
2630
 mov dword [ipcpid],ebx
2630
 mov dword [ipcpid],ebx
2631
 
2631
 
2632
 mov eax,60
2632
 mov eax,60
2633
 mov ebx,2
2633
 mov ebx,2
2634
 mov ecx,dword [ipcpid]
2634
 mov ecx,dword [ipcpid]
2635
 mov edx,ddot
2635
 mov edx,ddot
2636
 mov esi,1
2636
 mov esi,1
2637
 int 0x40
2637
 int 0x40
2638
 
2638
 
2639
 call newline
2639
 call newline
2640
 call clearipc
2640
 call clearipc
2641
 
2641
 
2642
 jmp waitipc
2642
 jmp waitipc
2643
 
2643
 
2644
printipcprgname:
2644
printipcprgname:
2645
 call newline
2645
 call newline
2646
 call printcmd
2646
 call printcmd
2647
 jmp ipccontinue
2647
 jmp ipccontinue
2648
 
2648
 
2649
noipc:
2649
noipc:
2650
 cmp byte [callp],1
2650
 cmp byte [callp],1
2651
 je prtcmd
2651
 je prtcmd
2652
 
2652
 
2653
 call clearsum
2653
 call clearsum
2654
 
2654
 
2655
 jmp cmd_ok2
2655
 jmp cmd_ok2
2656
 
2656
 
2657
printcmd:
2657
printcmd:
2658
 mov eax,4
2658
 mov eax,4
2659
 mov ebx,6
2659
 mov ebx,6
2660
 shl ebx,16
2660
 shl ebx,16
2661
 add ebx,[xpos]
2661
 add ebx,[xpos]
2662
 mov edx,tic_table+600
2662
 mov edx,tic_table+600
2663
 mov ecx,0x00ddeeff
2663
 mov ecx,0x00ddeeff
2664
 mov esi,dword [count]
2664
 mov esi,dword [count]
2665
 int 0x40
2665
 int 0x40
2666
 
2666
 
2667
 cld
2667
 cld
2668
 mov ecx,dword [count]
2668
 mov ecx,dword [count]
2669
 mov edi,tic_table
2669
 mov edi,tic_table
2670
 add edi,dword [linen]
2670
 add edi,dword [linen]
2671
 mov esi,tic_table+600
2671
 mov esi,tic_table+600
2672
 rep movsb
2672
 rep movsb
2673
 
2673
 
2674
 mov eax,dword [count]
2674
 mov eax,dword [count]
2675
 add dword [linen],eax
2675
 add dword [linen],eax
2676
 add dword [linel],eax
2676
 add dword [linel],eax
2677
 
2677
 
2678
 ret
2678
 ret
2679
 
2679
 
2680
prtcmd:
2680
prtcmd:
2681
 call newline
2681
 call newline
2682
 call printcmd
2682
 call printcmd
2683
 jmp go
2683
 jmp go
2684
 
2684
 
2685
cmd_ok2:
2685
cmd_ok2:
2686
 cmp byte [callp],1
2686
 cmp byte [callp],1
2687
 je go
2687
 je go
2688
 
2688
 
2689
 ret
2689
 ret
2690
 
2690
 
2691
waitipc:
2691
waitipc:
2692
 mov eax,40
2692
 mov eax,40
2693
 mov ebx,01000111b
2693
 mov ebx,01000111b
2694
 int 0x40
2694
 int 0x40
2695
 
2695
 
2696
 mov eax,10
2696
 mov eax,10
2697
 int 0x40
2697
 int 0x40
2698
 
2698
 
2699
 cmp eax,7
2699
 cmp eax,7
2700
 je ipcok
2700
 je ipcok
2701
 cmp eax,1
2701
 cmp eax,1
2702
 je reipc
2702
 je reipc
2703
 cmp eax,3
2703
 cmp eax,3
2704
 je exit
2704
 je exit
2705
 cmp eax,2
2705
 cmp eax,2
2706
 je keyipc
2706
 je keyipc
2707
 
2707
 
2708
 jmp waitipc
2708
 jmp waitipc
2709
 
2709
 
2710
keyipc:
2710
keyipc:
2711
 mov eax,2
2711
 mov eax,2
2712
 int 0x40
2712
 int 0x40
2713
 
2713
 
2714
 jmp waitipc
2714
 jmp waitipc
2715
 
2715
 
2716
reipc:
2716
reipc:
2717
 call draw
2717
 call draw
2718
 call red
2718
 call red
2719
 
2719
 
2720
 jmp waitipc
2720
 jmp waitipc
2721
 
2721
 
2722
clearipc:
2722
clearipc:
2723
 cld
2723
 cld
2724
 mov ecx,118
2724
 mov ecx,118
2725
 mov edi,ipcb
2725
 mov edi,ipcb
2726
 mov esi,ipcc
2726
 mov esi,ipcc
2727
 rep movsb
2727
 rep movsb
2728
 
2728
 
2729
 ret
2729
 ret
2730
 
2730
 
2731
ipcok:
2731
ipcok:
2732
 cmp dword [ipcb+16],'~ccc'
2732
 cmp dword [ipcb+16],'~ccc'
2733
 je ipccls
2733
 je ipccls
2734
 cmp dword [ipcb+16],'~eee'
2734
 cmp dword [ipcb+16],'~eee'
2735
 je endipc
2735
 je endipc
2736
 cmp dword [ipcb+16],'~lll'
2736
 cmp dword [ipcb+16],'~lll'
2737
 je ipcline
2737
 je ipcline
2738
 cmp dword [ipcb+16],'~ppp'
2738
 cmp dword [ipcb+16],'~ppp'
2739
 je ipcprint
2739
 je ipcprint
2740
 cmp dword [ipcb+16],'~kkk'
2740
 cmp dword [ipcb+16],'~kkk'
2741
 je ipckey
2741
 je ipckey
2742
 
2742
 
2743
 jmp waitipc
2743
 jmp waitipc
2744
 
2744
 
2745
reipc2:
2745
reipc2:
2746
 call draw
2746
 call draw
2747
 call red
2747
 call red
2748
 
2748
 
2749
ipckey:
2749
ipckey:
2750
 mov eax,10
2750
 mov eax,10
2751
 int 0x40
2751
 int 0x40
2752
 
2752
 
2753
 cmp eax,1
2753
 cmp eax,1
2754
 je reipc2
2754
 je reipc2
2755
 cmp eax,3
2755
 cmp eax,3
2756
 je exit
2756
 je exit
2757
 cmp eax,2
2757
 cmp eax,2
2758
 je ipckeypressed
2758
 je ipckeypressed
2759
 
2759
 
2760
 jmp ipckey
2760
 jmp ipckey
2761
 
2761
 
2762
ipckeypressed:
2762
ipckeypressed:
2763
 mov eax,2
2763
 mov eax,2
2764
 int 0x40
2764
 int 0x40
2765
 
2765
 
2766
 mov byte [ipckeyvalue],ah
2766
 mov byte [ipckeyvalue],ah
2767
 
2767
 
2768
 mov eax,60
2768
 mov eax,60
2769
 mov ebx,2
2769
 mov ebx,2
2770
 mov ecx,dword [ipcpid]
2770
 mov ecx,dword [ipcpid]
2771
 mov edx,ipckeyvalue
2771
 mov edx,ipckeyvalue
2772
 mov esi,1
2772
 mov esi,1
2773
 int 0x40
2773
 int 0x40
2774
 
2774
 
2775
 call clearipc
2775
 call clearipc
2776
 jmp waitipc
2776
 jmp waitipc
2777
 
2777
 
2778
ipccls:
2778
ipccls:
2779
 call cls2
2779
 call cls2
2780
 call clearipc
2780
 call clearipc
2781
 jmp waitipc
2781
 jmp waitipc
2782
 
2782
 
2783
ipcline:
2783
ipcline:
2784
 call newline
2784
 call newline
2785
 call clearipc
2785
 call clearipc
2786
 jmp waitipc
2786
 jmp waitipc
2787
 
2787
 
2788
ipcprint:
2788
ipcprint:
2789
 mov edx,ipcb+20
2789
 mov edx,ipcb+20
2790
 call printipc
2790
 call printipc
2791
 call clearipc
2791
 call clearipc
2792
 jmp waitipc
2792
 jmp waitipc
2793
 
2793
 
2794
endipc:
2794
endipc:
2795
 cmp byte [callp],1
2795
 cmp byte [callp],1
2796
 je go
2796
 je go
2797
 
2797
 
2798
 call clearsum
2798
 call clearsum
2799
 
2799
 
2800
 jmp ecmd
2800
 jmp ecmd
2801
 
2801
 
2802
cmdexist:
2802
cmdexist:
2803
 mov eax,9
2803
 mov eax,9
2804
 mov ebx,tic_table
2804
 mov ebx,tic_table
2805
 mov ecx,-1
2805
 mov ecx,-1
2806
 int 0x40
2806
 int 0x40
2807
 
2807
 
2808
 mov ecx,eax
2808
 mov ecx,eax
2809
loopex:
2809
loopex:
2810
 push ecx
2810
 push ecx
2811
 
2811
 
2812
 mov eax,9
2812
 mov eax,9
2813
 mov ebx,I_END
2813
 mov ebx,I_END
2814
 int 0x40
2814
 int 0x40
2815
 
2815
 
2816
 cmp word [I_END+10],'CM'
2816
 cmp word [I_END+10],'CM'
2817
 jne no_cmd
2817
 jne no_cmd
2818
 cmp byte [I_END+12],'D'
2818
 cmp byte [I_END+12],'D'
2819
 jne no_cmd
2819
 jne no_cmd
2820
 
2820
 
2821
 inc byte [cmd_ex]
2821
 inc byte [cmd_ex]
2822
 
2822
 
2823
 cmp byte [cmd_ex],2
2823
 cmp byte [cmd_ex],2
2824
 je exit
2824
 je exit
2825
 
2825
 
2826
no_cmd:
2826
no_cmd:
2827
 pop ecx
2827
 pop ecx
2828
 loop loopex
2828
 loop loopex
2829
 
2829
 
2830
 ret
2830
 ret
2831
 
2831
 
2832
title:
2832
title:
2833
 db 'CMD - Command line interpreter'
2833
 db 'CMD - Command line interpreter'
2834
title_end:
2834
title_end:
2835
 
2835
 
2836
smb_cursor db '|'
2836
smb_cursor db '|'
2837
 
2837
 
2838
prompt db 'CMD>>'
2838
prompt db 'CMD>>'
-
 
2839
if lang eq de
-
 
2840
h1  db '  CMD - Command line interpreter version 0.26 '
-
 
2841
h2  db '        copyleft Chemist - dmitry_gt@tut.by   '
-
 
2842
h3  db '  Verfuegbare Kommandos:                      '
-
 
2843
h4  db '  HELP - Zeoigt diesen Text LS - Zeigt Dateien'
-
 
2844
h5  db '  EXIT - Programmende       CP - Kopiert Datei'
-
 
2845
h6  db '  CLS  - Loescht Bildschirm PS - Processinfo  '
-
 
2846
h7  db '  KILL - Process beenden    RN - File umnennen'
-
 
2847
h8  db '        VER  - Zeigt Programmversion          '
-
 
2848
h9  db '        DEL  - Loescht Datei von Ramdisk      '
-
 
2849
h10 db '        SHUTDOWN - KolibriOS beenden          '
-
 
2850
h11 db '        PAUSE    - Auf Taste warten           '
-
 
2851
h12 db '        ECHO     - Schreibt Text auf Ausgabe  '
-
 
2852
h13 db '        ENDS     - Scriptende                 '
-
 
2853
h14 db '        /[filename] - Script starten          '
-
 
2854
h15 db '        Parameter mit "&" angeben:            '
-
 
2855
h16 db '        tinypad&cmd.asm - oeffnet cmd.asm     '
-
 
2856
 
-
 
2857
about db 'Command Line Interpreter version 0.26         '
-
 
2858
 
-
 
2859
err1 db 'Kommando oder Dateiname unbekannt'
-
 
2860
 
-
 
2861
proc_head db  ' PID Name      Start     Laenge   Proc_NUMB  '
-
 
2862
proc_hd11 db  '-------------------------------------------- '
-
 
2863
 
-
 
2864
mess1 db 'Taste druecken fuer weiter (ESC - abbrechen)..'
-
 
2865
mess2 db 'Bitte 4 Byte Prozessnummer angeben (nicht PID)'
-
 
2866
mess3 db 'Prozess mit angegebenere Nummer erfolgreich   '
-
 
2867
mess4 db 'beendet.                                      '
-
 
2868
mess5 db 'Verwendung: del [Dateiname]                   '
-
 
2869
mess6 db 'Angegebene Datei erfolgreich geloescht.       '
-
 
2870
mess7 db 'Datei nicht gefunden!                         '
-
 
2871
mess8 db 'Prozess nicht gefunden!                       '
-
 
2872
mess9 db 'Verwendung: cp [Quelle+Ziel]                  '
-
 
2873
mess0 db 'Verwendung: rn [Quelle+Ziel]                  '
-
 
2874
 
-
 
2875
mess11 db 'Datei erfolgreich kopiert                     '
-
 
2876
mess12 db 'ERROR: Kann Datei nicht kopieren!             '
-
 
2877
mess13 db 'ERROR: Datei existiert bereits!               '
-
 
2878
mess14 db 'Datei erfolgreich umbenannt                   '
-
 
2879
mess15 db 'ERROR: Kann Datei nicht umbenennen!           '
-
 
2880
mess16 db 'Scriptname erwartet!                          '
-
 
2881
mess17 db 'Dieses Kommando ist nur in Scripts zulaessig! '
2839
 
2882
else
2840
h1  db '  CMD - Command line interpreter version 0.26 '
2883
h1  db '  CMD - Command line interpreter version 0.26 '
2841
h2  db '        copyleft Chemist - dmitry_gt@tut.by   '
2884
h2  db '        copyleft Chemist - dmitry_gt@tut.by   '
2842
h3  db '  Available commands:                         '
2885
h3  db '  Available commands:                         '
2843
h4  db '  HELP - Display this text  LS - List files   '
2886
h4  db '  HELP - Display this text  LS - List files   '
2844
h5  db '  EXIT - Exit Programm      CP - Copy file    '
2887
h5  db '  EXIT - Exit Programm      CP - Copy file    '
2845
h6  db '  CLS  - Clear Screen       PS - Process info '
2888
h6  db '  CLS  - Clear Screen       PS - Process info '
2846
h7  db '  KILL - Kill Process       RN - Rename File  '
2889
h7  db '  KILL - Kill Process       RN - Rename File  '
2847
h8  db '        VER  - Display programm version       '
2890
h8  db '        VER  - Display programm version       '
2848
h9  db '        DEL  - Delete file from ramdisk       '
2891
h9  db '        DEL  - Delete file from ramdisk       '
2849
h10 db '        SHUTDOWN - Quit Menuet                '
2892
h10 db '        SHUTDOWN - Quit Menuet                '
2850
h11 db '        PAUSE    - Wait for keypress          '
2893
h11 db '        PAUSE    - Wait for keypress          '
2851
h12 db '        ECHO     - Print text to screen       '
2894
h12 db '        ECHO     - Print text to screen       '
2852
h13 db '        ENDS     - End script                 '
2895
h13 db '        ENDS     - End script                 '
2853
h14 db '        /[filename] - Execute script          '
2896
h14 db '        /[filename] - Execute script          '
2854
h15 db '        Use & symbol to enter params:         '
2897
h15 db '        Use & symbol to enter params:         '
2855
h16 db '        tinypad&cmd.asm - open cmd.asm        '
2898
h16 db '        tinypad&cmd.asm - open cmd.asm        '
2856
 
2899
 
2857
about db 'Command Line Interpreter version 0.26         '
2900
about db 'Command Line Interpreter version 0.26         '
2858
 
2901
 
2859
err1 db 'Unknown command or filename'
2902
err1 db 'Unknown command or filename      '
2860
 
2903
 
2861
proc_head db  ' PID Name      Start     Length   Proc_NUMB  '
2904
proc_head db  ' PID Name      Start     Length   Proc_NUMB  '
2862
proc_hd11 db  '-------------------------------------------- '
2905
proc_hd11 db  '-------------------------------------------- '
2863
 
2906
 
2864
mess1 db 'Press any key to continue (ESC - Cancel)...   '
2907
mess1 db 'Press any key to continue (ESC - Cancel)...   '
2865
mess2 db 'Plz specify a 4 byte process number (not PID) '
2908
mess2 db 'Plz specify a 4 byte process number (not PID) '
2866
mess3 db 'Process with number you specified has been    '
2909
mess3 db 'Process with number you specified has been    '
2867
mess4 db 'terminated.                                   '
2910
mess4 db 'terminated.                                   '
2868
mess5 db 'Usage: del [filename]                         '
2911
mess5 db 'Usage: del [filename]                         '
2869
mess6 db 'Filename you specified has been deleted.      '
2912
mess6 db 'Filename you specified has been deleted.      '
2870
mess7 db 'No such file!                                 '
2913
mess7 db 'No such file!                                 '
2871
mess8 db 'No such process!                              '
2914
mess8 db 'No such process!                              '
2872
mess9 db 'Usage: cp [source_file+destination_file]      '
2915
mess9 db 'Usage: cp [source_file+destination_file]      '
2873
mess0 db 'Usage: rn [source_file+destination_file]      '
2916
mess0 db 'Usage: rn [source_file+destination_file]      '
2874
 
2917
 
2875
mess11 db 'File successfully copied                      '
2918
mess11 db 'File successfully copied                      '
2876
mess12 db 'ERROR: Can not copy file!                     '
2919
mess12 db 'ERROR: Can not copy file!                     '
2877
mess13 db 'ERROR: Output file alredy exist!              '
2920
mess13 db 'ERROR: Output file alredy exist!              '
2878
mess14 db 'File successfully renamed                     '
2921
mess14 db 'File successfully renamed                     '
2879
mess15 db 'ERROR: Can not rename file!                   '
2922
mess15 db 'ERROR: Can not rename file!                   '
2880
mess16 db 'You must specify a command script filename!   '
2923
mess16 db 'You must specify a command script filename!   '
2881
mess17 db 'This command is available only in scripts!    '
2924
mess17 db 'This command is available only in scripts!    '
2882
 
2925
end if
2883
 
2926
 
2884
linen dd 2000
2927
linen dd 2000
2885
lpress dd 1
2928
lpress dd 1
2886
linel dd 0
2929
linel dd 0
2887
linev dd 2000
2930
linev dd 2000
2888
stnum dd 1
2931
stnum dd 1
2889
rdstat dd 0
2932
rdstat dd 0
2890
 
2933
 
2891
ypos   dd 6
2934
ypos   dd 6
2892
xpos   dd 24
2935
xpos   dd 24
2893
count  dd 0
2936
count  dd 0
2894
clr    dd 0
2937
clr    dd 0
2895
smb    db 0
2938
smb    db 0
2896
pn     dd 0
2939
pn     dd 0
2897
count2  dd 0
2940
count2  dd 0
2898
count3  dd 9
2941
count3  dd 9
2899
oldcount dd 0
2942
oldcount dd 0
2900
oldcount1 dd 0
2943
oldcount1 dd 0
2901
 
2944
 
2902
fnumb dd 0
2945
fnumb dd 0
2903
n1 dd 0
2946
n1 dd 0
2904
n2 dd 0
2947
n2 dd 0
2905
n3 dd 0
2948
n3 dd 0
2906
n4 dd 0
2949
n4 dd 0
2907
n5 dd 0
2950
n5 dd 0
2908
n6 dd 0
2951
n6 dd 0
2909
n7 dd 0
2952
n7 dd 0
2910
n8 dd 0
2953
n8 dd 0
2911
 
2954
 
2912
ddot db '.'
2955
ddot db '.'
2913
dcmd db '.CMD',0
2956
dcmd db '.CMD',0
2914
 
2957
 
2915
cnt_loop1 dd 0
2958
cnt_loop1 dd 0
2916
cnt_loop2 dd 0
2959
cnt_loop2 dd 0
2917
 
2960
 
2918
lscnt dd 8024
2961
lscnt dd 8024
2919
blockcnt dd 0
2962
blockcnt dd 0
2920
lscntf db 0
2963
lscntf db 0
2921
lscntx db 0
2964
lscntx db 0
2922
 
2965
 
2923
filesize dd 0
2966
filesize dd 0
2924
filesize2 dd 0
2967
filesize2 dd 0
2925
 
2968
 
2926
readcnt dd 15000
2969
readcnt dd 15000
2927
readcnt2 dd 0
2970
readcnt2 dd 0
2928
 
2971
 
2929
callp db 0
2972
callp db 0
2930
callp2 db 0
2973
callp2 db 0
2931
 
2974
 
2932
fill1 db ' '
2975
fill1 db ' '
2933
fill3 db '   ',0
2976
fill3 db '   ',0
2934
 
2977
 
2935
pname      db '            ',0
2978
pname      db '            ',0
2936
autoexfile db 'AUTOEXEC.CMD',0
2979
autoexfile db 'AUTOEXEC.CMD',0
2937
filename   db '            ',0
2980
filename   db '            ',0
2938
 
2981
 
2939
dzero db 0,0,0,0
2982
dzero db 0,0,0,0
2940
qspace db '           '
2983
qspace db '           '
2941
 
2984
 
2942
f1len dd 0
2985
f1len dd 0
2943
f2len dd 0
2986
f2len dd 0
2944
 
2987
 
2945
ipcpid dd 0
2988
ipcpid dd 0
2946
 
2989
 
2947
ipckeyvalue db 0
2990
ipckeyvalue db 0
2948
 
2991
 
2949
ipccount dd 0
2992
ipccount dd 0
2950
 
2993
 
2951
cmd_ex db 0
2994
cmd_ex db 0
2952
 
2995
 
2953
ipcb:
2996
ipcb:
2954
 db 0
2997
 db 0
2955
 db 0,0,0
2998
 db 0,0,0
2956
 dd 8
2999
 dd 8
2957
times 110 db 0
3000
times 110 db 0
2958
 
3001
 
2959
ipcc:
3002
ipcc:
2960
 db 0
3003
 db 0
2961
 db 0,0,0
3004
 db 0,0,0
2962
 dd 8
3005
 dd 8
2963
times 110 db 0
3006
times 110 db 0
2964
 
3007
 
2965
I_END:
3008
I_END:
2966
 
3009
 
2967
tic_table:
3010
tic_table: