mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
561 lines
12 KiB
NASM
561 lines
12 KiB
NASM
; Ž¡à ¡®âª BAT-ä ©«®¢
|
||
;
|
||
|
||
;fhandle
|
||
BAT_FM: db 0 ; ¤¥áªà. bat-ä ©«
|
||
;count: db 0 ; ç¨á«® ¯à®ç¨â. ¡ ©â ¨§ ä ©«
|
||
|
||
; ä« £ echo-०¨¬
|
||
echo_mode:
|
||
db true ; 1/0 on/off
|
||
|
||
; ¡ãä¥à bat-ä ©«
|
||
;T98B9: ds 256
|
||
|
||
|
||
; IF 0
|
||
; CALL RUN_BAT
|
||
; CALL BATCH
|
||
; CALL MAKE_BATCH_PRM_ARRAY
|
||
; CALL NEWLINE
|
||
; CALL CMDMODE
|
||
; CALL EVALCMD
|
||
; CALL RUN_BAT
|
||
; ENDIF
|
||
|
||
;-------------------------------------------------
|
||
; ‡ ¯ã᪠bat-ä ©«
|
||
; ¢å®¤: hl=¨¬ï ä ©«
|
||
;-------------------------------------------------
|
||
RUN_BAT:
|
||
call BATCH
|
||
jp c,EXEERR ; ®è¨¡ª ®âªà. ä ©« (cpp.asm)
|
||
ret
|
||
;-------------------------------------------------
|
||
|
||
; ¢å®¤: b=ç¨á«® á«®¢ "ZERO".."NINE"
|
||
MAKE_BATCH_PRM_ARRAY:
|
||
dec hl
|
||
.loop: inc hl
|
||
ld a,(hl)
|
||
or a
|
||
ret z
|
||
cp " "
|
||
jr z,.loop
|
||
cp "\t" ; Tab
|
||
jr z,.loop
|
||
ex de,hl
|
||
ld (hl),e
|
||
inc hl
|
||
ld (hl),d
|
||
inc hl
|
||
ex de,hl
|
||
.B_FIND_SPACE:
|
||
inc hl
|
||
ld a,(hl)
|
||
cp " "+1
|
||
jr nc,.B_FIND_SPACE
|
||
ld (hl),0
|
||
or a
|
||
ret z
|
||
djnz .loop
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‡ £à㧪 ¨ ¢ë¯®«¥¨¥ BAT-ä ©«
|
||
; ¢å®¤: hl=¨¬ï ä ©«
|
||
; ¢ë室: "CF" - ®è¨¡ª ®âªà. ä ©«
|
||
;-------------------------------------------------
|
||
BATCH:
|
||
; [x] 11/12/23 ¢«®¦¥ë¥ bat
|
||
ld a,(BAT_FM)
|
||
or a
|
||
jr nz,.new_process
|
||
;
|
||
|
||
push hl ; á®åà. ¨¬ï bat-ä ©«
|
||
ld de,Buffers.work.buffer ; 512 ¬¥áâë© ¡ãä¥à
|
||
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||
ld hl,Buffers.work.buffer ; 512 ¬¥áâë© ¡ãä¥à
|
||
ld de,BAT_PRM_ARRAY ; â ¡«¨æ 㪠§ â. "ZERO".."NINE"
|
||
ld b,BAT_PRM_ARRAY.TOTAL ; ç¨á«® á«®¢ "ZERO".."NINE"
|
||
call MAKE_BATCH_PRM_ARRAY
|
||
jr nz,.B_ALL_P
|
||
ld hl,NULL ; ds 2*10
|
||
ex de,hl
|
||
.B_CLR_P:
|
||
ld (hl),e
|
||
inc hl
|
||
ld (hl),d
|
||
inc hl
|
||
djnz .B_CLR_P
|
||
ex de,hl
|
||
.B_ALL_P:;-
|
||
pop hl ; ¢®ááâ. ¨¬ï bat-ä ©«
|
||
|
||
ld a,Dss.Open.R ; ç⥨¥
|
||
ld c,Dss.Open ; ®âªàëâì ä ©«
|
||
RST ToDSS
|
||
;push af ; á®åà. ª®¤ ®è¨¡ª¨
|
||
;call c,restore_disk_path ; ¢®ááâ. ⥪. ¤¨áª ¨ ¯ãâì
|
||
;R10
|
||
;CALL Restore_Screen
|
||
;R10
|
||
;pop af
|
||
JR NC,.good
|
||
CP DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||
SCF
|
||
RET NZ
|
||
LD A,DSS_Error.sys.FILE_NOT_FOUND
|
||
RET
|
||
;
|
||
.good: ld (BAT_FM),a ; ¤¥áªà. bat-ä ©«
|
||
; ¢ë¯®«. ª®¬ ¤ bat-ä ©«
|
||
call NEWLINE
|
||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||
;R10
|
||
push af
|
||
CALL Restore_Screen
|
||
pop af
|
||
;R10
|
||
xor a ;!FIXIT
|
||
ret
|
||
; [x] 11/12/23 ¢«®¦¥ë¥ bat
|
||
.new_process:
|
||
ld de,Buffers.work.buffer2
|
||
call copy_string
|
||
;
|
||
ld hl,.shell
|
||
ld de,Buffers.input_line.Path
|
||
call copy_string
|
||
;
|
||
ld hl,Buffers.work.buffer2
|
||
ld de,Buffers.input_line.Path + .shell.size - 1
|
||
call copy_string
|
||
;
|
||
ld hl,Buffers.input_line.Path
|
||
ld bc,Dss.Exec
|
||
RST ToDSS
|
||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||
xor a
|
||
ret
|
||
;
|
||
;rst ToDSS
|
||
;
|
||
; ret nc
|
||
; CP DSS_Error.sys.FILE_NOT_FOUND
|
||
; ret nz
|
||
|
||
; jp z,A83DD ; ®è¨¡ª ®âªà. ä ©« (cpp.asm)
|
||
; ret
|
||
|
||
;.shell: DB '?:\SYSTEM.EXE /C ',0
|
||
|
||
.shell: DB 'SYSTEM.EXE /C ',0
|
||
.shell.size EQU $ - .shell
|
||
|
||
;!TODO
|
||
; .ErrorEnv: DB 'ERRORLEVEL='
|
||
; .ErrorEnv.Code: DB 'xxx',0
|
||
; .ErrorEnv.Size EQU $ - .ErrorEnv
|
||
;
|
||
|
||
;---------------------------------------------------
|
||
; ‚믮«¥¨¥ ª®¬ ¤ BAT-ä ©«
|
||
;---------------------------------------------------
|
||
NEWLINE:
|
||
LD (cmd_break.sp),SP ; [x] 11/12/23 cmd_break
|
||
;
|
||
ld de,Buffers.input_line.Path
|
||
.ADDBAT: push de
|
||
call READBAT ; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©« ¢ "Buffers.work.buffer1"
|
||
pop de
|
||
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
||
jp c,cmd_break.exit
|
||
or a ; a=ç¨á«® ¯à®ç¨â. ¡ ©â
|
||
jr nz,.BATLINE
|
||
;
|
||
ex de,hl
|
||
ld de,Buffers.input_line.Path
|
||
sbc hl,de
|
||
jp z,cmd_break.exit; ;[x] <Vasil> ã¡à ¡ £ á ¥§ ªàëâë¬ BAT-ä ©«®¬
|
||
ld a,l
|
||
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨
|
||
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
||
; ^^^^^^^
|
||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||
JP cmd_break.exit
|
||
; .exit: ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©«
|
||
; ld c,Dss.Close ; § ªàëâì ä ©«
|
||
; ;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||
; RST ToDSS
|
||
; xor a
|
||
; ld (BAT_FM),a
|
||
; ret
|
||
;
|
||
.BATLINE:
|
||
ld hl,Buffers.work.buffer1
|
||
.loop: call MOVWORD ; ᪮¯¨à. Buffers.work.buffer1 -> Buffers.input_line.Path
|
||
jr c,.ADDBAT
|
||
ld a,b
|
||
ld (MOVWORD.count),a ; ®áâ «®áì ¯à®¯ àá¨âì ¯à®ç¨â ëå ¡ ©â®¢
|
||
push hl
|
||
ex de,hl
|
||
ld de,Buffers.input_line.Path
|
||
sbc hl,de
|
||
ld a,l
|
||
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨
|
||
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
||
; ^^^^^^^
|
||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||
ld de,Buffers.input_line.Path
|
||
pop hl
|
||
jr .loop
|
||
|
||
|
||
;-------------------------------------------------
|
||
; —⥨¥ ¤ ëå (hl) -> (de), ¯à¨ ¥®¡å®¤¨¬®áâ¨
|
||
; ¯®¤ª çª ¨§ ä ©« .
|
||
;
|
||
; ¢å®¤: hl=®âªã¤
|
||
; de=ªã¤
|
||
;-------------------------------------------------
|
||
MOVWORD:
|
||
.count+1: ld a,0 ; ç¨á«® ¯à®ç¨â. ¡ ©â ¨§ ä ©«
|
||
; [x] 15/12/23 exit if 0
|
||
OR A
|
||
SCF
|
||
RET Z
|
||
;
|
||
ld b,a
|
||
.loop: ld a,(hl)
|
||
ld (de),a
|
||
cp " "
|
||
jr c,.loop_
|
||
inc hl
|
||
inc de
|
||
djnz .loop
|
||
scf
|
||
ret
|
||
; ¯à®ç¨â âì ¤®¯. ¡«®ª ¨§ ä ©«
|
||
.loop2: ld a,(hl)
|
||
cp " "
|
||
ret nc
|
||
.loop_: inc hl
|
||
djnz .loop2
|
||
push de
|
||
call READBAT ; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©«
|
||
pop de
|
||
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
||
RET C
|
||
;ld hl,BATBUFF ; 128 ¡ãä¥à (ccp.asm) "work_buffer1"
|
||
ld hl,Buffers.work.buffer1
|
||
ld b,a ; ç¨á«® ¯à®ç¨â. ¡ ©â
|
||
or a
|
||
jr nz,.loop2
|
||
scf
|
||
ret
|
||
|
||
; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©«
|
||
READBAT:
|
||
ld hl,Buffers.work.buffer1
|
||
ld de,128 ; ᪮«ìª®
|
||
ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©«
|
||
ld c,Dss.Read ; ç⥨¥ ä ©«
|
||
RST ToDSS
|
||
ld a,e
|
||
; [x] 28/09/23
|
||
JR NC,1F
|
||
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , á®åà ïâì ®è¨¡ªã
|
||
LD A,0 ; á®åà 塞 ä« £ CF
|
||
;
|
||
1: ld (MOVWORD.count),a ; ç¨á«® ¯à®ç¨â. ¡ ©â ¨§ ä ©«
|
||
ret
|
||
|
||
|
||
; ’¥áâ bat-ª®¬ ¤ë
|
||
; ¤®«¦¥ ᮡ«î¤ âìáï ¡ « á á⥪ ¤«ï cmd_break
|
||
CMDMODE:
|
||
;xor a
|
||
;ld (D96A6),a ; (inline.asm)
|
||
call EVALCMD ; (batch.asm)
|
||
RET C
|
||
;ld ix,T96AC ; 㦮?? § ª®¬¥â ਫ (inline.asm)
|
||
;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||
ld hl,Buffers.input_line.Path
|
||
ld a,(hl)
|
||
cp "@" ; 40h
|
||
jr nz,.A8240
|
||
dec hl
|
||
;ld hl,Buffers.input_line.Symbols_Num;;
|
||
dec (hl)
|
||
jr z,.A825B
|
||
ld c,(hl) ; ¤«¨ áâப¨
|
||
inc hl
|
||
ld b,0
|
||
;ld hl,Buffers.work.buffer+256;;
|
||
ld d,h
|
||
ld e,l
|
||
inc hl
|
||
ldir
|
||
jr .A825B
|
||
;
|
||
.A8240: ld a,(echo_mode) ; ä« £ echo-०¨¬
|
||
or a
|
||
jr z,.A825B ; off
|
||
; ¢ë¢¥á⨠á¨áâ. ¯ãâì ¨ áâபã ᮤ¥à¦¨¬®£® bat-ä ©«
|
||
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||
;ld de,Buffers.input_line.Path
|
||
;call A95DE ; ¢ë¢®¤ íªà . ¯ã⨠á ">" (inline.asm)
|
||
; ¢ë¢¥á⨠íªà . ¯ãâì ¨ ¢¢¥¤. ª®¬ ¤ã
|
||
ld c,BIOS.LP_GET_PLACE ; ã§ âì ¯®«®¦. ªãàá®à
|
||
RST ToBIOS
|
||
ld (YXpos),de ; Y/X ç «® ª®¬-áâப¨
|
||
ld (cursor_position),de ; Y/X ¯®§¨æ¨ï ªãàá®à
|
||
call print_compath ; ¢ë¢¥á⨠¯ãâì + ®¢ ï è¨à¨ ¯®«ï ¢¢®¤
|
||
ld de,(YXpos) ; Y/X ç «® ª®¬-áâப¨
|
||
ld c,Dss.Locate ; ãáâ. ¯®«®¦. ªãàá®à
|
||
RST ToDSS
|
||
;ld hl,Buffers.work.buffer+256;;
|
||
ld hl,Buffers.input_line.Symbols_Num ; ¤«¨ áâப¨
|
||
ld a,(hl)
|
||
ld b,a
|
||
inc hl ;+5
|
||
push bc
|
||
LD C,Dss.PChars
|
||
RST ToDSS
|
||
;ld c,BIOS.LP_PRINT_LINE2 ; ¢ë¢®¤ áâப¨ ¡¥§ âਡã⮢
|
||
;RST ToBIOS
|
||
pop bc ; b=¤«¨ áâப¨
|
||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤ (76..48)
|
||
sub b
|
||
;ei
|
||
ret z ; ¯à ¢ë© ªà © íªà
|
||
jr c,.A8250; ; áâப ¡®«ìè¥ è¨à¨ë íªà
|
||
; § ¯®«¨âì áâப㠤® ª®æ íªà
|
||
dec a ; çâ®¡ë ¥ áà ¡®â « áªà®««¨£ íªà ;!FIXIT scroll
|
||
ld b,a ; ç¨á«® ¢ë¢®¤. ᨬ¢®«®¢
|
||
ld a," " ; ᨬ¢®«
|
||
ld c,BIOS.LP_PRINT_SYM ; ¢ë¢®¤ ᨬ¢®« ¡¥§ âਡãâ
|
||
RST ToBIOS
|
||
;ei
|
||
;!TEST
|
||
.A8250: call newline
|
||
;
|
||
;
|
||
;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
||
;ld a,(Buffers.input_line.Symbols_Num);-
|
||
;or a
|
||
;ret z
|
||
;call newline
|
||
;jr A8264
|
||
;
|
||
.A825B: ;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
||
ld a,(Buffers.input_line.Symbols_Num)
|
||
or a
|
||
ret z
|
||
;A8264: ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||
;ld hl,Buffers.input_line.Path
|
||
;dec hl
|
||
; ã¡à âì ª®æ¥¢ë¥ ¯à®¡¥«ë áâப¨
|
||
ld hl,Buffers.input_line.Symbols_Num
|
||
ld c,(hl) ; hl=¤«¨ áâப¨ (inline.asm)
|
||
ld b,0
|
||
inc hl
|
||
;ld hl,Buffers.work.buffer+256;;
|
||
.A826C: ld a,(hl)
|
||
cp " "
|
||
jr nz,.A8276
|
||
inc hl
|
||
dec c
|
||
jr nz,.A826C
|
||
ret
|
||
;
|
||
.A8276: ld d,h
|
||
ld e,l
|
||
add hl,bc
|
||
ld (hl),b ; 0 ¢ ª®¥æ áâப¨ (¯¥à¢®£® ª®æ. ¯à®¡¥« )
|
||
sbc hl,bc
|
||
ld a,c
|
||
ex af,af'
|
||
ld a," "
|
||
cpir
|
||
jr nz,.A8286
|
||
inc c
|
||
.A8286: ex af,af'
|
||
sub c
|
||
ld c,a ; ¤«¨ á«®¢ ¨«¨ áâப¨ ?
|
||
ld hl,BATLIST ; ª®¬ ¤ë bat + dos-ª®¬ ¤ë
|
||
;
|
||
; de=Buffers.input_line.Path, c=¤«¨ áâப¨ (¡¥§ ª®æ. ¯à®¡¥«®¢)
|
||
; ¢ë¯®«. ª®¬ ¤ã ¨«¨ § ¯ãáâ¨âì ä ©«
|
||
jp COMP.start
|
||
|
||
; ¤®«¦ ã¡à âì ª®æ. ¯à®¡¥«ë ¨ ãáâ. ¤«¨ã áâப¨, ¥á«¨ ã१ « áì
|
||
EVALCMD: xor a
|
||
ld hl,Buffers.input_line.Symbols_Num ;!HARDCODE
|
||
ld c,(hl)
|
||
ld b,a
|
||
inc hl
|
||
add hl,bc
|
||
ld (hl),a ; 0 ¢ ª®¥æ áâப¨
|
||
sbc hl,bc
|
||
ld de,Buffers.work.buffer2 ; 256 ¡ãä¥à
|
||
call EVALSTR
|
||
ld hl,Buffers.work.buffer2 ;work_buffer+256
|
||
ld de,Buffers.input_line.Path ; ªã¤
|
||
ld bc,max_len_comline+2
|
||
.loop: LD A,C
|
||
DEC A
|
||
JR Z,.error
|
||
;
|
||
ld a,(hl)
|
||
ldi
|
||
inc b
|
||
or a
|
||
jr nz,.loop
|
||
;
|
||
dec b
|
||
ld a,b
|
||
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨ (edline.asm)
|
||
;and a
|
||
ret
|
||
;
|
||
.error: LD (DE),A
|
||
LD A,DSS_Error.sys.ENV_ITEM_OVERFLOW
|
||
CALL print_err_message
|
||
SCF
|
||
RET
|
||
|
||
; HL - STRING WITH %VAR%
|
||
EVALSTR: ld a,(hl)
|
||
cp "%"
|
||
jr z,.TVARIABLE
|
||
.VARL1: ldi
|
||
or a
|
||
jr nz,EVALSTR
|
||
; A=0
|
||
ld b,a
|
||
ld c,a
|
||
ld (.TVAR_PNT),bc
|
||
ret
|
||
;
|
||
.TVARIABLE:
|
||
.TVAR_PNT+1: ld bc,0
|
||
ld a,b
|
||
or c
|
||
ld a,"%"
|
||
ld (.TVAR_PNT),de
|
||
jr nz,.TVAR1
|
||
inc hl
|
||
ld a,(hl) ;!FIXIT ï ¢ console.asm ¨á¯à ¢«ï« ¡ £ á ¯ à ¬¥â஬ %A ¯à¨¬¥à. ’ãâ ¬®¨ ¯à ¢ª¨ ¨«¨ ‚ ᨫï?
|
||
cp "9"+1
|
||
jr c,.TVAR0
|
||
.TVAR2: ld a,"%" ; > "9"
|
||
dec hl
|
||
jp .VARL1
|
||
.TVAR0: cp "0"
|
||
jr c,.TVAR2 ; < "0"
|
||
; BATCH PARAM %0, %1, %2 ...
|
||
inc hl
|
||
push hl
|
||
ld (.TVAR_PNT),bc
|
||
sub "0"
|
||
add a,a
|
||
ld c,a
|
||
ld hl,BAT_PRM_ARRAY ; â ¡«¨æ 㪠§ â. "ZERO".."NINE"
|
||
add hl,bc
|
||
ld a,(hl)
|
||
inc hl
|
||
ld h,(hl)
|
||
ld l,a
|
||
or h
|
||
jr z,.NOBTP ; NO BATCH PARM
|
||
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||
dec de
|
||
.NOBTP: pop hl
|
||
jp EVALSTR
|
||
;
|
||
.TVAR1: push hl
|
||
ld h,d
|
||
ld l,e
|
||
dec hl
|
||
and a
|
||
sbc hl,bc
|
||
jr z,.TNOVAR
|
||
ld a,"="
|
||
ld (de),a
|
||
inc de
|
||
xor a
|
||
ld (de),a
|
||
ld d,b ; de=¡ãä¥à § ç¥¨ï ¯¥à¥¬.
|
||
ld e,c
|
||
ld h,b ; hl=¨¬ï ¯¥à¥¬.
|
||
ld l,c
|
||
inc hl
|
||
ld bc,Dss.Environ.Get ; ¯®«ãç¨âì ¯¥à¥¬. ®ªà㦥¨ï
|
||
RST ToDSS
|
||
.TNOVAR: pop hl
|
||
inc hl
|
||
ld bc,0
|
||
ld (.TVAR_PNT),bc
|
||
jp EVALSTR
|
||
|
||
|
||
|
||
; !! <09>¥ ¤¥« âì ®¤ã ª®¬ ¤ã > 256 ᨬ¢®«®¢)) !!
|
||
;
|
||
; BAT-ª®¬ ¤ë (¥ ®â¤¥«ïâì ®â ¤®á-ª®¬ ¤)
|
||
BATLIST: DZ 'PAUSE' : DW cmd_pause
|
||
DZ 'REM' : DW cmd_rem
|
||
DZ 'EXIT' : DW cmd_break
|
||
;
|
||
; DSS-ª®¬ ¤ë
|
||
CMDLIST: DZ 'CD' : DW cmd_chdir
|
||
DZ 'DIR' : DW cmd_dir
|
||
DZ 'ECHO' : DW cmd_echo
|
||
DZ 'ECHO.' : DW cmd_echoLN
|
||
DZ 'PATH' : DW cmd_path
|
||
DZ 'MD' : DW cmd_mkdir
|
||
DZ 'REN' : DW cmd_rename
|
||
DZ 'DEL' : DW cmd_del
|
||
DZ 'RD' : DW cmd_rmdir
|
||
DZ 'INFO' : DW cmd_info
|
||
DZ 'SET' : DW cmd_set
|
||
DZ 'TIME' : DW cmd_time
|
||
DZ 'DATE' : DW cmd_date
|
||
DZ 'VER' : DW cmd_version
|
||
DZ 'CLS' : DW cmd_cls
|
||
DZ 'CHDIR' : DW cmd_chdir
|
||
DZ 'MKDIR' : DW cmd_mkdir
|
||
DZ 'RENAME' : DW cmd_rename
|
||
DZ 'ERASE' : DW cmd_del
|
||
DZ 'RMDIR' : DW cmd_rmdir
|
||
DZ 'HELP' : DW cmd_help
|
||
DZ 'VERSION' : DW cmd_version
|
||
DZ 'EXIT' : DW cmd_exit
|
||
DZ 'REBOOT' : DW cmd_reboot
|
||
DB #00
|
||
|
||
|
||
IZERO DB "ZERO",0
|
||
IONE DB "ONE",0
|
||
ITWO DB "TWO",0
|
||
ITHREE DB "THREE",0
|
||
IFOUR DB "FOUR",0
|
||
IFIVE DB "FIVE",0
|
||
ISIX DB "SIX",0
|
||
ISEVEN DB "SEVEN",0
|
||
IEIGHT DB "EIGHT",0
|
||
ININE DB "NINE",0
|
||
|
||
BAT_PRM_ARRAY:
|
||
DW IZERO, IONE, ITWO, ITHREE, IFOUR, IFIVE, ISIX, ISEVEN, IEIGHT, ININE
|
||
DW 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; 10 ç¨á«® á«®¢ "ZERO".."NINE"
|
||
.TOTAL EQU ($-BAT_PRM_ARRAY)/4
|
||
DISPLAY "First compilation test: 10 = ",/D, BAT_PRM_ARRAY.TOTAL
|
||
ASSERT BAT_PRM_ARRAY.TOTAL = 10, "BAT_PRM_ARRAY.TOTAL"
|
||
NULL: DB 0
|
||
;TVAR_PNT: DW 0
|