рефакторинг

This commit is contained in:
Tolik 2025-07-05 00:10:32 +10:00
parent 6badb66772
commit ed32954619

View File

@ -1,16 +1,16 @@
COMMAND LD HL,BUF1 COMMAND: LD HL,BUF1
LD A,(HL) LD A,(HL)
OR A OR A
RET Z RET Z
DEC HL DEC HL
SKIPSP INC HL SKIPSP: INC HL
LD A,(HL) LD A,(HL)
CP 9 CP 9
JR Z,SKIPSP JR Z,SKIPSP
CP " " CP " "
JR Z,SKIPSP JR Z,SKIPSP
COMP01 LD D,H COMP01: LD D,H
LD E,L LD E,L
XOR A XOR A
LD BC,255 LD BC,255
@ -19,15 +19,15 @@ COMP01 LD D,H
SUB C SUB C
LD C,A LD C,A
LD HL,CMDLIST LD HL,CMDLIST
COMP004 PUSH BC COMP004: PUSH BC
PUSH DE PUSH DE
COMP000 LD A,(DE) COMP000: LD A,(DE)
CP #61 CP #61
JP C,COMP001 JP C,COMP001
CP #7B CP #7B
JP NC,COMP001 JP NC,COMP001
SUB #20 SUB #20
COMP001 CP (HL) COMP001: CP (HL)
JP NZ,COMP002 JP NZ,COMP002
INC HL INC HL
INC DE INC DE
@ -42,14 +42,14 @@ COMP001 CP (HL)
CP " " CP " "
JR NZ,NOSPC JR NZ,NOSPC
INC DE INC DE
NOSPC INC HL NOSPC: INC HL
LD A,(HL) LD A,(HL)
INC HL INC HL
LD H,(HL) LD H,(HL)
LD L,A LD L,A
JP (HL) JP (HL)
COMP002 XOR A COMP002: XOR A
LD C,#FF LD C,#FF
CPI CPI
JP NZ,$-2 JP NZ,$-2
@ -67,7 +67,7 @@ COMP002 XOR A
SCF SCF
RET RET
CMDLIST DB "CLOSE",0 CMDLIST: DB "CLOSE",0
DW CCLOSE DW CCLOSE
DB "COPY",0 DB "COPY",0
DW CCOPY DW CCOPY
@ -92,15 +92,13 @@ CCLOSE: LD A,MSG_TRAY_CLOSE
CALL MESSAGE CALL MESSAGE
LD A,(CDDRIVE) LD A,(CDDRIVE)
LD BC,BIOS.DRV_EXTENDED.ATAPI_Close LD BC,BIOS.DRV_EXTENDED.ATAPI_Close
RST ToBIOS JR COPEN.cmd
LD A,MSG_DONE ;
JP MESSAGE
COPEN: LD A,MSG_TRAY_OPEN COPEN: LD A,MSG_TRAY_OPEN
CALL MESSAGE CALL MESSAGE
LD A,(CDDRIVE) LD A,(CDDRIVE)
LD BC,BIOS.DRV_EXTENDED.ATAPI_Eject LD BC,BIOS.DRV_EXTENDED.ATAPI_Eject
RST ToBIOS .cmd: RST ToBIOS
LD A,MSG_DONE LD A,MSG_DONE
JP MESSAGE JP MESSAGE
@ -133,8 +131,8 @@ CCOPY: CALL CHANGEDISK
CALL MESSAGE CALL MESSAGE
SCF SCF
RET RET
.NONSTOP: ;
LD DE,FF_STRUCT .NONSTOP: LD DE,FF_STRUCT
CALL F_NEXT CALL F_NEXT
JR NC,.COPIER JR NC,.COPIER
XOR A XOR A
@ -145,14 +143,13 @@ CCOPY: CALL CHANGEDISK
; RET ; RET
;IFOK ;IFOK
MAKECOPY: MAKECOPY: LD A,(COPYMODE)
LD A,(COPYMODE)
BIT SRCPATT,A BIT SRCPATT,A
JR NZ,.WITH_SRC_PATT JR NZ,.WITH_SRC_PATT
BIT DSTFILE,A BIT DSTFILE,A
JR NZ,.WITH_DST_FILE JR NZ,.WITH_DST_FILE
.WITH_SRC_PATT: ;
LD HL,CDFNAME .WITH_SRC_PATT: LD HL,CDFNAME
.YCR1: LD A,(HL) .YCR1: LD A,(HL)
CP "A" CP "A"
JR C,.NCR1 JR C,.NCR1
@ -182,8 +179,7 @@ MAKECOPY:
OR A OR A
JR NZ,.CZSL1 JR NZ,.CZSL1
; ;
.WITH_DST_FILE: .WITH_DST_FILE: LD HL,BUF3
LD HL,BUF3
LD A,(CDFATTR) LD A,(CDFATTR)
LD C,Dss.Create LD C,Dss.Create
RST ToDSS RST ToDSS
@ -222,8 +218,7 @@ MAKECOPY:
LD E,(IX+CLU3) LD E,(IX+CLU3)
LD D,(IX+CLU4) LD D,(IX+CLU4)
LD (CH_OFFSET),DE LD (CH_OFFSET),DE
.CDCOPY_LOOP: .CDCOPY_LOOP: CALL RCDFSB ;!!!!!
CALL RCDFSB ;!!!!!
JR C,.COPY_FAULT JR C,.COPY_FAULT
CALL WDATAB CALL WDATAB
JR C,.COPY_FAULT JR C,.COPY_FAULT
@ -243,15 +238,14 @@ MAKECOPY:
CALL MESSAGE CALL MESSAGE
AND A AND A
RET RET
.COPY_FAULT: ;
LD A,(FHND) .COPY_FAULT: LD A,(FHND)
LD C,Dss.Close LD C,Dss.Close
RST ToDSS RST ToDSS
SCF SCF
RET RET
EX_COPY_PARAM EX_COPY_PARAM: LD HL,BUF2 ;SOURCE
LD HL,BUF2 ;SOURCE
LD BC,255 LD BC,255
XOR A XOR A
CPIR CPIR
@ -277,8 +271,7 @@ EX_COPY_PARAM
SET SRCPATT,A SET SRCPATT,A
JR NZ,.NOPATSR JR NZ,.NOPATSR
RES SRCPATT,A RES SRCPATT,A
.NOPATSR: .NOPATSR: LD (COPYMODE),A
LD (COPYMODE),A
LD HL,BUF3 ;DESTINATION LD HL,BUF3 ;DESTINATION
LD BC,Dss.EX_Path.GET_ALL LD BC,Dss.EX_Path.GET_ALL
RST ToDSS RST ToDSS
@ -288,8 +281,7 @@ EX_COPY_PARAM
SET DSTFILE,A SET DSTFILE,A
JR Z,.SINGC1 JR Z,.SINGC1
RES DSTFILE,A RES DSTFILE,A
.SINGC1: .SINGC1: LD (COPYMODE),A
LD (COPYMODE),A
RET Z RET Z
LD HL,BUF3 LD HL,BUF3
LD BC,255 LD BC,255
@ -309,19 +301,19 @@ EX_COPY_PARAM
LD (HL),0 ;PUT ZERO CHAR LD (HL),0 ;PUT ZERO CHAR
RET RET
DSTFILE EQU 0 ;SPECIFIED DESTINATION FILENAME DSTFILE: EQU 0 ;SPECIFIED DESTINATION FILENAME
SRCPATT EQU 3 ;SPECIFIED SOURCE PATTERN A??.* SRCPATT: EQU 3 ;SPECIFIED SOURCE PATTERN A??.*
COPYMODE DB 0 COPYMODE: DB 0
SRC_PUT_ADR DW BUF2 SRC_PUT_ADR: DW BUF2
DST_PUT_ADR DW BUF3 DST_PUT_ADR: DW BUF3
CL_OFFSET DW 0 CL_OFFSET: DW 0
CH_OFFSET DW 0 CH_OFFSET: DW 0
CL_SIZE DW 0 CL_SIZE: DW 0
CH_SIZE DW 0 CH_SIZE: DW 0
BYTECOUNTER DW 0 BYTECOUNTER: DW 0
WDATAB: LD DE,(BYTECOUNTER) WDATAB: LD DE,(BYTECOUNTER)
LD A,D LD A,D
@ -335,8 +327,8 @@ WDATAB: LD DE,(BYTECOUNTER)
XOR A XOR A
INC A INC A
RET RET
.WRDERR: ;
LD A,MSG_FAILURE .WRDERR: LD A,MSG_FAILURE
CALL MESSAGE CALL MESSAGE
CALL CRLF CALL CRLF
LD A,MSG_F_WRITE_ERR LD A,MSG_F_WRITE_ERR
@ -373,8 +365,8 @@ RCDFSB: LD HL,(CL_SIZE)
LD C,L LD C,L
LD HL,0 LD HL,0
LD DE,0 LD DE,0
.RC_NOCAR: ;
LD (CL_SIZE),HL .RC_NOCAR: LD (CL_SIZE),HL
LD (CH_SIZE),DE LD (CH_SIZE),DE
LD (BYTECOUNTER),BC LD (BYTECOUNTER),BC
; ;
@ -386,8 +378,7 @@ RCDFSB: LD HL,(CL_SIZE)
OR C OR C
JR Z,.RC_EVEN_NUM JR Z,.RC_EVEN_NUM
INC B INC B
.RC_EVEN_NUM: .RC_EVEN_NUM: LD A,B
LD A,B
LD C,B LD C,B
LD B,0 LD B,0
; ;
@ -418,7 +409,7 @@ RCDFSB: LD HL,(CL_SIZE)
RET RET
FHND DB #FF FHND: DB #FF
;---------------------- ;----------------------
CDIR: CALL CHANGEDISK CDIR: CALL CHANGEDISK
@ -429,8 +420,8 @@ CDIR: CALL CHANGEDISK
JR NZ,.NODEFD JR NZ,.NODEFD
LD HL,DEFDIR LD HL,DEFDIR
JR .PATPRESNT JR .PATPRESNT
.NODEFD: ;
LD BC,Dss.EX_Path.GET_ALL .NODEFD: LD BC,Dss.EX_Path.GET_ALL
RST ToDSS RST ToDSS
BIT 7,A ;PATTERN BIT 7,A ;PATTERN
LD HL,BUF2 LD HL,BUF2
@ -448,8 +439,7 @@ CDIR: CALL CHANGEDISK
LD A,'\' ; LD A,'\' ;
LD (HL),A ;PUT BACKSLASH TO THE END OF STRING LD (HL),A ;PUT BACKSLASH TO THE END OF STRING
INC HL ;MOVE TO THE NEW END OF STRING INC HL ;MOVE TO THE NEW END OF STRING
.WITHSL9: .WITHSL9: LD A,"*"
LD A,"*"
LD (HL),A LD (HL),A
INC HL INC HL
LD (HL),"." LD (HL),"."
@ -458,22 +448,20 @@ CDIR: CALL CHANGEDISK
INC HL INC HL
LD (HL),0 LD (HL),0
LD HL,BUF2 LD HL,BUF2
.PATPRESNT .PATPRESNT: LD DE,FF_STRUCT
LD DE,FF_STRUCT
LD A,FAT_ATTR.NoVolID LD A,FAT_ATTR.NoVolID
LD B,0 LD B,0
CALL F_FIRST CALL F_FIRST
JP C,ERROR JP C,ERROR
.CDIR_HEAD: ;
LD A,MSG_DIRHEAD .CDIR_HEAD: LD A,MSG_DIRHEAD
CALL MESSAGE CALL MESSAGE
LD HL,DIRSPEC LD HL,DIRSPEC
LD C,Dss.PChars LD C,Dss.PChars
RST ToDSS RST ToDSS
CALL CRLF CALL CRLF
CALL CRLF CALL CRLF
.CDIR_LOOP: .CDIR_LOOP: LD HL,CDFNAME
LD HL,CDFNAME
CALL PNAME CALL PNAME
LD DE,FF_STRUCT LD DE,FF_STRUCT
CALL F_NEXT CALL F_NEXT
@ -495,7 +483,7 @@ CDIR: CALL CHANGEDISK
; ; DS 44 ; ; DS 44
; DS 256-($-FF_STRUCT) ; DS 256-($-FF_STRUCT)
PNAME LD BC,8 PNAME: LD BC,8
LD DE,PRM1 LD DE,PRM1
LDIR LDIR
XOR A XOR A
@ -512,7 +500,7 @@ PNAME LD BC,8
LD A,MSG_DIRENTRY LD A,MSG_DIRENTRY
JP MESSAGE JP MESSAGE
PRNDATE LD B,(IX+25) PRNDATE: LD B,(IX+25)
LD C,(IX+24) LD C,(IX+24)
LD HL,SIZEBFF LD HL,SIZEBFF
CALL DATE CALL DATE
@ -525,7 +513,7 @@ PRNDATE LD B,(IX+25)
LD (HL),#20 LD (HL),#20
JP PUTPRM JP PUTPRM
PRNTIME LD B,(IX+22) PRNTIME: LD B,(IX+22)
LD C,(IX+23) LD C,(IX+23)
LD HL,SIZEBFF LD HL,SIZEBFF
CALL TIME CALL TIME
@ -592,7 +580,7 @@ NUMB: LD C,#2F
INC HL INC HL
RET RET
PRNSIZE LD A,(IX+32) PRNSIZE: LD A,(IX+32)
LD HL,DIRIDD LD HL,DIRIDD
AND #10 AND #10
JP NZ,.PRZ JP NZ,.PRZ
@ -634,8 +622,7 @@ PRNSIZE LD A,(IX+32)
.PRZ: LD DE,PRM3 .PRZ: LD DE,PRM3
JP PUTPRM JP PUTPRM
MAKE_LN: MAKE_LN: LD IX,L32BIT_
LD IX,L32BIT_
EXX EXX
LD DE,#3B9A ; 1000000000 LD DE,#3B9A ; 1000000000
EXX EXX
@ -704,10 +691,8 @@ MAKE_LN:
; HL:HL - DE:DE ; HL:HL - DE:DE
GET_DIG: GET_DIG: XOR A
XOR A .INC_DG: INC A
.INC_DG:
INC A
SBC HL,DE SBC HL,DE
EXX EXX
SBC HL,DE SBC HL,DE
@ -723,13 +708,13 @@ GET_DIG:
INC IX INC IX
RET RET
L32BIT_ DB "0000000000" L32BIT_: DB "0000000000"
DIRIDD DB "<DIR> ",0 DIRIDD: DB "<DIR> ",0
SIZEBFF DB "0 000 000 000",0,0 SIZEBFF: DB "0 000 000 000",0,0
DEFDIR DB #5C,"*.*",0 DEFDIR: DB #5C,"*.*",0
;------------------------ ;------------------------
@ -757,14 +742,12 @@ CDUMP: LD HL,BUF2
SBC HL,BC SBC HL,BC
JR NC,.GOODOFFS JR NC,.GOODOFFS
LD BC,2048-#01C0 LD BC,2048-#01C0
.GOODOFFS: .GOODOFFS: LD HL,DUMPBUF
LD HL,DUMPBUF
ADD HL,BC ADD HL,BC
; ;
CALL DUMP CALL DUMP
JP CRLF JP CRLF
.DMPERR: .DMPERR: LD A,MSG_IO_ERROR
LD A,MSG_IO_ERROR
JP MESSAGE JP MESSAGE
; ;
@ -772,8 +755,7 @@ GETNUM: EXX
LD IX,0 LD IX,0
LD HL,0 LD HL,0
EXX EXX
.GETNUM0: .GETNUM0: LD A,(HL)
LD A,(HL)
OR A OR A
JR Z,.EGETN JR Z,.EGETN
INC HL INC HL
@ -936,7 +918,6 @@ PHEX: LD E,A
.PHEX3: CALL PRINT_ .PHEX3: CALL PRINT_
RET RET
PRNCHAR: PRNCHAR: LD C,Dss.PutChar
LD C,Dss.PutChar
JP ToDSS JP ToDSS
; ;