From 1e52904d976f9f785ef4689da44543d976e966b5 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Fri, 27 Mar 2026 01:04:22 +1000 Subject: [PATCH] removed #55aa for GenIOCTL new subfunction GetMoreParams for GenIOCTL --- BOOT/boot.asm | 2 +- DSS/API/bootDsk.asm | 2 +- DSS/API/diskINF.asm | 2 +- DSS/DSS_MACROSES.Z80 | 7 ++++-- DSS/build.txt | 2 +- DSS/drivers/media/ReScanDRV.ASM | 6 ++++- DSS/drivers/media/Shared.asm | 7 ++++++ DSS/drivers/media/ata_atapi-drv.asm | 36 +++++++++++++++++++++-------- DSS/drivers/media/fdd-drv.asm | 14 +++++------ DSS/drivers/media/ram_disk-drv.asm | 14 +++++------ SHELL/Commands/INFO.ASM | 2 +- Shared_Includes | 2 +- 12 files changed, 64 insertions(+), 32 deletions(-) diff --git a/BOOT/boot.asm b/BOOT/boot.asm index 891274c..66c69c0 100644 --- a/BOOT/boot.asm +++ b/BOOT/boot.asm @@ -499,7 +499,7 @@ write_to_BPB: PUSH BC ; write_no_BPB: ld a,(disk) ; номер заданного диска - ld de,Dss.DRV.GenIOCTL.Enter + ;ld de,Dss.DRV.GenIOCTL.Enter ld bc,Dss.DRV.GenIOCTL.GetParams rst ToDSS.DRV ex af,af' diff --git a/DSS/API/bootDsk.asm b/DSS/API/bootDsk.asm index 0361015..5499fea 100644 --- a/DSS/API/bootDsk.asm +++ b/DSS/API/bootDsk.asm @@ -31,7 +31,7 @@ BOOTDSK: ; .loop: PUSH BC LD A,C - LD DE,Dss.DRV.GenIOCTL.Enter + ;LD DE,Dss.DRV.GenIOCTL.Enter LD BC,Dss.DRV.GenIOCTL.GetParams RST ToDSS.DRV ;[x] 17.12.2023 загрузка с активного раздела, а не с первого diff --git a/DSS/API/diskINF.asm b/DSS/API/diskINF.asm index d0655a5..ef6f3cd 100644 --- a/DSS/API/diskINF.asm +++ b/DSS/API/diskINF.asm @@ -94,7 +94,7 @@ DISKINF: LD C,B POP AF PUSH DE ;LD A,XH - LD DE,Dss.DRV.GenIOCTL.Enter + ;LD DE,Dss.DRV.GenIOCTL.Enter LD BC,Dss.DRV.GenIOCTL.GetParams RST ToDSS.DRV POP DE diff --git a/DSS/DSS_MACROSES.Z80 b/DSS/DSS_MACROSES.Z80 index 776efd5..dc83e23 100644 --- a/DSS/DSS_MACROSES.Z80 +++ b/DSS/DSS_MACROSES.Z80 @@ -102,16 +102,19 @@ ; ВХОД: L - логический номер в таблице ; ВЫХОД: IY - начало записи ; ПОРТИТ: HL, DE, IY. - MACRO LOGDRV_ENTRY_FIND tbl_addr + MACRO LOGDRV_ENTRY LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL EX DE,HL - LD IY,tbl_addr ADD IY,DE ENDM + MACRO LOGDRV_ENTRY_FIND tbl_addr + LD IY,tbl_addr + LOGDRV_ENTRY + ENDM ; ; diff --git a/DSS/build.txt b/DSS/build.txt index b2412e3..4e9e288 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -62 \ No newline at end of file +63 \ No newline at end of file diff --git a/DSS/drivers/media/ReScanDRV.ASM b/DSS/drivers/media/ReScanDRV.ASM index ea9edcd..8ae2627 100644 --- a/DSS/drivers/media/ReScanDRV.ASM +++ b/DSS/drivers/media/ReScanDRV.ASM @@ -328,7 +328,11 @@ RAM_DRV: ;-----[] HARD_DRV: LD L,B - LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV + ; + ;LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV + LD IY,OLD_TABLES.LOGDRV + CALL GET_LOGDRV_ENTRY + ; LD IX,LOGDRV LD DE,LOGDRV.TBL_Entry LD B,DSS_MAX_DRIVES_AMOUNT diff --git a/DSS/drivers/media/Shared.asm b/DSS/drivers/media/Shared.asm index 6b19888..b42eca4 100644 --- a/DSS/drivers/media/Shared.asm +++ b/DSS/drivers/media/Shared.asm @@ -182,6 +182,13 @@ MAKEDVC: LD C,A RET +;------------------------------------------------- +GET_LOGDRV_ENTRY: + LOGDRV_ENTRY + RET +;------------------------------------------------- + + ;------------------------------------------------- ; RST 18h. Вектор дисковых устройств ; вход: a=номер устройства (0-25) diff --git a/DSS/drivers/media/ata_atapi-drv.asm b/DSS/drivers/media/ata_atapi-drv.asm index 31c71f1..5a4d369 100644 --- a/DSS/drivers/media/ata_atapi-drv.asm +++ b/DSS/drivers/media/ata_atapi-drv.asm @@ -342,10 +342,24 @@ SelectDrive: PUSH DE RET +GetMoreParams: PUSH IX + PUSH IY + LD L,A + LD IY,LOGDRV + CALL @GET_LOGDRV_ENTRY + LD H,(IY + LOGDRV.SECTOR_OFFSET + 3) + LD L,(IY + LOGDRV.SECTOR_OFFSET + 2) + LD D,(IY + LOGDRV.SECTOR_OFFSET + 1) + LD E,(IY + LOGDRV.SECTOR_OFFSET + 0) + POP IY + POP IX + RET + ; 00 - GET DEVICE PARAMETERS ; 01 - READ TRACK ; 02 - TEST TRACK +; 03 - GET MORE DEVICE PARAMETERS ; 80 - SET DEVICE PARAMETERS ; 81 - WRITE TRACK ; 82 - FORMAT TRACK @@ -358,6 +372,8 @@ GenIOCTL: BIT 7,B JR Z,.error ;ReadTrack DEC B JR Z,TestTRK + DEC B + JR Z,GetMoreParams LD A,BIOS.Error.InvalidSubFunction SCF RET @@ -412,21 +428,23 @@ TestTRK: LD C,BIOS.DRV_VERIFY ; 32 - 4096 bytes ; 64 - 8192 bytes ; 128 - 16384 bytes -GetParams: EX DE,HL - LD BC,#55AA - AND A - SBC HL,BC +GetParams: ;EX DE,HL + ;LD BC,Dss.DRV.GenIOCTL.Enter + ;AND A + ;SBC HL,BC LD L,A - LD A,BIOS.Error.Failure - SCF - RET NZ + ;LD A,BIOS.Error.Failure + ;SCF + ;RET NZ ; PUSH IX PUSH IY ; - LOGDRV_ENTRY_FIND LOGDRV + ;LOGDRV_ENTRY_FIND LOGDRV + LD IY,LOGDRV + CALL GET_LOGDRV_ENTRY ; - LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... + LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... PUSH IY LD C,BIOS.DRV_GET_PAR RST ToBIOS diff --git a/DSS/drivers/media/fdd-drv.asm b/DSS/drivers/media/fdd-drv.asm index ac025f2..cd4149d 100644 --- a/DSS/drivers/media/fdd-drv.asm +++ b/DSS/drivers/media/fdd-drv.asm @@ -343,15 +343,15 @@ GenIOCTL: BIT 7,B ; D5 - "1" RESERVED ; D4 - DEVICE MASTER/SLAVE ; D1..D3 - "0" RESERVED (MAY BE OTHER) -.GetParams: EX DE,HL - LD BC,#55AA +.GetParams: ;EX DE,HL + ;LD BC,Dss.DRV.GenIOCTL.Enter AND #0F - SBC HL,BC - JR Z,.next + ;SBC HL,BC + ;JR Z,.next ; - LD A,BIOS.Error.Failure - SCF - RET + ;LD A,BIOS.Error.Failure + ;SCF + ;RET ; .next: PUSH AF PUSH IY diff --git a/DSS/drivers/media/ram_disk-drv.asm b/DSS/drivers/media/ram_disk-drv.asm index 3687f03..f4df61e 100644 --- a/DSS/drivers/media/ram_disk-drv.asm +++ b/DSS/drivers/media/ram_disk-drv.asm @@ -462,14 +462,14 @@ GenIOCTL: BIT 7,B ; D5 - "1" RESERVED ; D6 - ADDRESSING MODE LBA/CHS ; D7 - "1" RESERVED -.RGETPRM: EX DE,HL - LD BC,#55AA - AND A - SBC HL,BC +.RGETPRM: ;EX DE,HL + ;LD BC,Dss.DRV.GenIOCTL.Enter + ;AND A + ;SBC HL,BC LD L,A - LD A,BIOS.Error.Failure - SCF - RET NZ + ;LD A,BIOS.Error.Failure + ;SCF + ;RET NZ ; EX AF,AF' LD A,L diff --git a/SHELL/Commands/INFO.ASM b/SHELL/Commands/INFO.ASM index b20b2f9..e4d82cd 100644 --- a/SHELL/Commands/INFO.ASM +++ b/SHELL/Commands/INFO.ASM @@ -97,7 +97,7 @@ cmd_info: CALL Get_Path CP "C" - "A" JR C,.ItIsFDD ; - LD DE,Dss.DRV.GenIOCTL.Enter + ;LD DE,Dss.DRV.GenIOCTL.Enter LD BC,Dss.DRV.GenIOCTL.GetParams RST ToDSS.DRV JR C,.noMedia diff --git a/Shared_Includes b/Shared_Includes index 4672651..c020ce3 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 467265101452bce67322e4b77cc0878044859eaa +Subproject commit c020ce3b569f171558e159af931aca3a0fdb78bf