Subversion Repositories Kolibri OS

Rev

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

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