From 6e8b58f01ccc38a0b6f0b30c5b25d742614df1b1 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 25 Apr 2026 03:46:08 +1000 Subject: [PATCH] ... --- DSS/drivers/media/Shared.asm | 10 ++++++++++ DSS/drivers/media/ata_atapi-drv.asm | 5 +---- DSS/drivers/media/fdd-drv.asm | 6 +++++- DSS/drivers/media/ram_disk-drv.asm | 27 +++++++++------------------ Shared_Includes | 2 +- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/DSS/drivers/media/Shared.asm b/DSS/drivers/media/Shared.asm index 38a3907..7e4ca07 100644 --- a/DSS/drivers/media/Shared.asm +++ b/DSS/drivers/media/Shared.asm @@ -187,6 +187,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 adf42a1..7193f0a 100644 --- a/DSS/drivers/media/ata_atapi-drv.asm +++ b/DSS/drivers/media/ata_atapi-drv.asm @@ -503,10 +503,7 @@ GetParams: ;EX DE,HL EXX ;[ ] 04/01/2025 возвращение размера сектора EX AF,AF' - LD A,XH - LD E,XL - RL E - RLA + CALL CONVERT_SECTOR_SIZE ; ; SECTORS ON LOGICAL DISK LD E,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+0) diff --git a/DSS/drivers/media/fdd-drv.asm b/DSS/drivers/media/fdd-drv.asm index 6c015d3..20488d8 100644 --- a/DSS/drivers/media/fdd-drv.asm +++ b/DSS/drivers/media/fdd-drv.asm @@ -394,7 +394,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 f74403c..0152f74 100644 --- a/DSS/drivers/media/ram_disk-drv.asm +++ b/DSS/drivers/media/ram_disk-drv.asm @@ -461,40 +461,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 e1233b2..e1dc7ec 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit e1233b24a06f9be0c80349b47ab34cfceacc2486 +Subproject commit e1dc7ec10dc9c7e9153a05884e42973a57378a63