Browse Source

ESPSD Driver Cleanup

- Includes workaround for S100 Z180 SBC data transfer anomaly
pull/614/head
Wayne Warthen 5 months ago
parent
commit
067363824c
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 33
      Source/HBIOS/espsd.asm

33
Source/HBIOS/espsd.asm

@ -709,13 +709,11 @@ ESPSD_BLKREAD2:
; READ BYTES FAST (NO TIMEOUT CHECK)
DEC C ; BACK TO STATUS PORT
ESPSD_BLKREAD2A:
IN A,(C) ; GET STATUS
#IF (PLATFORM == PLT_S100)
IN A,(C) ; EXTRA READ FOR S100 STABILITY
#ENDIF
IN A,(C) ; GET STATUS
JP P,ESPSD_BLKREAD2A ; LOOP TILL DATA READY
; DOUBLE CHECK STATUS, FIRST READ CAN BE BOGUS
;;;IN A,(C) ; GET STATUS
;;;JP P,ESPSD_BLKREAD2A ; LOOP TILL DATA READY
; NOPS NEEDED FOR RELIABILITY
;NOP \ NOP \ NOP \ NOP \ NOP \ NOP
INC C ; DATA PORT
INI ; GET BYTE, BUMP PTR
JR NZ,ESPSD_BLKREAD2 ; 256 TIMES
@ -765,15 +763,12 @@ ESPSD_BLKWRITE2:
; WRITE BYTES FAST (NO TIMEOUT CHECK)
DEC C ; BACK TO STATUS PORT
ESPSD_BLKWRITE2A:
#IF (PLATFORM == PLT_S100)
IN A,(C) ; EXTRA READ FOR S100 STABILITY
#ENDIF
IN A,(C) ; GET STATUS
RRA ; SEND RDY BIT TO CF
JR C,ESPSD_BLKWRITE2A ; LOOP WHILE XMIT FULL
; DOUBLE CHECK STATUS, FIRST READ CAN BE BOGUS
;;;IN A,(C) ; GET STATUS
;;;RRA ; SEND RDY BIT TO CF
;;;JR C,ESPSD_BLKWRITE2A ; LOOP WHILE XMIT FULL
; NOPS NEEDED FOR RELIABILITY
;NOP \ NOP \ NOP \ NOP \ NOP \ NOP
INC C ; DATA PORT
OUTI ; SEND BYTE, BUMP PTR
JR NZ,ESPSD_BLKWRITE2 ; 256 TIMES
@ -813,6 +808,9 @@ ESPSD_PUTBYTE:
LD B,0
LD C,(IY+ESPSD_IOBASE)
ESPSD_PUTBYTE1:
#IF (PLATFORM == PLT_S100)
IN A,(C) ; EXTRA READ FOR S100 STABILITY
#ENDIF
IN A,(C)
BIT 0,A
JR Z,ESPSD_PUTBYTE2
@ -866,14 +864,9 @@ ESPSD_GETBYTE:
LD B,0
LD C,(IY+ESPSD_IOBASE)
ESPSD_GETBYTE1:
;;;IN A,(C) ; FIX BOGUS STATUS READ???
;;;IN A,(C) ; *DEBUG*
;;;IN E,(C) ; *DEBUG*
;;;CP E ; *DEBUG*
;;;CALL NZ,PRTHEXBYTE ; *DEBUG*
#IF (PLATFORM == PLT_S100)
IN A,(C) ; EXTRA READ FOR S100 STABILITY
#ENDIF
IN A,(C)
JP M,ESPSD_GETBYTE2
DJNZ ESPSD_GETBYTE1

Loading…
Cancel
Save