mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update ppide.asm
Optimization
This commit is contained in:
@@ -809,30 +809,30 @@ PPIDE_GETBUF1: ; START OF READ LOOP
|
||||
;
|
||||
#IF (PPIDE8BIT)
|
||||
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
|
||||
INI
|
||||
DEC C
|
||||
INI ; GET AND SAVE NEXT BYTE
|
||||
PUSH AF
|
||||
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
|
||||
POP AF
|
||||
#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
|
||||
INI ; GET AND SAVE NEXT BYTE
|
||||
INC C ; LSB -> MSB
|
||||
INI
|
||||
INI ; GET AND SAVE NEXT BYTE
|
||||
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
|
||||
#ENDIF
|
||||
JR NZ,PPIDE_GETBUF1 ; LOOP UNTIL DONE
|
||||
@@ -851,25 +851,25 @@ PPIDE_PUTBUF:
|
||||
;
|
||||
; 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
|
||||
OUT (C),A ; DO IT
|
||||
;
|
||||
; SELECT READ/WRITE IDE REGISTER
|
||||
LD C,(IY+PPIDE_CTL) ;;
|
||||
DEC C ; LD C,(IY+PPIDE_CTL)
|
||||
LD A,PPIDE_REG_DATA ; DATA REGISTER
|
||||
OUT (C),A ;;
|
||||
OUT (C),A ;
|
||||
|
||||
LD E,A ; E := WRITE UNASSERTED
|
||||
XOR PPIDE_CTL_DIOW ; SWAP THE READ LINE BIT
|
||||
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
|
||||
;
|
||||
CALL PPIDE_PUTBUF1 ; FIRST PASS (FIRST 256 BYTES)
|
||||
@@ -886,19 +886,28 @@ PPIDE_PUTBUF:
|
||||
RET
|
||||
;
|
||||
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
|
||||
OUTI ; PUT NEXT BYTE ON THE BUS (LSB)
|
||||
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
|
||||
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
|
||||
RET
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user