From 507064e64f0b1ec65a5a41467a50a7073fb12437 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 25 Apr 2026 03:42:34 +1000 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=82=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=D0=B0=20=D1=81=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20FDD=20=D0=B8=20?= =?UTF-8?q?=20RAM-DISK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DSS/build.txt | 2 +- DSS/drivers/media/Shared.asm | 10 ++++++++++ DSS/drivers/media/ata_atapi-drv.asm | 11 ++++++----- DSS/drivers/media/fdd-drv.asm | 18 +++++++----------- DSS/drivers/media/ram_disk-drv.asm | 27 +++++++++------------------ Shared_Includes | 2 +- 6 files changed, 34 insertions(+), 36 deletions(-) diff --git a/DSS/build.txt b/DSS/build.txt index 4e9e288..4b6f9c3 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -63 \ No newline at end of file +64 \ No newline at end of file diff --git a/DSS/drivers/media/Shared.asm b/DSS/drivers/media/Shared.asm index 4533510..3d19bcf 100644 --- a/DSS/drivers/media/Shared.asm +++ b/DSS/drivers/media/Shared.asm @@ -189,6 +189,16 @@ GET_LOGDRV_ENTRY: ;------------------------------------------------- +;------------------------------------------------- +CONVERT_SECTOR_SIZE: + LD A,XH + LD E,XL + RL E + RLA + 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 5a4d369..bcb6322 100644 --- a/DSS/drivers/media/ata_atapi-drv.asm +++ b/DSS/drivers/media/ata_atapi-drv.asm @@ -500,12 +500,13 @@ GetParams: ;EX DE,HL LD A,B LD B,D EXX - ;[ ] 04/01/2025 возвращение размера сектора + ;[x] 04/01/2025 возвращение размера сектора EX AF,AF' - LD A,XH - LD E,XL - RL E - RLA + CALL CONVERT_SECTOR_SIZE + ; LD A,XH + ; LD E,XL + ; RL E + ; RLA ; ; SECTORS ON LOGICAL DISK LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0) diff --git a/DSS/drivers/media/fdd-drv.asm b/DSS/drivers/media/fdd-drv.asm index cd4149d..585aa97 100644 --- a/DSS/drivers/media/fdd-drv.asm +++ b/DSS/drivers/media/fdd-drv.asm @@ -343,16 +343,7 @@ GenIOCTL: BIT 7,B ; D5 - "1" RESERVED ; D4 - DEVICE MASTER/SLAVE ; D1..D3 - "0" RESERVED (MAY BE OTHER) -.GetParams: ;EX DE,HL - ;LD BC,Dss.DRV.GenIOCTL.Enter - AND #0F - ;SBC HL,BC - ;JR Z,.next - ; - ;LD A,BIOS.Error.Failure - ;SCF - ;RET - ; +.GetParams: AND #0F .next: PUSH AF PUSH IY LD C,BIOS.DRV_GET_PAR @@ -364,6 +355,7 @@ GenIOCTL: BIT 7,B PUSH DE LD A,H LD C,L + ; LD HL,0 LD B,H .mull_loop1: ADD HL,BC @@ -395,7 +387,11 @@ GenIOCTL: BIT 7,B EX DE,HL ; H=0 LD C,H ;[x] 17.12.2023 загрузка с активного раздела, а не с первого - EXX + EXX + CALL CONVERT_SECTOR_SIZE + EXX + LD B,A ;[ ] 25/04/2026 возвращение размера сектора + EXX POP DE POP HL POP AF diff --git a/DSS/drivers/media/ram_disk-drv.asm b/DSS/drivers/media/ram_disk-drv.asm index f4df61e..190ff38 100644 --- a/DSS/drivers/media/ram_disk-drv.asm +++ b/DSS/drivers/media/ram_disk-drv.asm @@ -462,40 +462,31 @@ GenIOCTL: BIT 7,B ; D5 - "1" RESERVED ; D6 - ADDRESSING MODE LBA/CHS ; D7 - "1" RESERVED -.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 - ; +.RGETPRM: LD L,A EX AF,AF' LD A,L CALL GET_RAMDRV_NUM PUSH AF PUSH AF EX AF,AF' - POP AF LD C,BIOS.DRV_GET_PAR RST ToBIOS - PUSH HL ;число головок, число секторов (на целиндр) PUSH DE ;количество цилиндров EXX - POP HL ;количество цилиндров - POP BC ;число секторов (на целиндр) - LD D,0 - LD E,B ;число головок - LD B,D + CALL CONVERT_SECTOR_SIZE + POP HL ;количество цилиндров + POP BC ;число секторов (на целиндр) + LD D,0 + LD E,B ;число головок + LD B,D EXX - + LD B,A LD A,L - RRA JR C,.end + ; .loopShift: SLA E RL D RRA diff --git a/Shared_Includes b/Shared_Includes index 440cb45..e1dc7ec 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 440cb45e755dbb4c4c00ac1d193a6701c5684704 +Subproject commit e1dc7ec10dc9c7e9153a05884e42973a57378a63