Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Ignore whitespace Rev 108 → Rev 109

/programs/develop/cmd/trunk/cmd.asm
0,0 → 1,2967
; CMD - Command line interpreter
; copyleft Chemist dmitry_gt@tut.by
;
; Compile with FASM for Menuet
;
;
 
use32
 
org 0x0
 
db 'MENUET01'
dd 0x01
dd START
dd I_END
dd 0x300000
dd 0x7fff0
dd 0x0
dd 0x0
 
include "macros.inc"
 
START:
 
call cmdexist
call draw
call fill
call clearcmd
call autoexec
call ppr
call cursor
 
still:
 
mov eax,10
int 0x40
 
cmp eax,1
je re
cmp eax,2
je key
cmp eax,3
je button
 
jmp still
 
button:
mov eax,17
int 0x40
 
cmp ah,1
jne noclose
 
jmp exit
 
noclose:
jmp still
 
re:
call draw
call red
jmp still
 
red:
call cls1
 
mov dword [xpos],24
 
mov dword [linev],2000
 
mov eax,dword [ypos]
push eax
 
mov dword [ypos],6
 
mov ecx,dword [lpress]
loop1:
push ecx
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov edx,tic_table
add edx,dword [linev]
mov esi,81
int 0x40
add dword [xpos],10
add dword [linev],81
pop ecx
loop loop1
 
sub dword [xpos],10
 
no_line:
pop eax
mov dword [ypos],eax
 
no_red:
ret
 
key:
mov eax,2
int 0x40
 
cmp ah,27
jne no_escape
 
mov dword [ypos],42
call clearstr
call ppr
mov dword [count],0
call cursor
jmp still
 
no_escape:
cmp ah,178
jne no_aup
cmp dword [count],0
jne no_aup
cmp dword [oldcount],0
je no_aup
 
call clearsum
sub dword [ypos],6
 
cld
mov ecx,81
mov edi,tic_table+600
mov esi,tic_table+900
rep movsb
 
cld
mov ecx,dword [oldcount]
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+600
rep movsb
 
call red
 
mov eax,dword [oldcount]
mov dword [count],eax
 
add dword [linen],eax
add dword [linel],eax
 
mov ebx,6
imul ebx,eax
 
add dword [ypos],ebx
 
call cursor
 
jmp still
 
no_aup:
cmp ah,8
jne no_backspace
cmp dword [count],0
je still
 
cmp dword [count],0
je no_backspace
 
call clearsum
sub dword [ypos],12
call clearsum
sub dword [ypos],6
call cursor
dec dword [count]
jmp still
 
no_backspace:
cmp ah,13
jne no_enter
 
cmp dword [count],0
jne enter_ok
call clearsum
jmp ecmd2
 
enter_ok:
call checkcmd
 
cmp byte [tic_table+600],'/'
jne no_script
cmp dword [count],1
je nparam5
 
jmp command
 
no_script:
 
call oldcmd
 
call checkprg
 
jmp ecmd2
 
no_enter:
 
cmp ah,176 ; Arrow keys, HOME, END, and DEL are unsupported now
je still
cmp ah,179
je still
cmp ah,177
je still
cmp ah,178
je still
cmp ah,182
je still
cmp ah,180
je still
cmp ah,181
je still
 
cmp dword [count],74
je still
 
mov byte [smb],ah
 
mov edi,tic_table+600
add edi,dword [count]
mov esi,smb
movsb
 
inc dword [count]
 
call clearsum
sub dword [ypos],6
call print
add dword [ypos],6
call cursor
 
jmp still
 
clearstr:
mov dword [ypos],6
mov dword [clr],480
call clear
 
mov eax,dword [linel]
sub dword [linen],eax
mov dword [linel],0
 
mov ecx,eax
push eax
loop4:
push ecx
mov edi,tic_table
add edi,dword [linen]
mov esi,fill1
movsb
 
inc dword [linen]
pop ecx
loop loop4
 
pop eax
sub dword [linen],eax
 
mov dword [ypos],42
 
ret
 
clearsum:
mov dword [clr],6
call clear
 
dec dword [linen]
dec dword [linel]
 
mov edi,tic_table
add edi,dword [linen]
mov esi,fill1
movsb
 
ret
 
clear:
mov eax,13
mov ebx,[ypos]
shl ebx,16
add ebx,[clr]
mov ecx,[xpos]
shl ecx,16
add ecx,9
mov edx,0
int 0x40
add dword [ypos],6
ret
 
draw:
 
mov eax,12
mov ebx,1
int 0x40
 
mov eax,0
mov ebx,100*65536+492
mov ecx,100*65536+280
mov edx,0
mov esi,0x805080d0
mov edi,0x005080d0
int 0x40
 
mov eax,4
mov ebx,8*65536+8
mov ecx,0x10ddeeff
mov edx,title
mov esi,title_end-title
int 0x40
 
mov eax,8
mov ebx,(492-19)*65536+12
mov ecx,5*65536+12
mov edx,1
mov esi,0x6688dd
int 0x40
 
mov eax,12
mov ebx,2
int 0x40
 
ret
 
print:
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov edx,smb
mov esi,1
int 0x40
 
mov edi,tic_table
add edi,dword [linen]
mov esi,smb
movsb
inc dword [linen]
inc dword [linel]
 
ret
 
cursor:
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov edx,smb_cursor
mov esi,1
int 0x40
 
mov edi,tic_table
mov esi,smb_cursor
add edi,dword [linen]
movsb
inc dword [linen]
inc dword [linel]
 
ret
 
ppr:
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov edx,prompt
mov esi,5
int 0x40
mov dword [ypos],42
 
cld
mov ecx,5
mov edi,tic_table
add edi,dword [linen]
mov esi,prompt
rep movsb
 
