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'