; ;================================================================================================== ; 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 ;