add dword [linen],6
add dword [linel],6
 
ret
 
help:
cmp byte [callp],1
je gonext8
call clearsum
gonext8:
call newline
call newline
mov edx,h1
call printf
call newline
mov edx,h2
call printf
call newline
call newline
mov edx,h3
call printf
call newline
call newline
mov edx,h4
call printf
call newline
mov edx,h5
call printf
call newline
mov edx,h6
call printf
call newline
mov edx,h7
call printf
call newline
call newline
mov edx,h8
call printf
call newline
mov edx,h9
call printf
call newline
mov edx,h10
call printf
call newline
mov edx,h11
call printf
call newline
mov edx,h12
call printf
call newline
mov edx,h13
call printf
call newline
call newline
mov edx,h14
call printf
call newline
call newline
mov edx,h15
call printf
call newline
mov edx,h16
call printf
call newline
 
cmp byte [callp],1
je go
 
jmp ecmd
 
ver:
cmp byte [callp],1
je gonext7
call clearsum
gonext7:
call newline
mov edx,about
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
pause1:
cmp byte [callp],1
je gonext1
call clearsum
gonext1:
call pause2
 
cmp byte [callp],1
je go
 
jmp ecmd
 
ls:
call oldcmd
call cls2
 
loopls:
inc dword [blockcnt]
 
mov eax,34
mov ebx,0
mov ecx,0
mov edx,0
add edx,dword [blockcnt]
mov esi,1
mov edi,tic_table+7000
int 0x40
 
mov ecx,16
loop40:
push ecx
 
cld
mov ecx,8
mov edi,filename
mov esi,tic_table
add esi,dword [lscnt]
rep movsb
 
add dword [lscnt],8
 
mov edi,filename+8
mov esi,ddot
movsb
 
cld
mov ecx,3
mov edi,filename+9
mov esi,tic_table
add esi,dword [lscnt]
rep movsb
 
cmp byte [filename+10],0
jne no_fn_space1
 
mov edi,filename+10
mov esi,dzero
movsb
 
no_fn_space1:
cmp byte [filename],0xe5 ; deleted file
je no_newline
cmp byte [filename],0xf ; long fat32 filename
je no_newline
cmp byte [filename],0x10 ; folder
je no_newline
 
cmp word [filename],'AK'
jne filename_ok
cmp byte [filename+3],'e'
jne filename_ok
cmp byte [filename+5],'y'
jne filename_ok
cmp byte [filename+7],'a'
jne filename_ok
cmp byte [filename+10],'s'
jne filename_ok
 
jmp no_newline
 
filename_ok:
mov eax,6
mov ebx,filename
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
jne ls_print
 
jmp no_newline
 
ls_print_done:
inc byte [lscntf]
 
add dword [ypos],96
 
cmp byte [lscntf],5
jne no_newline
 
mov byte [lscntf],0
inc byte [lscntx]
 
cmp byte [lscntx],23
je pause2n
 
mov dword [ypos],6
call newline
 
no_newline:
add dword [lscnt],24
 
pop ecx
dec ecx
cmp ecx,0
jne loop40
 
cmp dword [blockcnt],16
je ls_end
 
jmp no_pause2
 
pause2n:
mov byte [lscntx],0
 
call newline
call pause2
call cls2
mov dword [lscnt],8024
jmp loopls
 
no_pause2:
mov dword [lscnt],8024
 
jmp loopls
 
ls_end:
mov dword [blockcnt],0
mov dword [lscnt],8024
mov byte [lscntf],0
mov byte [lscntx],0
 
cmp byte [callp],1
je go
 
jmp ecmd2
 
ls_print:
mov edi,filename+8
mov esi,fill1
movsb
 
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov edx,filename
mov ecx,0x00ddeeff
mov esi,12
int 0x40
 
cld
mov ecx,12
mov edi,tic_table
add edi,dword [linen]
mov esi,filename
rep movsb
 
add dword [linen],16
add dword [linel],16
 
jmp ls_print_done
 
lscheck:
cmp byte [callp],1
je gonext9
call clearsum
gonext9:
sub dword [count],3
 
cld
mov ecx,dword [count]
mov edi,tic_table+400
mov esi,tic_table+600
add esi,3
rep movsb
 
mov ebx,tic_table+400
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+400
mov ecx,70
strup2:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup2
pop eax ecx edi esi
 
mov ecx,dword [count]
 
looplsc:
cmp byte [tic_table+400+ecx],'.'
je chdot
 
loop looplsc
 
jmp chnodot
 
chdot:
mov ebx,dword [count]
 
cld
mov ecx,5
mov edi,tic_table+400
add edi,ebx
mov esi,dzero
rep movsb
 
mov eax,6
mov ebx,tic_table+400
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je nosuchfile
 
jmp lschok
 
chnodot:
mov ebx,dword [count]
 
mov edi,tic_table+400
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+400
add edi,ebx
mov esi,fill3
rep movsb
 
mov eax,6
mov ebx,tic_table+400
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je nosuchfile
 
mov edi,tic_table+400
add edi,dword [count]
mov esi,fill1
movsb
 
lschok:
call newline
 
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov edx,tic_table+400
mov esi,12
mov ecx,0x00ddeeff
int 0x40
 
cld
mov ecx,12
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+400
rep movsb
 
add dword [linen],12
add dword [linel],12
 
add dword [count],3
 
cmp byte [callp],1
je go
 
jmp ecmd
 
ps:
call oldcmd
call cls2
call newline
mov edx,proc_head
call printf
call newline
mov edx,proc_hd11
call printf
call newline
call newline
 
mov eax,9
mov ebx,tic_table
mov ecx,1
int 0x40
 
mov dword [count2],eax
 
ll1:
inc dword [pn]
mov eax,9
mov ebx,tic_table
mov ecx,[pn]
int 0x40
 
