
- поправлен cdx.txt - добалена возможность послать ATAPI пакет. - если нет диска в приводе, то не пишет ошибку, что нет привода
91 lines
1.3 KiB
Plaintext
91 lines
1.3 KiB
Plaintext
|
|
; LAST UPDATE: 07.07.2025 savelij
|
|
|
|
; HL - exe-prefix
|
|
; IX - pointers at work buffers
|
|
EX_COMMAND_LINE:
|
|
INC HL
|
|
.NEXTPR: LD DE,ARGCBUF
|
|
SPDSS DSSF.EX_PATH,EX_PATH.GSWITCH
|
|
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
|
|
|
|
.ITCKEY: LD A,(ARGCBUF+1)
|
|
CP "5"
|
|
JR NC,.HELP
|
|
CP "1"
|
|
JR NC,.number
|
|
; ERROR
|
|
LD HL,ARGCBUF+1
|
|
CALL PUTVAR
|
|
LD A,MSG0.MSG_UNK_DEVICE_NUMBER
|
|
CALL MESSAGE
|
|
LD A,1
|
|
LD (STOPMODE),A
|
|
JR .EOCL
|
|
|
|
.number: SUB '1'
|
|
OR 0xC0
|
|
PUSH IX
|
|
PUSH AF
|
|
CALL RESTORE_STATE
|
|
XOR A
|
|
LD (RESTORE_STATE.set_par),A
|
|
POP AF
|
|
LD (CDDRIVE),A
|
|
SPBIOS BIOSF.DRV_DETECT
|
|
POP IX
|
|
JR NC,.EOCL
|
|
CP ERR_DRV.ATAPI_MediumError
|
|
JR Z,.EOCL
|
|
CP ERR_DRV.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,MSG0.MSG_NO_CDROM
|
|
CALL MESSAGE
|
|
LD A,1
|
|
LD (STOPMODE),A
|
|
SCF
|
|
JR .CL_FAILURE
|
|
|
|
.HELP: LD A,MSG0.MSG_USAGE
|
|
CALL MESSAGE
|
|
LD A,1
|
|
LD (STOPMODE),A
|
|
JR .EOCL
|