diff --git a/bin/CDX.EXE b/bin/CDX.EXE index 114afa2..f990cf2 100644 Binary files a/bin/CDX.EXE and b/bin/CDX.EXE differ diff --git a/bin/CDX.TXT b/bin/CDX.TXT index 31fb6ab..71b1318 100644 --- a/bin/CDX.TXT +++ b/bin/CDX.TXT @@ -1,5 +1,5 @@ -CDROM Extension utility v1.03 +CDROM Extension utility v1.04 (c) Sprinter Team, 2025 @@ -20,6 +20,10 @@ LIST [\cd\path\] [pattern] -- COPY \source \destination -- копировать файлы DUMP sector [offset] -- показать дамп сектора диска SEND hexline ["." separator] -- отправка ATAPI пакета +READTOC -- чтение TOC Audio-CD и показ статуса чтения и количества + дорожек на диске. +CLOSETOC -- аналогично READTOC, но перед чтением принудительно + подается команда закрытия трея. Ключи: @@ -55,6 +59,10 @@ 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 +READTOC -- reading the TOC Audio CD and showing the reading status and quantity + tracks on the disc. +CLOSETOC -- similar to READTOC, but forced before reading + the command to close the tray is given. Switches: -h,? -- help page diff --git a/bin/history.txt b/bin/history.txt index f96071b..c1414db 100644 --- a/bin/history.txt +++ b/bin/history.txt @@ -1,5 +1,9 @@ +Версия 1.04 +- для тестирования Audio-CD и BIOS добавлены команды + READTOC и CLOSETOC. + Версия 1.03 -- поправлен cdx.txt +- поправлен cdx.txt. - добалена возможность послать ATAPI пакет. -- если нет диска в приводе, то не пишет ошибку, что нет привода +- если нет диска в приводе, то не пишет ошибку, что нет привода. diff --git a/cdx.a80 b/cdx.a80 index 305d131..f82e191 100644 --- a/cdx.a80 +++ b/cdx.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 07.07.2025 savelij +; LAST UPDATE: 13.07.2025 savelij include macros.a80 include bios_sp.a80 @@ -389,23 +389,25 @@ MSG0 DB 0 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" + 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 " CDX READTOC - Read TOC Audio-CD\r\n" + DB " CDX CLOSETOC - Close tray and read TOC Audio-CD\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 @@ -443,6 +445,15 @@ MSG0 DB 0 DZ "Error: packet size incorrect\r\n" _SETVAR .MSG_SEND_ATAPI DZ "Send ATAPI packet..." + _SETVAR .MSG_READTOC + DZ "Read audio CD-ROM TOC..." + _SETVAR .MSG_RESULT_READTOC + DB "RESULT: 0x00\r\n" +.MRR1 EQU $-4 + DZ "Found in TOC: 0x00\r\n" +.MRR2 EQU $-5 + _SETVAR .MSG_CLOSETRAY_READTOC + DZ "Close tray and read TOC Audio-CD..." .crlf: DZ "\r\n" diff --git a/command.a80 b/command.a80 index db072b4..feaf9a7 100644 --- a/command.a80 +++ b/command.a80 @@ -1,5 +1,5 @@ -; LAST UPDATE: 05.07.2025 savelij +; LAST UPDATE: 13.07.2025 savelij COMMAND LD HL,BUF1 LD A,(HL) @@ -24,9 +24,9 @@ COMP01 LD D,H COMP004 PUSH BC PUSH DE COMP000 LD A,(DE) - CP 0x61 + CP 'a' ;0x61 JP C,COMP001 - CP 0x7B + CP 'z'+1 ;0x7B JP NC,COMP001 SUB 0x20 COMP001 CP (HL) @@ -69,28 +69,94 @@ COMP002 XOR A SCF RET -CMDLIST DB "CLOSE",0 - DW CCLOSE - DB "COPY",0 - DW CCOPY - DB "DUMP",0 - DW CDUMP - DB "EJECT",0 - DW COPEN - DB "HELP",0 - DW CHELP - DB "LIST",0 - DW CDIR - DB "OPEN",0 - DW COPEN - DB "SECTORDUMP",0 - DW CDUMP +CMDLIST DZ "CLOSE" + DW CCLOSE + DZ "COPY" + DW CCOPY + DZ "DUMP" + DW CDUMP + DZ "EJECT" + DW COPEN + DZ "HELP" + DW CHELP + DZ "LIST" + DW CDIR + DZ "OPEN" + DW COPEN + DZ "SECTORDUMP" + DW CDUMP DZ "SEND" DW SENDPACKET - DB 0 + DZ "READTOC" + DW READTOC + DZ "CLOSETOC" + DW CLOSETOC + DB 0 -SENDPACKET LD A,MSG0.MSG_SEND_ATAPI - CALL MESSAGE +RESULT EQU DUMPBUF + 3000 + +CLOSETOC LD A,MSG0.MSG_CLOSETRAY_READTOC + CALL MESSAGE + LD HL,APCMD.CLOSETRAY + CALL SENDPAKET + JR READTOC.L2 + +READTOC LD A,MSG0.MSG_READTOC + CALL MESSAGE +.L2 LD A,0xAA + LD (RESULT + 6),A + LD HL,APCMD.READTOC + CALL SENDPAKET + LD HL,RESULT-2 + LD B,0xFF + LD DE,8 +.L1 INC B + ADD HL,DE + LD A,(HL) + CP 0xAA + JR NZ,.L1 + LD A,B + CALL A2HEX + LD HL,MSG0.MRR2 + LD (HL),B + INC HL + LD (HL),A + LD A,(RESULT) + CALL A2HEX + LD HL,MSG0.MRR1 + LD (HL),B + INC HL + LD (HL),A + LD A,MSG0.MSG_RESULT_READTOC + JP MESSAGE + +SENDPAKET LD DE,RESULT + LD A,(CDDRIVE) + SPBIOS BIOSF.DRV_EXTENDED,DRV_EXTENDED.ATAPI_Custom_PCMD + RET + +A2HEX PUSH AF + AND %11110000 + RRCA + RRCA + RRCA + RRCA + CALL .L2 + LD B,A + POP AF + AND %00001111 +.L2 ADD A,'0' + CP '9'+1 + RET C + ADD A,7 + RET + +APCMD +.READTOC DB 0x43,0x02,0x00,0x00,0x00,0x00,0x01,0x03,0x24,0x00,0x00,0x00 +.CLOSETRAY DB 0x1B,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + +SENDPACKET LD A,MSG0.MSG_SEND_ATAPI + CALL MESSAGE CALL CONV_HEX JR NC,.L1 LD A,MSG0.MSG_ERR_PACKET diff --git a/vers.a80 b/vers.a80 index 86af9b1..d014385 100644 --- a/vers.a80 +++ b/vers.a80 @@ -1,4 +1,4 @@ -; LAST UPDATE: 05.07.2025 savelij +; LAST UPDATE: 13.07.2025 savelij -VERS EQU "1.03" +VERS EQU "1.04"