mov ebx,[tic_table+30]
mov dword [fnumb],4
mov dword [ypos],6
call decnumb
 
cld
mov ecx,4
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+200
rep movsb
 
add dword [linen],5
add dword [linel],5
 
cld
mov ecx,11
mov esi,tic_table+10
mov edi,pname
rep movsb
 
mov dword [ypos],36
mov edx,pname
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov esi,12
int 0x40
 
cld
mov ecx,11
mov edi,tic_table
add edi,dword [linen]
mov esi,pname
rep movsb
 
add dword [linen],10
add dword [linel],10
 
mov dword [ypos],94
mov ebx,[tic_table+22]
mov dword [fnumb],8
call decnumb
 
cld
mov ecx,8
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+200
rep movsb
 
add dword [linen],10
add dword [linel],10
 
mov dword [ypos],154
mov ebx,[tic_table+26]
mov dword [fnumb],8
call decnumb
 
cld
mov ecx,8
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+200
rep movsb
 
add dword [linen],12
add dword [linel],12
 
mov dword [ypos],228
mov ebx,[pn]
mov dword [fnumb],4
call decnumb
 
cld
mov ecx,4
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+200
rep movsb
 
add dword [linel],4
add dword [linen],4
 
call newline
 
mov dword [ypos],60
 
cmp dword [xpos],254
jne nscreen
 
call pause2
call cls2
 
mov dword [xpos],24
call newline
mov dword [ypos],60
 
mov edx,proc_head
call printf
call newline
mov edx,proc_hd11
call printf
call newline
call newline
 
nscreen:
mov eax, dword [count2]
cmp dword [pn],eax
jne ll1
mov dword [pn],0
 
cmp byte [callp],1
je go
 
jmp ecmd2
 
printn:
mov eax,47
shl ebx,16
mov edx,[ypos]
shl edx,16
add edx,[xpos]
mov esi,0x00ddeeff
int 0x40
ret
 
pause2:
call newline
mov edx,mess1
call printf
 
mov eax,10
int 0x40
 
red3:
cmp eax,2
je back
cmp eax,3
je exit
 
call draw
call red
 
mov eax,10
int 0x40
jmp red3
 
back:
mov eax,2
int 0x40
cmp ah,27
je checmd
ret
 
exit:
mov eax,-1
int 0x40
 
checmd:
cmp byte [callp],1
je ecmd3
 
jmp ecmd
 
err:
call clearsum
 
call newline
 
call ppr
cmp dword [count],0
je ecmd1
mov edx,err1
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov esi,27
int 0x40
 
cld
mov ecx,27
mov edi,tic_table
add edi,dword [linen]
mov esi,err1
rep movsb
 
add dword [linen],27
add dword [linel],27
 
call clearcmd
 
jmp cmd_ok2
 
nparam:
cmp byte [callp],1
je gonext4
call clearsum
gonext4:
call newline
mov edx,mess2
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
nparam2:
cmp byte [callp],1
je gonext3
call clearsum
gonext3:
call newline
mov edx,mess5
call printf
 
cmp byte [callp],0
je ecmd
 
jmp go
 
cp:
cmp byte [callp],1
je gonext10
call clearsum
gonext10:
sub dword [count],3
 
cld
mov ecx,dword [count]
mov edi,tic_table+400
mov esi,tic_table+600
add esi,3
rep movsb
 
mov ecx,12
loop50:
cmp byte [tic_table+400+ecx],'+'
je file2
 
loop loop50
 
add dword [count],3
jmp nparam3
 
file2:
mov dword [f1len],ecx
 
inc ecx
mov ebx,ecx
cld
mov edi,tic_table+9000
mov esi,tic_table+400
rep movsb
 
mov ecx,12
mov edi,tic_table+9100
mov esi,tic_table+400
add esi,ebx
rep movsb
 
mov ebx,tic_table+9000
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+9000
mov ecx,12
strup3:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup3
pop eax ecx edi esi
 
mov ecx,dword [f1len]
 
loopcp:
cmp byte [tic_table+9000+ecx],'.'
je chdotcp
 
loop loopcp
 
jmp chnodotcp
 
chdotcp:
mov ebx,dword [f1len]
 
cld
mov ecx,4
mov edi,tic_table+9000
add edi,ebx
mov esi,dzero
rep movsb
 
jmp gocp1
 
chnodotcp:
mov ebx,dword [f1len]
 
mov edi,tic_table+9000
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+9000
add edi,ebx
mov esi,fill3
rep movsb
 
gocp1:
mov eax,6
mov ebx,tic_table+9000
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je nosuchfile
 
mov dword [filesize],eax
 
mov ebx,tic_table+9100
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+9100
mov ecx,12
strup4:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup4
pop eax ecx edi esi
 
mov ebx,dword [f1len]
mov ecx,dword [count]
sub ecx,ebx
 
mov dword [f2len],ecx
 
loopcp2:
cmp byte [tic_table+9100+ecx],'.'
je chdotcp2
 
loop loopcp2
 
jmp chnodotcp2
 
chdotcp2:
mov ebx,dword [f2len]
 
cld
mov ecx,4
mov edi,tic_table+9100
add edi,ebx
mov esi,dzero
rep movsb
 
jmp gocp2
 
chnodotcp2:
mov ebx,dword [f2len]
 
mov edi,tic_table+9100
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+9100
add edi,ebx
mov esi,fill3
rep movsb
 
gocp2:
mov eax,6
mov ebx,tic_table+9100
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
jne alreadyexist
 
mov eax,33
mov ebx,tic_table+9100
mov ecx,tic_table+25000
mov edx,dword [filesize]
mov esi,0
int 0x40
 
cmp eax,0
jne no_ok
 
