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