Browse Source

More Cleaning

pull/138/head
Wayne Warthen 6 years ago
parent
commit
d331fcbdef
  1. 68
      Source/CBIOS/cbios.asm
  2. 7
      Source/HBIOS/ay38910.asm
  3. 29
      Source/HBIOS/cfg_state.inc
  4. 47
      Source/HBIOS/std.asm
  5. 2
      Source/ver.inc
  6. 2
      Source/ver.lib

68
Source/CBIOS/cbios.asm

@ -300,7 +300,8 @@ DPBCNT .EQU ($ - DPBMAP) / 2
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
BOOT: BOOT:
; STANDARD BOOT INVOCATION ; 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 ; COPY INITIALIZATION CODE TO RUNNING LOCATION $8000
LD HL,BUFPOOL LD HL,BUFPOOL
@ -328,17 +329,17 @@ BOOT:
; ;
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
REBOOT: REBOOT:
; REBOOT FROM ROM, REPLACES BOOT AFTER INIT
; RESTART, REPLACES BOOT AFTER INIT
#IFDEF PLTUNA #IFDEF PLTUNA
; FOR UNA, COLD BOOT
DI ; NO INTERRUPTS DI ; NO INTERRUPTS
LD BC,$01FB ; UNA FUNC = SET BANK LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,0 ; ROM BOOT BANK LD DE,0 ; ROM BOOT BANK
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE) CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
#ENDIF #ENDIF
;
#IFDEF PLTWBW #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 B,BF_SYSRESET ; SYSTEM RESTART
LD C,BF_SYSRES_WARM ; WARM START LD C,BF_SYSRES_WARM ; WARM START
CALL $FFF0 ; CALL HBIOS CALL $FFF0 ; CALL HBIOS
@ -401,23 +402,13 @@ RESCPM:
LD HL,WBOOTE ; GET WARM BOOT ENTRY ADDRESS LD HL,WBOOTE ; GET WARM BOOT ENTRY ADDRESS
LD ($0001),HL ; AND PUT IT AT $0001 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 ; CALL 5 -> INVOKE BDOS
LD ($0005),A ; JP OPCODE AT $0005 LD ($0005),A ; JP OPCODE AT $0005
LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS
LD ($0006),HL ; PUT IT AT $0006 LD ($0006),HL ; PUT IT AT $0006
; ;
; INSTALL ROMWBW CBIOS PAGE ZERO STAMP AT $40 ; 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 DE,STPLOC ; TO IT'S LOCATION IN PAGE ZERO
LD BC,STPSIZ ; SIZE OF BLOCK TO COPY LD BC,STPSIZ ; SIZE OF BLOCK TO COPY
LDIR ; DO IT LDIR ; DO IT
@ -448,26 +439,6 @@ GOCCP:
LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK
JP CCP_LOC ; JUMP TO COMMAND PROCESSOR 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 ; CHARACTER BIOS FUNCTIONS
@ -1360,27 +1331,14 @@ DSK_MBR:
DSK_MBR0: DSK_MBR0:
; ;
#IFDEF PLTWBW #IFDEF PLTWBW
; SWITCH TO BIOS BANK TO ACCESS DISK BUFFER
; ACTIVATE BIOS BANK TO ACCESS DISK BUFFER
LD (STKSAV),SP ; SAVE CUR STACK 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 LD SP,(STKSAV) ; RESTORE ORIGINAL STACK
RET RET
.FILL 32,0
XSTACK .EQU $
#ENDIF #ENDIF
; ;
DSK_MBR1: DSK_MBR1:
@ -3239,7 +3197,7 @@ CMD .DB CMDLEN - 2
CMDLEN .EQU $ - CMD CMDLEN .EQU $ - CMD
; ;
FCB_SUB .DB '?' ; DRIVE CODE, 0 = CURRENT DRIVE 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 .DB "COM" ; FILE TYPE, 3 CHARS
.FILL 36-($-FCB_SUB),0 ; ZERO FILL REMAINDER OF FCB .FILL 36-($-FCB_SUB),0 ; ZERO FILL REMAINDER OF FCB
; ;

7
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 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 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 A, TICKFREQ / 3 ; SCHEDULE IN 1/3 SECOND TO TURN OFF SOUND
LD (AY_TIMTIK), A LD (AY_TIMTIK), A
@ -152,7 +152,8 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE
XOR A ; SUCCESSFULL INIT XOR A ; SUCCESSFULL INIT
RET RET
#IF SYSTIMEN
#IF (SYSTIM != TM_NONE)
AY_TIMER: AY_TIMER:
LD A, (AY_TIMTIK) LD A, (AY_TIMTIK)
DEC A DEC A

29
Source/HBIOS/cfg_state.inc

@ -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

47
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 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 ; MEMORY BANK CONFIGURATION
; ;
#IF (BIOS == BIOS_UNA) #IF (BIOS == BIOS_UNA)

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.12"
#DEFINE BIOSVER "3.1.1-pre.13"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.12"
db "3.1.1-pre.13"
endm endm

Loading…
Cancel
Save