|
|
|
@ -84,12 +84,24 @@ MODCNT .SET MODCNT + 1 |
|
|
|
; |
|
|
|
#IF (INTMODE == 0) |
|
|
|
; NO INTERRUPT HANDLING |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI ; |
|
|
|
#ELSE |
|
|
|
; MODE 1 OR 2 INTERRUPT HANDLING |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI EI |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI ; |
|
|
|
#DEFINE HB_IM1DI ; |
|
|
|
#DEFINE HB_IM1EI ; |
|
|
|
#ENDIF |
|
|
|
#IF (INTMODE == 1) |
|
|
|
; MODE 1 INTERRUPT HANDLING |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI EI |
|
|
|
#DEFINE HB_IM1DI DI |
|
|
|
#DEFINE HB_IM1EI EI |
|
|
|
#ENDIF |
|
|
|
#IF (INTMODE == 2) |
|
|
|
; MODE 2 INTERRUPT HANDLING |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI EI |
|
|
|
#DEFINE HB_IM1DI ; |
|
|
|
#DEFINE HB_IM1EI ; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; |
|
|
|
@ -294,6 +306,7 @@ HBX_ROM: |
|
|
|
HBX_ROM: |
|
|
|
RLCA ; TIMES 2 - GET 16K PAGE INSTEAD OF 32K |
|
|
|
OUT (MPGSEL_0),A ; BANK_0: 0K - 16K |
|
|
|
;OUT (DIAGP),A ; *DEBUG* |
|
|
|
INC A ; |
|
|
|
OUT (MPGSEL_1),A ; BANK_1: 16K - 32K |
|
|
|
RET ; DONE |
|
|
|
@ -395,7 +408,7 @@ HBX_BC_ITER: |
|
|
|
CALL HBX_BNKSEL ; SWITCH TO DEST BANK |
|
|
|
LDIR ; BUF (HL) -> DE, BC BYTES, DE UPDATED DEST ADR |
|
|
|
POP HL ; RECOVER UPDATED SRC ADR |
|
|
|
; HL = UPD SRC, DE = UPD DEST, BC = 0 |
|
|
|
; HL = UPDATED SRC, DE = UPDATED DEST, BC = 0 |
|
|
|
RET |
|
|
|
; |
|
|
|
; CALL A ROUTINE IN ANOTHER BANK. |
|
|
|
@ -2001,10 +2014,21 @@ HB_TIMINT2: |
|
|
|
; BAD INTERRUPT HANDLER |
|
|
|
; |
|
|
|
HB_BADINT: |
|
|
|
|
|
|
|
#IF 0 ; *DEBUG* |
|
|
|
;LD HL,HB_BADINTCNT |
|
|
|
;INC (HL) |
|
|
|
;LD A,(HL) |
|
|
|
;OUT (DIAGP),A |
|
|
|
;OR $FF |
|
|
|
;RET |
|
|
|
;HB_BADINTCNT .DB 0 |
|
|
|
#ENDIF ; *DEBUG* |
|
|
|
|
|
|
|
CALL NEWLINE2 |
|
|
|
PRTS("+++ BAD INT: $") |
|
|
|
CALL _REGDMP |
|
|
|
CALL CONTINUE |
|
|
|
;CALL CONTINUE |
|
|
|
OR $FF ; SIGNAL INTERRUPT HANDLED |
|
|
|
RET |
|
|
|
; |
|
|
|
|