mirror of
https://github.com/Tolik-Trek/CDX.git
synced 2026-06-15 01:11:38 +03:00
исправлены баги с выбором канала
This commit is contained in:
parent
14a85b850f
commit
382e5a8bdb
22
CDX.ASM
22
CDX.ASM
@ -94,19 +94,21 @@ 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
|
||||
CALL MESSAGE
|
||||
JR QUIT
|
||||
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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
|
||||
162
CMDPARSE.ASM
162
CMDPARSE.ASM
@ -1,80 +1,96 @@
|
||||
|
||||
; HL - exe-prefix
|
||||
; IX - pointers at work buffers
|
||||
EX_COMMAND_LINE
|
||||
INC HL
|
||||
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
|
||||
CP "-"
|
||||
JR Z,ITCKEY
|
||||
CP "/"
|
||||
JR Z,ITCKEY
|
||||
LD HL,ARGCBUF
|
||||
LD E,(IX+0)
|
||||
LD D,(IX+1)
|
||||
INC IX
|
||||
INC IX
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,CL_FAILURE
|
||||
; LD A,1
|
||||
; LD (NAME_FLG),A
|
||||
MOVNAME LD A,(HL)
|
||||
LDI
|
||||
OR A
|
||||
JR NZ,MOVNAME
|
||||
EOCL POP HL
|
||||
POP AF
|
||||
JR NC,NEXTPR
|
||||
RET
|
||||
EX_COMMAND_LINE:
|
||||
INC HL
|
||||
.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
|
||||
CP "-"
|
||||
JR Z,.ITCKEY
|
||||
CP "/"
|
||||
JR Z,.ITCKEY
|
||||
LD HL,ARGCBUF
|
||||
LD E,(IX+0)
|
||||
LD D,(IX+1)
|
||||
INC IX
|
||||
INC IX
|
||||
LD A,D
|
||||
OR E
|
||||
JR Z,.CL_FAILURE
|
||||
;LD A,1
|
||||
;LD (NAME_FLG),A
|
||||
.MOVNAME: LD A,(HL)
|
||||
LDI
|
||||
OR A
|
||||
JR NZ,.MOVNAME
|
||||
;
|
||||
.EOCL: POP HL
|
||||
POP AF
|
||||
JR NC,.NEXTPR
|
||||
RET
|
||||
;
|
||||
.CL_FAILURE: POP HL
|
||||
POP AF
|
||||
RET
|
||||
|
||||
CL_FAILURE
|
||||
POP HL
|
||||
POP AF
|
||||
RET
|
||||
|
||||
ITCKEY: LD A,(ARGCBUF+1)
|
||||
CP "5"
|
||||
JR NC,.HELP
|
||||
CP "1"
|
||||
JR NC,.number
|
||||
; ERROR
|
||||
LD HL,ARGCBUF+1
|
||||
CALL PUTVAR
|
||||
LD A,MSG_UNK_DEVICE_NUMBER
|
||||
CALL MESSAGE
|
||||
LD A,1
|
||||
LD (STOPMODE),A
|
||||
JR EOCL
|
||||
;
|
||||
.number:;
|
||||
SUB A,'1'
|
||||
OR #C0
|
||||
LD (CDDRIVE),A
|
||||
LD C,BIOS.DRV_RESET
|
||||
RST ToBIOS
|
||||
JR NC,EOCL
|
||||
;
|
||||
LD HL,ARGCBUF+1
|
||||
CALL PUTVAR
|
||||
LD A,MSG_NO_CDROM
|
||||
CALL MESSAGE
|
||||
LD A,1
|
||||
LD (STOPMODE),A
|
||||
SCF
|
||||
JR CL_FAILURE
|
||||
;
|
||||
.HELP: LD A,MSG_USAGE
|
||||
CALL MESSAGE
|
||||
LD A,1
|
||||
LD (STOPMODE),A
|
||||
JR EOCL
|
||||
.ITCKEY: LD A,(ARGCBUF+1)
|
||||
CP "5"
|
||||
JR NC,.HELP
|
||||
CP "1"
|
||||
JR NC,.number
|
||||
; ERROR
|
||||
LD HL,ARGCBUF+1
|
||||
CALL PUTVAR
|
||||
LD A,MSG_UNK_DEVICE_NUMBER
|
||||
CALL MESSAGE
|
||||
LD A,1
|
||||
LD (STOPMODE),A
|
||||
JR .EOCL
|
||||
;
|
||||
.number: SUB '1'
|
||||
OR #C0
|
||||
;
|
||||
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
|
||||
;
|
||||
.HELP: LD A,MSG_USAGE
|
||||
CALL MESSAGE
|
||||
LD A,1
|
||||
LD (STOPMODE),A
|
||||
JR .EOCL
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user