diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index d19c3301..73203f6b 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -3,6 +3,7 @@ Version 2.9.2 - PMS: Fixed DS1210-related issue resulting in "Invalid BIOS" errors - SCC: Support for SC126 motherboard - WBW: Enable Auto-CTS/DCD in SIO driver for pacing output data +- WBW: Support missing pull-up resistors in SD driver (a common occurence) Version 2.9.1 ------------- diff --git a/Source/HBIOS/sd.asm b/Source/HBIOS/sd.asm index 5f93cf38..f9fe2500 100644 --- a/Source/HBIOS/sd.asm +++ b/Source/HBIOS/sd.asm @@ -756,12 +756,6 @@ SD_GEOM: ; (RE)INITIALIZE CARD ; SD_INITCARD: -; - ;; CLEAR OUT UNIT SPECIFIC DATA - ;SD_DPTR(0) ; SET HL TO START OF UNIT DATA - ;LD BC,SD_UNITDATALEN - ;XOR A - ;CALL FILL ; CALL SD_CHKCD ; CHECK CARD DETECT JP Z,SD_NOMEDIA ; Z=NO MEDIA, HANDLE IF SO @@ -777,7 +771,7 @@ SD_INITCARD1: ; ; PUT CARD IN IDLE STATE CALL SD_GOIDLE ; GO TO IDLE - RET NZ ; ABORT IF FAILED + JP NZ,SD_NOMEDIA ; CONVERT ERROR TO NO MEDIA ; SD_INITCARD2: LD (IY+SD_TYPE),SD_TYPESDSC ; ASSUME SDSC CARD TYPE @@ -1155,13 +1149,11 @@ SD_GOIDLE1: LD A,$95 ; CRC FOR GO_IDLE_STATE COMMAND IS $95 LD (SD_CMDCRC),A ; SET CRC CALL SD_EXECCMDND ; EXECUTE COMMAND W/ NO DATA RETURNED - RET NZ ; ABORT ON ERROR LD A,(SD_RC) ; GET CARD RESULT DEC A ; MAP EXPECTED $01 -> $00 - RET Z ; ALL IS GOOD, RETURN WITH Z=0 AND Z SET - LD A,SD_STCMDERR ; SET COMMAND ERROR VALUE, NZ ALREADY SET - RET ; AND RETURN + RET Z ; ALL IS GOOD, RETURN WITH A=0 AND Z SET + JP SD_ERRCMD ; SET COMMAND ERROR VALUE ; ; INITIALIZE COMMAND BUFFER ; COMMAND BYTE IN ACCUM