diff --git a/Shared_Includes b/Shared_Includes index 5a2e8b0..a26f6ad 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 5a2e8b02b384c515510798a2b94537211dfaa310 +Subproject commit a26f6ad2cf2eab977cab8baa0c83b0c2a91a5e53 diff --git a/src/bios/exp/EXTENDED/FDD_DRIVER.asm b/src/bios/exp/EXTENDED/FDD_DRIVER.asm index 80c90b8..cdde91d 100644 --- a/src/bios/exp/EXTENDED/FDD_DRIVER.asm +++ b/src/bios/exp/EXTENDED/FDD_DRIVER.asm @@ -24,9 +24,10 @@ ; DE - Cylinders ; IX - Capacity sector in bytes ; B - Flags -; D7 - "1" - High Density, "0" - Double Density -; D0 - FDD drv number -; A - D0 - "1" - Removable media +; D7 - "1": High Density, "0": Double Density +; D1-2 - FDD type %01 - 3.5"; %10 - 5.25"; +; D0 - FDD drv number +; A - D0 - "1" - Removable media ;[]===========================================================[] ;!FIXIT всегда идет работа с данными для диска А ;!FIXIT читать данные с нулевой дорожки? Придумать что делать с геометрией флопарей @@ -46,6 +47,10 @@ FDD_5x_GET_PAR: CALL SELECT_FDD LD E,(IY + FDD_TABLE_s.CYLINDL) LD D,(IY + FDD_TABLE_s.CYLINDH) LD B,(IY + FDD_TABLE_s.DISK) + LD A,(IY + FDD_TABLE_s.ID) + SLA A + OR B + LD B,A EX AF,AF' OUT (SLOT3),A XOR A @@ -78,7 +83,11 @@ FDD_5x_SET_PAR: CALL SELECT_FDD POP DE LD (IY + FDD_TABLE_s.BytesPerSector),E LD (IY + FDD_TABLE_s.BytesPerSector + 1),D - LD (IY + FDD_TABLE_s.DISK),B + LD A,B + AND %1000'0000 + RES 7,(IY + FDD_TABLE_s.DISK) + OR (IY + FDD_TABLE_s.DISK) + LD (IY + FDD_TABLE_s.DISK),A EX AF,AF' OUT (SLOT3),A AND A