|
|
|
@ -2772,6 +2772,7 @@ HB_WDZ: |
|
|
|
; |
|
|
|
LD A,(CB_CONDEV) ; GET CURRENT CONSOLE |
|
|
|
LD (HB_NEWCON),A ; AND INIT NEW CONSOLE VAR |
|
|
|
; |
|
|
|
#IF CRTACT |
|
|
|
; |
|
|
|
; BIOS IS CONFIGURED TO AUTO ACTIVATE CRT DEVICE. FIRST, |
|
|
|
@ -2795,11 +2796,6 @@ HB_WDZ: |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; THIS IS A GOOD PLACE TO DETERMINE IF FRONT PANEL HARDWARE REALLY |
|
|
|
; EXISTS. |
|
|
|
; |
|
|
|
CALL FP_DETECT |
|
|
|
; |
|
|
|
#IF (FPSW_ENABLE) |
|
|
|
; |
|
|
|
; IF WE HAVE FRONT PANEL SWITCHES, THIS IS THE RIGHT PLACE TO HANDLE |
|
|
|
@ -2813,8 +2809,9 @@ HB_WDZ: |
|
|
|
LD A,FPSW_IO |
|
|
|
CALL PRTHEXBYTE |
|
|
|
; |
|
|
|
; THE EXISTENCE OF THE FP WAS TESTED EARLIER. IF IT DOESN'T |
|
|
|
; EXIST, BAIL OUT. |
|
|
|
CALL FP_DETECT |
|
|
|
; |
|
|
|
; IF FP DOESN'T EXIST, BAIL OUT. |
|
|
|
LD A,(FPSW_ACTIVE) ; GET FP EXISTENCE FLAG |
|
|
|
OR A ; SET FLAGS |
|
|
|
JR NZ,HB_FP1 ; IF WE HAVE ONE, CONTINUE |
|
|
|
@ -5114,6 +5111,99 @@ SYS_INTSET1: |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; Z280 INTERRUPT VECTOR TABLE |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_Z280) |
|
|
|
; |
|
|
|
; THE Z280 IVT MUST BE ON A 4K BOUNDARY. IT HAS BEEN LOCATED |
|
|
|
; HERE IN AN EFFORT TO MINIMIZE WASTED SPACE. THERE SHOULD BE |
|
|
|
; A LITTLE LESS THAN 4K OF CODE ABOVE. |
|
|
|
; |
|
|
|
Z280_IVT_SLACK .EQU $1000 - ($ & $FFF) |
|
|
|
.ECHO "Z280 IVT SLACK occupies " |
|
|
|
.ECHO Z280_IVT_SLACK |
|
|
|
.ECHO " bytes.\n" |
|
|
|
;.FILL $1000 - ($ & $FFF) ; MUST BE 4K ALIGNED! |
|
|
|
.FILL Z280_IVT_SLACK ; MUST BE 4K ALIGNED! |
|
|
|
; |
|
|
|
Z280_IVT: |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
.DW 0 ; NMI MSR |
|
|
|
.DW 0 ; NMI VECTOR |
|
|
|
.DW $0000 ; INT A MSR |
|
|
|
.DW Z280_BADINT ; INT A VECTOR |
|
|
|
.DW $0000 ; INT B MSR |
|
|
|
.DW Z280_BADINT ; INT B VECTOR |
|
|
|
.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 $0000 ; COUNTER/TIMER 1 MSR |
|
|
|
.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 $0000 ; DMA CHANNEL 0 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 0 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 1 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 1 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 2 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 2 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 3 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 3 VECTOR |
|
|
|
.DW $0000 ; UART RECEIVER MSR |
|
|
|
.DW Z280_BADINT ; UART RECEIVER VECTOR |
|
|
|
.DW $0000 ; UART TRANSMITTER MSR |
|
|
|
.DW Z280_BADINT ; UART TRANSMITTER VECTOR |
|
|
|
.DW $0000 ; SINGLE STEP TRAP MSR |
|
|
|
.DW Z280_SSTEP ; SINGLE STEP TRAP VECTOR |
|
|
|
.DW $0000 ; BREAK ON HALT TRAP MSR |
|
|
|
.DW Z280_BRKHLT ; BREAK ON HALT TRAP VECTOR |
|
|
|
.DW $0000 ; DIVISION EXCEPTION TRAP MSR |
|
|
|
.DW Z280_DIVEXC ; DIVISION EXCEPTION TRAP VECTOR |
|
|
|
.DW $0000 ; STACK OVERFLOW WARNING TRAP MSR |
|
|
|
.DW Z280_STKOVR ; STACK OVERFLOW WARNING TRAP VECTOR |
|
|
|
.DW $0000 ; ACCESS VIOLATION TRAP MSR |
|
|
|
.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 $0000 ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP VECTOR |
|
|
|
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP MSR |
|
|
|
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP VECTOR |
|
|
|
.DW $0000 ; A <- EPU EXTENDED INSTRUCTION TRAP MSR |
|
|
|
.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 VECTOR |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
; PROGRAM COUNTER VALUES FOR NMI/INTA (16) |
|
|
|
.DW HBX_IV00 |
|
|
|
.DW HBX_IV01 |
|
|
|
.DW HBX_IV02 |
|
|
|
.DW HBX_IV03 |
|
|
|
.DW HBX_IV04 |
|
|
|
.DW HBX_IV05 |
|
|
|
.DW HBX_IV06 |
|
|
|
.DW HBX_IV07 |
|
|
|
.DW HBX_IV08 |
|
|
|
.DW HBX_IV09 |
|
|
|
.DW HBX_IV0A |
|
|
|
.DW HBX_IV0B |
|
|
|
.DW HBX_IV0C |
|
|
|
.DW HBX_IV0D |
|
|
|
.DW HBX_IV0E |
|
|
|
.DW HBX_IV0F |
|
|
|
; THE REMAINDER OF THE Z280 IVT IS TRUNCATED HERE BECAUSE IT |
|
|
|
; TAKES A BUNCH OF SPACE AND IS NOT USED. WE SUPPORT ONLY |
|
|
|
; 16 VECTORED INTERRUPTS AND THEY MUST BE CONNECTED TO INTA. |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; GLOBAL HBIOS FUNCTIONS |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
@ -5673,94 +5763,6 @@ HB_ALLOC1: |
|
|
|
HB_TMPSZ .DW 0 |
|
|
|
HB_TMPREF .DW 0 |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
; Z280 INTERRUPT VECTOR TABLE |
|
|
|
;================================================================================================== |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_Z280) |
|
|
|
; |
|
|
|
; THE Z280 IVT MUST BE ON A 4K BOUNDARY. IT HAS BEEN LOCATED |
|
|
|
; HERE IN AN EFFORT TO MINIMIZE WASTED SPACE. THERE SHOULD BE |
|
|
|
; A LITTLE LESS THAN 4K OF CODE ABOVE. |
|
|
|
; |
|
|
|
.FILL $1000 - ($ & $FFF) ; MUST BE 4K ALIGNED! |
|
|
|
; |
|
|
|
Z280_IVT: |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
.DW 0 ; NMI MSR |
|
|
|
.DW 0 ; NMI VECTOR |
|
|
|
.DW $0000 ; INT A MSR |
|
|
|
.DW Z280_BADINT ; INT A VECTOR |
|
|
|
.DW $0000 ; INT B MSR |
|
|
|
.DW Z280_BADINT ; INT B VECTOR |
|
|
|
.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 $0000 ; COUNTER/TIMER 1 MSR |
|
|
|
.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 $0000 ; DMA CHANNEL 0 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 0 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 1 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 1 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 2 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 2 VECTOR |
|
|
|
.DW $0000 ; DMA CHANNEL 3 MSR |
|
|
|
.DW Z280_BADINT ; DMA CHANNEL 3 VECTOR |
|
|
|
.DW $0000 ; UART RECEIVER MSR |
|
|
|
.DW Z280_BADINT ; UART RECEIVER VECTOR |
|
|
|
.DW $0000 ; UART TRANSMITTER MSR |
|
|
|
.DW Z280_BADINT ; UART TRANSMITTER VECTOR |
|
|
|
.DW $0000 ; SINGLE STEP TRAP MSR |
|
|
|
.DW Z280_SSTEP ; SINGLE STEP TRAP VECTOR |
|
|
|
.DW $0000 ; BREAK ON HALT TRAP MSR |
|
|
|
.DW Z280_BRKHLT ; BREAK ON HALT TRAP VECTOR |
|
|
|
.DW $0000 ; DIVISION EXCEPTION TRAP MSR |
|
|
|
.DW Z280_DIVEXC ; DIVISION EXCEPTION TRAP VECTOR |
|
|
|
.DW $0000 ; STACK OVERFLOW WARNING TRAP MSR |
|
|
|
.DW Z280_STKOVR ; STACK OVERFLOW WARNING TRAP VECTOR |
|
|
|
.DW $0000 ; ACCESS VIOLATION TRAP MSR |
|
|
|
.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 $0000 ; EPU <- MEMORY EXTENDED INSTRUCTION TRAP VECTOR |
|
|
|
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP MSR |
|
|
|
.DW $0000 ; MEMORY <- EPU EXTENDED INSTRUCTION TRAP VECTOR |
|
|
|
.DW $0000 ; A <- EPU EXTENDED INSTRUCTION TRAP MSR |
|
|
|
.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 VECTOR |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
.DW 0, 0 ; RESERVED |
|
|
|
; PROGRAM COUNTER VALUES FOR NMI/INTA (16) |
|
|
|
.DW HBX_IV00 |
|
|
|
.DW HBX_IV01 |
|
|
|
.DW HBX_IV02 |
|
|
|
.DW HBX_IV03 |
|
|
|
.DW HBX_IV04 |
|
|
|
.DW HBX_IV05 |
|
|
|
.DW HBX_IV06 |
|
|
|
.DW HBX_IV07 |
|
|
|
.DW HBX_IV08 |
|
|
|
.DW HBX_IV09 |
|
|
|
.DW HBX_IV0A |
|
|
|
.DW HBX_IV0B |
|
|
|
.DW HBX_IV0C |
|
|
|
.DW HBX_IV0D |
|
|
|
.DW HBX_IV0E |
|
|
|
.DW HBX_IV0F |
|
|
|
; THE REMAINDER OF THE Z280 IVT IS TRUNCATED HERE BECAUSE IT |
|
|
|
; TAKES A BUNCH OF SPACE AND IS NOT USED. WE SUPPORT ONLY |
|
|
|
; 16 VECTORED INTERRUPTS AND THEY MUST BE CONNECTED TO INTA. |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; Z280 BANK SELECTION (CALLED FROM PROXY) |
|
|
|
; |
|
|
|
#IF (MEMMGR == MM_Z280) |
|
|
|
|