Files
RomWBW/Source/HBIOS/nabu.asm

45 lines
1010 B
NASM

;
;==================================================================================================
; 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)
INC HL
LD (NABU_TICCNT),HL
LD A,(NABU_HBTICK)
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
XOR A
LD (NABU_HBTICK),A ; RESET HBTICK COUNTER
INC A ; INTERRUPT HANDLED
RET
;
NABU_HBTICK:
.DB 0
;