Browse Source

Cleanup

pull/199/head
Wayne Warthen 5 years ago
parent
commit
6e6e3d2059
  1. 163
      Source/HBIOS/hbios.asm
  2. 7
      Source/HBIOS/usrrom.asm
  3. 2
      Source/HBIOS/util.asm
  4. 2
      Source/ver.inc
  5. 2
      Source/ver.lib

163
Source/HBIOS/hbios.asm

@ -64,10 +64,6 @@
; - dsky.asm ; - dsky.asm
; - unlzsa2s.asm ; - unlzsa2s.asm
; ;
; TODO
; - Add remaining service routine stubs for IM3 (NMI, etc.)
; - Fix app boot under Z280
;
; INCLUDE GENERIC STUFF ; INCLUDE GENERIC STUFF
; ;
#INCLUDE "std.asm" #INCLUDE "std.asm"
@ -962,6 +958,23 @@ HB_IVT0F: JP HB_BADINT \ .DB 0
;================================================================================================== ;==================================================================================================
; ;
HB_START: HB_START:
#IFDEF APPBOOT
#IF (MEMMGR == MM_Z280)
LD A,%00000001
OUT (DIAGPORT),A
LD DE,Z280_BOOTERR
LD C,9
LD A,%00000010
OUT (DIAGPORT),A
CALL $0005
LD A,%00001000
OUT (DIAGPORT),A
RET
;
Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 native memory management!!!\r\n\r\n$"
#ENDIF
#ENDIF
DI ; NO INTERRUPTS DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1 IM 1 ; INTERRUPT MODE 1
; ;
@ -3602,16 +3615,109 @@ HB_BADINTCNT .DB 0
#IF (MEMMGR == MM_Z280) #IF (MEMMGR == MM_Z280)
; ;
Z280_BADINT: Z280_BADINT:
CALL NEWLINE
; SAVE REASON CODE FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_RCSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
; SAVE MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_BADINTSTR LD DE,Z280_BADINTSTR
CALL NEWLINE2
PRTS("+++ $")
CALL WRITESTR CALL WRITESTR
POP HL ; DUMP MSR
POP HL ; GET RET ADR
CALL PRTHEXWORDHL
POP DE
CALL XREGDMP
;
; RECOVER MSR, THEN RETURN VIA RETIL
PUSH HL ; SAVE HL
LD HL,(HB_RCSAV) ; GET SAVED REASON CODE
PRTS(" RC=$")
CALL PRTHEXWORDHL ; DUMP MSR
LD HL,(HB_MSRSAV) ; GET SAVED MSR
PRTS(" MSR=$")
CALL PRTHEXWORDHL ; DUMP MSR
EX (SP),HL ; MSR TO STK, RECOVER HL
;
.DB $ED,$55 ; RETIL
;
Z280_SSTEP:
; SAVE HL AND MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_SSTEPSTR
JP Z280_DIAG
;
Z280_BRKHLT:
; SAVE HL AND MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_BRKHLTSTR
JP Z280_DIAG
;
Z280_DIVEXC:
; SAVE HL AND MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_DIVEXCSTR
JP Z280_DIAG
;
Z280_STKOVR:
; SAVE HL AND MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_STKOVRSTR
JP Z280_DIAG
;
Z280_ACCVIO:
; SAVE HL AND MSR FOR POSSIBLE RETURN VIA RETIL
EX (SP),HL ; GET MSR, SAVE HL
LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK
;
PUSH DE
LD DE,Z280_ACCVIOSTR
JP Z280_DIAG
;
Z280_DIAG:
CALL NEWLINE2
PRTS("+++ $")
CALL WRITESTR
POP DE
CALL XREGDMP
;
; RECOVER MSR, THEN RETURN VIA RETIL
PUSH HL ; SAVE HL
LD HL,(HB_MSRSAV) ; GET SAVED MSR
PRTS(" MSR=$")
CALL PRTHEXWORDHL ; DUMP MSR
EX (SP),HL ; MSR TO STK, RECOVER HL
;
;.DB $ED,$55 ; RETIL
DI DI
HALT HALT
; ;
Z280_BADINTSTR .TEXT "\n\n*** Z280 BAD INT @$"
Z280_BADINTSTR .TEXT "BAD INT $"
Z280_SSTEPSTR .TEXT "SINGLE STEP $"
Z280_BRKHLTSTR .TEXT "BREAK HALT $"
Z280_DIVEXCSTR .TEXT "DIVISION EXCEPTION $"
Z280_STKOVRSTR .TEXT "STACK OVERFLOW $"
Z280_ACCVIOSTR .TEXT "ACCESS VIOLATION $"
; ;
#ENDIF #ENDIF
; ;
@ -3685,7 +3791,8 @@ Z280_PRIVINSTX:
EX (SP),HL ; MSR TO STK, RECOVER HL EX (SP),HL ; MSR TO STK, RECOVER HL
.DB $ED,$55 ; RETIL .DB $ED,$55 ; RETIL
; ;
HB_MSRSAV .DW 0
HB_MSRSAV .DW 0 ; SAVED MSR
HB_RCSAV .DW 0 ; SAVED REASON CODE
; ;
Z280_PRIVSTR .TEXT "\r\n\r\n*** Privileged Instruction @$" Z280_PRIVSTR .TEXT "\r\n\r\n*** Privileged Instruction @$"
; ;
@ -3879,46 +3986,46 @@ Z280_IVT:
.DW $0000 ; INT C MSR .DW $0000 ; INT C MSR
.DW Z280_BADINT ; INT C VECTOR .DW Z280_BADINT ; INT C VECTOR
.DW $0000 ; COUNTER/TIMER 0 MSR .DW $0000 ; COUNTER/TIMER 0 MSR
.DW Z280_BADINT ; COUNTER/TIMER 0 VECTOR
.DW $Z280_BADINT ; COUNTER/TIMER 0 VECTOR
.DW $0000 ; COUNTER/TIMER 1 MSR .DW $0000 ; COUNTER/TIMER 1 MSR
.DW Z280_BADINT ; COUNTER/TIMER 1 VECTOR
.DW $Z280_BADINT ; COUNTER/TIMER 1 VECTOR
.DW 0, 0 ; RESERVED .DW 0, 0 ; RESERVED
.DW $0000 ; COUNTER/TIMER 2 MSR .DW $0000 ; COUNTER/TIMER 2 MSR
.DW Z280_BADINT ; COUNTER/TIMER 2 VECTOR
.DW $Z280_BADINT ; COUNTER/TIMER 2 VECTOR
.DW $0000 ; DMA CHANNEL 0 MSR .DW $0000 ; DMA CHANNEL 0 MSR
.DW Z280_BADINT ; DMA CHANNEL 0 VECTOR
.DW $Z280_BADINT ; DMA CHANNEL 0 VECTOR
.DW $0000 ; DMA CHANNEL 1 MSR .DW $0000 ; DMA CHANNEL 1 MSR
.DW Z280_BADINT ; DMA CHANNEL 1 VECTOR
.DW $Z280_BADINT ; DMA CHANNEL 1 VECTOR
.DW $0000 ; DMA CHANNEL 2 MSR .DW $0000 ; DMA CHANNEL 2 MSR
.DW Z280_BADINT ; DMA CHANNEL 2 VECTOR
.DW $Z280_BADINT ; DMA CHANNEL 2 VECTOR
.DW $0000 ; DMA CHANNEL 3 MSR .DW $0000 ; DMA CHANNEL 3 MSR
.DW Z280_BADINT ; DMA CHANNEL 3 VECTOR
.DW $Z280_BADINT ; DMA CHANNEL 3 VECTOR
.DW $0000 ; UART RECEIVER MSR .DW $0000 ; UART RECEIVER MSR
.DW Z280_BADINT ; UART RECEIVER VECTOR
.DW $Z280_BADINT ; UART RECEIVER VECTOR
.DW $0000 ; UART TRANSMITTER MSR .DW $0000 ; UART TRANSMITTER MSR
.DW Z280_BADINT ; UART TRANSMITTER VECTOR
.DW $Z280_BADINT ; UART TRANSMITTER VECTOR
.DW $0000 ; SINGLE STEP TRAP MSR .DW $0000 ; SINGLE STEP TRAP MSR
.DW Z280_BADINT ; SINGLE STEP TRAP VECTOR
.DW Z280_SSTEP ; SINGLE STEP TRAP VECTOR
.DW $0000 ; BREAK ON HALT TRAP MSR .DW $0000 ; BREAK ON HALT TRAP MSR
.DW Z280_BADINT ; BREAK ON HALT TRAP VECTOR
.DW Z280_BRKHLT ; BREAK ON HALT TRAP VECTOR
.DW $0000 ; DIVISION EXCEPTION TRAP MSR .DW $0000 ; DIVISION EXCEPTION TRAP MSR
.DW Z280_BADINT ; DIVISION EXCEPTION TRAP VECTOR
.DW Z280_DIVEXC ; DIVISION EXCEPTION TRAP VECTOR
.DW $0000 ; STACK OVERFLOW WARNING TRAP MSR .DW $0000 ; STACK OVERFLOW WARNING TRAP MSR
.DW Z280_BADINT ; STACK OVERFLOW WARNING TRAP VECTOR
.DW Z280_STKOVR ; STACK OVERFLOW WARNING TRAP VECTOR
.DW $0000 ; ACCESS VIOLATION TRAP MSR .DW $0000 ; ACCESS VIOLATION TRAP MSR
.DW Z280_BADINT ; ACCESS VIOLATION TRAP VECTOR
.DW Z280_ACCVIO ; ACCESS VIOLATION TRAP VECTOR
.DW $0000 ; SYSTEM CALL TRAP MSR .DW $0000 ; SYSTEM CALL TRAP MSR
.DW Z280_SYSCALL ; SYSTEM CALL TRAP VECTOR .DW Z280_SYSCALL ; SYSTEM CALL TRAP VECTOR
.DW $0000 ; PRIVILEGED INSTRUCTION TRAP MSR .DW $0000 ; PRIVILEGED INSTRUCTION TRAP MSR
.DW Z280_PRIVINST ; PRIVILEGED INSTRUCTION TRAP VECTOR .DW Z280_PRIVINST ; PRIVILEGED INSTRUCTION TRAP VECTOR
.DW $0000 ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP MSR .DW $0000 ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP MSR
.DW Z280_BADINT ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP MSR .DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP MSR
.DW Z280_BADINT ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; A <- EPU EXTENDED INSTRUCTION TRAP MSR .DW $0000 ; A <- EPU EXTENDED INSTRUCTION TRAP MSR
.DW Z280_BADINT ; A <- EPU EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; A <- EPU EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; EPU INTERNAL OPERATION EXTENDED INSTRUCTION TRAP MSR .DW $0000 ; EPU INTERNAL OPERATION EXTENDED INSTRUCTION TRAP MSR
.DW Z280_BADINT ; EPU INTERNAL OPERATION EXTENDED INSTRUCTION TRAP VECTOR
.DW $0000 ; EPU INTERNAL OPERATION EXTENDED INSTRUCTION TRAP VECTOR
.DW 0, 0 ; RESERVED .DW 0, 0 ; RESERVED
.DW 0, 0 ; RESERVED .DW 0, 0 ; RESERVED
; PROGRAM COUNTER VALUES FOR NMI/INTA ; PROGRAM COUNTER VALUES FOR NMI/INTA

