Вариант 1 с задержками для FDD

This commit is contained in:
Tolik 2026-05-06 16:12:54 +10:00
parent 0beb007b9d
commit 5d3a690046
3 changed files with 18 additions and 17 deletions

View File

@ -374,13 +374,23 @@ FDD_RW_SECTOR: LD D,FDD_COUNTERS.RW_Retries
LD BC,FDD_COUNTERS.INTRQorDRQ*256 + FDC_93.Data
;ÛÛÛÛÛÛÛÛÛÛ Š<>ˆˆ<CB86>‰ Š ŠŽ<C5A0>Žˆ Š“‘ŽŠ <20>Ž… “<E28099>ŽŠˆ ŠŽŒ€<C592> „Ž <>ŸˆŸ <20>…‡“œ€ ÛÛÛÛÛÛÛÛÛÛ
OUT (FDC_93.Command),A
.wait_loop_next:; íâ®â loop ¨¬¥­­® âãâ ¤«ï § ¤¥à¦ª¨ ¬¥¦¤ã OUT (FDC_93.Command),A ¨ IN A,(FDC_93.DrvCTRL)
INC DE
LD A,E
OR D
JR NZ,.wait_loop ; 26
;
.wait_loop: IN A,(FDC_93.DrvCTRL) ; 11 ;WAIT INTRQ or DRQ
AND %1100'0000 ; 7 ;b7: INTRQ (¢ë¯®«­ï¥âáï ª®¬ ­¤  = 0), b6: DRQ (§ ¯à®á ¤ ­­ëå = 1).
JR Z,.wait_loop_next ; 12 + 34 (.wait_loop_next)
DJNZ .wait_loop
SCF
JR .after_rw ; error
;
; ¢ ¯¥à¢ë© à § ¬ë âãâ ¯®á«¥ 26 ⠪⮢
.wait_loop: IN A,(FDC_93.DrvCTRL) ; 11 ; 11 ;WAIT INTRQ or DRQ
AND %0100'0000 ; 7 ; 7 ;b7: INTRQ (¢ë¯®«­ï¥âáï ª®¬ ­¤  = 0), b6: DRQ (§ ¯à®á ¤ ­­ëå = 1).
JR Z,.wait_loop_next ; 7 ; 12 + 34 (.wait_loop_next)
; âãâ ¬ ªá¨¬ã¬ 64 â ªâ 
EX AF,AF'
JR NZ,.write_loop ; १ã«ìâ â BIT 5,B'
JR NZ,.write_loop ; 11 ; १ã«ìâ â BIT 5,B'
;
;EX AF,AF'
;READ BYTE. ¬¥¦¤ã .wait_loop ¨ .read_loop (INI) 64+11=75 ⠪⮢
@ -390,9 +400,9 @@ FDD_RW_SECTOR: LD D,FDD_COUNTERS.RW_Retries
OR E
EXX
JR Z,.SectorSizeError
; ®â .wait_loop ¤®á 75+29=104 ⠪⮢
; ¯à¨¬¥à­® 10,4 ¬ªá ¯à¨ ãá«®¢­ëå á।­¨å 10 Œ£æ
; ¯à¨¬¥à­® 30 ¬ªá ¯à¨ 3,5 Œ£æ
; ®â .wait_loop ¤®á ¬¨­¨¬ã¬ 26+11+7+7+11+29=91, ¡ë«® 75+29=104 ⠪⮢
; ¯à¨¬¥à­® 9,1 ¬ªá ¯à¨ ãá«®¢­ëå á।­¨å 10 Œ£æ
; ¯à¨¬¥à­® 26 ¬ªá ¯à¨ 3,5 Œ£æ
; „®«¦­® ¡ëâì ­¥ ¡®«ìè¥ 16 ¬ªá ¤«ï 1.44 ¨«¨ 32 ¬ªá ¤«ï 720
INI
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
@ -439,15 +449,6 @@ FDD_RW_SECTOR: LD D,FDD_COUNTERS.RW_Retries
POP DE
JR .RETRY
;
.wait_loop_next:
INC DE
LD A,E
OR D
JR NZ,.wait_loop
;
DJNZ .wait_loop
SCF
JR .after_rw ; error
;
.data_lost: DEC D ; ¯®â¥àï ¤ ­­ëå
JR NZ,.RETRY

View File

@ -89,7 +89,7 @@ DRV_LIST:
INCLUDE 'EXTENDED/RAM_DISK_DRIVER.asm'
INCLUDE 'EXTENDED/IDE/ATA_DRV.asm'
INCLUDE 'EXTENDED/IDE/ATAPI_DRV.asm'
INCLUDE 'EXTENDED/IDE/SHARED.asm'
INCLUDE 'EXTENDED/SHARED.asm'
;DISPLAY " EXTENDED end addr: ", /A, $