mov eax,6
mov ebx,tic_table+9100
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je no_ok
 
call newline
mov edx,mess11
call printf
jmp cp_end
 
no_ok:
call newline
mov edx,mess12
call printf
 
cp_end:
add dword [count],3
 
cmp byte [callp],1
je go
 
jmp ecmd
 
alreadyexist:
add dword [count],3
call newline
mov edx,mess13
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
rn:
cmp byte [callp],1
je gonext11
call clearsum
gonext11:
sub dword [count],3
 
cld
mov ecx,dword [count]
mov edi,tic_table+400
mov esi,tic_table+600
add esi,3
rep movsb
 
mov ecx,12
loop51:
push ecx
cmp byte [tic_table+400+ecx],'+'
je file3
 
pop ecx
loop loop51
 
add dword [count],3
jmp nparam4
 
file3:
mov dword [f1len],ecx
 
inc ecx
mov ebx,ecx
cld
mov edi,tic_table+9000
mov esi,tic_table+400
rep movsb
 
mov ecx,12
mov edi,tic_table+9100
mov esi,tic_table+400
add esi,ebx
rep movsb
 
mov ebx,tic_table+9000
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+9000
mov ecx,12
strup5:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup5
pop eax ecx edi esi
 
mov ecx,dword [f1len]
 
looprn:
cmp byte [tic_table+9000+ecx],'.'
je chdotrn
 
loop looprn
 
jmp chnodotrn
 
chdotrn:
mov ebx,dword [f1len]
 
cld
mov ecx,4
mov edi,tic_table+9000
add edi,ebx
mov esi,dzero
rep movsb
 
jmp gorn1
 
chnodotrn:
mov ebx,dword [f1len]
 
mov edi,tic_table+9000
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+9000
add edi,ebx
mov esi,fill3
rep movsb
 
gorn1:
mov eax,6
mov ebx,tic_table+9000
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je nosuchfile
 
mov ebx,tic_table+9100
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+9100
mov ecx,12
strup6:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup6
pop eax ecx edi esi
 
mov ebx,dword [f1len]
mov ecx,dword [count]
sub ecx,ebx
 
mov dword [f2len],ecx
 
looprn2:
cmp byte [tic_table+9100+ecx],'.'
je chdotrn2
 
loop looprn2
 
jmp chnodotrn2
 
chdotrn2:
mov ebx,dword [f2len]
 
cld
mov ecx,4
mov edi,tic_table+9100
add edi,ebx
mov esi,dzero
rep movsb
 
jmp gorn2
 
chnodotrn2:
mov ebx,dword [f2len]
 
mov edi,tic_table+9100
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+9100
add edi,ebx
mov esi,fill3
rep movsb
 
gorn2:
mov eax,6
mov ebx,tic_table+9100
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
jne alreadyexist
 
mov eax,6
mov ebx,tic_table+9000
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
mov dword [filesize],eax
 
mov eax,33
mov ebx,tic_table+9100
mov ecx,tic_table+25000
mov edx,dword [filesize]
mov esi,0
int 0x40
 
cmp eax,0
jne no_ok1
 
mov eax,6
mov ebx,tic_table+9100
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je no_ok1
 
mov eax,32
mov ebx,tic_table+9000
int 0x40
 
call newline
mov edx,mess14
call printf
jmp rn_end
 
no_ok1:
call newline
mov edx,mess15
call printf
 
rn_end:
add dword [count],3
 
cmp byte [callp],1
je go
 
jmp ecmd
 
del:
cmp byte [callp],1
je gonext12
call clearsum
gonext12:
sub dword [count],4
 
cld
mov ecx,dword [count]
mov edi,tic_table+400
mov esi,tic_table+600
add esi,4
rep movsb
 
mov ebx,tic_table+400
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+400
mov ecx,70
strup1:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup1
pop eax ecx edi esi
 
mov ecx,dword [count]
 
loopdel:
cmp byte [tic_table+400+ecx],'.'
je chdotdel
 
loop loopdel
 
jmp chnodotdel
 
chdotdel:
mov ebx,dword [count]
 
cld
mov ecx,4
mov edi,tic_table+400
add edi,ebx
mov esi,dzero
rep movsb
 
jmp godel
 
chnodotdel:
mov ebx,dword [count]
 
mov edi,tic_table+400
add edi,ebx
mov esi,ddot
movsb
 
inc ebx
 
cld
mov ecx,3
mov edi,tic_table+400
add edi,ebx
mov esi,fill3
rep movsb
 
godel:
mov eax,6
mov ebx,tic_table+400
mov ecx,0
mov edx,-1
mov esi,tic_table+25000
int 0x40
 
cmp eax,4294967295
je nosuchfile2
 
mov eax,32
mov ebx,tic_table+400
int 0x40
 
call newline
mov edx,mess6
call printf
 
add dword [count],4
 
del_end:
add dword [count],4
 
cmp byte [callp],1
je go
 
jmp ecmd
 
nosuchfile:
add dword [count],3
call newline
mov edx,mess7
call printf
 
cmp byte [callp],0
je ecmd
 
jmp go
 
nosuchfile2:
add dword [count],4
call newline
mov edx,mess7
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
nosuchfile3:
inc dword [count]
call newline
mov edx,mess7
call printf
jmp ecmd
 
autoexec:
mov eax,6
mov ebx,autoexfile
mov ecx,0
mov edx,-1
mov esi,tic_table+15000
int 0x40
 
cmp eax,4294967295
je noaxfile
 
sub dword [linen],81
sub dword [xpos],10
dec dword [lpress]
 
jmp autolabel
 
noaxfile:
ret
 
command:
call clearsum
dec dword [count]
 
cld
mov ecx,dword [count]
mov edi,filename
mov esi,tic_table+601
rep movsb
 