7
Source/HBIOS/usrrom.asm

@ -8,14 +8,11 @@ LF .EQU 0AH
; ;
.ORG USR_LOC .ORG USR_LOC
; ;
LD HL,BOOTMSG ; INTRODUCTION
LD HL,BOOTMSG ; INTRODUCTION
CALL PRTSTR CALL PRTSTR
CALL CIN ; DO STUFF
CALL CIN ; DO STUFF
; ;
;LD A,00H ; RETURN TO ROM LOADER
;LD HL,0000H
;JP 0FFF9H
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

2
Source/HBIOS/util.asm

@ -125,7 +125,7 @@ PRTSTR:
; PRINT A STRING DIRECT: REFERENCED BY POINTER AT TOP OF STACK ; PRINT A STRING DIRECT: REFERENCED BY POINTER AT TOP OF STACK
; STRING MUST BE TERMINATED BY '$' ; STRING MUST BE TERMINATED BY '$'
; USAGE: ; USAGE:
; CALL PRTSTR
; CALL PRTSTRD
; .DB "HELLO$" ; .DB "HELLO$"
; ... ; ...
; ;

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.36"
#DEFINE BIOSVER "3.1.1-pre.37"

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.36"
db "3.1.1-pre.37"
endm endm

Loading…
Cancel
Save