From 806931357c5695e7c49cc106ddcca10cd214d2e1 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Thu, 23 Jan 2025 00:45:18 +1000 Subject: [PATCH 1/6] exe ver 1 --- CDX.ASM | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CDX.ASM b/CDX.ASM index 7b6b835..92e0ec8 100644 --- a/CDX.ASM +++ b/CDX.ASM @@ -26,7 +26,7 @@ LF EQU 10 ORG #8100-22 DB "EXE" ;EXE ID - DB #00 ;EXE VERSION + DB #01 ;EXE VERSION DW #0016 ;CODE OFFSET LOW DW #0000 ;CODE OFFSET HIGH DW #0000 ;END-BEG ;PRIMARY LOADER From 14a85b850f1e9bfcb9f262c79176ef96d2cd4a7d Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Thu, 13 Feb 2025 20:44:57 +1000 Subject: [PATCH 2/6] fixes for new bios/dos --- CDX.ASM | 59 +++++++++++++++++++++++++++++++++++-------------- Cd_dos.asm | 3 +-- Shared_Includes | 2 +- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/CDX.ASM b/CDX.ASM index 92e0ec8..a2f970c 100644 --- a/CDX.ASM +++ b/CDX.ASM @@ -92,40 +92,45 @@ START: PUSH IX OR A CALL Z,COMMAND - CALL MDEALLOC -QUIT: CALL CRLF -.loop: LD BC,Dss.Exit - RST ToDSS - JP .loop + ;CALL MDEALLOC +QUIT: CALL CRLF +.set_par+1: LD B,1 + LD C,BIOS.DRV_SET_PAR + LD A,(CDDRIVE) + RST ToBIOS + ; +.loop: LD BC,Dss.Exit + RST ToDSS + JP .loop OLD_DSS LD A,MSG_OLD_DSS CALL MESSAGE JR QUIT -HNDMEM DB #FF +;HNDMEM DB #FF -MALLOC +MALLOC: LD BC,2*256 + Dss.GetMem RST ToDSS - JR NC,M_ALLOK + JR NC,.cont LD A,MSG_MEMERROR CALL MESSAGE SCF RET -M_ALLOK - LD (HNDMEM),A + ; +.cont: PUSH AF LD BC,1*256 + Dss.SetWin3 RST ToDSS LD HL,BANKTBL LD C,BIOS.GetMemBlkPages - LD A,(HNDMEM) + POP AF JP ToBIOS -MDEALLOC - LD A,(HNDMEM) - LD C,Dss.FreeMem - JP ToDSS +; MDEALLOC +; LD A,(HNDMEM) +; LD C,Dss.FreeMem +; JP ToDSS ; FIND_CDROM ; LD IX,DEV_CFG @@ -198,8 +203,17 @@ INIT: XOR A PUSH BC RST ToBIOS POP BC - JR C,.loop + JR NC,.found + ; + CP BIOS.Error.ATAPI.UnitAttention + JR NZ,.loop + ; + PUSH BC LD A,B + CALL SAVE_MEDIA_CHANGED + POP BC + ; +.found: LD A,B LD (CDDRIVE),A RET ; @@ -207,6 +221,17 @@ INIT: XOR A ; JP ToBIOS ; RET +SAVE_MEDIA_CHANGED: + LD C,BIOS.DRV_GET_PAR + RST ToBIOS + OR %0000'0010 + LD B,A + LD A,(QUIT.set_par) + OR B + LD (QUIT.set_par),A + RET + + ;VARIABLES ; FILENAME DS 256 @@ -421,7 +446,7 @@ MSG_COPYABORTED EQU 19 ;21 MSG0 BYTE 0 ;0 - BYTE "CDROM eXtension utility v1.01, 2023 (c) Sprinter Team",CR,LF + BYTE "CDROM eXtension utility v1.02, 2025 (c) Sprinter Team",CR,LF DZ "Type CDX.EXE -? for help.",CR,LF,CR,LF ;1 DZ "Opening tray..." diff --git a/Cd_dos.asm b/Cd_dos.asm index f635791..d9974e7 100644 --- a/Cd_dos.asm +++ b/Cd_dos.asm @@ -159,8 +159,7 @@ CHANGEDISK: LD A,(CDDRIVE) RET ; .drv_change: LD A,(CDDRIVE) - LD C,BIOS.DRV_GET_PAR - RST ToBIOS + CALL SAVE_MEDIA_CHANGED ; .cont: CALL INITDISK RET C diff --git a/Shared_Includes b/Shared_Includes index 857938d..237dd36 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 857938d1dbf3b332a5e9e8ccabfee531eb3848fa +Subproject commit 237dd36651b4af124f12d3f1eaee3688467f8fa3 From 382e5a8bdbdf7c908226985b536b7497d6b887fa Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Thu, 20 Feb 2025 04:05:36 +1000 Subject: [PATCH 3/6] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B1=D0=B0=D0=B3=D0=B8=20=D1=81=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B1=D0=BE=D1=80=D0=BE=D0=BC=20=D0=BA=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CDX.ASM | 22 +++---- CMDPARSE.ASM | 162 ++++++++++++++++++++++++++++----------------------- 2 files changed, 101 insertions(+), 83 deletions(-) diff --git a/CDX.ASM b/CDX.ASM index a2f970c..78aac70 100644 --- a/CDX.ASM +++ b/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 diff --git a/CMDPARSE.ASM b/CMDPARSE.ASM index 0b23d08..461e978 100644 --- a/CMDPARSE.ASM +++ b/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 From f7e4caf53a25e7c18de70486e2423a87e509393a Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Fri, 28 Feb 2025 02:03:03 +1000 Subject: [PATCH 4/6] ... --- Shared_Includes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared_Includes b/Shared_Includes index 237dd36..2b1e30c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 237dd36651b4af124f12d3f1eaee3688467f8fa3 +Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a From 03e52d38f2296902e863a387a146d83856ca183d Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Wed, 16 Apr 2025 04:35:04 +1000 Subject: [PATCH 5/6] dss errors update --- CDX.ASM | 112 +++++++++++++++++++++++++++++++++++++----------- CDX.TXT | 2 +- COMMAND.ASM | 4 +- Cd_dos.asm | 14 +++--- Shared_Includes | 2 +- 5 files changed, 99 insertions(+), 35 deletions(-) diff --git a/CDX.ASM b/CDX.ASM index 78aac70..0f4e89d 100644 --- a/CDX.ASM +++ b/CDX.ASM @@ -12,8 +12,7 @@ ; COMMAND ; -h,? Help page - DEFINE _MAME 1 - +MAX_DSS_ERR EQU 33 CR EQU 13 LF EQU 10 @@ -241,9 +240,23 @@ SAVE_MEDIA_CHANGED: STOPMODE DB #00 - INCLUDE "cmdparse.asm" - INCLUDE "command.asm" - INCLUDE "cd_dos.asm" + + + +CMD_PARSE_ASM.Start: INCLUDE "cmdparse.asm" +CMD_PARSE_ASM.End EQU $ + DISPLAY "cmdparse.asm size: ",/D,CMD_PARSE_ASM.End - CMD_PARSE_ASM.Start + ; +COMMAND_ASM.Start INCLUDE "command.asm" +COMMAND_ASM.End EQU $ + DISPLAY "command.asm size: ",/D,COMMAND_ASM.End - COMMAND_ASM.Start + ; +CD_DOS_ASM.Start: INCLUDE "cd_dos.asm" +CD_DOS_ASM.End EQU $ + DISPLAY "cd_dos.asm size: ",/D,CD_DOS_ASM.End - CD_DOS_ASM.Start + + + CRLF: PUSH HL LD HL,MSG0.crlf @@ -258,11 +271,11 @@ CRLF: PUSH HL RET ; -ERROR: CP MAX_DSS_ERR +ERROR: ;CP MAX_DSS_ERR LD E,A LD D,0 - JR C,.ERR_MSG - LD E,D + ;JR C,.ERR_MSG + ;LD E,D ;JP .ERR_MSG ; .ERR_MSG: PUSH DE @@ -275,20 +288,70 @@ ERROR: CP MAX_DSS_ERR JP CRLF -FMESAGE INC DE - LD HL,ERR0 - LD BC,ERR0.Size -LCPIR XOR A - CPIR - RET PO - RET NZ - DEC DE - LD A,D - OR E - JP NZ,LCPIR - RET +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 +/* +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 -MAX_DSS_ERR EQU 33 + +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 +*/ ERRCDX DB "CDX: ",0 @@ -448,8 +511,8 @@ MSG_COPYABORTED EQU 19 ;21 MSG0 BYTE 0 ;0 - BYTE "CDROM eXtension utility v1.02, 2025 (c) Sprinter Team",CR,LF - DZ "Type CDX.EXE -? for help.",CR,LF,CR,LF + BYTE "CDROM eXtension utility v1.02.1, 2025 (c) Sprinter Team",CR,LF + DZ "Type CDX.EXE -? for help.",CR,LF ;1 DZ "Opening tray..." ;2 @@ -547,5 +610,6 @@ BUFERS_NUMBER EQU 6 ; ASSERT (DUMPBUF+2048 < #C000), "NO FREE SPACE FOR BUFFERS" ;-----------------------------------------------------------------------; -DEV_CFG +DEV_CFG: + DISPLAY "\n\tCDX size: ",/D,DEV_CFG - START ;[END] diff --git a/CDX.TXT b/CDX.TXT index 92da5ac..ec377ad 100644 --- a/CDX.TXT +++ b/CDX.TXT @@ -1,5 +1,5 @@ - CDROM eXtension utility version 1.01 + CDROM eXtension utility version 1.02.01 ------------------------------------------------ It's utility came for solving the problem with support CDROM in DSS ver 1.x. diff --git a/COMMAND.ASM b/COMMAND.ASM index ccd493d..25c0816 100644 --- a/COMMAND.ASM +++ b/COMMAND.ASM @@ -91,7 +91,7 @@ CHELP: LD A,MSG_USAGE CCLOSE: LD A,MSG_TRAY_CLOSE CALL MESSAGE LD A,(CDDRIVE) - LD BC,BIOS.DRV_EXTENDED.CD_Close + LD BC,BIOS.DRV_EXTENDED.ATAPI_Close RST ToBIOS LD A,MSG_DONE JP MESSAGE @@ -99,7 +99,7 @@ CCLOSE: LD A,MSG_TRAY_CLOSE COPEN: LD A,MSG_TRAY_OPEN CALL MESSAGE LD A,(CDDRIVE) - LD BC,BIOS.DRV_EXTENDED.CD_Eject + LD BC,BIOS.DRV_EXTENDED.ATAPI_Eject RST ToBIOS LD A,MSG_DONE JP MESSAGE diff --git a/Cd_dos.asm b/Cd_dos.asm index d9974e7..aca4eb7 100644 --- a/Cd_dos.asm +++ b/Cd_dos.asm @@ -63,7 +63,7 @@ FM_BUF DB ". " ;+00 NAME DB #00 ;+43 EMPTY END_FM ;End of FM - DS 44*2 +; DS 44*2 FM_SIZE EQU END_FM-FM_BUF @@ -166,12 +166,12 @@ CHANGEDISK: LD A,(CDDRIVE) AND A RET -NDISK11 CP BIOS.Error.ATAPI.NotReady - SCF - RET NZ - ; - LD A,DSS_Error.sys.NOT_READY - RET +; NDISK11 CP BIOS.Error.ATAPI.NotReady +; SCF +; RET NZ +; ; +; LD A,DSS_Error.sys.NOT_READY +; RET INITDISK: LD A,DIRPAGE diff --git a/Shared_Includes b/Shared_Includes index 2b1e30c..f533c03 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a +Subproject commit f533c03f52f53e581c794c1017b7b0d61d39dfbf From 6badb66772cf1d4844f1a9a2a0b7b4a416bfbfd4 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Wed, 23 Apr 2025 00:49:08 +1000 Subject: [PATCH 6/6] =?UTF-8?q?=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=82=20=D0=B4=D0=B8=D1=81=D0=BA=D0=B0=20=D0=B2=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=D0=B2=D0=BE=D0=B4=D0=B5,=20=D1=82=D0=BE=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=BF=D0=B8=D1=88=D0=B5=D1=82=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D1=83,=20=D1=87=D1=82=D0=BE=20=D0=BD=D0=B5=D1=82=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=B2=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CDX.ASM | 61 ++++++++++++++++++++++++------------------------- Shared_Includes | 2 +- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/CDX.ASM b/CDX.ASM index 0f4e89d..5543ad5 100644 --- a/CDX.ASM +++ b/CDX.ASM @@ -190,37 +190,36 @@ MALLOC: ; RST ToDSS ; RET -INIT: XOR A - LD (STOPMODE),A - DEC A - LD (CDDRIVE),A - ; - LD BC,+(#C0-1)*256 + BIOS.DRV_DETECT -.loop: INC B - LD A,B - CP #C4 - SCF - RET Z - PUSH BC - RST ToBIOS - POP BC - JR NC,.found - ; - CP BIOS.Error.ATAPI.UnitAttention - JR NZ,.loop - ; - PUSH BC - LD A,B - CALL SAVE_MEDIA_CHANGED - POP BC - ; -.found: LD A,B - LD (CDDRIVE),A - RET - ; - ; LD C,BIOS.DRV_RESET - ; JP ToBIOS -; RET +INIT: XOR A + LD (STOPMODE),A + DEC A + LD (CDDRIVE),A + ; + LD BC,+(#C0-1)*256 + BIOS.DRV_DETECT +.loop: INC B + LD A,B + CP #C4 + SCF + RET Z + PUSH BC + RST ToBIOS + POP BC + JR NC,.found + ; + CP BIOS.Error.ATAPI.MediumError + JR Z,.media_changed + CP BIOS.Error.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: LD C,BIOS.DRV_GET_PAR diff --git a/Shared_Includes b/Shared_Includes index f533c03..a0e68ce 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit f533c03f52f53e581c794c1017b7b0d61d39dfbf +Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1