From c4a0548e7609ede0d1ec5441be0c75118c9c62b4 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Tue, 27 Apr 2021 14:35:00 -0700 Subject: [PATCH] Miscellaneous Fixes - SDCNT was not properly implemented in all cases - ParPortProp debug formatting fix --- Source/HBIOS/cfg_rcz180.asm | 2 +- Source/HBIOS/cfg_rcz280.asm | 2 +- Source/HBIOS/cfg_rcz80.asm | 2 +- Source/HBIOS/sd.asm | 25 ++++++++++++------- Source/Prop/Spin/ParPortProp.spin | 1 + .../Prop/Spin/Parallax Serial Terminal.spin | 1 + Source/ver.inc | 2 +- Source/ver.lib | 2 +- 8 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index b12a12cf..63778204 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -200,7 +200,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] -SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY +SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE SDMTSWAP .EQU FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index 09e953ca..58aefadc 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -216,7 +216,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] -SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY +SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE SDMTSWAP .EQU FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 2aa7448b..fe778078 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -205,7 +205,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] -SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY +SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE SDMTSWAP .EQU FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 diff --git a/Source/HBIOS/sd.asm b/Source/HBIOS/sd.asm index 9afe6c81..39a29bae 100644 --- a/Source/HBIOS/sd.asm +++ b/Source/HBIOS/sd.asm @@ -115,8 +115,10 @@ ; SD_NOPULLUP .EQU TRUE ; ASSUME NO PULLUP ; +SD_DEVCNT .EQU SDCNT ; SET SD_DEVCNT TO SDCNT CONFIG VAR +; #IF (SDMODE == SDMODE_JUHA) ; JUHA MINI-BOARD -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE SD_OPRMSK .EQU %10000111 ; MASK FOR BITS WE OWN IN RTC LATCH PORT @@ -131,7 +133,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE #ENDIF ; #IF (SDMODE == SDMODE_N8) ; UNMODIFIED N8-2511 -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE SD_OPRMSK .EQU %01000111 ; MASK FOR BITS WE OWN IN RTC LATCH PORT @@ -146,7 +148,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE #ENDIF ; #IF (SDMODE == SDMODE_CSIO) ; N8-2312 -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION SD_OPRDEF .EQU %00000000 ; QUIESCENT STATE SD_OPRMSK .EQU %00000100 ; MASK FOR BITS WE OWN IN RTC LATCH PORT @@ -159,7 +161,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE #ENDIF ; #IF (SDMODE == SDMODE_PPI) ; PPISD -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_PPIBASE .EQU PPIBASE ; BASE IO PORT FOR PPI SD_PPIB .EQU PPIBASE + 1 ; PPI PORT B (INPUT: DOUT) SD_PPIC .EQU PPIBASE + 2 ; PPI PORT C (OUTPUT: CS, CLK, DIN) @@ -175,7 +177,7 @@ SD_IOBASE .EQU SD_PPIBASE ; IOBASE #ENDIF ; #IF (SDMODE == SDMODE_UART) -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU SIO_MCR ; UART MCR PORT (OUTPUT: CS, CLK, DIN) SD_OPRDEF .EQU %00001100 ; QUIESCENT STATE SD_OPRMSK .EQU %00101101 ; MASK FOR BITS WE OWN IN RTC LATCH PORT @@ -188,7 +190,7 @@ SD_IOBASE .EQU UARTIOB ; IOBASE #ENDIF ; #IF (SDMODE == SDMODE_DSD) ; DUAL SD -SD_DEVCNT .EQU SDCNT ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU $08 ; DEDICATED OPERATIONS REGISTER SD_OPRDEF .EQU %00000001 ; QUIESCENT STATE SD_INPREG .EQU SD_OPRREG ; INPUT REGISTER IS OPRREG @@ -202,7 +204,7 @@ SD_IOBASE .EQU SD_OPRREG ; IOBASE #ENDIF ; #IF (SDMODE == SDMODE_MK4) ; MARK IV (CSIO STYLE INTERFACE) -SD_DEVCNT .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU $89 ; DEDICATED MK4 SDCARD REGISTER SD_OPRDEF .EQU %00000000 ; QUIESCENT STATE SD_CS0 .EQU %00000100 ; SELECT ACTIVE @@ -212,7 +214,7 @@ SD_IOBASE .EQU SD_OPRREG ; IOBASE #ENDIF ; #IF (SDMODE == SDMODE_SC) ; SC -SD_DEVCNT .EQU SDCNT ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_OPRREG .EQU RTCIO ; USES RTC LATCHES FOR OPERATION SD_OPRDEF .EQU %00001100 ; QUIESCENT STATE (/CS1 & /CS2 DEASSERTED) SD_OPRMSK .EQU %00001100 ; MASK FOR BITS WE OWN IN RTC LATCH PORT @@ -232,7 +234,7 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE ; ARE ASSUMED TO BE CONNECTED TO SD CARDS. ; SD_BASE .EQU $5C ; Module base address -SD_DEVCNT .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) +SD_DEVMAX .EQU 2 ; NUMBER OF PHYSICAL UNITS (SOCKETS) SD_WRTR .EQU SD_BASE + 0 ; Write data and transfer SD_RDTR .EQU SD_BASE + 1 ; Read data and transfer SD_RDNTR .EQU SD_BASE + 0 ; Read data and NO transfer @@ -261,6 +263,11 @@ SD_CS1 .EQU %00010000 ; IN/OUT:SD_OPREG:4 = CS1, SDCARD1 CS, IN=1 Card present SD_IOBASE .EQU SD_BASE ; IOBASE #ENDIF ; +#IF (SD_DEVCNT > SD_DEVMAX) + .ECHO "*** ERROR: SDCNT EXCEEDS MAXIMUM SUPPORTED BY INTERFACE!!!\n" + !!! ; FORCE AN ASSEMBLY ERROR +#ENDIF +; ; SD CARD COMMANDS ; SD_CMD_GO_IDLE_STATE .EQU $40 + 0 ; $40, CMD0 -> R1 diff --git a/Source/Prop/Spin/ParPortProp.spin b/Source/Prop/Spin/ParPortProp.spin index 5e890c21..b5238e79 100644 --- a/Source/Prop/Spin/ParPortProp.spin +++ b/Source/Prop/Spin/ParPortProp.spin @@ -441,6 +441,7 @@ PRI KeyboardStatus dbg.Hex(ByteVal, 2) dbg.Str(string(" ")) + dbg.NewLine ExecFunction(FUNC_PUTBYTE) diff --git a/Source/Prop/Spin/Parallax Serial Terminal.spin b/Source/Prop/Spin/Parallax Serial Terminal.spin index cc9e4be0..46c6eaaf 100644 --- a/Source/Prop/Spin/Parallax Serial Terminal.spin +++ b/Source/Prop/Spin/Parallax Serial Terminal.spin @@ -273,6 +273,7 @@ PUB NewLine {{Send cursor to new line (carriage return plus line feed).}} Char(NL) + Char(LF) PUB LineFeed {{Send cursor down to next line.}} diff --git a/Source/ver.inc b/Source/ver.inc index 3115b8e7..ba95f818 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.72" +#DEFINE BIOSVER "3.1.1-pre.73" diff --git a/Source/ver.lib b/Source/ver.lib index 676093af..0023e723 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.72" + db "3.1.1-pre.73" endm