mov ebx,filename
push esi edi ecx eax
mov esi,ebx
 
mov edi,filename
mov ecx,12
strup7:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup7
pop eax ecx edi esi
 
cld
mov ecx,4
mov edi,filename+8
mov esi,dcmd
rep movsb
 
mov eax,6
mov ebx,filename
mov ecx,0
mov edx,-1
mov esi,tic_table+15000
int 0x40
 
cmp eax,4294967295
je nosuchfile3
 
autolabel:
mov dword [filesize2],eax
mov byte [callp],1
 
go:
call clearcmd
 
gonext:
cmp dword [filesize2],0
je ecmd3
 
mov ebx,tic_table
add ebx,dword [readcnt]
cmp byte [ebx],13
je read
 
inc dword [readcnt]
inc dword [readcnt2]
dec dword [filesize2]
 
jmp gonext
 
read:
mov ecx,dword [readcnt2]
mov ebx,0
mov edx,dword [readcnt]
sub edx,dword [readcnt2]
loop60:
push ecx
mov edi,tic_table+600
add edi,ebx
mov esi,tic_table
add esi,edx
movsb
 
inc ebx
inc edx
 
pop ecx
loop loop60
 
mov eax,dword [readcnt2]
mov dword [count],eax
 
mov dword [readcnt2],0
add dword [readcnt],2
 
jmp checkcmd
 
decnumb:
cmp dword [fnumb],4
je go1
 
call divide
mov dword [n8],edx
mov ebx,eax
call divide
mov dword [n7],edx
mov ebx,eax
call divide
mov dword [n6],edx
mov ebx,eax
call divide
mov dword [n5],edx
mov ebx,eax
 
go1:
call divide
mov dword [n4],edx
mov ebx,eax
call divide
mov dword [n3],edx
mov ebx,eax
call divide
mov dword [n2],edx
mov ebx,eax
call divide
mov dword [n1],edx
 
add dword [n1],48
add dword [n2],48
add dword [n3],48
add dword [n4],48
 
cmp dword [fnumb],4
je go2
 
add dword [n5],48
add dword [n6],48
add dword [n7],48
add dword [n8],48
 
go2:
mov edi,tic_table+200
mov esi,n1
movsb
mov edi,tic_table+201
mov esi,n2
movsb
mov edi,tic_table+202
mov esi,n3
movsb
mov edi,tic_table+203
mov esi,n4
movsb
 
cmp dword [fnumb],4
je go4
 
mov edi,tic_table+204
mov esi,n5
movsb
mov edi,tic_table+205
mov esi,n6
movsb
mov edi,tic_table+206
mov esi,n7
movsb
mov edi,tic_table+207
mov esi,n8
movsb
 
go4:
mov eax,4
mov ebx,[ypos]
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov edx,tic_table+200
mov esi,dword [fnumb]
int 0x40
 
ret
 
divide:
mov eax,ebx
xor edx,edx
mov ecx,10
div ecx
ret
 
kill:
mov eax,0
mov ebx,0
mov ecx,0
mov edx,0
 
mov al, byte [tic_table+608]
mov bl, byte [tic_table+607]
mov cl, byte [tic_table+606]
mov dl, byte [tic_table+605]
 
sub al,48
sub bl,48
sub cl,48
sub dl,48
 
imul ebx,10
imul ecx,100
imul edx,1000
 
mov esi,0
add esi,eax
add esi,ebx
add esi,ecx
add esi,edx
mov ecx,esi
 
mov eax,9
mov ebx,tic_table
int 0x40
 
cmp eax,ecx
jb nosuchprocess
 
mov eax,18
mov ebx,2
mov edx,0
int 0x40
 
call clearsum
call newline
mov edx,mess3
call printf
call newline
mov edx,mess4
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
ecmd1:
sub dword [xpos],10
jmp ecmd
 
nosuchprocess:
call clearsum
call newline
mov edx,mess8
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
echoeol:
cmp byte [callp],1
je gonext15
call clearsum
gonext15:
call newline
 
cmp byte [callp],1
je go
 
jmp ecmd
 
echo:
cmp byte [callp],1
je gonext13
call clearsum
gonext13:
sub dword [count],5
 
cld
mov ecx,dword [count]
mov edi,tic_table+300
mov esi,tic_table+600
add esi,5
rep movsb
 
call newline
 
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov edx,tic_table+300
mov ecx,0x00ddeeff
mov esi,dword [count]
int 0x40
 
cld
mov ecx,dword [count]
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+300
rep movsb
 
mov eax,dword [count]
add dword [linen],eax
add dword [linel],eax
 
add dword [count],5
 
cmp byte [callp],1
je go
 
jmp ecmd
 
printf:
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov esi,45
int 0x40
 
cld
mov ecx,45
mov edi,tic_table
add edi,dword [linen]
mov esi,edx
rep movsb
 
add dword [linen],46
add dword [linel],46
 
add dword [ypos],6
 
ret
 
printipc:
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov ecx,0x00ddeeff
mov esi,79
int 0x40
 
cld
mov ecx,79
mov edi,tic_table
add edi,dword [linen]
mov esi,edx
rep movsb
 
add dword [linen],80
add dword [linel],80
 
mov dword [ypos],480
 
ret
 
clearcmd:
cld
mov ecx,80
mov edi,tic_table+600
mov esi,tic_table+500
rep movsb
 
mov ecx,80
mov edi,tic_table+400
mov esi,tic_table+500
rep movsb
 
mov ecx,81
mov edi,tic_table+800
mov [esi],byte 'x'
rep movsb
 
mov ecx,12
mov edi,filename
mov esi,pname
rep movsb
 
mov dword [count],0
mov dword [pn],0
mov dword [blockcnt],0
mov dword [lscnt],8024
ret
 
