This commit is contained in:
Anatoliy Belyanskiy 2024-04-21 04:57:22 +10:00
parent 55620e1adf
commit e43370d8a5
2 changed files with 41 additions and 47 deletions

@ -1 +1 @@
Subproject commit 73f764ccd1ab8de8dea7eef3b4f5cd27e2ea8dab Subproject commit 62170ee7bc7dabe6fd55b94e89826ca510a60097

View File

@ -239,8 +239,8 @@ RDS000: LD C,IDE.Device.HDD
CALL SELECT_DRIVE CALL SELECT_DRIVE
RET C RET C
EXX EXX
LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0 LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0
CALL WAITPRT CALL WAITPRT
EXX EXX
RET C RET C
EX AF,AF' EX AF,AF'
@ -257,9 +257,8 @@ RDS000: LD C,IDE.Device.HDD
;????? ;?????
;SAVE HL! ;SAVE HL!
RDS002: EXX RDS002: EXX
LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0 LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0
;LD BC,IDE.Read.Status CALL WAITPRT
CALL WAITPRT
EXX EXX
RET C RET C
;NOP ;R01 REMOVED "DI" ;NOP ;R01 REMOVED "DI"
@ -298,9 +297,8 @@ RDS004: DUP 16
; ;
.W44: INC XL ;INC LOADED SECTORS .W44: INC XL ;INC LOADED SECTORS
EXX EXX
LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1 LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1
;LD BC,IDE.Read.Status CALL WAITPRT
CALL WAITPRT
EXX EXX
RET C RET C
LD BC,IDE.Read.Status LD BC,IDE.Read.Status
@ -403,9 +401,8 @@ WRS000:
CALL SELECT_DRIVE CALL SELECT_DRIVE
RET C RET C
EXX EXX
LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0 LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0
;LD BC,IDE.Read.Status CALL WAITPRT
CALL WAITPRT
EXX EXX
RET C RET C
EX AF,AF' EX AF,AF'
@ -439,9 +436,8 @@ NO_WriteProtect:
OUT (C),A OUT (C),A
;SAVE HL! ;SAVE HL!
WRS002: EXX WRS002: EXX
LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0 LD DE,#8908 ;WAIT BUSY=0 & DRQ=1 & ERR=0
;LD BC,IDE.Read.Status CALL WAITPRT
CALL WAITPRT
EXX EXX
RET C RET C
@ -480,9 +476,8 @@ WRS003:
OUT (SLOT3),A OUT (SLOT3),A
.W33: INC XL ;INC SAVED SECTORS .W33: INC XL ;INC SAVED SECTORS
EXX EXX
LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1 LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1
;LD BC,IDE.Read.Status CALL WAITPRT
CALL WAITPRT
EXX EXX
RET C RET C
LD BC,IDE.Read.Status LD BC,IDE.Read.Status
@ -514,34 +509,31 @@ HDD_5x.VERIFY:
RET RET
;[]================================================================[#54] ;[]================================================================[#54]
;VERIFY SECTOR(S) ;VERIFY SECTOR(S)
VRS000: VRS000: LD C,IDE.Device.HDD
LD C,IDE.Device.HDD CALL SELECT_DRIVE
CALL SELECT_DRIVE RET C
RET C EXX
EXX LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0
LD DE,#C140 ;WAIT BUSY=0 & READY=1 & ERR=0 CALL WAITPRT
;LD BC,IDE.Read.Status EXX
CALL WAITPRT RET C
EXX PUSH DE
RET C CALL PRESET
PUSH DE POP HL
CALL PRESET LD BC,IDE.Write.Command
POP HL LD A,IDE.ATA.ReadVerifySectorsWithRetry
LD BC,IDE.Write.Command OUT (C),A
LD A,IDE.ATA.ReadVerifySectorsWithRetry VRS002: LD BC,IDE.Read.Status
OUT (C),A IN A,(C)
VRS002: LD BC,IDE.Read.Status BIT IDE.ControlBit.Error,A
IN A,(C) JR Z,VRS003
BIT IDE.ControlBit.Error,A SCF
JR Z,VRS003 RET
SCF VRS003: LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1
RET CALL WAITPRT
VRS003: LD DE,#C140 ;WAIT BUSY=0 & ERR=0 & READY=1 RET C
;LD BC,IDE.Read.Status XOR A
CALL WAITPRT RET
RET C
XOR A
RET
; HL:IX - LBA SECTOR ; HL:IX - LBA SECTOR
; B - SECTOR COUNTER ; B - SECTOR COUNTER
@ -637,7 +629,9 @@ CHS005: INC A
WAITPRT: WAITPRT:
LD BC,IDE.Read.Status LD BC,IDE.Read.Status
LD HL,#0000 ; § ¤¥à¦ª  ;!HARDCODE LD HL,#0000 ; § ¤¥à¦ª  ;!HARDCODE
;
.loop: PUSH HL .loop: PUSH HL
;
.loop2: IN A,(C) .loop2: IN A,(C)
AND D AND D
CP E CP E