From a51a581d977293967034e8541cc521ed4cc96195 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 1 Sep 2025 14:18:08 -0700 Subject: [PATCH] More ESPSD Driver Tweaks --- Source/HBIOS/espsd.asm | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/Source/HBIOS/espsd.asm b/Source/HBIOS/espsd.asm index 8bfeb010..363a168b 100644 --- a/Source/HBIOS/espsd.asm +++ b/Source/HBIOS/espsd.asm @@ -712,8 +712,8 @@ ESPSD_BLKREAD2A: 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 + ;;;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 @@ -769,9 +769,9 @@ ESPSD_BLKWRITE2A: 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 + ;;;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 @@ -815,13 +815,7 @@ ESPSD_PUTBYTE: ESPSD_PUTBYTE1: IN A,(C) BIT 0,A - JR NZ,ESPSD_PUTBYTE1A - ; DOUBLE CHECK STATUS, FIRST READ CAN BE BOGUS - IN A,(C) - BIT 0,A - JR NZ,ESPSD_PUTBYTE1A - JR ESPSD_PUTBYTE2 -ESPSD_PUTBYTE1A: + JR Z,ESPSD_PUTBYTE2 DJNZ ESPSD_PUTBYTE1 LD A,ESPSD_STTO OR A @@ -844,7 +838,7 @@ ESPSD_PUTBYTE2: ; ESPSD_PUTBYTE_SLOW: PUSH HL - LD HL,200 * CPUMHZ ; CPU SPEED SCALED TIMEOUT + LD HL,100 * CPUMHZ ; CPU SPEED SCALED TIMEOUT ESPSD_PUTBYTE_SLOW1: PUSH HL CALL ESPSD_PUTBYTE @@ -872,15 +866,16 @@ 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* + IN A,(C) - BIT 7,A - JR Z,ESPSD_GETBYTE1A - ; DOUBLE CHECK STATUS, FIRST READ CAN BE BOGUS - IN A,(C) - BIT 7,A - JR Z,ESPSD_GETBYTE1A - JR ESPSD_GETBYTE2 -ESPSD_GETBYTE1A: + JP M,ESPSD_GETBYTE2 DJNZ ESPSD_GETBYTE1 LD A,ESPSD_STTO OR A @@ -903,7 +898,7 @@ ESPSD_GETBYTE2: ; ESPSD_GETBYTE_SLOW: PUSH HL - LD HL,200 * CPUMHZ ; CPU SPEED SCALED TIMEOUT + LD HL,100 * CPUMHZ ; CPU SPEED SCALED TIMEOUT ESPSD_GETBYTE_SLOW1: PUSH HL CALL ESPSD_GETBYTE