oldcmd:
mov eax,dword [count]
mov dword [oldcount],eax
 
cld
mov ecx,81
mov edi,tic_table+900
mov esi,tic_table+500
rep movsb
 
cld
mov ecx,81
mov edi,tic_table+900
mov esi,tic_table+600
rep movsb
 
ret
 
ecmd:
call oldcmd
call clearcmd
call newline
 
call ppr
call cursor
 
jmp still
 
ecmd2:
call clearcmd
call newline
 
call ppr
call cursor
jmp still
 
ecmd3:
call clearcmd
call newline
 
call ppr
call cursor
 
mov dword [readcnt],15000
mov dword [readcnt2],0
mov byte [callp],0
mov dword [filesize2],0
 
jmp still
 
chparam:
pop ecx
mov eax,ecx
mov edx,eax
push edx
inc eax
 
cld
mov edi,tic_table+400
mov esi,tic_table+600
rep movsb
 
mov ecx,dword [count]
sub ecx,eax
 
cld
mov edi,tic_table+800
mov esi,tic_table+600
add esi,eax
rep movsb
 
pop edx
 
mov dword [ipccount],edx
 
cld
mov ecx,11
mov edi,tic_table+400
add edi,edx
mov esi,qspace
rep movsb
 
mov eax,19
mov ebx,tic_table+400
mov ecx,tic_table+800
int 0x40
 
cmp eax,0xfffffff0
jb cmd_ok
 
jmp err
 
cls:
call oldcmd
call cls2
 
cmp byte [callp],0
jne needret
 
call clearcmd
call ppr
call cursor
 
jmp still
 
needret:
sub dword [linen],81
dec dword [lpress]
sub dword [xpos],10
 
jmp gonext
 
cls1:
mov eax,13
mov ebx,6*65536+486
mov ecx,24*65536+250
mov edx,0
int 0x40
ret
 
cls2:
mov dword [linen],2000
mov ecx,2025
loop2:
push ecx
mov edi,tic_table
add edi,dword [linen]
mov esi,fill1
movsb
 
inc dword [linen]
pop ecx
loop loop2
 
mov dword [linel],0
mov dword [linen],2000
mov dword [linev],2000
mov dword [xpos],24
mov dword [ypos],6
mov dword [lpress],1
mov dword [stnum],1
 
call cls1
 
ret
 
chscr:
cmp dword [xpos],264
jne no_scr
 
mov dword [cnt_loop1],4500
mov dword [cnt_loop2],2000
 
mov ecx,2025
loop10:
push ecx
mov edi,tic_table
add edi,dword [cnt_loop1]
mov esi,tic_table
add esi,dword [cnt_loop2]
movsb
 
inc dword [cnt_loop1]
inc dword [cnt_loop2]
 
pop ecx
loop loop10
 
mov dword [cnt_loop1],2000
 
mov ecx,2025
loop11:
push ecx
mov edi,tic_table
add edi,dword [cnt_loop1]
mov esi,fill1
movsb
 
inc dword [cnt_loop1]
 
pop ecx
loop loop11
 
mov dword [cnt_loop1],2000
mov dword [cnt_loop2],4581
 
mov ecx,1944
loop12:
push ecx
mov edi,tic_table
add edi,dword [cnt_loop1]
mov esi,tic_table
add esi,dword [cnt_loop2]
movsb
 
inc dword [cnt_loop1]
inc dword [cnt_loop2]
 
pop ecx
loop loop12
 
dec dword [lpress]
sub dword [linen],81
 
mov dword [xpos],264
mov dword [ypos],6
mov dword [clr],480
call clear
 
call red
 
no_scr:
ret
 
newline:
call chscr
push edx
mov edx,81
sub edx,dword [linel]
add dword [linen],edx
pop edx
 
inc dword [lpress]
 
mov dword [linel],0
add dword [xpos],10
ret
 
fill:
cld
mov ecx,81
mov edi,tic_table+500
mov esi,fill1
rep movsb
ret
 
nparam3:
cmp byte [callp],1
je gonext5
call clearsum
gonext5:
call newline
mov edx,mess9
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
nparam4:
cmp byte [callp],1
je gonext6
call clearsum
gonext6:
call newline
mov edx,mess0
call printf
 
cmp byte [callp],1
je go
 
jmp ecmd
 
nparam5:
cmp byte [callp],1
je gonext14
call clearsum
gonext14:
call newline
mov edx,mess16
call printf
jmp ecmd
 
endscr:
cmp byte [callp],1
je ecmd3
call clearsum
call newline
mov edx,mess17
call printf
jmp ecmd
 
checkcmd:
cmp dword [tic_table+600],'help'
jne no_help
cmp dword [count],4
jne no_help
 
jmp help
 
no_help:
cmp dword [tic_table+600],'exit'
jne no_exit
cmp dword [count],4
jne no_exit
 
jmp exit
 
no_exit:
cmp word [tic_table+600],'ve'
jne no_ver
cmp byte [tic_table+602],'r'
jne no_ver
cmp dword [count],3
jne no_ver
 
jmp ver
 
no_ver:
cmp word [tic_table+600],'cl'
jne no_cls
cmp byte [tic_table+602],'s'
jne no_cls
cmp dword [count],3
jne no_cls
 
jmp cls
 
no_cls:
cmp dword [tic_table+600],'shut'
jne no_shutdown
cmp dword [tic_table+604],'down'
jne no_shutdown
cmp dword [count],8
jne no_shutdown
 
mov eax,18
mov ebx,1
int 0x40
 
mov eax,5
mov ebx,200
int 0x40
 
no_shutdown:
cmp word [tic_table+600],'ps'
jne no_ps
cmp dword [count],2
je ps
 
