Версия 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