mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
;
|
|
;==================================================================================================
|
|
; NABU INTERRUPT INTERCEPTOR
|
|
;==================================================================================================
|
|
NABU_INT1CLR .EQU $68
|
|
NABU_TICCNT .EQU $FFEA ; TICCNT AT $FFEA IS COPIED DOWN TO $000B
|
|
;
|
|
;
|
|
; HARDWARE RESET PRIOR TO ROMWBW CONSOLE INITIALIZATION
|
|
;
|
|
NABU_PREINIT:
|
|
LD HL,NABU_STAT
|
|
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
|
|
RET
|
|
;
|
|
NABU_INIT:
|
|
CALL NEWLINE ; FORMATTING
|
|
PRTS("NABU: INT1$")
|
|
XOR A
|
|
OUT (NABU_INT1CLR),A
|
|
RET ; DONE
|
|
;
|
|
; INTERRUPT ENTRY POINT
|
|
;
|
|
NABU_STAT:
|
|
XOR A
|
|
OUT (NABU_INT1CLR),A ; CLEAR THE INTERRUPT
|
|
LD HL,(NABU_TICCNT) ; INCREMENT NABU TICK COUNTER
|
|
INC HL ; ... IN HBIOS PROXY
|
|
LD (NABU_TICCNT),HL
|
|
LD A,(NABU_HBTICK) ; INCREMENT INTERNAL TICK CTR
|
|
INC A
|
|
LD (NABU_HBTICK),A
|
|
CP $0A ; CALL HB_TICK EVERY 10 INTERRUPTS (50HZ)
|
|
RET NZ ; NOT TIME THEN JUST RETURN
|
|
CALL HB_TICK ; DO NORMAL HBIOS TICK
|
|
XOR A
|
|
LD (NABU_HBTICK),A ; RESET HBTICK COUNTER
|
|
INC A ; INTERRUPT HANDLED
|
|
RET
|
|
;
|
|
NABU_HBTICK:
|
|
.DB 0 ; INTERNAL TICK CTR
|
|
;
|
|
|