mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update nabu.asm
Ongoing work on NABU interrupt processing. Co-Authored-By: Les Bird <lesbird65@gmail.com>
This commit is contained in:
@@ -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
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user