From d331fcbdef10c9be0a660a7f49da56bc38eac0cf Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 21 May 2020 14:30:05 -0700 Subject: [PATCH] More Cleaning --- Source/CBIOS/cbios.asm | 68 ++++++++------------------------------ Source/HBIOS/ay38910.asm | 7 ++-- Source/HBIOS/cfg_state.inc | 29 ---------------- Source/HBIOS/std.asm | 47 ++++++++++++++++++++++++++ Source/ver.inc | 2 +- Source/ver.lib | 2 +- 6 files changed, 66 insertions(+), 89 deletions(-) delete mode 100644 Source/HBIOS/cfg_state.inc diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 6d2c1a9b..162f7645 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -300,7 +300,8 @@ DPBCNT .EQU ($ - DPBMAP) / 2 ;__________________________________________________________________________________________________ BOOT: ; STANDARD BOOT INVOCATION - LD SP,STACK ; STACK FOR INITIALIZATION + ;LD SP,STACK ; STACK FOR INITIALIZATION + LD SP,CCP_LOC ; PUT STACK JUST BELOW CCP ; ; COPY INITIALIZATION CODE TO RUNNING LOCATION $8000 LD HL,BUFPOOL @@ -328,17 +329,17 @@ BOOT: ; ;__________________________________________________________________________________________________ REBOOT: - ; REBOOT FROM ROM, REPLACES BOOT AFTER INIT + ; RESTART, REPLACES BOOT AFTER INIT #IFDEF PLTUNA + ; FOR UNA, COLD BOOT DI ; NO INTERRUPTS LD BC,$01FB ; UNA FUNC = SET BANK LD DE,0 ; ROM BOOT BANK CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE) #ENDIF +; #IFDEF PLTWBW - ;DI ; NO INTERRUPTS - ;LD A,0 ; ROM BOOT BANK - ;CALL HB_BNKSEL ; SELECT IT INTO LOW MEMORY + ; WARM START LD B,BF_SYSRESET ; SYSTEM RESTART LD C,BF_SYSRES_WARM ; WARM START CALL $FFF0 ; CALL HBIOS @@ -401,23 +402,13 @@ RESCPM: LD HL,WBOOTE ; GET WARM BOOT ENTRY ADDRESS LD ($0001),HL ; AND PUT IT AT $0001 -; ; INT / RST 38 -> INVOKE MONITOR -; LD ($0038),A -; LD HL,GOMON -; LD ($0039),HL - -; ; INT / RST 38 -> PANIC -; LD ($0038),A -; LD HL,PANIC ; PANIC ROUTINE ADDRESS -; LD ($0039),HL ; POKE IT - ; CALL 5 -> INVOKE BDOS LD ($0005),A ; JP OPCODE AT $0005 LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS LD ($0006),HL ; PUT IT AT $0006 ; ; INSTALL ROMWBW CBIOS PAGE ZERO STAMP AT $40 - LD HL,STPIMG ; FORM STAMP DATA IMAGE + LD HL,STPIMG ; FROM STAMP DATA IMAGE LD DE,STPLOC ; TO IT'S LOCATION IN PAGE ZERO LD BC,STPSIZ ; SIZE OF BLOCK TO COPY LDIR ; DO IT @@ -448,26 +439,6 @@ GOCCP: LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK JP CCP_LOC ; JUMP TO COMMAND PROCESSOR ; -;__________________________________________________________________________________________________ -GOMON: - CALL PANIC -; -; DI -; IM 1 -; -; LD SP,STACK -; -; ; RELOAD MONITOR INTO RAM (IN CASE IT HAS BEEN OVERWRITTEN) -; CALL ROMPGZ -; LD HL,MON_IMG -; LD DE,MON_LOC -; LD BC,MON_SIZ -; LDIR -; CALL RAMPGZ - -; ; JUMP TO MONITOR WARM ENTRY -; JP MON_UART -; ; ;================================================================================================== ; CHARACTER BIOS FUNCTIONS @@ -1360,27 +1331,14 @@ DSK_MBR: DSK_MBR0: ; #IFDEF PLTWBW - ; SWITCH TO BIOS BANK TO ACCESS DISK BUFFER + ; ACTIVATE BIOS BANK TO ACCESS DISK BUFFER LD (STKSAV),SP ; SAVE CUR STACK - LD SP,XSTACK ; NEW STACK IN HI MEM - LD A,(HB_CURBNK) ; GET CUR BANK - PUSH AF ; SAVE CUR BANK - LD A,(BNKBIOS) ; BIOS BANK - CALL HB_BNKSEL ; DO IT - CALL DSK_MBR1 ; DO THE WORK - ; RESTORE BANK - PUSH AF ; SAVE RESULT - POP HL ; TO HL - EX (SP),HL ; RESULT TO TOS, PREV BANK TO H - LD A,H ; PREV BANK TO A - CALL HB_BNKSEL ; SELECT IT - POP AF ; ORIGINAL RESULT BACK + LD SP,STACK ; NEW STACK IN HI MEM + LD A,(BNKBIOS) ; ACTIVATE HBIOS BANK + LD HL,DSK_MBR1 ; ROUTINE TO RUN + CALL HB_BNKCALL ; DO IT LD SP,(STKSAV) ; RESTORE ORIGINAL STACK RET - - .FILL 32,0 -XSTACK .EQU $ - #ENDIF ; DSK_MBR1: @@ -3239,7 +3197,7 @@ CMD .DB CMDLEN - 2 CMDLEN .EQU $ - CMD ; FCB_SUB .DB '?' ; DRIVE CODE, 0 = CURRENT DRIVE - .DB "SUBMIT " ; FILE NAME, 8 CHARS + .DB "SUBMIT " ; FILE NAME, 8 CHARS .DB "COM" ; FILE TYPE, 3 CHARS .FILL 36-($-FCB_SUB),0 ; ZERO FILL REMAINDER OF FCB ; diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index deec80d3..81c41223 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -5,7 +5,7 @@ ;====================================================================== ; -#include "cfg_state.inc" +;#include "cfg_state.inc" AY_RCSND .EQU 0 ; 0 = EB MODULE, 1=MF MODULE @@ -128,7 +128,7 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE CALL AY_WRTPSG ; R03 = $00 = XXXX0000 ; -#IF SYSTIMEN +#IF (SYSTIM != TM_NONE) LD A, TICKFREQ / 3 ; SCHEDULE IN 1/3 SECOND TO TURN OFF SOUND LD (AY_TIMTIK), A @@ -152,7 +152,8 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE XOR A ; SUCCESSFULL INIT RET -#IF SYSTIMEN +#IF (SYSTIM != TM_NONE) + AY_TIMER: LD A, (AY_TIMTIK) DEC A diff --git a/Source/HBIOS/cfg_state.inc b/Source/HBIOS/cfg_state.inc deleted file mode 100644 index 007879b0..00000000 --- a/Source/HBIOS/cfg_state.inc +++ /dev/null @@ -1,29 +0,0 @@ -#IFNDEF CFG_STATE - #DEFINE CFG_STATE - -SYSTIMEN .EQU FALSE - - #IF (CTCENABLE & (INTMODE == 2) & (CTCTIMER)) -SYSTIMEN .SET TRUE - #ENDIF - - #IF (TMSENABLE & (INTMODE == 1) & TMSTIMENABLE) -SYSTIMEN .SET TRUE - #ENDIF - - #IF ((INTMODE == 1) & (PLATFORM == PLT_SBC) & HTIMENABLE) -SYSTIMEN .SET TRUE - #ENDIF - - #IF ((INTMODE == 2) & (CPUFAM == CPU_Z180)) -SYSTIMEN .SET TRUE - #ENDIF - - .ECHO "TIMER INTERRUPT " - #IF SYSTIMEN - .ECHO "ACTIVE\n" - #ELSE - .ECHO "NOT ACTIVE\n" - #ENDIF - -#ENDIF diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index b7459ce3..3c0452ff 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -349,6 +349,53 @@ CPUKHZ .SET CPUKHZ * 2 ; ADJUST FOR DOUBLE SPEED OPERATION ; CPUMHZ .EQU CPUKHZ / 1000 ; CPU FREQ IN MHZ ; +; SYSTEM PERIODIC TIMER MODE +; +#IF (BIOS == BIOS_WBW) +; +TM_NONE .EQU 0 +TM_CTC .EQU 1 +TM_TMS .EQU 2 +TM_SIMH .EQU 3 +TM_Z180 .EQU 4 +; + .ECHO "SYSTEM TIMER:" +SYSTIM .EQU TM_NONE +; + #IF (CTCENABLE & (INTMODE == 2)) + #IF (CTCTIMER) +SYSTIM .SET TM_CTC + .ECHO " CTC" + #ENDIF + #ENDIF +; + #IF (TMSENABLE & (INTMODE == 1)) + #IF (TMSTIMENABLE) +SYSTIM .SET TM_TMS + .ECHO " TMS9918" + #ENDIF + #ENDIF +; + #IF ((PLATFORM == PLT_SBC) & (INTMODE == 1)) + #IF (HTIMENABLE) +SYSTIM .SET TM_SIMH + .ECHO " SIMH" + #ENDIF + #ENDIF +; + #IF ((CPUFAM == CPU_Z180) & (INTMODE == 2)) +SYSTIM .SET TM_Z180 + .ECHO " Z180" + #ENDIF +; + #IF SYSTIM == TM_NONE + .ECHO " NONE" + #ENDIF +; + .ECHO "\n" +; +#ENDIF +; ; MEMORY BANK CONFIGURATION ; #IF (BIOS == BIOS_UNA) diff --git a/Source/ver.inc b/Source/ver.inc index f8b3b588..1c79b4a2 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.12" +#DEFINE BIOSVER "3.1.1-pre.13" diff --git a/Source/ver.lib b/Source/ver.lib index ffca8b84..e5419aa4 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.12" + db "3.1.1-pre.13" endm