mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
2276 lines
31 KiB
NASM
2276 lines
31 KiB
NASM
|
||
;[BEGIN]
|
||
;
|
||
; SYSTEM.EXE /S /P
|
||
;
|
||
; /P Primary command processor
|
||
; /S Secondary command processor
|
||
; /C Execute batch file
|
||
|
||
;--------------------------------------------------------------
|
||
;Rev. Date Name Description
|
||
;--------------------------------------------------------------
|
||
;R10 16-05-2023 BAO TE•T MODE AND TEXT ARE RESTORED AFTER RETURNING FROM THE APP
|
||
;R09 ??-??-???? DNS ;????? ????
|
||
;R08 21-02-2003 DNS FIX BUG IN BAT-PARSER, IT SPLIT STRINGS
|
||
; WHEN LINE BEGAN AT #xx00 OFFSET
|
||
;R07 14-12-2002 DNS PARSING BATCH LINE
|
||
;R06 12-12-2002 DNS ADD %0, %1, %2 ...
|
||
;R05 11-12-2002 DNS IMPLEMENTED %VAR%
|
||
;R04 11-12-2002 DNS ADD 'EVALSTRING' ROUTINE
|
||
;R03 11-12-2002 DNS NEW VERSION
|
||
;R02 19-11-2002 DNS CORRECT SOME ERROR MESSAGES
|
||
;R01 19-11-2002 DNS ADD ENVIRONMENT %VARIABLE% IN ECHO
|
||
;
|
||
OUTPUT './Build/system.exe'
|
||
|
||
ORG #8100-512
|
||
include 'shared_includes/constants/bios_equ.inc'
|
||
include 'shared_includes/constants/dss_equ.inc'
|
||
|
||
CR EQU 13
|
||
LF EQU 10
|
||
DB "EXE" ;EXE ID
|
||
DB #00 ;EXE VERSION
|
||
DW #0200 ;CODE OFFSET LOW
|
||
DW #0000 ;CODE OFFSET HIGH
|
||
DW #0000 ;END-BEG ;PRIMARY LOADER
|
||
DW #0000 ;
|
||
DW #0000 ;RESERVED
|
||
DW #0000 ;
|
||
DW #8100 ;LOAD ADDRESS
|
||
DW #8100 ;START ADDRESS
|
||
DW #BFFF ;STACK ADDRESS
|
||
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0
|
||
|
||
; DEFS 490,0
|
||
|
||
; LD SP,#BFFF
|
||
START CALL INIT
|
||
CALL GET_CMD
|
||
EI
|
||
LD A,(RUNMODE)
|
||
AND #80 ;TEST PRIMARY
|
||
JP NZ,FPRIMAR
|
||
LD A,(RUNMODE)
|
||
AND #20 ;TEST SECONDARY
|
||
JP NZ,FSECOND
|
||
LD A,(RUNMODE)
|
||
AND #10 ;TEST BATCH FILE
|
||
JP NZ,FBATCHS
|
||
LD A,(RUNMODE)
|
||
AND #40 ;TEST PROCESS
|
||
JP NZ,FBATCH
|
||
JP QUIT
|
||
|
||
FSECOND CALL VERS
|
||
JP CONSOLE
|
||
|
||
FBATCHS
|
||
LD HL,CMDLINE
|
||
CALL BATCH
|
||
JP QUIT
|
||
|
||
FBATCH
|
||
CALL CMDMODE
|
||
JP QUIT
|
||
|
||
FPRIMAR LD C,Dss.CTRLKey
|
||
RST #10
|
||
LD A,B
|
||
AND #C0
|
||
JP NZ,CONSOLE
|
||
LD HL,BATNAME
|
||
CALL BATCH
|
||
JP CONSOLE
|
||
|
||
;R07
|
||
MAKE_BATCH_PRM_ARRAY
|
||
DEC HL
|
||
B_SKIP_SPACE
|
||
INC HL
|
||
LD A,(HL)
|
||
OR A
|
||
RET Z
|
||
CP " "
|
||
JR Z,B_SKIP_SPACE
|
||
CP 9
|
||
JR Z,B_SKIP_SPACE
|
||
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 "!"
|
||
JR NC,B_FIND_SPACE
|
||
LD (HL),0
|
||
OR A
|
||
RET Z
|
||
DJNZ B_SKIP_SPACE
|
||
RET
|
||
|
||
|
||
BATCH
|
||
PUSH HL
|
||
LD DE,PRMLINE
|
||
BCHL1 LD A,(HL)
|
||
LDI
|
||
OR A
|
||
JR NZ,BCHL1
|
||
LD HL,PRMLINE
|
||
LD DE,BAT_PRM_ARRAY
|
||
LD B,10
|
||
CALL MAKE_BATCH_PRM_ARRAY
|
||
JR NZ,B_ALL_P
|
||
LD HL,NULL
|
||
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
|
||
;R07
|
||
XOR A
|
||
LD C,Dss.Open
|
||
RST #10
|
||
;R10
|
||
CALL Restore_Screen
|
||
;R10
|
||
RET C
|
||
LD (BAT_FM),A
|
||
CALL NEWLINE
|
||
XOR A
|
||
RET
|
||
|
||
|
||
|
||
Restore_Screen:
|
||
PUSH AF
|
||
LD C,Dss.GetVMod
|
||
RST ToDSS
|
||
AND #80
|
||
JR Z,.exit
|
||
LD BC,1 * 256 + Dss.SetVMod
|
||
LD A,Dss.SetVMod.txt80x32
|
||
RST ToDSS
|
||
.exit: POP AF
|
||
RET
|
||
|
||
|
||
|
||
NEWLINE LD DE,CMDLINE
|
||
ADDBAT PUSH DE
|
||
CALL READBAT
|
||
POP DE
|
||
OR A
|
||
JR NZ,BATLINE
|
||
EX DE,HL
|
||
LD DE,CMDLINE
|
||
AND A
|
||
SBC HL,DE
|
||
RET Z
|
||
LD A,L
|
||
LD (CMDLINE-1),A
|
||
CALL CMDMODE
|
||
LD C,Dss.Close
|
||
LD A,(BAT_FM)
|
||
RST #10
|
||
RET
|
||
|
||
BATLINE LD HL,BATBUFF
|
||
NBLINE CALL MOVWORD
|
||
JP C,ADDBAT
|
||
LD A,B
|
||
LD (BAT_LEN),A
|
||
PUSH HL
|
||
EX DE,HL
|
||
LD DE,CMDLINE
|
||
AND A
|
||
SBC HL,DE
|
||
LD A,L
|
||
LD (CMDLINE-1),A
|
||
CALL CMDMODE
|
||
LD DE,CMDLINE
|
||
POP HL
|
||
JP NBLINE
|
||
|
||
MOVWORD LD A,(BAT_LEN)
|
||
LD B,A
|
||
M00WORD LD A,(HL)
|
||
LD (DE),A
|
||
CP #20
|
||
JR C,M01WORD
|
||
INC HL
|
||
INC DE
|
||
DJNZ M00WORD
|
||
SCF
|
||
RET
|
||
|
||
M01WORD LD A,(HL)
|
||
CP #20
|
||
RET NC
|
||
INC HL
|
||
DJNZ M01WORD
|
||
;R08
|
||
PUSH DE
|
||
CALL READBAT
|
||
POP DE
|
||
LD HL,BATBUFF
|
||
LD A,(BAT_LEN)
|
||
LD B,A
|
||
OR A
|
||
JR NZ,M01WORD
|
||
SCF
|
||
;R08
|
||
RET
|
||
|
||
READBAT LD HL,BATBUFF
|
||
LD DE,128
|
||
LD C,Dss.Read
|
||
LD A,(BAT_FM)
|
||
RST #10
|
||
LD A,E
|
||
LD (BAT_LEN),A
|
||
RET
|
||
|
||
CMDMODE XOR A
|
||
LD (POSIT),A
|
||
CALL EVALCMD ;R05
|
||
LD IX,CMDLINE-2
|
||
LD HL,CMDLINE
|
||
LD A,(HL)
|
||
CP "@"
|
||
JR NZ,NOALPHA
|
||
DEC HL
|
||
DEC (HL)
|
||
JR Z,NOEC
|
||
LD C,(HL)
|
||
INC HL
|
||
LD B,0
|
||
LD D,H
|
||
LD E,L
|
||
INC HL
|
||
LDIR
|
||
JR NOEC
|
||
NOALPHA LD A,(ECHOFLG)
|
||
OR A
|
||
JR NZ,NOEC
|
||
LD DE,CMDLINE
|
||
CALL PRINT_S
|
||
CALL CRLF
|
||
LD A,(CMDLINE-1)
|
||
OR A
|
||
RET Z
|
||
CALL CRLF
|
||
CALL COMPBAT
|
||
RET
|
||
|
||
NOEC LD A,(CMDLINE-1)
|
||
OR A
|
||
RET Z
|
||
CALL COMPBAT
|
||
RET
|
||
|
||
COMPBAT LD HL,CMDLINE
|
||
DEC HL
|
||
LD C,(HL)
|
||
LD B,0
|
||
INC HL
|
||
COMP00B LD A,(HL)
|
||
CP " "
|
||
JR NZ,COMP01B
|
||
INC HL
|
||
DEC C
|
||
JR NZ,COMP00B
|
||
RET
|
||
COMP01B LD D,H
|
||
LD E,L
|
||
ADD HL,BC
|
||
LD (HL),0
|
||
SBC HL,BC
|
||
LD A,C
|
||
EX AF,AF'
|
||
LD A,#20
|
||
CPIR
|
||
JR NZ,COMPB05
|
||
INC C
|
||
COMPB05 EX AF,AF'
|
||
SUB C
|
||
LD C,A
|
||
LD HL,BATLIST
|
||
JP COMP004
|
||
|
||
INIT LD A,(IX-1)
|
||
LD (TASKX),A
|
||
PUSH IX
|
||
CALL CRLF
|
||
CALL GETPATH
|
||
POP IX
|
||
RET
|
||
|
||
CONSOLE:
|
||
CALL CRLF
|
||
RE_: CALL GETXY
|
||
CALL GETPATH
|
||
; CALL VERS
|
||
LD HL,CMDLINE
|
||
LD DE,CMDLINE+1
|
||
LD (HL),0
|
||
LD BC,#7F
|
||
LDIR
|
||
CALL INPUT
|
||
CALL CRLF
|
||
LD A,(CMDLINE-1)
|
||
OR A
|
||
JP Z,RE_
|
||
CALL CRLF
|
||
CALL COMP
|
||
JP RE_
|
||
|
||
GETXY LD C,Dss.Cursor
|
||
RST #10
|
||
JP LOCAT
|
||
|
||
INPUT XOR A
|
||
LD (POSIT),A
|
||
LD (SHIFT),A
|
||
LD (LEN_NEW),A
|
||
LD IX,CMDLINE-2
|
||
CALL CEDIT
|
||
CALL RES_CUR
|
||
RET
|
||
|
||
COMP
|
||
CALL EVALCMD ;R05
|
||
LD HL,CMDLINE
|
||
DEC HL
|
||
LD C,(HL)
|
||
LD B,0
|
||
INC HL
|
||
COMP00 LD A,(HL)
|
||
CP " "
|
||
JR NZ,COMP01
|
||
INC HL
|
||
DEC C
|
||
JR NZ,COMP00
|
||
RET
|
||
COMP01 LD D,H
|
||
LD E,L
|
||
ADD HL,BC
|
||
LD (HL),0
|
||
SBC HL,BC
|
||
LD A,C
|
||
EX AF,AF'
|
||
LD A,#20
|
||
CPIR
|
||
JR NZ,COMP005
|
||
INC C
|
||
COMP005 EX AF,AF'
|
||
SUB C
|
||
LD C,A
|
||
LD HL,CMDLIST
|
||
COMP004 PUSH BC
|
||
PUSH DE
|
||
COMP000 LD A,(DE)
|
||
CP #61
|
||
JP C,COMP001
|
||
CP #7B
|
||
JP NC,COMP001
|
||
SUB #20
|
||
COMP001 CP (HL)
|
||
JP NZ,COMP002
|
||
INC HL
|
||
INC DE
|
||
DEC C
|
||
JP NZ,COMP000
|
||
XOR A
|
||
CP (HL)
|
||
JP NZ,COMP002
|
||
POP BC
|
||
POP BC
|
||
LD A,(DE)
|
||
CP " "
|
||
JR NZ,NOSPC
|
||
INC DE
|
||
NOSPC INC HL
|
||
LD A,(HL)
|
||
INC HL
|
||
LD H,(HL)
|
||
LD L,A
|
||
JP (HL)
|
||
|
||
COMP002 XOR A
|
||
LD C,#FF
|
||
|
||
.loop: CPI ;!FIXIT CPIR
|
||
JP NZ,.loop
|
||
|
||
INC HL
|
||
INC HL
|
||
POP DE
|
||
POP BC
|
||
LD A,(HL)
|
||
OR A
|
||
JP NZ,COMP004
|
||
LD H,D ;CMDLINE
|
||
LD L,E
|
||
LD B,(HL)
|
||
INC HL
|
||
LD C,(HL)
|
||
INC HL
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,RUN_EXT
|
||
LD A,":"
|
||
CP C
|
||
JR NZ,RUN_EXT
|
||
LD A,B
|
||
CP "a"
|
||
JR C,NOUP
|
||
CP "{"
|
||
JR NC,NOUP
|
||
AND #5F
|
||
NOUP SUB "A"
|
||
LD C,Dss.ChDisk
|
||
RST #10
|
||
JP C,ERROR
|
||
JP GETPATH
|
||
|
||
SAVEHL DW 0
|
||
|
||
RUN_EXT EX DE,HL
|
||
LD (SAVEHL),HL
|
||
LD BC,Dss.EX_Path.GET_TYPE*256 + Dss.EX_Path
|
||
LD DE,EXTBF
|
||
RST #10
|
||
LD HL,(SAVEHL)
|
||
JR C,RUN_EXE
|
||
BIT 1,A
|
||
JR Z,NON_EXT
|
||
LD DE,EXTBF
|
||
LD HL,BATBF
|
||
LD B,3
|
||
CALL COMPARE
|
||
LD HL,(SAVEHL)
|
||
JR Z,RUN_BAT
|
||
JP RUN_EXE
|
||
|
||
NON_EXT LD BC,0*256+Dss.Exec
|
||
RST #10
|
||
;R10
|
||
CALL Restore_Screen
|
||
;R10
|
||
RET NC
|
||
LD HL,(SAVEHL)
|
||
CP 3
|
||
JP NZ,EXEERR
|
||
PUSH HL
|
||
LD A,(CMDLINE-1)
|
||
LD B,A
|
||
EXF000 LD A,(HL)
|
||
CP "!"
|
||
JR C,EXF001
|
||
INC HL
|
||
DJNZ EXF000
|
||
|
||
EXF001
|
||
LD E,B
|
||
LD D,0
|
||
ADD HL,DE
|
||
PUSH HL
|
||
LD E,4
|
||
ADD HL,DE
|
||
POP DE
|
||
EX DE,HL
|
||
LD C,B
|
||
LD B,0
|
||
INC C
|
||
LDDR
|
||
INC HL
|
||
LD (HL),"."
|
||
INC HL
|
||
LD (HL),"B"
|
||
INC HL
|
||
LD (HL),"A"
|
||
INC HL
|
||
LD (HL),"T"
|
||
; LD HL,(SAVEHL)
|
||
POP HL
|
||
JP RUN_BAT
|
||
|
||
RUN_EXE:
|
||
LD BC,0*256 + Dss.Exec
|
||
RST ToDSS
|
||
;R10
|
||
CALL Restore_Screen
|
||
;R10
|
||
RET NC
|
||
EXEERR CP 5
|
||
JP NC,ERROR
|
||
LD DE,0 ;BAD COMMAND OR FILENAME
|
||
JP ERR_MSG
|
||
|
||
RUN_BAT CALL BATCH
|
||
JP C,EXEERR
|
||
RET
|
||
|
||
BATLIST DB 'PAUSE' : DW CPAUSE
|
||
DB 'REM' : DW CREM
|
||
CMDLIST DZ 'CD' : DW CCHDIR
|
||
DZ 'CHDIR' : DW CCHDIR
|
||
DZ 'CLS' : DW CLS
|
||
DZ 'DATE' : DW CDATE
|
||
DZ 'DEL' : DW CDELET
|
||
DZ 'DIR' : DW DIR
|
||
DZ 'ECHO' : DW CECHO
|
||
DZ 'ERASE' : DW CDELET
|
||
DZ 'EXIT' : DW CEXIT
|
||
DZ 'HELP' : DW HELP
|
||
DZ 'MD' : DW CMKDIR
|
||
DZ 'MKDIR' : DW CMKDIR
|
||
DZ 'PATH' : DW CPATH
|
||
DZ 'REN' : DW CRENAM
|
||
DZ 'RENAME' : DW CRENAM
|
||
DZ 'RD' : DW CRMDIR
|
||
DZ 'RMDIR' : DW CRMDIR
|
||
DZ 'SET' : DW CSET
|
||
DZ 'TIME' : DW CTIME
|
||
DZ 'VERSION' : DW VERS
|
||
DZ 'VER' : DW VERS
|
||
DB #00
|
||
|
||
CLS LD DE,#0000
|
||
LD HL,#2050
|
||
LD BC,7*256+Dss.Clear
|
||
LD A," "
|
||
RST #10
|
||
LD DE,#0000
|
||
JP LOCAT
|
||
|
||
CRLF LD A,#0D
|
||
CALL PRINTX
|
||
LD A,#0A
|
||
JP PRINTX
|
||
|
||
CDATE EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD DE,DTA
|
||
LD A,(DE)
|
||
OR A
|
||
JR Z,NOSETD
|
||
CALL STR2DEC
|
||
JR C,ILLEG
|
||
XOR A
|
||
CP H
|
||
JR NZ,ILLEG
|
||
LD A,31
|
||
CP L
|
||
JR C,ILLEG
|
||
LD B,L
|
||
PUSH BC
|
||
CALL STR2DEC
|
||
POP BC
|
||
JR C,ILLEG
|
||
XOR A
|
||
CP H
|
||
JR NZ,ILLEG
|
||
LD A,12
|
||
CP L
|
||
JR C,ILLEG
|
||
LD C,L
|
||
PUSH BC
|
||
CALL STR2DEC
|
||
PUSH HL
|
||
LD C,Dss.SysTime
|
||
RST #10
|
||
POP IX
|
||
POP DE
|
||
LD C,Dss.SetTime
|
||
RST #10
|
||
NOSETD LD C,Dss.SysTime
|
||
RST #10
|
||
PUSH IX
|
||
PUSH DE
|
||
LD A,D
|
||
LD HL,PRM1
|
||
CALL PUTB
|
||
LD A,"-"
|
||
LD (HL),A
|
||
INC HL
|
||
POP DE
|
||
LD A,E
|
||
CALL PUTB
|
||
LD A,"-"
|
||
LD (HL),A
|
||
INC HL
|
||
PUSH HL
|
||
POP IX
|
||
POP HL
|
||
CALL PDIGIT
|
||
LD DE,DATEMSG
|
||
JP MESSAGE
|
||
|
||
ILLEG LD DE,ILLGMSG
|
||
CALL MESSAGE
|
||
RET
|
||
|
||
CTIME EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD DE,DTA
|
||
LD A,(DE)
|
||
OR A
|
||
JR Z,NOSETT
|
||
CALL STR2DEC
|
||
JR C,ILLEG
|
||
XOR A
|
||
CP H
|
||
JR NZ,ILLEG
|
||
LD A,23
|
||
CP L
|
||
JR C,ILLEG
|
||
LD B,L
|
||
PUSH BC
|
||
CALL STR2DEC
|
||
POP BC
|
||
JR C,ILLEG
|
||
XOR A
|
||
CP H
|
||
JR NZ,ILLEG
|
||
LD A,59
|
||
CP L
|
||
JR C,ILLEG
|
||
LD C,L
|
||
PUSH BC
|
||
CALL STR2DEC
|
||
POP BC
|
||
JR C,ILLEG
|
||
XOR A
|
||
CP H
|
||
JR NZ,ILLEG
|
||
LD A,59
|
||
CP L
|
||
JR C,ILLEG
|
||
PUSH BC
|
||
LD A,L
|
||
PUSH AF
|
||
LD C,Dss.SysTime
|
||
RST #10
|
||
POP BC
|
||
POP HL
|
||
LD C,Dss.SetTime
|
||
RST #10
|
||
NOSETT LD C,Dss.SysTime
|
||
RST #10
|
||
PUSH BC
|
||
PUSH HL
|
||
LD A,H
|
||
LD HL,PRM1
|
||
CALL PUTB
|
||
LD A,":"
|
||
LD (HL),A
|
||
INC HL
|
||
POP DE
|
||
LD A,E
|
||
CALL PUTB
|
||
LD A,":"
|
||
LD (HL),A
|
||
INC HL
|
||
POP AF
|
||
CALL PUTB
|
||
XOR A
|
||
LD (HL),A
|
||
LD DE,TIMEMSG
|
||
JP MESSAGE
|
||
|
||
CPAUSE LD DE,PAUSMSG
|
||
CALL MESSAGE
|
||
LD C,Dss.WaitKey
|
||
RST #10
|
||
RET
|
||
|
||
|
||
;R09
|
||
PATHSTR DB "PATH=",0
|
||
|
||
CPATH LD A,(DE)
|
||
OR A
|
||
JP Z,PRNEPATH
|
||
INC DE
|
||
CP 9
|
||
JR Z,CPATH
|
||
CP "!"
|
||
JR C,CPATH
|
||
DEC DE
|
||
EX DE,HL
|
||
DEC HL
|
||
LD (HL),"="
|
||
DEC HL
|
||
LD (HL),"H"
|
||
DEC HL
|
||
LD (HL),"T"
|
||
DEC HL
|
||
LD (HL),"A"
|
||
DEC HL
|
||
LD (HL),"P"
|
||
LD BC,2*256+Dss.Environ
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
PRNEPATH
|
||
LD DE,DTA
|
||
LD HL,PATHSTR
|
||
LD BC,1*256+Dss.Environ
|
||
RST #10
|
||
JP C,ERROR
|
||
LD HL,PATHSTR
|
||
LD C,Dss.PChars
|
||
RST #10
|
||
LD HL,DTA
|
||
LD C,Dss.PChars
|
||
RST #10
|
||
CALL CRLF
|
||
RET
|
||
;R09
|
||
|
||
|
||
CSET LD A,(DE)
|
||
OR A
|
||
JP Z,PRNENVIR
|
||
INC DE ;R08
|
||
CP 9 ;R08
|
||
JR Z,CSET ;R08
|
||
CP "!" ;R08
|
||
JR C,CSET ;R08
|
||
DEC DE ;R08
|
||
EX DE,HL
|
||
LD BC,2*256+Dss.Environ
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
|
||
PRNENVIR
|
||
LD HL,DTA
|
||
LD BC,0*256+Dss.Environ
|
||
RST #10
|
||
LD HL,DTA
|
||
PRNENVX LD C,Dss.PChars
|
||
RST #10
|
||
LD A,CR
|
||
LD C,Dss.PutChar
|
||
RST #10
|
||
LD A,LF
|
||
LD C,Dss.PutChar
|
||
RST #10
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PRNENVX
|
||
RET
|
||
|
||
|
||
CECHO EX DE,HL
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,ECHO_F
|
||
EX DE,HL
|
||
PUSH DE
|
||
LD B,3
|
||
LD HL,ECHOON
|
||
CALL COMPARE
|
||
POP DE
|
||
JR Z,ECHO_FS
|
||
PUSH DE
|
||
LD B,4
|
||
LD HL,ECHOOFF
|
||
CALL COMPARE
|
||
POP HL
|
||
JR Z,ECHO_FR
|
||
|
||
;R03 REMOVE R01
|
||
|
||
LD C,Dss.PChars
|
||
RST #10
|
||
JP CRLF
|
||
|
||
ECHO_F LD A,(ECHOFLG)
|
||
OR A
|
||
LD DE,ON__MSG
|
||
JR Z,ECHON
|
||
LD DE,OFF_MSG
|
||
ECHON CALL FMESAGE
|
||
LD DE,PRM1
|
||
CALL PUTPRM
|
||
LD DE,ECHOMSG
|
||
CALL MESSAGE
|
||
RET
|
||
|
||
ECHO_FS XOR A
|
||
LD (ECHOFLG),A
|
||
RET
|
||
|
||
ECHO_FR LD A,#FF
|
||
LD (ECHOFLG),A
|
||
RET
|
||
|
||
;R04
|
||
|
||
EVALCMD
|
||
XOR A
|
||
LD HL,CMDLINE-1
|
||
LD C,(HL)
|
||
LD B,A
|
||
INC HL
|
||
ADD HL,BC
|
||
LD (HL),A
|
||
SBC HL,BC
|
||
LD DE,TMPLINE
|
||
CALL EVALSTR
|
||
LD HL,TMPLINE
|
||
LD DE,CMDLINE
|
||
LD BC,#00FF
|
||
MOVLBAK LD A,(HL)
|
||
LDI
|
||
INC B
|
||
OR A
|
||
JR NZ,MOVLBAK
|
||
DEC B
|
||
LD A,B
|
||
LD (CMDLINE-1),A
|
||
AND A
|
||
RET
|
||
|
||
; HL - STRING WITH %VAR%
|
||
|
||
EVALSTR
|
||
;R04 LD DE,DTA
|
||
VARLOOP
|
||
LD A,(HL)
|
||
CP "%"
|
||
JR Z,TVARIABLE
|
||
VARL1 LDI
|
||
OR A
|
||
JR NZ,VARLOOP
|
||
LD BC,0
|
||
LD (TVAR_PNT),BC
|
||
;R04 LD HL,DTA
|
||
;R04
|
||
RET
|
||
|
||
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
|
||
|
||
;R06
|
||
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
|
||
;R06
|
||
NULL DB 0 ;R07
|
||
|
||
;R01
|
||
TVAR_PNT
|
||
DW 0
|
||
|
||
TVARIABLE
|
||
LD BC,(TVAR_PNT)
|
||
LD A,B
|
||
OR C
|
||
LD A,"%"
|
||
LD (TVAR_PNT),DE
|
||
JR NZ,TVAR1 ;R06
|
||
INC HL ;R06
|
||
LD A,(HL) ;R06
|
||
CP "9"+1 ;R06
|
||
JR C,TVAR0 ;R06
|
||
TVAR2 LD A,"%" ;R06 > "9"
|
||
DEC HL ;R06
|
||
JP VARL1 ;R06
|
||
TVAR0 CP "0" ;R06
|
||
JR C,TVAR2 ;R06 < "0"
|
||
; BATCH PARAM %0, %1, %2 ...
|
||
INC HL ;R06
|
||
PUSH HL
|
||
LD (TVAR_PNT),BC
|
||
SUB "0"
|
||
ADD A,A
|
||
LD C,A
|
||
LD HL,BAT_PRM_ARRAY
|
||
ADD HL,BC
|
||
LD A,(HL)
|
||
INC HL
|
||
LD H,(HL)
|
||
LD L,A
|
||
OR H
|
||
JR Z,NOBTP ;NO BATCH PARM
|
||
MVBTP LD A,(HL)
|
||
LDI
|
||
OR A
|
||
JR NZ,MVBTP
|
||
DEC DE
|
||
NOBTP POP HL
|
||
JP VARLOOP ;R06
|
||
;R06
|
||
|
||
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
|
||
LD E,C
|
||
LD H,B
|
||
LD L,C
|
||
INC HL
|
||
LD BC,1*256+Dss.Environ
|
||
RST #10
|
||
TNOVAR POP HL
|
||
INC HL
|
||
LD BC,0
|
||
LD (TVAR_PNT),BC
|
||
JP VARLOOP
|
||
;R01
|
||
|
||
COMPARE LD A,(DE)
|
||
CP #61
|
||
JP C,COM001
|
||
CP #7B
|
||
JP NC,COM001
|
||
SUB #20
|
||
COM001 CP (HL)
|
||
RET NZ
|
||
INC HL
|
||
INC DE
|
||
DJNZ COMPARE
|
||
RET
|
||
|
||
CREM RET
|
||
|
||
CCHDIR EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
XOR A
|
||
LD HL,DTA
|
||
CP (HL)
|
||
JR NZ,YP
|
||
LD (HL),"."
|
||
INC HL
|
||
LD (HL),"."
|
||
INC HL
|
||
LD (HL),0
|
||
DEC HL
|
||
DEC HL
|
||
YP LD C,Dss.ChDir
|
||
RST #10
|
||
CALL C,ERROR
|
||
CALL GETPATH
|
||
RET
|
||
|
||
CMKDIR EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD HL,DTA
|
||
LD C,Dss.MkDir
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
|
||
CRMDIR EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD HL,DTA
|
||
LD C,Dss.RmDir
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
|
||
CDELET EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD HL,DTA
|
||
LD C,Dss.Delete
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
|
||
CRENAM EX DE,HL
|
||
LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD DE,DTA+128
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD HL,DTA
|
||
LD DE,DTA+128
|
||
LD C,Dss.Rename
|
||
RST #10
|
||
CALL C,ERROR
|
||
RET
|
||
|
||
ERROR LD E,A
|
||
LD D,0
|
||
JP ERR_MSG
|
||
|
||
DIR LD HL,0
|
||
LD (FILES),HL
|
||
LD (S_LOW),HL
|
||
LD (S_HIGH),HL
|
||
EX DE,HL
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,YPS
|
||
LD HL,ALLFS
|
||
YPS LD DE,DTA
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
LD HL,DTA
|
||
LD DE,DTA
|
||
LD A,#37
|
||
LD BC,0*256+Dss.F_First
|
||
RST #10
|
||
JP C,ERROR
|
||
LD A,(PATHF)
|
||
LD (PRM1+0),A
|
||
LD A,":"
|
||
LD (PRM1+1),A
|
||
LD A,0
|
||
LD (PRM1+2),A
|
||
LD HL,SER_NUM
|
||
LD DE,PRM2
|
||
CALL PUTPRM
|
||
CALL GETPATH
|
||
LD HL,PATHF
|
||
LD DE,PRM3
|
||
CALL PUTPRM
|
||
LD DE,DIR1MSG
|
||
CALL MESSAGE
|
||
; CALL CRLF
|
||
; CALL CRLF
|
||
DIRNEX LD HL,DTA
|
||
LD DE,33
|
||
ADD HL,DE
|
||
CALL PNAME
|
||
LD IX,DTA
|
||
LD A,(IX+32)
|
||
AND #10
|
||
JP NZ,NODADD
|
||
LD HL,(FILES)
|
||
INC HL
|
||
LD (FILES),HL
|
||
LD E,(IX+30)
|
||
LD D,(IX+31)
|
||
LD HL,(S_HIGH)
|
||
EXX
|
||
LD E,(IX+28)
|
||
LD D,(IX+29)
|
||
LD HL,(S_LOW)
|
||
CALL ADDXXX
|
||
LD (S_LOW),HL
|
||
EXX
|
||
LD (S_HIGH),HL
|
||
NODADD LD DE,DTA
|
||
LD C,Dss.F_Next
|
||
RST #10
|
||
JR NC,DIRNEX
|
||
CALL ORDERS
|
||
RET
|
||
|
||
ORDERS LD HL,(FILES)
|
||
LD IX,PRM1
|
||
CALL PDIGIT
|
||
LD HL,(S_LOW)
|
||
EXX
|
||
LD HL,(S_HIGH)
|
||
EXX
|
||
CALL MAKE_LN
|
||
LD HL,L32BIT_+9
|
||
LD A,(HL)
|
||
CP #20
|
||
JR NZ,ALR2
|
||
LD A,#30
|
||
LD (HL),A
|
||
ALR2 LD DE,SIZEBFF
|
||
LD HL,L32BIT_;; +1
|
||
LD A,(HL)
|
||
LDI
|
||
CP " "
|
||
JR Z,NOPO1
|
||
LD A,"."
|
||
NOPO1 LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LD A,(HL)
|
||
LDI
|
||
CP " "
|
||
JR Z,NOPO2
|
||
LD A,"."
|
||
NOPO2 LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LD A,(HL)
|
||
LDI
|
||
CP " "
|
||
JR Z,NOPO3
|
||
LD A,"."
|
||
NOPO3 LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LD HL,SIZEBFF
|
||
LD DE,PRM2
|
||
CALL PUTPRM
|
||
LD DE,DIR2MSG
|
||
JP MESSAGE
|
||
|
||
;HL':HL + DE':DE
|
||
|
||
ADDXXX ADD HL,DE
|
||
EXX
|
||
ADC HL,DE
|
||
EXX
|
||
RET
|
||
|
||
FILES DW 0
|
||
|
||
S_LOW DW 0
|
||
S_HIGH DW 0
|
||
|
||
;12345678 123 1 234 567 890 "
|
||
; SIZE
|
||
|
||
PNAME LD BC,8
|
||
LD DE,PRM1
|
||
LDIR
|
||
XOR A
|
||
LD (DE),A
|
||
LD DE,PRM2
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LD (DE),A
|
||
LD IX,DTA
|
||
CALL PRNSIZE
|
||
CALL PRNDATE
|
||
CALL PRNTIME
|
||
LD DE,DIR3MSG
|
||
JP MESSAGE
|
||
|
||
PRINTB LD A,(HL)
|
||
PUSH BC
|
||
CALL PRINTX
|
||
POP BC
|
||
INC HL
|
||
DJNZ PRINTB
|
||
RET
|
||
;------------------
|
||
|
||
PUTB LD C,#2F
|
||
PUTB1 INC C
|
||
SUB 10
|
||
JP NC,PUTB1
|
||
ADD A,10
|
||
ADD A,#30
|
||
PUSH AF
|
||
LD A,C
|
||
LD (HL),A
|
||
INC HL
|
||
POP AF
|
||
LD (HL),A
|
||
INC HL
|
||
RET
|
||
|
||
|
||
PRNB LD C,#2F
|
||
PRNB1 INC C
|
||
SUB 10
|
||
JP NC,PRNB1
|
||
ADD A,10
|
||
ADD A,#30
|
||
PUSH AF
|
||
LD A,C
|
||
CALL PRINTX
|
||
POP AF
|
||
JP PRINTX
|
||
|
||
STR2DEC LD HL,0
|
||
STRLOOP LD A,(DE)
|
||
INC DE
|
||
OR A
|
||
RET Z
|
||
CP "-"
|
||
RET Z
|
||
CP ":"
|
||
RET Z
|
||
LD B,H
|
||
LD C,L
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,BC
|
||
ADD HL,HL
|
||
CALL ATODEC
|
||
RET C
|
||
ADD A,L
|
||
LD L,A
|
||
JR NC,STRLOOP
|
||
INC H
|
||
JR STRLOOP
|
||
|
||
ATODEC CP "0"
|
||
RET C
|
||
CP ":"
|
||
CCF
|
||
RET C
|
||
SUB "0"
|
||
RET
|
||
|
||
PDIGIT LD DE,10000
|
||
LD A,#C8
|
||
LD (RET_Z),A
|
||
CALL DIG
|
||
LD DE,1000
|
||
CALL DIG
|
||
LD DE,100
|
||
CALL DIG
|
||
LD DE,10
|
||
CALL DIG
|
||
LD A,L
|
||
ADD A,#30
|
||
|
||
; !FIXIT
|
||
LD (IX+0),A
|
||
INC IX
|
||
LD (IX+0),0
|
||
; íâ®:
|
||
; LD (IX+0),A
|
||
; LD (IX+1),0
|
||
RET
|
||
|
||
DIG XOR A
|
||
DIG1 INC A
|
||
SBC HL,DE
|
||
JR NC,DIG1
|
||
ADD HL,DE
|
||
DEC A
|
||
RET_Z RET Z
|
||
ADD A,#30
|
||
LD (IX+0),A
|
||
INC IX
|
||
; LD A,0
|
||
XOR A
|
||
LD (RET_Z),A
|
||
RET
|
||
|
||
PRNSIZE LD A,(IX+32)
|
||
LD HL,DIRIDD
|
||
AND #10
|
||
JP NZ,PRZ
|
||
LD L,(IX+28)
|
||
LD H,(IX+29)
|
||
EXX
|
||
LD L,(IX+30)
|
||
LD H,(IX+31)
|
||
EXX
|
||
PUSH IX
|
||
CALL MAKE_LN
|
||
LD HL,L32BIT_+9
|
||
LD A,(HL)
|
||
CP #20
|
||
JR NZ,ALR
|
||
LD A,#30
|
||
LD (HL),A
|
||
ALR LD DE,SIZEBFF
|
||
LD HL,L32BIT_;; +1
|
||
LDI
|
||
LD A," "
|
||
LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LD (DE),A
|
||
INC DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LD HL,SIZEBFF
|
||
POP IX
|
||
PRZ LD DE,PRM3
|
||
JP PUTPRM
|
||
|
||
PRNDATE LD B,(IX+25)
|
||
LD C,(IX+24)
|
||
LD HL,SIZEBFF
|
||
CALL DATE
|
||
LD (HL),0
|
||
LD HL,SIZEBFF
|
||
LD DE,PRM4
|
||
LD A,(HL)
|
||
CP "0"
|
||
JP NZ,PUTPRM
|
||
LD (HL),#20
|
||
JP PUTPRM
|
||
|
||
PRNTIME LD B,(IX+22)
|
||
LD C,(IX+23)
|
||
LD HL,SIZEBFF
|
||
CALL TIME
|
||
LD (HL),0
|
||
LD HL,SIZEBFF
|
||
LD DE,PRM5
|
||
LD A,(HL)
|
||
CP "0"
|
||
JP NZ,PUTPRM
|
||
LD (HL),#20
|
||
JP PUTPRM
|
||
|
||
TIME
|
||
SRL C
|
||
RR B
|
||
SRL C
|
||
RR B
|
||
SRL C
|
||
RR B
|
||
SRL B
|
||
SRL B
|
||
LD A,C
|
||
CALL NUMB
|
||
LD (HL),":"
|
||
INC HL
|
||
LD A,B
|
||
JP NUMB
|
||
|
||
DATE
|
||
LD A,C
|
||
AND #1F
|
||
PUSH BC
|
||
CALL NUMB
|
||
LD (HL),"."
|
||
INC HL
|
||
POP BC
|
||
LD A,C
|
||
SRL B
|
||
RLA
|
||
RLA
|
||
RLA
|
||
RLA
|
||
AND #0F
|
||
CALL NUMB
|
||
LD (HL),"."
|
||
INC HL
|
||
LD A,B
|
||
ADD A,#50
|
||
CP 100
|
||
JP C,NUMB
|
||
SUB100 SUB 100
|
||
CP 100
|
||
JP C,NUMB
|
||
JR SUB100
|
||
|
||
NUMB LD C,#2F
|
||
NUMB1 INC C
|
||
SUB 10
|
||
JP NC,NUMB1
|
||
ADD A,10
|
||
ADD A,#30
|
||
LD (HL),C
|
||
INC HL
|
||
LD (HL),A
|
||
INC HL
|
||
RET
|
||
|
||
MAKE_LN LD IX,L32BIT_
|
||
EXX
|
||
LD DE,#3B9A ; 1000000000
|
||
EXX
|
||
LD DE,#CA00
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#05F5 ; 100000000
|
||
EXX
|
||
LD DE,#E100
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0098 ; 10000000
|
||
EXX
|
||
LD DE,#9680
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#000F ; 1000000
|
||
EXX
|
||
LD DE,#4240
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0001 ; 100000
|
||
EXX
|
||
LD DE,#86A0
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0000 ; 10000
|
||
EXX
|
||
LD DE,#2710
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0000 ; 1000
|
||
EXX
|
||
LD DE,#03E8
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0000 ; 100
|
||
EXX
|
||
LD DE,#0064
|
||
CALL GET_DIG
|
||
EXX
|
||
LD DE,#0000 ; 10
|
||
EXX
|
||
LD DE,#000A
|
||
CALL GET_DIG
|
||
LD A,L ; 1
|
||
ADD A,#30
|
||
LD (IX+0),A
|
||
INC IX
|
||
LD HL,L32BIT_
|
||
LD DE,#2030
|
||
KILLZ LD A,(HL)
|
||
CP E
|
||
JR NZ,KILLZ2
|
||
LD (HL),D
|
||
INC HL
|
||
JP KILLZ
|
||
KILLZ2 LD HL,L32BIT_+9
|
||
LD A,(HL)
|
||
CP D
|
||
RET NZ
|
||
LD (HL),E
|
||
RET
|
||
|
||
; HL:HL - DE:DE
|
||
|
||
GET_DIG XOR A
|
||
INC_DG INC A
|
||
SBC HL,DE
|
||
EXX
|
||
SBC HL,DE
|
||
EXX
|
||
JP NC,INC_DG
|
||
ADD HL,DE
|
||
EXX
|
||
ADC HL,DE
|
||
EXX
|
||
DEC A
|
||
ADD A,#30
|
||
LD (IX+0),A
|
||
INC IX
|
||
RET
|
||
|
||
L32BIT_ DB "0000000000"
|
||
|
||
DIRIDD DB "<DIR> ",0
|
||
|
||
SIZEBFF DB "0 000 000 000",0,0
|
||
|
||
;-------------------
|
||
|
||
VERS LD C,Dss.Version
|
||
RST #10
|
||
PUSH BC
|
||
|
||
LD A,D
|
||
LD HL,PRM1
|
||
CALL GETnoZERO
|
||
LD A,"."
|
||
LD (HL),A
|
||
INC HL
|
||
|
||
LD A,E
|
||
CALL GETnoZERO
|
||
LD A,"."
|
||
LD (HL),A
|
||
INC HL
|
||
|
||
POP BC
|
||
LD A,C
|
||
CALL GETnoZERO
|
||
XOR A
|
||
LD (HL),A
|
||
|
||
LD DE,VERSMSG
|
||
JP MESSAGE
|
||
|
||
GETnoZERO:
|
||
LD B,#2F
|
||
.loop: INC B
|
||
SUB 10
|
||
JR NC,.loop
|
||
ADD A,10+"0"
|
||
LD C,A
|
||
LD A,"0"
|
||
CP B
|
||
LD A,C
|
||
JR Z,.mdec
|
||
LD (HL),B
|
||
INC HL
|
||
.mdec: LD (HL),A
|
||
INC HL
|
||
SCF
|
||
RET
|
||
|
||
GETyesZERO:
|
||
LD B,#2F
|
||
.loop: INC B
|
||
SUB 10
|
||
JR NC,.loop
|
||
ADD A,10
|
||
LD (HL),B
|
||
INC HL
|
||
RET Z
|
||
ADD A,"0"
|
||
LD (HL),A
|
||
INC HL
|
||
RET
|
||
|
||
HELP LD DE,HELPMSG
|
||
CALL MESSAGE
|
||
RET
|
||
|
||
CEXIT LD A,(TASKX)
|
||
DEC A
|
||
DEC A
|
||
RET Z
|
||
POP HL
|
||
QUIT LD B,0
|
||
LD C,Dss.Exit
|
||
RST #10
|
||
RET
|
||
|
||
ERR_MSG INC DE
|
||
LD HL,ERR0
|
||
LD BC,ERR1-ERR0
|
||
CALL LCPIR
|
||
CALL PRINTZ
|
||
CALL CRLF
|
||
JP CRLF
|
||
|
||
MESSAGE CALL FMESAGE
|
||
CALL PRINTZ
|
||
CALL GETXY
|
||
RET
|
||
|
||
FMESAGE INC DE
|
||
LD HL,MSG0
|
||
LD BC,MSG1-MSG0
|
||
LCPIR XOR A
|
||
CPIR
|
||
RET PO
|
||
RET NZ
|
||
DEC DE
|
||
LD A,D
|
||
OR E
|
||
JP NZ,LCPIR
|
||
RET
|
||
|
||
PUTPRM LD BC,15
|
||
PUTPRMA LD A,(HL)
|
||
LDI
|
||
RET PO
|
||
OR A
|
||
JR NZ,PUTPRMA
|
||
RET
|
||
|
||
PRINTZ LD A,(HL)
|
||
INC HL
|
||
OR A
|
||
RET Z
|
||
CP "%"
|
||
JR NZ,PRINTZ2
|
||
LD A,(HL)
|
||
INC HL
|
||
SUB "1"
|
||
PUSH HL
|
||
LD L,A
|
||
LD H,0
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD BC,PRM1
|
||
ADD HL,BC
|
||
LD C,Dss.PChars
|
||
RST #10
|
||
POP HL
|
||
JR PRINTZ
|
||
PRINTZ2 LD C,Dss.PutChar
|
||
RST #10
|
||
JP PRINTZ
|
||
|
||
ROOT DB "C:",#5C,0
|
||
|
||
ALLFS DB "*.*",0
|
||
|
||
SER_NUM DB "C37F-73AB",0
|
||
|
||
EXTBF DS 4
|
||
|
||
BATBF DB "BAT"
|
||
|
||
ECHOON DB "ON",0
|
||
ECHOOFF DB "OFF",0
|
||
|
||
|
||
DIR1MSG EQU 0
|
||
VERSMSG EQU 1
|
||
DATEMSG EQU 2
|
||
TIMEMSG EQU 3
|
||
PAUSMSG EQU 4
|
||
ILLGMSG EQU 5
|
||
ECHOMSG EQU 6
|
||
ON__MSG EQU 7
|
||
OFF_MSG EQU 8
|
||
DIR2MSG EQU 9
|
||
DIR3MSG EQU 10
|
||
HELPMSG EQU 11
|
||
|
||
MSG0 DB 0
|
||
DB "Volume in drive %1 has no label",CR,LF ; !FIXIT
|
||
DB "Volume Serial number is %2",CR,LF
|
||
DB "Directory of %3",CR,LF,CR,LF,0
|
||
DB "Estex DSS: Version %1",CR,LF,0 ;R02
|
||
DB "Current date: %1",CR,LF,0
|
||
DB "Current time: %1",CR,LF,0
|
||
DB "Press any key to continue . . .",CR,LF,0
|
||
DB "Invalid parametr",CR,LF,0
|
||
DB "Echo is %1",CR,LF,0
|
||
DB "on",0
|
||
DB "off",0
|
||
DB " %1 file(s) %2 bytes",CR,LF,CR,LF,0
|
||
; FILENAME EXT SIZE DATE TIME
|
||
DB "%1 %2 %3 %4 %5",CR,LF,0
|
||
DB "COMMANDS:",CR,LF,CR,LF
|
||
DB "CD DEL HELP RD SET "
|
||
DB " ",CR,LF
|
||
DB "CHDIR DIR MD REN TIME "
|
||
DB " ",CR,LF
|
||
DB "CLS ERASE MKDIR RENAME VER "
|
||
DB " ",CR,LF
|
||
DB "DATE EXIT PATH RMDIR VERSION "
|
||
DB " ",CR,LF
|
||
DB 0
|
||
MSG1
|
||
|
||
ERR0 DB #00
|
||
DB "Bad command or file name",0
|
||
DB "Invalid function",0
|
||
DB "Invalid drive number",0
|
||
DB "File not found",0
|
||
DB "Path not found",0
|
||
DB "Invalid handle",0
|
||
DB "Extended error 6",0
|
||
DB "File exist",0
|
||
DB "File read only",0
|
||
DB "Root overflow",0
|
||
DB "No free space",0
|
||
DB "Directory not empty",0
|
||
DB "Can't delete current directory",0
|
||
DB "Invalid media",0
|
||
DB "Unknown operation",0 ;R02
|
||
DB "Directory exist",0
|
||
DB "Invalid filename",0
|
||
DB "Invalid EXE-file",0
|
||
DB "Not supported EXE-file",0
|
||
DB "Access denied",0
|
||
DB "Not ready",0
|
||
DB "Seek error",0
|
||
DB "Sector not found",0
|
||
DB "CRC error",0
|
||
DB "Write protect",0
|
||
DB "Read error",0
|
||
DB "Write error",0
|
||
DB "Drive failure",0
|
||
DB "Extended error 28",0
|
||
DB "Extended error 29",0
|
||
DB "No free memory",0
|
||
DB "Invalid memory block",0
|
||
DB "Extended error 32",0
|
||
DB "Extended error 33",0
|
||
DB "Extended error 34",0
|
||
DB "35",0
|
||
DB "36",0
|
||
DB "37",0
|
||
DB "38",0
|
||
DB "39",0
|
||
DB "40",0
|
||
DB "41",0
|
||
DB "42",0
|
||
DB "43",0
|
||
DB "44",0
|
||
DB "45",0
|
||
DB "46",0
|
||
DB "47",0
|
||
DB "48",0
|
||
DB "49",0
|
||
DB "50"
|
||
DB 0
|
||
ERR1
|
||
|
||
PRM1 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM2 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM3 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM4 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM5 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM6 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM7 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM8 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
PRM9 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
DTA ;DEFS 256,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
PATHF ;DEFS 256,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
BAT_FM DB 0
|
||
BAT_LEN DB 0
|
||
|
||
ECHOFLG DB 0
|
||
|
||
PATHLEN DB 0
|
||
PATH ;DEFS 40,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0
|
||
|
||
GETPATH: LD C,2
|
||
RST #10
|
||
LD HL,PATHF
|
||
ADD A,"A"
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),":"
|
||
INC HL
|
||
LD C,30
|
||
RST #10
|
||
|
||
LD HL,PATHF
|
||
LD DE,PATH
|
||
LDI
|
||
LDI
|
||
LDI
|
||
PUSH HL
|
||
XOR A
|
||
LD BC,34
|
||
CPIR
|
||
JP NZ,LONGP
|
||
LD A,34
|
||
SUB C
|
||
LD C,A
|
||
POP HL
|
||
LDIR
|
||
JR PHLEN
|
||
|
||
LONGP CPIR
|
||
LD A,"."
|
||
LD (DE),A
|
||
INC DE
|
||
LD (DE),A
|
||
INC DE
|
||
LD (DE),A
|
||
INC DE
|
||
LD BC,31
|
||
AND A
|
||
SBC HL,BC
|
||
LDIR
|
||
POP HL
|
||
PHLEN LD HL,PATH
|
||
LD BC,40
|
||
XOR A
|
||
CPIR
|
||
LD A,39
|
||
SUB C
|
||
LD (PATHLEN),A
|
||
LD C,A
|
||
INC C
|
||
INC C
|
||
LD A,80
|
||
SUB C
|
||
LD (WINDOW),A
|
||
RET
|
||
PRINT_B LD C,A
|
||
PRINTBB PUSH BC
|
||
CALL PRINTX
|
||
POP BC
|
||
LD A,C
|
||
DJNZ PRINTBB
|
||
RET
|
||
|
||
TEMPXY DW 0
|
||
|
||
CR_ LD C,Dss.Cursor
|
||
RST #10
|
||
LD E,0
|
||
JP LOCAT
|
||
|
||
LF_ LD C,Dss.Cursor
|
||
RST #10
|
||
LD A,D
|
||
CP #1F
|
||
JP Z,LFF
|
||
INC D
|
||
JP LOCAT
|
||
|
||
LFF PUSH HL
|
||
PUSH DE
|
||
LD BC,#018A
|
||
LD DE,#0020
|
||
EI
|
||
HALT
|
||
DI
|
||
RST ToBIOS
|
||
LD DE,#1F00
|
||
CALL LOCAT
|
||
LD A,#20
|
||
LD BC,#5082
|
||
RST ToBIOS
|
||
EI
|
||
POP DE
|
||
CALL LOCAT
|
||
POP HL
|
||
RET
|
||
|
||
PRINTX CP #20
|
||
JP NC,CHAR
|
||
CP #0D
|
||
JP Z,CR_
|
||
CP #0A
|
||
JP Z,LF_
|
||
CHAR PUSH BC
|
||
LD BC,#0182
|
||
RST ToBIOS
|
||
POP BC
|
||
RET
|
||
|
||
LOCAT LD (TEMPXY),DE
|
||
LD C,Dss.Locate
|
||
RST #10
|
||
RET
|
||
|
||
;PRINTX LD C,Dss.PutChar
|
||
; RST #10
|
||
; RET
|
||
|
||
CEDIT PUSH IX
|
||
POP HL
|
||
INC HL
|
||
INC HL
|
||
LD (ETXS),HL
|
||
XOR A
|
||
LD (POSIT),A
|
||
LD (SHIFT),A
|
||
EDIT1 LD DE,(ETXS)
|
||
CALL PRINT_S
|
||
CALL KEY
|
||
CP 13
|
||
RET Z
|
||
LD HL,EDIT1
|
||
PUSH HL
|
||
AND A
|
||
LD HL,#5400
|
||
SBC HL,DE
|
||
JP Z,BACK
|
||
AND A
|
||
LD HL,#5600
|
||
SBC HL,DE
|
||
JP Z,FORW
|
||
CP #08
|
||
JP Z,DELET
|
||
CP #20
|
||
RET C
|
||
EX AF,AF'
|
||
LD A,(IX+1)
|
||
CP (IX+0)
|
||
CCF
|
||
RET C
|
||
LD A,(IX+1)
|
||
LD E,A
|
||
LD D,0
|
||
LD HL,(ETXS)
|
||
ADD HL,DE
|
||
LD A,(POSIT)
|
||
LD E,A
|
||
LD A,(IX+1)
|
||
SUB E
|
||
JR Z,ADD_SM
|
||
LD B,D
|
||
LD C,A
|
||
LD D,H
|
||
LD E,L
|
||
DEC HL
|
||
LDDR
|
||
EX DE,HL
|
||
ADD_SM EX AF,AF'
|
||
LD (HL),A
|
||
LD A,(POSIT)
|
||
INC A
|
||
LD (POSIT),A
|
||
LD (MAIN_X),A
|
||
INC (IX+1)
|
||
LD HL,(ETXE)
|
||
INC HL
|
||
LD (ETXE),HL
|
||
LD HL,SHIFT
|
||
SUB (HL)
|
||
CP (IX-1)
|
||
RET C
|
||
LD A,(STEP)
|
||
ADD A,(HL)
|
||
LD (HL),A
|
||
; CALL PAGE
|
||
RET
|
||
|
||
BACK LD A,(POSIT)
|
||
OR A
|
||
RET Z ;JP Z,BCK
|
||
DEC A
|
||
LD (POSIT),A
|
||
LD (MAIN_X),A
|
||
INC A
|
||
LD HL,SHIFT
|
||
SUB (HL)
|
||
RET NZ
|
||
LD A,(STEP)
|
||
LD E,A
|
||
LD A,(HL)
|
||
SUB E
|
||
LD (HL),A
|
||
; CALL PAGE
|
||
RET
|
||
|
||
FORW LD A,(POSIT)
|
||
CP (IX+1)
|
||
RET Z ; JP Z,FRD
|
||
INC A
|
||
LD (POSIT),A
|
||
LD (MAIN_X),A
|
||
LD HL,SHIFT
|
||
SUB (HL)
|
||
CP (IX-1)
|
||
RET C
|
||
LD A,(STEP)
|
||
ADD A,(HL)
|
||
LD (HL),A
|
||
; CALL PAGE
|
||
RET
|
||
|
||
DELET LD A,(POSIT)
|
||
OR A
|
||
RET Z ; JP Z,LINKSTR
|
||
LD HL,(ETXS)
|
||
LD E,A
|
||
LD D,0
|
||
ADD HL,DE
|
||
LD A,(IX+1)
|
||
SUB E
|
||
JR Z,SUB_SM
|
||
LD B,D
|
||
LD C,A
|
||
LD D,H
|
||
LD E,L
|
||
DEC DE
|
||
LDIR
|
||
SUB_SM XOR A
|
||
DEC HL
|
||
LD (HL),A
|
||
LD A,(POSIT)
|
||
DEC A
|
||
LD (POSIT),A
|
||
LD (MAIN_X),A
|
||
DEC (IX+1)
|
||
LD HL,(ETXE)
|
||
DEC HL
|
||
LD (ETXE),HL
|
||
LD HL,SHIFT
|
||
INC A
|
||
SUB (HL)
|
||
RET NZ
|
||
LD A,(STEP)
|
||
LD E,A
|
||
LD A,(HL)
|
||
SUB E
|
||
LD (HL),A
|
||
; CALL PAGE
|
||
RET
|
||
|
||
KEY ;RES 5,(IY+1)
|
||
LD A,(SHIFT)
|
||
LD E,A
|
||
LD A,(POSIT)
|
||
SUB E
|
||
INC A
|
||
LD HL,PATHLEN
|
||
ADD A,(HL)
|
||
LD (_X+1),A
|
||
LD A,(POSIT)
|
||
CP (IX+1)
|
||
JP C,KEY0
|
||
LD A,#20
|
||
LD (_A+1),A
|
||
JP KEY1
|
||
KEY0 LD E,A
|
||
LD D,0
|
||
LD HL,(ETXS)
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
LD (_A+1),A
|
||
KEY1 CALL CURSORF
|
||
EI
|
||
HALT
|
||
LD C,Dss.ScanKey
|
||
RST #10
|
||
JP Z,KEY1
|
||
RET
|
||
|
||
CURSORX DB #00
|
||
|
||
CURSORF LD A,05
|
||
DEC A
|
||
LD (CURSORF+1),A
|
||
RET NZ
|
||
LD A,05
|
||
LD (CURSORF+1),A
|
||
LD DE,(TEMPXY)
|
||
_X LD E,#00
|
||
CALL LOCAT
|
||
LD A,(CURSORX)
|
||
XOR #FF
|
||
LD (CURSORX),A
|
||
LD A,"_"
|
||
JR NZ,YEPCUR
|
||
_A LD A,#20
|
||
YEPCUR CALL PRINTX
|
||
EI
|
||
RET
|
||
|
||
RES_CUR LD A,(CURSORX)
|
||
OR A
|
||
RET Z
|
||
XOR #FF
|
||
LD (CURSORX),A
|
||
LD DE,(TEMPXY)
|
||
LD A,(_X+1)
|
||
LD E,A
|
||
CALL LOCAT
|
||
LD A,(_A+1)
|
||
JP PRINTX
|
||
|
||
PRINT_S PUSH DE
|
||
CALL GETXY ;;;
|
||
LD DE,(TEMPXY)
|
||
LD E,0
|
||
CALL LOCAT
|
||
LD HL,PATH
|
||
CALL PRINTZ
|
||
LD A,">"
|
||
CALL PRINTX
|
||
POP DE
|
||
EX DE,HL
|
||
SH LD BC,#0000
|
||
ADD HL,BC
|
||
LD A,(SHIFT)
|
||
LD C,A
|
||
LD A,(IX+1)
|
||
SUB C
|
||
JP Z,EMT_STR
|
||
LD B,A
|
||
LD A,(IX-1)
|
||
SUB B
|
||
JR NC,PR_S
|
||
LD B,(IX-1)
|
||
PR_S PUSH BC
|
||
LD C,#86
|
||
RST ToBIOS
|
||
POP BC
|
||
EMT_STR LD A,(IX-1)
|
||
SUB B
|
||
EI
|
||
RET Z
|
||
LD B,A
|
||
LD C,#82
|
||
LD A,#20
|
||
RST ToBIOS
|
||
EI
|
||
RET
|
||
|
||
SHIFT EQU SH+1
|
||
|
||
GET_CMD LD D,XH
|
||
LD E,XL
|
||
EX DE,HL
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,0
|
||
EX DE,HL
|
||
ADD HL,DE
|
||
LD (HL),0
|
||
NEXTPRM EX DE,HL
|
||
SKIPSP LD A,(HL)
|
||
INC HL
|
||
CP " "
|
||
RET C
|
||
JR Z,SKIPSP
|
||
DEC HL
|
||
CP "/"
|
||
JR NZ,PROCESS
|
||
LD DE,BUFFER
|
||
LD C,Dss.GSwitch
|
||
RST #10
|
||
PUSH AF
|
||
EX DE,HL ;SAVE HL IN DE
|
||
LD HL,BUFFER
|
||
INC HL
|
||
CALL ISWITCH
|
||
POP AF
|
||
JP NC,NEXTPRM
|
||
XOR A
|
||
RET
|
||
|
||
PROCESS LD DE,CMDLINE
|
||
LD BC,#00FF
|
||
NLDI LD A,(HL)
|
||
LDI
|
||
INC B
|
||
CP " "
|
||
JR NC,NLDI
|
||
DEC B
|
||
LD A,B
|
||
LD (CMDLINE-1),A
|
||
LD A,(RUNMODE)
|
||
OR #40 ;PROCESS
|
||
LD (RUNMODE),A
|
||
XOR A
|
||
RET
|
||
|
||
ISWITCH LD A,(HL)
|
||
CP "a"
|
||
JR C,NUP
|
||
CP "{"
|
||
JR NC,NUP
|
||
SUB #20
|
||
NUP
|
||
PR000 CP "P"
|
||
JR NZ,PR001
|
||
LD A,(RUNMODE)
|
||
OR #80 ;PRIMARY CONSOLE
|
||
LD (RUNMODE),A
|
||
RET
|
||
PR001 CP "S"
|
||
JR NZ,PR002
|
||
LD A,(RUNMODE)
|
||
OR #20 ;SECONDARY CONSOLE
|
||
LD (RUNMODE),A
|
||
PR002 CP "C"
|
||
JR NZ,PR003
|
||
LD A,(RUNMODE)
|
||
OR #10 ;RUN BATCH FILE
|
||
LD (RUNMODE),A
|
||
PR003 RET
|
||
|
||
TASKX DB 0
|
||
RUNMODE DB 0
|
||
STEP DB 8
|
||
MAIN_X DB 0
|
||
|
||
LEN_OLD DB #00
|
||
POSIT DB #00
|
||
ETXS DW 0
|
||
ETXE DW 0
|
||
; +0 - Size buffer
|
||
; +1 - Amount simbols
|
||
; -1 - Scroll Window
|
||
WINDOW DB #50
|
||
BUFFERC DB #FF
|
||
LEN_NEW DB #00
|
||
CMDLINE ;DEFS #100,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
TMPLINE DS 256
|
||
|
||
BATNAME DB "system.bat",0
|
||
|
||
PRMLINE DS 256
|
||
|
||
BUFFER:
|
||
|
||
BAT_BUFFER.size EQU 128
|
||
BATBUFF: BLOCK BAT_BUFFER.size+1,0
|
||
;
|
||
OUTEND
|
||
;
|
||
;[End] |