no_ps:
cmp dword [tic_table+600],'kill'
jne no_kill
cmp byte [tic_table+604],' '
jne no_kill
cmp dword [count],9
je kill
 
jmp nparam
 
no_kill:
cmp dword [tic_table+600],'paus'
jne no_pause
cmp byte [tic_table+604],'e'
jne no_pause
cmp dword [count],5
je pause1
 
no_pause:
cmp dword [tic_table+600],'echo'
jne no_echo
cmp dword [count],4
je echoeol
cmp byte [tic_table+604],' '
je echo
 
no_echo:
cmp word [tic_table+600],'de'
jne no_del
cmp byte [tic_table+602],'l'
jne no_del
cmp byte [tic_table+603],' '
jne no_del
cmp dword [count],3
je nparam2
cmp dword [count],4
je nparam2
 
jmp del
 
no_del:
cmp word [tic_table+600],'ls'
jne no_ls
cmp dword [count],2
je ls
cmp dword [count],3
je ls
 
jmp lscheck
 
no_ls:
cmp word [tic_table+600],'cp'
jne no_cp
cmp dword [count],2
je nparam3
cmp dword [count],3
je nparam3
cmp dword [count],4
je nparam3
cmp dword [count],5
je nparam3
cmp byte [tic_table+602],' '
jne no_cp
 
jmp cp
 
no_cp:
cmp word [tic_table+600],'rn'
jne no_rn
cmp dword [count],2
je nparam4
cmp dword [count],3
je nparam4
cmp dword [count],4
je nparam4
cmp dword [count],5
je nparam4
cmp byte [tic_table+602],' '
jne no_rn
 
jmp rn
 
no_rn:
cmp dword [tic_table+600],'ends'
jne no_end
cmp dword [count],4
je endscr
 
no_end:
cmp byte [callp],1
je checkprg
 
ret
 
checkprg:
mov ebx,tic_table+600
push esi edi ecx eax
mov esi,ebx
 
mov edi,tic_table+600
mov ecx,74
strup:
mov al,[esi]
cmp al,'A'
jb @f
cmp al,'z'
ja @f
cmp al,'a'
jb @f
add al,-0x20
@@:
mov [edi],al
inc esi
inc edi
dec ecx
jnz strup
pop eax ecx edi esi
 
mov ecx,dword [count]
loop20:
push ecx
cmp byte [tic_table+600+ecx],'&'
je chparam
 
pop ecx
loop loop20
 
cld
mov ecx,11
mov edi,tic_table+600
add edi,dword [count]
mov esi,qspace
rep movsb
 
mov eax,19
mov ebx,tic_table+600
mov ecx,0
int 0x40
 
cmp eax,0xfffffff0
jb cmd_ok_1
 
jmp err
 
cmd_ok_1:
mov eax,dword [count]
mov dword [ipccount],eax
 
cmd_ok:
mov eax,60
mov ebx,1
mov ecx,ipcb
mov edx,118
int 0x40
 
call clearipc
 
mov eax,40
mov ebx,01000111b
int 0x40
 
mov eax,23
mov ebx,10
int 0x40
 
cmp eax,7
jne noipc
 
cmp byte [callp],1
je printipcprgname
 
call clearsum
 
ipccontinue:
mov eax,9
mov ebx,tic_table+100000
mov ecx,-1
int 0x40
 
mov ecx,eax
loopfindipc:
push ecx
 
mov eax,9
mov ebx,tic_table+100000
int 0x40
 
mov bl,[tic_table+600]
cmp byte [tic_table+100000+10],bl
jne goonipc
cmp dword [ipccount],1
je ipcfinished
 
mov bl,[tic_table+601]
cmp byte [tic_table+100000+11],bl
jne goonipc
cmp dword [ipccount],2
je ipcfinished
 
mov bl,[tic_table+602]
cmp byte [tic_table+100000+12],bl
jne goonipc
cmp dword [ipccount],3
je ipcfinished
 
mov bl,[tic_table+603]
cmp byte [tic_table+100000+13],bl
jne goonipc
cmp dword [ipccount],4
je ipcfinished
 
mov bl,[tic_table+604]
cmp byte [tic_table+100000+14],bl
jne goonipc
cmp dword [ipccount],5
je ipcfinished
 
mov bl,[tic_table+605]
cmp byte [tic_table+100000+15],bl
jne goonipc
cmp dword [ipccount],6
je ipcfinished
 
mov bl,[tic_table+606]
cmp byte [tic_table+100000+16],bl
jne goonipc
cmp dword [ipccount],7
je ipcfinished
 
mov bl,[tic_table+607]
cmp byte [tic_table+100000+17],bl
jne goonipc
 
goonipc:
pop ecx
dec ecx
jnz loopfindipc
 
ipcfinished:
mov ebx,[tic_table+100000+30]
mov dword [ipcpid],ebx
 
mov eax,60
mov ebx,2
mov ecx,dword [ipcpid]
mov edx,ddot
mov esi,1
int 0x40
 
call newline
call clearipc
 
jmp waitipc
 
printipcprgname:
call newline
call printcmd
jmp ipccontinue
 
noipc:
cmp byte [callp],1
je prtcmd
 
call clearsum
 
jmp cmd_ok2
 
printcmd:
mov eax,4
mov ebx,6
shl ebx,16
add ebx,[xpos]
mov edx,tic_table+600
mov ecx,0x00ddeeff
mov esi,dword [count]
int 0x40
 
cld
mov ecx,dword [count]
mov edi,tic_table
add edi,dword [linen]
mov esi,tic_table+600
rep movsb
 
mov eax,dword [count]
add dword [linen],eax
add dword [linel],eax
 
ret
 
prtcmd:
call newline
call printcmd
jmp go
 
cmd_ok2:
cmp byte [callp],1
je go
 
ret
 
waitipc:
mov eax,40
mov ebx,01000111b
int 0x40
 
