From fd285cae0f89edf290aa1bbc99f80a48787faefe Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Tue, 20 Jan 2026 23:33:14 +1000 Subject: [PATCH] =?UTF-8?q?-bug:=20EXECOM=20-=20=D1=83=D0=B2=D0=B5=D0=BB?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=BE=D0=B6=D0=B8=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=92=D0=9393?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{FDD_DRIVER_2.asm => FDD_DRIVER.asm} | 42 +++++++++++++++---- ..._DISK_DRIVER_1.asm => RAM_DISK_DRIVER.asm} | 0 src/bios/exp/FUNC_5x.asm | 4 +- 3 files changed, 37 insertions(+), 9 deletions(-) rename src/bios/exp/EXTENDED/{FDD_DRIVER_2.asm => FDD_DRIVER.asm} (90%) rename src/bios/exp/EXTENDED/{RAM_DISK_DRIVER_1.asm => RAM_DISK_DRIVER.asm} (100%) diff --git a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm b/src/bios/exp/EXTENDED/FDD_DRIVER.asm similarity index 90% rename from src/bios/exp/EXTENDED/FDD_DRIVER_2.asm rename to src/bios/exp/EXTENDED/FDD_DRIVER.asm index c1b1e06..cd6cdf0 100644 --- a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm +++ b/src/bios/exp/EXTENDED/FDD_DRIVER.asm @@ -200,6 +200,7 @@ FDD_5x_LONG_READ: EXX PUSH BC CALL SEEK + ;!FIXIT контроль ошибки POP BC EXX PUSH DE @@ -400,8 +401,10 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT PUSH DE PUSH HL CALL RESWG ; RESET_WG + ;!FIXIT контроль ошибки LD A,XL CALL SEEK ; !!!!! посмотреть + ;!FIXIT контроль ошибки POP HL POP DE JR .RETRY @@ -434,9 +437,9 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT JR Z,.SectorSizeError ; OUTI -.wwait_data: IN A,(FDC_93.DrvCTRL) +.wait_data_w: IN A,(FDC_93.DrvCTRL) AND %1100'0000 ;b6: DRQ (запрос данных = 1). b7: INTRQ (выполняется команда = 0). - JR Z,.wwait_data + JR Z,.wait_data_w JP P,.write_loop JP .rw_return ; @@ -683,22 +686,47 @@ P50ms: PUSH BC RET ; + +//////////////////////////////////////////////////////////////////////// +;RESWG: LD A,8 +; ; +;EXECOM: OUT (FDC_93.Command),A +; LD HL,#0000 ; счётчик +;.WREST: DEC HL +; LD A,H +; OR L +; SCF +; RET Z +; ; +; IN A,(FDC_93.DrvCTRL) +; AND #80 +; JR Z,.WREST +; RET ; RESWG: LD A,8 ;!HARDCODE CMD КР1818ВГ93 ; EXECOM: OUT (FDC_93.Command),A LD HL,#0000 ; счётчик + PUSH BC + LD B,3 ; счётчик + ; .WREST: DEC HL LD A,H OR L - SCF - RET Z + JR NZ,.get_state ; - IN A,(FDC_93.DrvCTRL) + DJNZ .WREST + ; + POP BC + SCF + RET + ; +.get_state: IN A,(FDC_93.DrvCTRL) AND #80 JR Z,.WREST - RET -; + POP BC + RET +//////////////////////////////////////////////////////////////////////// ; ;------------------------------- diff --git a/src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm b/src/bios/exp/EXTENDED/RAM_DISK_DRIVER.asm similarity index 100% rename from src/bios/exp/EXTENDED/RAM_DISK_DRIVER_1.asm rename to src/bios/exp/EXTENDED/RAM_DISK_DRIVER.asm diff --git a/src/bios/exp/FUNC_5x.asm b/src/bios/exp/FUNC_5x.asm index 7ce5449..295748c 100644 --- a/src/bios/exp/FUNC_5x.asm +++ b/src/bios/exp/FUNC_5x.asm @@ -85,8 +85,8 @@ DRV_LIST: ; RET ; ; - INCLUDE 'EXTENDED/FDD_DRIVER_2.asm' - INCLUDE 'EXTENDED/RAM_DISK_DRIVER_1.asm' + INCLUDE 'EXTENDED/FDD_DRIVER.asm' + INCLUDE 'EXTENDED/RAM_DISK_DRIVER.asm' INCLUDE 'EXTENDED/IDE/ATA_DRV.asm' INCLUDE 'EXTENDED/IDE/ATAPI_DRV.asm' INCLUDE 'EXTENDED/IDE/SHARED.asm'