From 684c3228ee5fb0c0344eb2b426df431a7e23aba3 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Tue, 27 Jan 2026 22:30:10 +1000 Subject: [PATCH] =?UTF-8?q?FDD=5F5x=5FGET=5FPAR=20-=20=D1=82=D0=B5=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D1=8C=20=D0=BE=D1=82=D0=B4=D0=B0=D1=91=D1=82=20?= =?UTF-8?q?=D1=82=D0=B8=D0=BF=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- src/bios/exp/EXTENDED/FDD_DRIVER.asm | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) 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