diff --git a/Source/Apps/Build.cmd b/Source/Apps/Build.cmd index dc97b94d..ac3ed35c 100644 --- a/Source/Apps/Build.cmd +++ b/Source/Apps/Build.cmd @@ -12,15 +12,18 @@ set ZXBINDIR=%TOOLS%/cpm/bin/ set ZXLIBDIR=%TOOLS%/cpm/lib/ set ZXINCDIR=%TOOLS%/cpm/include/ -call :asm SysCopy || goto :eof -call :asm Assign || goto :eof -call :asm Format || goto :eof -call :asm Talk || goto :eof -call :asm Mode || goto :eof -call :asm RTC || goto :eof -call :asm Timer || goto :eof -call :asm180 IntTest || goto :eof +call :asm syscopy || goto :eof +call :asm assign || goto :eof +call :asm format || goto :eof +call :asm talk || goto :eof +call :asm mode || goto :eof +call :asm rtc || goto :eof +call :asm timer || goto :eof +call :asm180 inttest || goto :eof +call :asm rtcds7 || goto :eof call :asm rtchb || goto :eof +call :asm ppidetst || goto :eof +call :asm tstdskng || goto :eof zx Z80ASM -SYSGEN/F @@ -31,7 +34,6 @@ setlocal & cd XM && call Build || exit /b 1 & endlocal setlocal & cd FDU && call Build || exit /b 1 & endlocal setlocal & cd Tune && call Build || exit /b 1 & endlocal setlocal & cd FAT && call Build || exit /b 1 & endlocal -setlocal & cd I2C && call Build || exit /b 1 & endlocal copy *.com %APPBIN%\ diff --git a/Source/Apps/mode.asm b/Source/Apps/mode.asm index 08f00ba7..a9815f71 100644 --- a/Source/Apps/mode.asm +++ b/Source/Apps/mode.asm @@ -984,8 +984,8 @@ err2: ; without the string ; Utility modules ;=============================================================================== ; -#include "Encode.asm" -#include "Decode.asm" +#include "encode.asm" +#include "decode.asm" #include "bcd.asm" ; ;=============================================================================== diff --git a/Source/Apps/RTChb.asm b/Source/Apps/rtchb.asm similarity index 100% rename from Source/Apps/RTChb.asm rename to Source/Apps/rtchb.asm diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 33888bbe..369708b9 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -97,10 +97,21 @@ MODCNT .SET MODCNT + 1 #ENDIF ; #IF (LEDENABLE) -#DEFINE LED(N) PUSH AF - #DEFCONT \ LD A,~N - #DEFCONT \ OUT (LEDPORT),A - #DEFCONT \ POP AF + #IF (LEDMODE == LEDMODE_STD) +#DEFINE LED(N) PUSH AF + #DEFCONT \ LD A,~N + #DEFCONT \ OUT (LEDPORT),A + #DEFCONT \ POP AF + #ENDIF + #IF (LEDMODE == LEDMODE_RTC) +#DEFINE LED(N) PUSH AF + #DEFCONT \ LD A,(RTCVAL) + #DEFCONT \ AND %11111100 + #DEFCONT \ OR (N & %00000011) + #DEFCONT \ LD (RTCVAL),A + #DEFCONT \ OUT (LEDPORT),A + #DEFCONT \ POP AF + #ENDIF #ELSE #DEFINE LED(N) \; #ENDIF @@ -1050,6 +1061,16 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n LD A,%00000001 OUT (DIAGPORT),A #ENDIF +#IF (LEDENABLE) + #IF (LEDMODE == LEDMODE_STD) + XOR A ; LED IS INVERTED, TURN IT ON + #ENDIF + #IF (LEDMODE == LEDMODE_RTC) + LD A,%00000001 ; LED 0 + LD (RTCVAL),A ; SAVE TO SHADOW REGISTER + #ENDIF + OUT (LEDPORT),A +#ENDIF ; LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY ; @@ -1222,7 +1243,6 @@ Z280_INITZ: #ENDIF ; DIAG(%00000011) - LED($00) ; ; CHECK BATTERY BACKUP STATUS BEFORE WE COPY PROXY TO UPPER MEMORY ; @@ -1307,6 +1327,7 @@ HB_RAMFLAG .DB FALSE ; INITIALLY FALSE, SET TO TRUE BELOW AFTER RAM TRANSITION HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK ; DIAG(%00000111) + LED(%00000010) ; LD A,(HBX_LOC - 1) ; RECALL BATTERY STATE AND SAVE LD (HB_BATCOND),A ; FOR FUTURE REFERENCE @@ -1365,7 +1386,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK LD A,1 ; SET FOR RECOVERY MODE LD (HB_BOOT_REC),A ; SAVE FOR LATER #ENDIF - #IF (PLATFORM == PLT_SBC) + #IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) #IF (BT_REC_TYPE == BT_REC_SBC01) LD A,%00100000 ; DISABLE RTC AND OUT (RTCIO),A ; DRQ DRIVER READ @@ -1398,13 +1419,17 @@ SAVE_REC_M: DIAG(%00001111) ; #IF (DSKYENABLE) + CALL DSKY_INIT + LD HL,MSG_HBVER + 5 LD A,(DSKY_NUMS + RMJ) - AND $7F + ;AND $7F + OR $80 LD (HL),A INC HL LD A,(DSKY_NUMS + RMN) - AND $7F + ;AND $7F + OR $80 LD (HL),A INC HL LD A,(DSKY_NUMS + RUP) @@ -1760,7 +1785,7 @@ NOT_REC_M0: #ENDIF ; DIAG(%01111111) - LED($FF) + LED(%00000011) ; ; PRIOR TO THIS POINT, CONSOLE I/O WAS NOT AVAILABLE UNLESS DIRECTED TO DEBUG OUTPUT I.E. XIO ; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O @@ -1978,6 +2003,9 @@ HB_Z280BUS1: #ENDIF #IF (MEMMGR == MM_ZRC) .TEXT "ZRC$" +#ENDIF +#IF (MEMMGR == MM_MBC) + .TEXT "MBC$" #ENDIF CALL PRTSTRD .TEXT " MMU$" @@ -2108,7 +2136,7 @@ HB_WDZ: ; IF PLATFORM HAS A CONFIG JUMPER, CHECK TO SEE IF IT IS JUMPERED. ; IF SO, BYPASS SWITCH TO CRT CONSOLE (FAILSAFE MODE) ; - #IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2)) + #IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_MBC)) IN A,(RTCIO) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE JR Z,INITSYS3 ; Z=SHORTED, BYPASS CONSOLE SWITCH @@ -2214,14 +2242,14 @@ CALLDUMMY: #IF (BT_REC_TYPE != BT_REC_NONE) ; HB_PCINIT_REC: - #IF (PLATFORM == PLT_SBC) + #IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) .DW UART_PREINIT ; .DW CALLDUMMY #ENDIF HB_PCINITRLEN .EQU (($ - HB_PCINIT_REC) / 2) ; HB_INIT_REC: - #IF (PLATFORM == PLT_SBC) + #IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) .DW UART_INIT .DW MD_INIT .DW PPIDE_INIT @@ -2336,12 +2364,9 @@ HB_INITTBL: #IF (TMSENABLE) .DW TMS_INIT #ENDIF -#IF (DSKYENABLE) - .DW DSKY_INIT -#ENDIF -#IF (DMAENABLE) - .DW DMA_INIT -#ENDIF +;#IF (DSKYENABLE) +; .DW DSKY_INIT +;#ENDIF #IF (MDENABLE) .DW MD_INIT #ENDIF @@ -2789,7 +2814,7 @@ HB_DSKFN: OUT (DIAGPORT),A ; DISPLAY ON DIAG LEDS #ENDIF #IF (LEDENABLE & LEDDISKIO) - LED($FF) + LED(%00000001) #ENDIF LD E,1 ; ONE SECTOR HB_DSKFNADR .EQU $+1 @@ -4648,14 +4673,6 @@ SIZ_NEC .EQU $ - ORG_NEC .ECHO SIZ_NEC .ECHO " bytes.\n" #ENDIF -#IF (DMAENABLE) -ORG_DMA .EQU $ -#INCLUDE "dma.asm" -SIZ_DMA .EQU $ - ORG_DMA - .ECHO "DMA occupies " - .ECHO SIZ_DMA - .ECHO " bytes.\n" -#ENDIF ; ; FONTS AREA ; @@ -4825,7 +4842,7 @@ SIZ_SPK .EQU $ - ORG_SPK .ECHO " bytes.\n" #ENDIF ; -#IF (PIO_4P | PIO_ZP | PPI_SBC) +#IF (PIO_4P | PIO_ZP | PIO_SBC) ORG_PIO .EQU $ #INCLUDE "pio.asm" SIZ_PIO .EQU $ - ORG_PIO @@ -4891,7 +4908,12 @@ SIZ_AY38910 .EQU $ - ORG_AY38910 ; #IF (DSKYENABLE) #DEFINE DSKY_KBD + #IF (DSKYMODE == DSKYMODE_V1) #INCLUDE "dsky.asm" + #ENDIF + #IF (DSKYMODE == DSKYMODE_NG) +#INCLUDE "dskyng.asm" + #ENDIF #ENDIF ; ; INCLUDE LZSA2 decompression engine if required. @@ -4922,6 +4944,7 @@ HB_CPUSPD1: ; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT ; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT + CALL DSRTC_START CALL HB_RDSEC ; GET SECONDS LD (HB_CURSEC),A ; AND INIT CURSEC CALL HB_WAITSEC ; WAIT FOR SECONDS TICK @@ -5907,7 +5930,12 @@ STR_SYSCHK .TEXT "\r\n>>> SYSCHK: $" STR_CONTINUE .TEXT "\r\nContinue (Y/N)? $" ; #IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' -MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " + #IF (DSKYMODE == DSKYMODE_V1) +MSG_HBVER .DB $3E,$7F,$0A,$7B,$00,$00,$00,$00 ; "HBIO " + #ENDIF + #IF (DSKYMODE == DSKYMODE_NG) +MSG_HBVER .DB $76,$7F,$30,$3F,$00,$00,$00,$00 ; "HBIO " + #ENDIF #ENDIF ; HB_APPBNK .DB 0 ; START BANK WHEN RUN IN APP MODE