diff --git a/Source/HBIOS/espsd.asm b/Source/HBIOS/espsd.asm index 363a168b..9d2d8cf5 100644 --- a/Source/HBIOS/espsd.asm +++ b/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