mov eax,10
int 0x40
 
cmp eax,7
je ipcok
cmp eax,1
je reipc
cmp eax,3
je exit
cmp eax,2
je keyipc
 
jmp waitipc
 
keyipc:
mov eax,2
int 0x40
 
jmp waitipc
 
reipc:
call draw
call red
 
jmp waitipc
 
clearipc:
cld
mov ecx,118
mov edi,ipcb
mov esi,ipcc
rep movsb
 
ret
 
ipcok:
cmp dword [ipcb+16],'~ccc'
je ipccls
cmp dword [ipcb+16],'~eee'
je endipc
cmp dword [ipcb+16],'~lll'
je ipcline
cmp dword [ipcb+16],'~ppp'
je ipcprint
cmp dword [ipcb+16],'~kkk'
je ipckey
 
jmp waitipc
 
reipc2:
call draw
call red
 
ipckey:
mov eax,10
int 0x40
 
cmp eax,1
je reipc2
cmp eax,3
je exit
cmp eax,2
je ipckeypressed
 
jmp ipckey
 
ipckeypressed:
mov eax,2
int 0x40
 
mov byte [ipckeyvalue],ah
 
mov eax,60
mov ebx,2
mov ecx,dword [ipcpid]
mov edx,ipckeyvalue
mov esi,1
int 0x40
 
call clearipc
jmp waitipc
 
ipccls:
call cls2
call clearipc
jmp waitipc
 
ipcline:
call newline
call clearipc
jmp waitipc
 
ipcprint:
mov edx,ipcb+20
call printipc
call clearipc
jmp waitipc
 
endipc:
cmp byte [callp],1
je go
 
call clearsum
 
jmp ecmd
 
cmdexist:
mov eax,9
mov ebx,tic_table
mov ecx,-1
int 0x40
 
mov ecx,eax
loopex:
push ecx
 
mov eax,9
mov ebx,I_END
int 0x40
 
cmp word [I_END+10],'CM'
jne no_cmd
cmp byte [I_END+12],'D'
jne no_cmd
 
inc byte [cmd_ex]
 
cmp byte [cmd_ex],2
je exit
 
no_cmd:
pop ecx
loop loopex
 
ret
 
title:
db 'CMD - Command line interpreter'
title_end:
 
smb_cursor db '|'
 
prompt db 'CMD>>'
 
h1 db ' CMD - Command line interpreter version 0.26 '
h2 db ' copyleft Chemist - dmitry_gt@tut.by '
h3 db ' Available commands: '
h4 db ' HELP - Display this text LS - List files '
h5 db ' EXIT - Exit Programm CP - Copy file '
h6 db ' CLS - Clear Screen PS - Process info '
h7 db ' KILL - Kill Process RN - Rename File '
h8 db ' VER - Display programm version '
h9 db ' DEL - Delete file from ramdisk '
h10 db ' SHUTDOWN - Quit Menuet '
h11 db ' PAUSE - Wait for keypress '
h12 db ' ECHO - Print text to screen '
h13 db ' ENDS - End script '
h14 db ' /[filename] - Execute script '
h15 db ' Use & symbol to enter params: '
h16 db ' tinypad&cmd.asm - open cmd.asm '
 
about db 'Command Line Interpreter version 0.26 '
 
err1 db 'Unknown command or filename'
 
proc_head db ' PID Name Start Length Proc_NUMB '
proc_hd11 db '-------------------------------------------- '
 
mess1 db 'Press any key to continue (ESC - Cancel)... '
mess2 db 'Plz specify a 4 byte process number (not PID) '
mess3 db 'Process with number you specified has been '
mess4 db 'terminated. '
mess5 db 'Usage: del [filename] '
mess6 db 'Filename you specified has been deleted. '
mess7 db 'No such file! '
mess8 db 'No such process! '
mess9 db 'Usage: cp [source_file+destination_file] '
mess0 db 'Usage: rn [source_file+destination_file] '
 
mess11 db 'File successfully copied '
mess12 db 'ERROR: Can not copy file! '
mess13 db 'ERROR: Output file alredy exist! '
mess14 db 'File successfully renamed '
mess15 db 'ERROR: Can not rename file! '
mess16 db 'You must specify a command script filename! '
mess17 db 'This command is available only in scripts! '
 
 
linen dd 2000
lpress dd 1
linel dd 0
linev dd 2000
stnum dd 1
rdstat dd 0
 
ypos dd 6
xpos dd 24
count dd 0
clr dd 0
smb db 0
pn dd 0
count2 dd 0
count3 dd 9
oldcount dd 0
oldcount1 dd 0
 
fnumb dd 0
n1 dd 0
n2 dd 0
n3 dd 0
n4 dd 0
n5 dd 0
n6 dd 0
n7 dd 0
n8 dd 0
 
ddot db '.'
dcmd db '.CMD',0
 
cnt_loop1 dd 0
cnt_loop2 dd 0
 
lscnt dd 8024
blockcnt dd 0
lscntf db 0
lscntx db 0
 
filesize dd 0
filesize2 dd 0
 
readcnt dd 15000
readcnt2 dd 0
 
callp db 0
callp2 db 0
 
fill1 db ' '
fill3 db ' ',0
 
pname db ' ',0
autoexfile db 'AUTOEXEC.CMD',0
filename db ' ',0
 
dzero db 0,0,0,0
qspace db ' '
 
f1len dd 0
f2len dd 0
 
ipcpid dd 0
 
ipckeyvalue db 0
 
ipccount dd 0
 
cmd_ex db 0
 
ipcb:
db 0
db 0,0,0
dd 8
times 110 db 0
 
ipcc:
db 0
db 0,0,0
dd 8
times 110 db 0
 
I_END:
 
tic_table:
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property