|
|
|
@ -911,7 +911,9 @@ IDE_RESET: |
|
|
|
JR NZ,IDE_RESET1 ; IF NOT, BYPASS |
|
|
|
; |
|
|
|
; USE HARDWARE RESET LINE |
|
|
|
#IF (IDETRACE >= 3) |
|
|
|
PRTS(" HARD$") |
|
|
|
#ENDIF |
|
|
|
LD A,$80 ; HIGH BIT OF XAR IS IDE RESET |
|
|
|
;OUT (IDE_IO_XAR),A |
|
|
|
CALL IDE_OUT |
|
|
|
@ -937,7 +939,9 @@ IDE_RESET1: |
|
|
|
; HAS NO WAY TO PERFORM A HARD RESET FROM SOFTWARE, |
|
|
|
; SO FAKE IT BY SETTING THE REGISTERS TO THE SAME |
|
|
|
; VALUES THAT A RESET WOULD CAUSE. |
|
|
|
#IF (IDETRACE >= 3) |
|
|
|
PRTS(" FAKE$") |
|
|
|
#ENDIF |
|
|
|
XOR A |
|
|
|
;OUT (IDE_IO_CYLLO),A |
|
|
|
CALL IDE_OUT |
|
|
|
@ -966,7 +970,9 @@ IDE_RESET2: |
|
|
|
JR Z,IDE_RESET3 ; IF SO, BYPASS |
|
|
|
; |
|
|
|
; INITIATE SOFT RESET |
|
|
|
#IF (IDETRACE >= 3) |
|
|
|
PRTS(" SOFT$") |
|
|
|
#ENDIF |
|
|
|
LD A,%00001110 ; NO INTERRUPTS, ASSERT RESET BOTH DRIVES |
|
|
|
;OUT (IDE_IO_CTRL),A |
|
|
|
CALL IDE_OUT |
|
|
|
@ -986,7 +992,9 @@ IDE_RESET3: |
|
|
|
JR Z,IDE_RESET4 ; IF SO, BYPASS |
|
|
|
; |
|
|
|
; CONFIGURE OPERATION AND END SOFT RESET |
|
|
|
#IF (IDETRACE >= 3) |
|
|
|
PRTS(" CONFIG$") |
|
|
|
#ENDIF |
|
|
|
LD A,%00001010 ; NO INTERRUPTS, DEASSERT RESET |
|
|
|
;OUT (IDE_IO_CTRL),A ; PUSH TO REGISTER |
|
|
|
CALL IDE_OUT |
|
|
|
|