mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Cleanup
This commit is contained in:
@@ -64,10 +64,6 @@
|
||||
; - dsky.asm
|
||||
; - unlzsa2s.asm
|
||||
;
|
||||
; TODO
|
||||
; - Add remaining service routine stubs for IM3 (NMI, etc.)
|
||||
; - Fix app boot under Z280
|
||||
;
|
||||
; INCLUDE GENERIC STUFF
|
||||
;
|
||||
#INCLUDE "std.asm"
|
||||
@@ -962,6 +958,23 @@ HB_IVT0F: JP HB_BADINT \ .DB 0
|
||||
;==================================================================================================
|
||||
;
|
||||
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
|
||||
IM 1 ; INTERRUPT MODE 1
|
||||
;
|
||||
@@ -3602,16 +3615,109 @@ HB_BADINTCNT .DB 0
|
||||
#IF (MEMMGR == MM_Z280)
|
||||
;
|
||||
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
|
||||
CALL NEWLINE2
|
||||
PRTS("+++ $")
|
||||
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
|
||||
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
|
||||
;
|
||||
@@ -3685,7 +3791,8 @@ Z280_PRIVINSTX:
|
||||
EX (SP),HL ; MSR TO STK, RECOVER HL
|
||||
.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 @$"
|
||||
;
|
||||
@@ -3879,46 +3986,46 @@ Z280_IVT:
|
||||
.DW $0000 ; INT C MSR
|
||||
.DW Z280_BADINT ; INT C VECTOR
|
||||
.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 Z280_BADINT ; COUNTER/TIMER 1 VECTOR
|
||||
.DW $Z280_BADINT ; COUNTER/TIMER 1 VECTOR
|
||||
.DW 0, 0 ; RESERVED
|
||||
.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 Z280_BADINT ; DMA CHANNEL 0 VECTOR
|
||||
.DW $Z280_BADINT ; DMA CHANNEL 0 VECTOR
|
||||
.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 Z280_BADINT ; DMA CHANNEL 2 VECTOR
|
||||
.DW $Z280_BADINT ; DMA CHANNEL 2 VECTOR
|
||||
.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 Z280_BADINT ; UART RECEIVER VECTOR
|
||||
.DW $Z280_BADINT ; UART RECEIVER VECTOR
|
||||
.DW $0000 ; UART TRANSMITTER MSR
|
||||
.DW Z280_BADINT ; UART TRANSMITTER VECTOR
|
||||
.DW $Z280_BADINT ; UART TRANSMITTER VECTOR
|
||||
.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 Z280_BADINT ; BREAK ON HALT TRAP VECTOR
|
||||
.DW Z280_BRKHLT ; BREAK ON HALT TRAP VECTOR
|
||||
.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 Z280_BADINT ; STACK OVERFLOW WARNING TRAP VECTOR
|
||||
.DW Z280_STKOVR ; STACK OVERFLOW WARNING TRAP VECTOR
|
||||
.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 Z280_SYSCALL ; SYSTEM CALL TRAP VECTOR
|
||||
.DW $0000 ; PRIVILEGED INSTRUCTION TRAP MSR
|
||||
.DW Z280_PRIVINST ; PRIVILEGED INSTRUCTION TRAP VECTOR
|
||||
.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 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 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 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
|
||||
; PROGRAM COUNTER VALUES FOR NMI/INTA
|
||||
|
||||
@@ -8,14 +8,11 @@ LF .EQU 0AH
|
||||
;
|
||||
.ORG USR_LOC
|
||||
;
|
||||
LD HL,BOOTMSG ; INTRODUCTION
|
||||
LD HL,BOOTMSG ; INTRODUCTION
|
||||
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 C,BF_SYSRES_WARM ; WARM START
|
||||
CALL $FFF0 ; CALL HBIOS
|
||||
|
||||
@@ -125,7 +125,7 @@ PRTSTR:
|
||||
; PRINT A STRING DIRECT: REFERENCED BY POINTER AT TOP OF STACK
|
||||
; STRING MUST BE TERMINATED BY '$'
|
||||
; USAGE:
|
||||
; CALL PRTSTR
|
||||
; CALL PRTSTRD
|
||||
; .DB "HELLO$"
|
||||
; ...
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user