исправлены баги с выбором канала

This commit is contained in:
Tolik 2025-02-20 04:05:36 +10:00
parent 14a85b850f
commit 382e5a8bdb
2 changed files with 101 additions and 83 deletions

18
CDX.ASM
View File

@ -94,20 +94,22 @@ START: PUSH IX
;CALL MDEALLOC
QUIT: CALL CRLF
.set_par+1: LD B,1
LD C,BIOS.DRV_SET_PAR
LD A,(CDDRIVE)
RST ToBIOS
CALL RESTORE_STATE
;
.loop: LD BC,Dss.Exit
RST ToDSS
JP .loop
OLD_DSS
LD A,MSG_OLD_DSS
OLD_DSS: LD A,MSG_OLD_DSS
CALL MESSAGE
JR QUIT
RESTORE_STATE:
.set_par+1: LD B,1
LD C,BIOS.DRV_SET_PAR
LD A,(CDDRIVE)
JP ToBIOS
;HNDMEM DB #FF
MALLOC:
@ -226,9 +228,9 @@ SAVE_MEDIA_CHANGED:
RST ToBIOS
OR %0000'0010
LD B,A
LD A,(QUIT.set_par)
LD A,(RESTORE_STATE.set_par)
OR B
LD (QUIT.set_par),A
LD (RESTORE_STATE.set_par),A
RET

View File

@ -1,20 +1,20 @@
; HL - exe-prefix
; IX - pointers at work buffers
EX_COMMAND_LINE
EX_COMMAND_LINE:
INC HL
NEXTPR LD DE,ARGCBUF
.NEXTPR: LD DE,ARGCBUF
LD BC,Dss.EX_Path.GSWITCH
RST ToDSS
PUSH AF
PUSH HL
LD A,(ARGCBUF)
OR A
JR Z,EOCL ;end of command line
JR Z,.EOCL ;end of command line
CP "-"
JR Z,ITCKEY
JR Z,.ITCKEY
CP "/"
JR Z,ITCKEY
JR Z,.ITCKEY
LD HL,ARGCBUF
LD E,(IX+0)
LD D,(IX+1)
@ -22,24 +22,24 @@ NEXTPR LD DE,ARGCBUF
INC IX
LD A,D
OR E
JR Z,CL_FAILURE
JR Z,.CL_FAILURE
;LD A,1
;LD (NAME_FLG),A
MOVNAME LD A,(HL)
.MOVNAME: LD A,(HL)
LDI
OR A
JR NZ,MOVNAME
EOCL POP HL
JR NZ,.MOVNAME
;
.EOCL: POP HL
POP AF
JR NC,NEXTPR
JR NC,.NEXTPR
RET
CL_FAILURE
POP HL
;
.CL_FAILURE: POP HL
POP AF
RET
ITCKEY: LD A,(ARGCBUF+1)
.ITCKEY: LD A,(ARGCBUF+1)
CP "5"
JR NC,.HELP
CP "1"
@ -51,30 +51,46 @@ ITCKEY: LD A,(ARGCBUF+1)
CALL MESSAGE
LD A,1
LD (STOPMODE),A
JR EOCL
JR .EOCL
;
.number:;
SUB A,'1'
.number: SUB '1'
OR #C0
LD (CDDRIVE),A
LD C,BIOS.DRV_RESET
RST ToBIOS
JR NC,EOCL
;
LD HL,ARGCBUF+1
PUSH IX
PUSH AF
CALL RESTORE_STATE
XOR A
LD (RESTORE_STATE.set_par),A
POP AF
LD (CDDRIVE),A
LD C,BIOS.DRV_DETECT
RST ToBIOS
POP IX
JR NC,.EOCL
;
CP BIOS.Error.ATAPI.UnitAttention
JR NZ,.error
;
LD A,(CDDRIVE)
PUSH IX
CALL SAVE_MEDIA_CHANGED
POP IX
JR NC,.EOCL
;
.error: LD HL,ARGCBUF+1
CALL PUTVAR
LD A,MSG_NO_CDROM
CALL MESSAGE
LD A,1
LD (STOPMODE),A
SCF
JR CL_FAILURE
JR .CL_FAILURE
;
.HELP: LD A,MSG_USAGE
CALL MESSAGE
LD A,1
LD (STOPMODE),A
JR EOCL
JR .EOCL