Версия 1.03
- поправлен cdx.txt - добалена возможность послать ATAPI пакет. - если нет диска в приводе, то не пишет ошибку, что нет привода
This commit is contained in:
commit
194e7a1fca
BIN
bin/CDX.EXE
Normal file
BIN
bin/CDX.EXE
Normal file
Binary file not shown.
75
bin/CDX.TXT
Normal file
75
bin/CDX.TXT
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
|
||||||
|
CDROM Extension utility v1.03
|
||||||
|
|
||||||
|
(c) Sprinter Team, 2025
|
||||||
|
|
||||||
|
<EFBFBD>â ª®á®«ì ï ¯à®£à ¬¬ ¯à¥¤ § ç¥ ¤«ï ¯®¤¤¥à¦ª¨ CD-ROM ª®¬¯ìîâ¥à¥
|
||||||
|
‘¯à¨â¥à. ƒ« ¢ë¬ ®¡à §®¬, ã⨫¨â á«ã¦¨â ¤«ï ª®¯¨à®¢ ¨ï ä ©«®¢ á CD-ROM
|
||||||
|
¤à㣨¥ ¤¨áª¨ ª®¬¯ìîâ¥à . ’ ª ¦¥ ¥áâì ¢®§¬®¦®áâì ®â¯à ¢ª¨ ATAPI ¯ ª¥â ¤«ï
|
||||||
|
ã¯à ¢«¥¨ï CD-ROM.
|
||||||
|
|
||||||
|
ˆá¯®«ì§®¢ ¨¥:
|
||||||
|
|
||||||
|
CDX [-ª«îç] [ª®¬ ¤ ] [¯ à ¬¥âà 1] [¯ à ¬¥âà 2]
|
||||||
|
|
||||||
|
Š®¬ ¤ë:
|
||||||
|
|
||||||
|
OPEN -- ®âªàëâì «®â®ª
|
||||||
|
CLOSE -- § ªàëâì «®â®ª
|
||||||
|
LIST [\cd\path\] [pattern] -- ¯®ª § âì ᮤ¥à¦¨¬®¥ ª â «®£
|
||||||
|
COPY \source \destination -- ª®¯¨à®¢ âì ä ©«ë
|
||||||
|
DUMP sector [offset] -- ¯®ª § âì ¤ ¬¯ ᥪâ®à ¤¨áª
|
||||||
|
SEND hexline ["." separator] -- ®â¯à ¢ª ATAPI ¯ ª¥â
|
||||||
|
|
||||||
|
Š«îç¨:
|
||||||
|
|
||||||
|
-h,? -- ¢ë¢¥á⨠⥪áâ ¯®¤áª §ª¨
|
||||||
|
-1 -- CDROM ãáâ ®¢«¥ ª ª Primary IDE Master
|
||||||
|
-2 -- CDROM ãáâ ®¢«¥ ª ª Primary IDE Slave device
|
||||||
|
-3 -- CDROM ãáâ ®¢«¥ ª ª Secondary IDE Master device
|
||||||
|
-4 -- CDROM ãáâ ®¢«¥ ª ª Secondary IDE Slave device
|
||||||
|
|
||||||
|
<EFBFBD>ਬ¥àë ¨á¯®«ì§®¢ ¨ï:
|
||||||
|
|
||||||
|
cdx list
|
||||||
|
cdx list \waves\
|
||||||
|
cdx copy \docs\*.* c:\docs\
|
||||||
|
cdx copy \cd\waves\*.wav c:\waves\
|
||||||
|
cdx copy \soft\filename.exe c:\files\newname.exe
|
||||||
|
cdx send 4B.000000.0000000000000000.00000000
|
||||||
|
cdx send 4B000000000000000000000000000000
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
It is a command-line program for supporting of CD-ROM. Mainly, it serves
|
||||||
|
copying files from CD-ROM to hard disk or floppy disk.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
CDX [-switches] [command] [param1] [param2]
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
OPEN -- open tray
|
||||||
|
CLOSE -- close tray
|
||||||
|
LIST [\cd\path\] [pattern] -- show file(s)
|
||||||
|
COPY \source \destination -- copy file(s) from CD-ROM to another disk
|
||||||
|
DUMP sector [offset] -- show sector dump from CD-ROM
|
||||||
|
SEND hexline ["." separator] -- send ATAPI packet
|
||||||
|
|
||||||
|
Switches:
|
||||||
|
-h,? -- help page
|
||||||
|
-1 -- CDROM installed as Primary IDE Master device
|
||||||
|
-2 -- CDROM installed as Primary IDE Slave device
|
||||||
|
-3 -- CDROM installed as Secondary IDE Master device
|
||||||
|
-4 -- CDROM installed as Secondary IDE Slave device
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
cdx list
|
||||||
|
cdx list \waves\
|
||||||
|
cdx copy \docs\*.* c:\docs\
|
||||||
|
cdx copy \cd\waves\*.wav c:\waves\
|
||||||
|
cdx copy \soft\filename.exe c:\files\newname.exe
|
||||||
|
cdx send 4B.000000.0000000000000000.00000000
|
||||||
|
cdx send 4B000000000000000000000000000000
|
||||||
|
|
||||||
|
---
|
||||||
5
bin/history.txt
Normal file
5
bin/history.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
‚¥àá¨ï 1.03
|
||||||
|
- ¯®¯à ¢«¥ cdx.txt
|
||||||
|
- ¤®¡ «¥ ¢®§¬®¦®áâì ¯®á« âì ATAPI ¯ ª¥â.
|
||||||
|
- ¥á«¨ ¥â ¤¨áª ¢ ¯à¨¢®¤¥, â® ¥ ¯¨è¥â ®è¨¡ªã, çâ® ¥â ¯à¨¢®¤
|
||||||
23
build.bat
Normal file
23
build.bat
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
if not exist tmp md tmp
|
||||||
|
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\svn\pentevo\tools\noice2equ\
|
||||||
|
set includes=d:\yad\svn\pentevo\rom;d:\yad\zxgit\common_includes\
|
||||||
|
|
||||||
|
cls
|
||||||
|
|
||||||
|
asl -U -L -C -x -olist tmp\cdx.lst -i %includes% cdx.a80 || goto error
|
||||||
|
p2bin cdx.p bin\cdx.exe -r $-$ -k
|
||||||
|
|
||||||
|
echo ########################
|
||||||
|
echo # -= End Compile Ok =- #
|
||||||
|
echo ########################
|
||||||
|
goto exit
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo #######################
|
||||||
|
echo # -= Error Compile =- #
|
||||||
|
echo #######################
|
||||||
|
|
||||||
|
:exit
|
||||||
6
build_pause.bat
Normal file
6
build_pause.bat
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
call build.bat
|
||||||
|
|
||||||
|
pause
|
||||||
1225
cd_dos.a80
Normal file
1225
cd_dos.a80
Normal file
File diff suppressed because it is too large
Load Diff
488
cdx.a80
Normal file
488
cdx.a80
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
|
||||||
|
; LAST UPDATE: 07.07.2025 savelij
|
||||||
|
|
||||||
|
include macros.a80
|
||||||
|
include bios_sp.a80
|
||||||
|
include dss_sp.a80
|
||||||
|
include errors_sp.a80
|
||||||
|
include fat_dir_sp.a80
|
||||||
|
include macros_sp.a80
|
||||||
|
include vers.a80
|
||||||
|
|
||||||
|
;[BEGIN]
|
||||||
|
;
|
||||||
|
; CDX.EXE [command] [-switches] [directory]
|
||||||
|
;
|
||||||
|
;commands:
|
||||||
|
; OPEN
|
||||||
|
; EJECT
|
||||||
|
; CLOSE
|
||||||
|
; COPY
|
||||||
|
; LIST
|
||||||
|
; DUMP
|
||||||
|
; COMMAND
|
||||||
|
; SEND
|
||||||
|
; -h,? Help page
|
||||||
|
|
||||||
|
HDR_EXE 0x8100,1,0,START,START,0xBFFF,0
|
||||||
|
|
||||||
|
START: PUSH IX
|
||||||
|
XOR A
|
||||||
|
; LD HL,BUF1
|
||||||
|
; LD (HL),A
|
||||||
|
; LD DE,BUF1+1
|
||||||
|
; LD BC,BUFFERS_END-1
|
||||||
|
; LDIR
|
||||||
|
LD HL,'\\'
|
||||||
|
LD (DIRSPEC),HL
|
||||||
|
LD HL,BUF1
|
||||||
|
LD B,BUFERS_NUMBER
|
||||||
|
.initBuffersLoop:
|
||||||
|
LD (HL),A
|
||||||
|
INC H
|
||||||
|
DJNZ .initBuffersLoop
|
||||||
|
LD A,MSG0.MSG_HELLO
|
||||||
|
CALL MESSAGE
|
||||||
|
CALL INIT
|
||||||
|
JR NC,.next
|
||||||
|
LD HL,PRM1
|
||||||
|
LD (HL),0
|
||||||
|
LD A,MSG0.MSG_NO_CDROM
|
||||||
|
CALL MESSAGE
|
||||||
|
LD A,1
|
||||||
|
LD (STOPMODE),A
|
||||||
|
.next:
|
||||||
|
SPDSS DSSF.VERSION
|
||||||
|
EX DE,HL
|
||||||
|
AND A
|
||||||
|
LD DE,0x0146 ;1.70
|
||||||
|
SBC HL,DE ;CHECK DSS VERSION
|
||||||
|
POP HL
|
||||||
|
JP C,OLD_DSS
|
||||||
|
LD IX,BUF_PTRS
|
||||||
|
CALL EX_COMMAND_LINE
|
||||||
|
CALL MALLOC
|
||||||
|
JR C,QUIT
|
||||||
|
; CALL FIND_CDROM
|
||||||
|
LD A,(STOPMODE)
|
||||||
|
OR A
|
||||||
|
CALL Z,COMMAND
|
||||||
|
; CALL MDEALLOC
|
||||||
|
QUIT: CALL CRLF
|
||||||
|
CALL RESTORE_STATE
|
||||||
|
.loop:
|
||||||
|
SPDSS DSSF.EXIT,0
|
||||||
|
JP .loop
|
||||||
|
|
||||||
|
OLD_DSS: LD A,MSG0.MSG_OLD_DSS
|
||||||
|
CALL MESSAGE
|
||||||
|
JR QUIT
|
||||||
|
|
||||||
|
RESTORE_STATE: LD B,1
|
||||||
|
.set_par: EQU $-1
|
||||||
|
LD A,(CDDRIVE)
|
||||||
|
SPBIOS BIOSF.DRV_SET_PAR
|
||||||
|
RET
|
||||||
|
|
||||||
|
;HNDMEM DB 0xFF
|
||||||
|
|
||||||
|
MALLOC:
|
||||||
|
SPDSS DSSF.GETMEM,2
|
||||||
|
JR NC,.cont
|
||||||
|
LD A,MSG0.MSG_MEMERROR
|
||||||
|
CALL MESSAGE
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
|
||||||
|
.cont: PUSH AF
|
||||||
|
SPDSS DSSF.SETWIN3,1
|
||||||
|
LD HL,BANKTBL
|
||||||
|
POP AF
|
||||||
|
SPBIOS BIOSF.GETMEMBLKPAGES
|
||||||
|
RET
|
||||||
|
|
||||||
|
; MDEALLOC
|
||||||
|
; LD A,(HNDMEM)
|
||||||
|
; LD C,Dss.FreeMem
|
||||||
|
; JP ToDSS
|
||||||
|
|
||||||
|
; FIND_CDROM
|
||||||
|
; LD IX,DEV_CFG
|
||||||
|
; LD C,BIOS.DRV_LIST
|
||||||
|
; RST ToBIOS
|
||||||
|
; LD A,(IX+3) ;CDROM
|
||||||
|
; OR A
|
||||||
|
; JR Z,W_O_CD
|
||||||
|
; LD A,(CDDRIVE)
|
||||||
|
; INC A
|
||||||
|
; RET NZ
|
||||||
|
; LD A,SLAVE ;DEFAULT
|
||||||
|
; LD (CDDRIVE),A
|
||||||
|
; RET
|
||||||
|
; W_O_CD LD A,MSG_NO_CDROM
|
||||||
|
; CALL MESSAGE
|
||||||
|
; LD A,1
|
||||||
|
; LD (STOPMODE),A
|
||||||
|
; SCF
|
||||||
|
; RET
|
||||||
|
|
||||||
|
;BUF_PRINT
|
||||||
|
; LD HL,BUF_PTRS
|
||||||
|
;BUF_PL LD E,(HL)
|
||||||
|
; INC HL
|
||||||
|
; LD D,(HL)
|
||||||
|
; INC HL
|
||||||
|
; LD A,D
|
||||||
|
; OR E
|
||||||
|
; RET Z
|
||||||
|
; PUSH HL
|
||||||
|
; EX DE,HL
|
||||||
|
; LD C,Dss.PCHARS
|
||||||
|
; RST ToDSS
|
||||||
|
; CALL CRLF
|
||||||
|
; POP HL
|
||||||
|
; JR BUF_PL
|
||||||
|
|
||||||
|
;OPEN_FILE
|
||||||
|
; LD HL,FILENAME
|
||||||
|
; XOR A
|
||||||
|
; LD C,Dss.OPEN
|
||||||
|
; RST ToDSS
|
||||||
|
; LD (FILEHND),A
|
||||||
|
; RET NC
|
||||||
|
; LD HL,FILENAME
|
||||||
|
; CALL PUTVAR
|
||||||
|
; LD A,MSG_CANT_OPEN
|
||||||
|
; CALL MESSAGE
|
||||||
|
; SCF
|
||||||
|
; RET
|
||||||
|
|
||||||
|
;CLOSE_FILE
|
||||||
|
; LD A,(FILEHND)
|
||||||
|
; LD C,Dss.CLOSE
|
||||||
|
; RST ToDSS
|
||||||
|
; RET
|
||||||
|
|
||||||
|
INIT: XOR A
|
||||||
|
LD (STOPMODE),A
|
||||||
|
DEC A
|
||||||
|
LD (CDDRIVE),A
|
||||||
|
LD B,0xC0 - 1
|
||||||
|
.loop: INC B
|
||||||
|
LD A,B
|
||||||
|
CP 0xC4
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
PUSH BC
|
||||||
|
SPBIOS BIOSF.DRV_DETECT
|
||||||
|
POP BC
|
||||||
|
JR NC,.found
|
||||||
|
CP ERR_DRV.ATAPI_MediumError
|
||||||
|
JR Z,.media_changed
|
||||||
|
CP ERR_DRV.ATAPI_UnitAttention
|
||||||
|
JR NZ,.loop
|
||||||
|
.media_changed: PUSH BC
|
||||||
|
LD A,B
|
||||||
|
CALL SAVE_MEDIA_CHANGED
|
||||||
|
POP BC
|
||||||
|
.found: LD A,B
|
||||||
|
LD (CDDRIVE),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
SAVE_MEDIA_CHANGED:
|
||||||
|
SPBIOS BIOSF.DRV_GET_PAR
|
||||||
|
OR %00000010
|
||||||
|
LD B,A
|
||||||
|
LD A,(RESTORE_STATE.set_par)
|
||||||
|
OR B
|
||||||
|
LD (RESTORE_STATE.set_par),A
|
||||||
|
RET
|
||||||
|
|
||||||
|
;VARIABLES
|
||||||
|
|
||||||
|
; FILENAME DS 256
|
||||||
|
; FILEHND DB 0xFF
|
||||||
|
|
||||||
|
STOPMODE DB 0x00
|
||||||
|
|
||||||
|
CMD_PARSE_ASM.Start:
|
||||||
|
include cmdparse.a80
|
||||||
|
CMD_PARSE_ASM.End EQU $
|
||||||
|
COMMAND_ASM.Start
|
||||||
|
include command.a80
|
||||||
|
COMMAND_ASM.End EQU $
|
||||||
|
CD_DOS_ASM.Start:
|
||||||
|
include cd_dos.a80
|
||||||
|
CD_DOS_ASM.End EQU $
|
||||||
|
|
||||||
|
CRLF: PUSH HL
|
||||||
|
LD HL,MSG0.crlf
|
||||||
|
SPDSS DSSF.PCHARS
|
||||||
|
POP HL
|
||||||
|
RET
|
||||||
|
|
||||||
|
ERROR: ;CP MAX_DSS_ERR
|
||||||
|
LD E,A
|
||||||
|
LD D,0
|
||||||
|
;JR C,.ERR_MSG
|
||||||
|
;LD E,D
|
||||||
|
;JP .ERR_MSG
|
||||||
|
|
||||||
|
.ERR_MSG: PUSH DE
|
||||||
|
LD HL,ERRCDX
|
||||||
|
CALL PRINTZ
|
||||||
|
POP DE
|
||||||
|
CALL FMESAGE
|
||||||
|
CALL PRINTZ
|
||||||
|
CALL CRLF
|
||||||
|
JP CRLF
|
||||||
|
|
||||||
|
FMESAGE: LD A,E
|
||||||
|
LD HL,SYS_ERRORS ; ¬ áᨢ áâப
|
||||||
|
LD BC,SYS_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
|
RLA
|
||||||
|
jr nc,.set_de
|
||||||
|
ld hl,DRV_ERRORS ; ¬ áᨢ áâப
|
||||||
|
ld bc,DRV_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
|
.set_de: SRL A
|
||||||
|
LD E,A
|
||||||
|
INC DE
|
||||||
|
LCPIR: XOR A
|
||||||
|
CPIR
|
||||||
|
RET PO
|
||||||
|
RET NZ
|
||||||
|
XOR A
|
||||||
|
CP (HL)
|
||||||
|
JR Z,.no_mess
|
||||||
|
DEC DE
|
||||||
|
LD A,D
|
||||||
|
OR E
|
||||||
|
JP NZ,LCPIR
|
||||||
|
RET
|
||||||
|
.no_mess: INC HL
|
||||||
|
RET
|
||||||
|
|
||||||
|
IF 0;/*
|
||||||
|
LCPIR: xor a
|
||||||
|
cpir
|
||||||
|
ret po
|
||||||
|
ret nz
|
||||||
|
;R11
|
||||||
|
XOR A
|
||||||
|
CP (HL)
|
||||||
|
JR Z,.no_mess
|
||||||
|
;
|
||||||
|
dec de
|
||||||
|
ld a,d
|
||||||
|
or e
|
||||||
|
jr nz,LCPIR
|
||||||
|
ret
|
||||||
|
.no_mess: INC HL
|
||||||
|
RET
|
||||||
|
|
||||||
|
print_err_message:
|
||||||
|
ld hl,SYS_ERRORS ; ¬ áᨢ áâப
|
||||||
|
ld bc,SYS_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
|
;cp %1000'0000
|
||||||
|
RLA
|
||||||
|
jr nc,.set_de
|
||||||
|
;
|
||||||
|
;and %0111'1111
|
||||||
|
ld hl,DRV_ERRORS ; ¬ áᨢ áâப
|
||||||
|
ld bc,DRV_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
|
;
|
||||||
|
.set_de: SRL A
|
||||||
|
ld e,a
|
||||||
|
ld d,0
|
||||||
|
inc de
|
||||||
|
call LCPIR ; ©â¨ áâபã
|
||||||
|
call PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
|
||||||
|
jp newline
|
||||||
|
ENDIF;*/
|
||||||
|
|
||||||
|
ERRCDX DB "CDX: ",0
|
||||||
|
|
||||||
|
include dss_errors.a80
|
||||||
|
|
||||||
|
;FIND_MESSAGE LD E,A
|
||||||
|
; LD D,0
|
||||||
|
; CALL MESAGE
|
||||||
|
; RET
|
||||||
|
|
||||||
|
MESSAGE LD E,A
|
||||||
|
LD D,0
|
||||||
|
CALL MESAGE
|
||||||
|
JP PRINTZ
|
||||||
|
|
||||||
|
MESAGE INC DE
|
||||||
|
LD HL,MSG0
|
||||||
|
LD BC,MSG1-MSG0
|
||||||
|
LCPIR2 XOR A
|
||||||
|
CPIR
|
||||||
|
RET PO
|
||||||
|
RET NZ
|
||||||
|
DEC DE
|
||||||
|
LD A,D
|
||||||
|
OR E
|
||||||
|
JP NZ,LCPIR2
|
||||||
|
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
|
||||||
|
SPDSS DSSF.PCHARS
|
||||||
|
POP HL
|
||||||
|
JR PRINTZ
|
||||||
|
|
||||||
|
PRINTZ2
|
||||||
|
SPDSS DSSF.PUTCHAR
|
||||||
|
JP PRINTZ
|
||||||
|
|
||||||
|
PRINT_
|
||||||
|
SPBIOS BIOSF.LP_PRINT_SYM,1
|
||||||
|
RET
|
||||||
|
|
||||||
|
PUTVAR LD DE,PRM1
|
||||||
|
PUTPRM LD BC,15
|
||||||
|
PUTPRMA LD A,(HL)
|
||||||
|
LDI
|
||||||
|
RET PO
|
||||||
|
OR A
|
||||||
|
JR NZ,PUTPRMA
|
||||||
|
RET
|
||||||
|
|
||||||
|
CDDRIVE DB 0xFF
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
MSG0 DB 0
|
||||||
|
_INIT_VAR
|
||||||
|
_SETVAR .MSG_HELLO
|
||||||
|
DB "CDROM eXtension utility v\{VERS}, build \{BUILDDATE} (c) Sprinter Team\r\n"
|
||||||
|
DZ "Type CDX.EXE -? for help.\r\n"
|
||||||
|
_SETVAR .MSG_TRAY_OPEN
|
||||||
|
DZ "Opening tray..."
|
||||||
|
_SETVAR .MSG_TRAY_CLOSE
|
||||||
|
DZ "Closing tray..."
|
||||||
|
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789
|
||||||
|
_SETVAR .MSG_USAGE
|
||||||
|
DB " Usage: CDX.EXE [-switches] [command] [param1] [param2]\r\n\r\n"
|
||||||
|
DB "Commands:\r\n"
|
||||||
|
DB " CDX OPEN - Open tray\r\n"
|
||||||
|
DB " CDX CLOSE - Close tray\r\n"
|
||||||
|
DB " CDX LIST [\\cd_path\\][pattern] - Show CDROM filelist\r\n"
|
||||||
|
DB " CDX COPY \\source d:\\destination\\ - Copy file(s) from CDROM to another disk\r\n"
|
||||||
|
DB " CDX DUMP sector [offset] - Show sector dump from CDROM\r\n"
|
||||||
|
DB " CDX SEND hexline [\".\" separator] - Send ATAPI command\r\n"
|
||||||
|
DB " example:\r\n"
|
||||||
|
DB " CDX SEND 4B.000000.0000000000000000.00000000\r\n"
|
||||||
|
DB "\r\n"
|
||||||
|
DB "Switches:\r\n"
|
||||||
|
DB " -1 CDROM installed as Primary IDE Master device\r\n"
|
||||||
|
DB " -2 CDROM installed as Primary IDE Slave device\r\n"
|
||||||
|
DB " -3 CDROM installed as Secondary IDE Master device\r\n"
|
||||||
|
DB " -4 CDROM installed as Secondary IDE Slave device\r\n"
|
||||||
|
DZ " -h,? Help page\r\n"
|
||||||
|
_SETVAR .MSG_UNK_DEVICE_NUMBER
|
||||||
|
DZ " Error: Unknown device number %1\r\n"
|
||||||
|
_SETVAR .MSG_UNK_COMMAND
|
||||||
|
DZ " Error: Unknown command: %1\r\n"
|
||||||
|
_SETVAR .MSG_DONE
|
||||||
|
DZ "Done!\r\n"
|
||||||
|
_SETVAR .MSG_NO_CDROM
|
||||||
|
DZ " Error: Can't find CDROM device %1\r\n"
|
||||||
|
_SETVAR .MSG_IO_ERROR
|
||||||
|
DZ " Error: I/O Error\r\n"
|
||||||
|
_SETVAR .MSG_OLD_DSS
|
||||||
|
DZ " Error: Need DSS version 1.70 or higher\r\n"
|
||||||
|
_SETVAR .MSG_COPYFILE
|
||||||
|
DZ "Copying "
|
||||||
|
_SETVAR .MSG_DIRHEAD
|
||||||
|
DZ "Directory of CDROM:"
|
||||||
|
_SETVAR .MSG_DIRENTRY
|
||||||
|
; FILENAME EXT SIZE DATE TIME
|
||||||
|
DZ "%1 %2 %3 %4 %5\r\n"
|
||||||
|
_SETVAR .MSG_MEMERROR
|
||||||
|
DZ " Error: Memory allocation error\r\n"
|
||||||
|
_SETVAR .MSG_COPYTO
|
||||||
|
DZ " to "
|
||||||
|
_SETVAR .MSG_CD_READ_ERR
|
||||||
|
DZ " Error: Reading failure\r\n"
|
||||||
|
_SETVAR .MSG_F_WRITE_ERR
|
||||||
|
DZ " Error: Writing failure\r\n"
|
||||||
|
_SETVAR .MSG_FAILURE
|
||||||
|
DZ "Failure!\r\n"
|
||||||
|
_SETVAR .MSG_ERR_DEST
|
||||||
|
DZ " Error: Can't open destination file\r\n"
|
||||||
|
_SETVAR .MSG_COPYABORTED
|
||||||
|
DZ "Copying aborted\r\n"
|
||||||
|
_SETVAR .MSG_ERR_PACKET
|
||||||
|
DZ "Error: packet size incorrect\r\n"
|
||||||
|
_SETVAR .MSG_SEND_ATAPI
|
||||||
|
DZ "Send ATAPI packet..."
|
||||||
|
|
||||||
|
.crlf: DZ "\r\n"
|
||||||
|
|
||||||
|
DB 0
|
||||||
|
MSG1
|
||||||
|
|
||||||
|
BUF_PTRS DW BUF1,BUF2,BUF3,BUF4,0
|
||||||
|
|
||||||
|
APCMD_BUF DB 12 DUP 0
|
||||||
|
|
||||||
|
;-------------------------------//BUFFERS\\-------------------------------;
|
||||||
|
FF_STRUCT: DB "12345678"
|
||||||
|
DB "123"
|
||||||
|
DB 0x00
|
||||||
|
DW 0,0,0,0
|
||||||
|
CDFPOSH DW 0 ;CLUSTER HIGH
|
||||||
|
CDFTIME DW 0 ;TIME
|
||||||
|
CDFDATE DW 0 ;DATE
|
||||||
|
CDFPOSL DW 0 ;CLUSTER
|
||||||
|
CDFSIZE DW 0,0 ;SIZE
|
||||||
|
CDFATTR DB 0x00 ;ATTR
|
||||||
|
CDFNAME DB "12345678123",0
|
||||||
|
|
||||||
|
BUFFERS_START EQU $
|
||||||
|
|
||||||
|
INIT_VAR FF_STRUCT+256
|
||||||
|
SETVAR DIRSPEC, 256
|
||||||
|
SETVAR BUF1, 256
|
||||||
|
SETVAR BUF2, 256
|
||||||
|
SETVAR BUF3, 256
|
||||||
|
SETVAR BUF4, 256
|
||||||
|
SETVAR ARGCBUF, 256
|
||||||
|
SETVAR DUMPBUF, 256
|
||||||
|
|
||||||
|
BUFFERS_END EQU DUMPBUF+2048-BUFFERS_START
|
||||||
|
;
|
||||||
|
BUFERS_NUMBER EQU 6
|
||||||
|
;
|
||||||
|
; ASSERT (DUMPBUF+2048 < 0xC000), "NO FREE SPACE FOR BUFFERS"
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
DEV_CFG:
|
||||||
|
; DISPLAY "\n\tCDX size: ",/D,DEV_CFG - START
|
||||||
|
;[END]
|
||||||
90
cmdparse.a80
Normal file
90
cmdparse.a80
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
; 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
|
||||||
1036
command.a80
Normal file
1036
command.a80
Normal file
File diff suppressed because it is too large
Load Diff
6
readme.md
Normal file
6
readme.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
CDROM Extension utility для компьютера Sprinter
|
||||||
|
|
||||||
|
Консольная программа предназначена для поддержки CD-ROM на компьютере
|
||||||
|
Спринтер. Главным образом, утилита служит для копирования файлов с CD-ROM на
|
||||||
|
другие диски компьютера. Так же есть возможность отправки ATAPI пакета для
|
||||||
|
управления CD-ROM.
|
||||||
Loading…
Reference in New Issue
Block a user