|
|
@ -809,30 +809,30 @@ PPIDE_GETBUF1: ; START OF READ LOOP |
|
|
; |
|
|
; |
|
|
#IF (PPIDE8BIT) |
|
|
#IF (PPIDE8BIT) |
|
|
INC C |
|
|
INC C |
|
|
INC C |
|
|
|
|
|
OUT (C),D ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
DEC C ; ASSERT READ |
|
|
|
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
OUT (C),D ; ASSERT READ |
|
|
|
|
|
DEC C |
|
|
DEC C |
|
|
DEC C |
|
|
INI |
|
|
|
|
|
|
|
|
INI ; GET AND SAVE NEXT BYTE |
|
|
PUSH AF |
|
|
PUSH AF |
|
|
INC C |
|
|
INC C |
|
|
INC C |
|
|
|
|
|
OUT (C),E ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
DEC C ; DEASSERT READ |
|
|
|
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
OUT (C),E ; DEASSERT READ |
|
|
|
|
|
DEC C |
|
|
DEC C |
|
|
DEC C |
|
|
POP AF |
|
|
POP AF |
|
|
#ELSE |
|
|
#ELSE |
|
|
INC C |
|
|
|
|
|
OUT (C),D ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
DEC C ; ASSERT READ |
|
|
|
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
OUT (C),D ; ASSERT READ |
|
|
|
|
|
DEC C |
|
|
DEC C |
|
|
DEC C |
|
|
INI ; GET AND SAVE NEXT BYTE |
|
|
INI ; GET AND SAVE NEXT BYTE |
|
|
INC C ; LSB -> MSB |
|
|
INC C ; LSB -> MSB |
|
|
INI |
|
|
|
|
|
|
|
|
INI ; GET AND SAVE NEXT BYTE |
|
|
PUSH AF |
|
|
PUSH AF |
|
|
INC C |
|
|
|
|
|
OUT (C),E ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
DEC C ; DEASSERT READ |
|
|
|
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
OUT (C),E ; DEASSERT READ |
|
|
|
|
|
DEC C |
|
|
POP AF |
|
|
POP AF |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
JR NZ,PPIDE_GETBUF1 ; LOOP UNTIL DONE |
|
|
JR NZ,PPIDE_GETBUF1 ; LOOP UNTIL DONE |
|
|
@ -851,25 +851,25 @@ PPIDE_PUTBUF: |
|
|
; |
|
|
; |
|
|
; SETUP PPI TO WRITE |
|
|
; SETUP PPI TO WRITE |
|
|
|
|
|
|
|
|
LD C,(IY+PPIDE_PPI) ;; |
|
|
|
|
|
|
|
|
LD C,(IY+PPIDE_PPI) |
|
|
LD A,PPIDE_DIR_WRITE ; SET DATA BUS DIRECTION TO WRITE |
|
|
LD A,PPIDE_DIR_WRITE ; SET DATA BUS DIRECTION TO WRITE |
|
|
OUT (C),A ; DO IT |
|
|
OUT (C),A ; DO IT |
|
|
; |
|
|
; |
|
|
; SELECT READ/WRITE IDE REGISTER |
|
|
; SELECT READ/WRITE IDE REGISTER |
|
|
LD C,(IY+PPIDE_CTL) ;; |
|
|
|
|
|
|
|
|
DEC C ; LD C,(IY+PPIDE_CTL) |
|
|
LD A,PPIDE_REG_DATA ; DATA REGISTER |
|
|
LD A,PPIDE_REG_DATA ; DATA REGISTER |
|
|
OUT (C),A ;; |
|
|
|
|
|
|
|
|
OUT (C),A ; |
|
|
|
|
|
|
|
|
LD E,A ; E := WRITE UNASSERTED |
|
|
LD E,A ; E := WRITE UNASSERTED |
|
|
XOR PPIDE_CTL_DIOW ; SWAP THE READ LINE BIT |
|
|
XOR PPIDE_CTL_DIOW ; SWAP THE READ LINE BIT |
|
|
LD D,A ; D := WRITE ASSERTED |
|
|
LD D,A ; D := WRITE ASSERTED |
|
|
; |
|
|
; |
|
|
; LOOP SETUP |
|
|
|
|
|
LD B,0 ; 256 ITERATIONS |
|
|
|
|
|
LD C,(IY+PPIDE_DATALO) ; SETUP C WITH IO PORT (LSB) |
|
|
|
|
|
; |
|
|
|
|
|
#IF (!PPIDE8BIT) |
|
|
|
|
|
INC C ; PRE-INCREMENT C |
|
|
|
|
|
|
|
|
; LOOP SETUP ; 256 ITERATIONS |
|
|
|
|
|
LD B,0 ; SETUP C WITH IO PORT (LSB) |
|
|
|
|
|
|
|
|
|
|
|
DEC C ; LD C,(IY+PPIDE_DATAHI) |
|
|
|
|
|
#IF (PPIDE8BIT) |
|
|
|
|
|
DEC C ; LD C,(IY+PPIDE_DATALO) |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
CALL PPIDE_PUTBUF1 ; FIRST PASS (FIRST 256 BYTES) |
|
|
CALL PPIDE_PUTBUF1 ; FIRST PASS (FIRST 256 BYTES) |
|
|
@ -886,19 +886,28 @@ PPIDE_PUTBUF: |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
PPIDE_PUTBUF1: ; START OF READ LOOP |
|
|
PPIDE_PUTBUF1: ; START OF READ LOOP |
|
|
#IF (!PPIDE8BIT) |
|
|
|
|
|
|
|
|
#IF (PPIDE8BIT) |
|
|
|
|
|
OUTI ; PUT NEXT BYTE ON THE BUS |
|
|
|
|
|
PUSH AF |
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
INC C |
|
|
|
|
|
OUT (C),D ; ASSERT WRITE |
|
|
|
|
|
OUT (C),E ; DEASSERT WRITE |
|
|
|
|
|
DEC C |
|
|
|
|
|
DEC C |
|
|
|
|
|
POP AF |
|
|
|
|
|
#ELSE |
|
|
DEC C |
|
|
DEC C |
|
|
OUTI ; PUT NEXT BYTE ON THE BUS (LSB) |
|
|
OUTI ; PUT NEXT BYTE ON THE BUS (LSB) |
|
|
INC C |
|
|
INC C |
|
|
|
|
|
OUTI ; PUT NEXT BYTE ON THE BUS (MSB) |
|
|
|
|
|
PUSH AF |
|
|
|
|
|
INC C ; LD C,(IY+PPIDE_CTL) |
|
|
|
|
|
OUT (C),D ; ASSERT WRITE |
|
|
|
|
|
OUT (C),E ; DEASSERT WRITE |
|
|
|
|
|
DEC C |
|
|
|
|
|
POP AF |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
OUTI |
|
|
|
|
|
PUSH BC |
|
|
|
|
|
LD C,(IY+PPIDE_CTL) ; ASSERT WRITE |
|
|
|
|
|
OUT (C),D ; DO IT |
|
|
|
|
|
LD C,(IY+PPIDE_CTL) ; DEASSERT WRITE |
|
|
|
|
|
OUT (C),E ; DO IT |
|
|
|
|
|
POP BC |
|
|
|
|
|
; |
|
|
|
|
|
JR NZ,PPIDE_PUTBUF1 ; LOOP UNTIL DONE |
|
|
JR NZ,PPIDE_PUTBUF1 ; LOOP UNTIL DONE |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
|