|
|
|
@ -49,17 +49,7 @@ NABU_PREINIT: |
|
|
|
; PORT A IN WRITE MODE AND SET ALL BITS TO ZERO |
|
|
|
; PORT B IN READ MODE |
|
|
|
; |
|
|
|
; SET I/O PORT MODES |
|
|
|
LD A,7 ; PSG R7 (ENABLE REG) |
|
|
|
OUT (NABU_RSEL),A ; SELECT IT |
|
|
|
LD A,%01000000 ; PORT B INPUT, PORT A OUPUT |
|
|
|
OUT (NABU_RDAT),A ; SET IT |
|
|
|
; |
|
|
|
; SET PORT A TO VALUE 0 |
|
|
|
LD A,14 ; PSG R16 (PORT A DATA) |
|
|
|
OUT (NABU_RSEL),A ; SELECT IT |
|
|
|
XOR A ; VALUE 0 |
|
|
|
OUT (NABU_RDAT),A ; SET IT |
|
|
|
CALL NABU_SETPSG |
|
|
|
; |
|
|
|
; ADD TO INTERRUPT CHAIN |
|
|
|
LD HL,NABU_STAT |
|
|
|
@ -69,26 +59,45 @@ NABU_PREINIT: |
|
|
|
NABU_INIT: |
|
|
|
CALL NEWLINE ; FORMATTING |
|
|
|
PRTS("NABU: INT1$") |
|
|
|
XOR A |
|
|
|
OUT (NABU_INT1CLR),A |
|
|
|
; XOR A |
|
|
|
; OUT (NABU_INT1CLR),A |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
NABU_SETPSG: |
|
|
|
; SET I/O PORT MODES |
|
|
|
LD A,7 ; PSG R7 (ENABLE REG) |
|
|
|
OUT (NABU_RSEL),A ; SELECT IT |
|
|
|
LD A,%01111111 ; PORT B INPUT, PORT A OUPUT |
|
|
|
OUT (NABU_RDAT),A ; SET IT |
|
|
|
; |
|
|
|
; ; SET PORT A TO VALUE 0 |
|
|
|
; LD A,14 ; PSG R14 (PORT A DATA) |
|
|
|
; OUT (NABU_RSEL),A ; SELECT IT |
|
|
|
; XOR A ; VALUE 0 |
|
|
|
; OUT (NABU_RDAT),A ; SET IT |
|
|
|
; |
|
|
|
LD A,15 |
|
|
|
OUT (NABU_RSEL),A |
|
|
|
IN A,(NABU_RIN) |
|
|
|
RET |
|
|
|
; |
|
|
|
; INTERRUPT ENTRY POINT |
|
|
|
; |
|
|
|
NABU_STAT: |
|
|
|
XOR A |
|
|
|
OUT (NABU_INT1CLR),A ; CLEAR THE INTERRUPT |
|
|
|
CALL NABU_SETPSG |
|
|
|
; 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 |
|
|
|
; 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 |
|
|
|
; LD (NABU_HBTICK),A ; RESET HBTICK COUNTER |
|
|
|
INC A ; INTERRUPT HANDLED |
|
|
|
RET |
|
|
|
; |
|
|
|
|