mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
NABU Stuff
- Implement Interrupt Mode 2 (Mode 1 is still default) - Implement interrupt driven keyboard support - Improve UART keyboard driver to support interrupt driven flow control
This commit is contained in:
@@ -131,7 +131,7 @@ UARTOSC .EQU 7372800 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU TRUE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -139,7 +139,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU TRUE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -141,7 +141,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -149,7 +149,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -169,7 +169,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -177,7 +177,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -128,7 +128,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -136,7 +136,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU TRUE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -133,7 +133,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU TRUE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -141,7 +141,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -134,7 +134,7 @@ UARTENABLE .EQU FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -142,7 +142,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -135,7 +135,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU TRUE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -143,7 +143,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU TRUE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -145,7 +145,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -153,7 +153,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -133,7 +133,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -141,7 +141,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -128,7 +128,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU TRUE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -136,7 +136,6 @@ UARTMFP .EQU TRUE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -139,7 +139,7 @@ UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG | SER_RTS ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU FALSE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -147,7 +147,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU TRUE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
ASCIINTS .EQU TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
|
||||
@@ -126,7 +126,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -134,7 +134,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -115,7 +115,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -123,7 +123,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -126,7 +126,7 @@ UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTINTS .EQU FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO ONBOARD UART
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA/DUO/NABU ONBOARD UART
|
||||
UARTSBCFORCE .EQU FALSE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
|
||||
UARTAUX .EQU FALSE ; UART: AUTO-DETECT AUX UART
|
||||
UARTCAS .EQU FALSE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
@@ -134,7 +134,6 @@ UARTMFP .EQU FALSE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU FALSE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
UARTDUAL .EQU FALSE ; UART: AUTO-DETECT DUAL UART
|
||||
UARTNABU .EQU FALSE ; UART: AUTO-DETECT NABU UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
|
||||
@@ -2371,7 +2371,7 @@ HB_CPU3:
|
||||
#ENDIF
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; SYSTEM TIME INITIALIZATION
|
||||
; SYSTEM TIMER INITIALIZATION
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
;
|
||||
#IF (PLATFORM == PLT_SBC)
|
||||
@@ -2707,6 +2707,34 @@ NXTMIO: LD A,(HL)
|
||||
NOT_REC_M2:
|
||||
;
|
||||
FPLEDS(DIAG_08)
|
||||
|
||||
#IF (PLATFORM == PLT_NABU) & TRUE
|
||||
;
|
||||
; GET CURRENT VALUE OF PSG ENABLE REGISTER
|
||||
LD A,7
|
||||
OUT (NABU_RSEL),A
|
||||
NOP
|
||||
IN A,(NABU_RDAT)
|
||||
LD B,A
|
||||
;
|
||||
; GET CURRENT VALUE OF PSG ENABLE REGISTER
|
||||
LD A,7
|
||||
OUT (NABU_RSEL),A
|
||||
NOP
|
||||
IN A,(NABU_RDAT)
|
||||
LD C,A
|
||||
;
|
||||
; DUMP IT
|
||||
CALL PC_ASTERISK
|
||||
LD A,B
|
||||
CALL PRTHEXBYTE
|
||||
LD A,C
|
||||
CALL PRTHEXBYTE
|
||||
CALL PC_ASTERISK
|
||||
;
|
||||
#ENDIF
|
||||
|
||||
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; IO PORT SCAN
|
||||
@@ -3061,6 +3089,7 @@ HB_CKBNKSIZ .EQU $-HB_CKBNK ; SIZE OF ROUTINE
|
||||
HB_ROMCKZ:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -51,10 +51,17 @@ NABU_PREINIT:
|
||||
;
|
||||
CALL NABU_SETPSG
|
||||
;
|
||||
; ADD TO INTERRUPT CHAIN
|
||||
LD HL,NABU_STAT
|
||||
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
|
||||
RET
|
||||
;#IF (INTMODE == 1)
|
||||
; ; ADD TO INTERRUPT CHAIN
|
||||
; LD HL,NABU_STAT
|
||||
; CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
|
||||
;#ENDIF
|
||||
;
|
||||
;#IF (INTMODE == 2)
|
||||
; LD HL,NABU_STAT
|
||||
; LD (IVT(INT_NABUKB)),HL ; IVT INDEX
|
||||
;#ENDIF
|
||||
; RET
|
||||
;
|
||||
NABU_INIT:
|
||||
CALL NEWLINE ; FORMATTING
|
||||
@@ -70,11 +77,15 @@ NABU_SETPSG:
|
||||
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
|
||||
; SET PORT A TO VALUE 0
|
||||
LD A,14 ; PSG R14 (PORT A DATA)
|
||||
OUT (NABU_RSEL),A ; SELECT IT
|
||||
#IF (INTMODE > 0)
|
||||
LD A,%00100000 ; ENABLE NABU KB INTS
|
||||
#ELSE
|
||||
XOR A
|
||||
#ENDIF
|
||||
OUT (NABU_RDAT),A ; SET IT
|
||||
;
|
||||
LD A,15
|
||||
OUT (NABU_RSEL),A
|
||||
@@ -84,10 +95,12 @@ NABU_SETPSG:
|
||||
; INTERRUPT ENTRY POINT
|
||||
;
|
||||
NABU_STAT:
|
||||
CALL NABU_SETPSG
|
||||
; 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
|
||||
|
||||
@@ -44,16 +44,35 @@
|
||||
; LD A,04H
|
||||
; CALL SUB12
|
||||
;
|
||||
NABUKB_DAT .EQU $90
|
||||
NABUKB_IODAT .EQU $90 ; KEYBOARD DATA (READ)
|
||||
NABUKB_IOSTAT .EQU $91 ; STATUS (READ), CMD (WRITE)
|
||||
;
|
||||
DEVECHO "NABUKB: IO="
|
||||
DEVECHO NABUKB_DAT
|
||||
DEVECHO NABUKB_IODAT
|
||||
DEVECHO "\n"
|
||||
;
|
||||
; SETUP INTERRUPT HANDLING, IF ENABLED
|
||||
;
|
||||
NABUKB_PREINIT:
|
||||
#IF (INTMODE == 1)
|
||||
; ADD TO INTERRUPT CHAIN
|
||||
LD HL,NABUKB_INT
|
||||
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
|
||||
#ENDIF
|
||||
;
|
||||
#IF (INTMODE == 2)
|
||||
; INSTALL VECTOR
|
||||
LD HL,NABUKB_INT
|
||||
LD (IVT(INT_NABUKB)),HL ; IVT INDEX
|
||||
#ENDIF
|
||||
RET
|
||||
;
|
||||
; INITIALZIZE THE KEYBOARD CONTROLLER.
|
||||
;
|
||||
NABUKB_INIT:
|
||||
CALL NEWLINE
|
||||
PRTS("NABUKB: IO=0x$")
|
||||
LD A,NABUKB_DAT
|
||||
LD A,NABUKB_IODAT
|
||||
CALL PRTHEXBYTE
|
||||
;
|
||||
XOR A
|
||||
@@ -72,37 +91,83 @@ NABUKB_INIT:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
#IF (INTMODE > 0)
|
||||
;
|
||||
; INTERRUPT HANDLER FOR NABU KEYBOARD. HANDLES INTERRUPTS FOR EITHER
|
||||
; INT MODE 1 OR INT MODE 2. THE KEYBOARD BUFFER IS JUST A SINGLE CHAR
|
||||
; AT THIS POINT. NEW CHARACTERS ARRIVING WHEN THE BUFFER IS FULL WILL
|
||||
; BE DISCARDED.
|
||||
;
|
||||
NABUKB_INT:
|
||||
IN A,(NABUKB_IOSTAT) ; GET KBD STATUS
|
||||
AND $02 ; CHECK DATA RDY BIT
|
||||
RET Z ; ABORT W/ Z (INT NOT HANDLED)
|
||||
;
|
||||
;CALL PC_LT ; *DEBUG*
|
||||
IN A,(NABUKB_IODAT) ; GET THE KEY
|
||||
LD E,A ; STASH IN REG E
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
;CALL PC_GT ; *DEBUG*
|
||||
;
|
||||
LD A,(NABUKB_KSTAT) ; GET KEY BUFFER STAT
|
||||
OR A ; SET FLAGS
|
||||
RET NZ ; BUFFER FULL, BAIL OUT W/ NZ (INT HANDLED), KEY DISCARDED
|
||||
;
|
||||
LD A,E ; RECOVER THE KEY CODE
|
||||
CALL NABUKB_XB ; TRANSLATE AND BUFFER KEY
|
||||
OR $FF ; SIGNAL INT HANDLED
|
||||
RET ; DONE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
; NORMAL HBIOS CHAR INPUT STATUS. IF INTERRUPTS ARE NOT ACTIVE, THEN
|
||||
; KEYBOARD POLLING IS IMPLEMENTED HERE.
|
||||
;
|
||||
NABUKB_STAT:
|
||||
LD A,(NABUKB_KSTAT) ; GET KEY WAITING STATUS
|
||||
OR A ; SET FLAGS
|
||||
#IF (INTMODE > 0)
|
||||
JR Z,NABUKB_STATX ; BAIL OUT W/ Z (NO KEY)
|
||||
RET ; KEY WAITING, ALL SET
|
||||
#ELSE
|
||||
RET NZ ; KEY WAITING, ALL SET
|
||||
IN A,(NABUKB_DAT+1) ; GET BKD STATUS
|
||||
IN A,(NABUKB_IOSTAT) ; GET KBD STATUS
|
||||
AND $02 ; CHECK DATA RDY BIT
|
||||
JR Z,NABUKB_STATX ; BAIL OUT IF NOT
|
||||
IN A,(NABUKB_DAT) ; GET THE KEY
|
||||
BIT 7,A ; HIGH BIT IS SPECIAL CHAR
|
||||
JR Z,NABUKB_STAT2 ; IF NORMAL CHAR, BUFFER IT
|
||||
CP $90 ; START OF ERR CODES
|
||||
JR C,NABUKB_STAT1 ; NOT ERR CODE, CONTINUE
|
||||
CP $A0 ; END OF ERR CODES
|
||||
JR NC,NABUKB_STAT1 ; NOT ERR CODE, CONTINUE
|
||||
JR NABUKB_STATX ; IS ERR CODE, IGNORE IT
|
||||
NABUKB_STAT1:
|
||||
CP $E0 ; SPECIAL CHARACTER?
|
||||
JR C,NABUKB_STAT2 ; IF NOT, SKIP XLAT, BUFFER KEY
|
||||
CALL NABUKB_XLAT ; IF SO, TRANSLATE IT
|
||||
JR C,NABUKB_STATX ; CF INDICATES INVALID
|
||||
NABUKB_STAT2:
|
||||
LD (NABUKB_KEY),A ; BUFFER IT
|
||||
LD A,1 ; SIGNAL KEY WAITING
|
||||
LD (NABUKB_KSTAT),A ; SAVE IT
|
||||
JR Z,NABUKB_STATX ; BAIL OUT W/ Z (NO KEY)
|
||||
IN A,(NABUKB_IODAT) ; GET THE KEY
|
||||
CALL NABUKB_XB ; TRANSLATE AND BUFFER KEY
|
||||
LD A,(NABUKB_KSTAT) ; GET NEW KEY WAITING STATUS
|
||||
OR A ; SET FLAGS
|
||||
RET ; DONE
|
||||
#ENDIF
|
||||
;
|
||||
NABUKB_STATX:
|
||||
XOR A ; SIGNAL NO CHAR READY
|
||||
JP CIO_IDLE ; RETURN VIA IDLE PROCESSOR
|
||||
;
|
||||
; ROUTINE TO TRANSLATE AND BUFFER INCOMING NABU KEYBOARD KEYCODES
|
||||
;
|
||||
NABUKB_XB:
|
||||
BIT 7,A ; HIGH BIT IS SPECIAL CHAR
|
||||
JR Z,NABUKB_XB2 ; IF NORMAL CHAR, BUFFER IT
|
||||
CP $90 ; START OF ERR CODES
|
||||
JR C,NABUKB_XB1 ; NOT ERR CODE, CONTINUE
|
||||
CP $A0 ; END OF ERR CODES
|
||||
JR NC,NABUKB_XB1 ; NOT ERR CODE, CONTINUE
|
||||
RET ; DISCARD ERR CODE AND RETURN
|
||||
NABUKB_XB1:
|
||||
CP $E0 ; SPECIAL CHARACTER?
|
||||
JR C,NABUKB_XB2 ; IF NOT, SKIP XLAT, BUFFER KEY
|
||||
CALL NABUKB_XLAT ; IF SO, TRANSLATE IT
|
||||
RET C ; CF INDICATES INVALID, DISCARD AND RETURN
|
||||
NABUKB_XB2:
|
||||
LD (NABUKB_KEY),A ; BUFFER IT
|
||||
LD A,1 ; SIGNAL KEY WAITING
|
||||
LD (NABUKB_KSTAT),A ; SAVE IT
|
||||
RET ; DONE
|
||||
;
|
||||
; ROUTINE TO TRANSLATE SPECIAL NABU KEYBOARD KEY CODES
|
||||
;
|
||||
NABUKB_XLAT:
|
||||
; NABU KEYBOARD USES $E0-$FF FOR SPECIAL KEYS
|
||||
; HERE WE TRANSLATE TO ROMWBW SPECIAL KEYS AS BEST WE CAN
|
||||
@@ -121,10 +186,15 @@ NABUKB_XLAT1:
|
||||
SCF ; SIGNAL INVALID
|
||||
RET ; AND DONE
|
||||
;
|
||||
; FLUSH KEYBOARD BUFFER
|
||||
;
|
||||
NABUKB_FLUSH:
|
||||
XOR A
|
||||
LD (NABUKB_KSTAT),A
|
||||
RET
|
||||
;
|
||||
; WAIT FOR A KEY TO BE READY AND RETURN IT.
|
||||
;
|
||||
NABUKB_READ:
|
||||
CALL NABUKB_STAT ; CHECK FOR KEY READY
|
||||
JR Z,NABUKB_READ ; LOOP TIL ONE IS READY
|
||||
@@ -136,8 +206,10 @@ NABUKB_READ:
|
||||
LD (NABUKB_KSTAT),A ; CLEAR KEY WAITING STATUS
|
||||
RET ; AND RETURN
|
||||
;
|
||||
; HELPER ROUTINE TO WRITE
|
||||
;
|
||||
NABUKB_PUT:
|
||||
OUT (NABUKB_DAT+1),A
|
||||
OUT (NABUKB_IOSTAT),A
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
@@ -155,36 +227,37 @@ NABUKB_KEY .DB 0 ; KEY BUFFER
|
||||
; NABU KEY CODE $E0 AND HANDLES $20 POSSIBLE VALUES ($E0-$FF)
|
||||
; THE SPECIAL KEYS SEND A SPECIFIC KEYCODE TO INDICATE DOWN (KEY
|
||||
; PRESSED) AND UP (KEY RELEASED). WE WILL ARBITRARILY CHOOSE TO
|
||||
; RESPOND TO KEY RELEASED.
|
||||
; RESPOND TO KEY PRESSED. a TRANSLATION VALUE OF $00 MEANS THAT THE
|
||||
; KEY CODE SHOULD BE DISCARDED.
|
||||
;
|
||||
NABUKB_XTBL:
|
||||
.DB $00 ; $E0, RIGHT ARROW (DN)
|
||||
.DB $00 ; $E1, LEFT ARROW (DN)
|
||||
.DB $00 ; $E2, UP ARROW (DN)
|
||||
.DB $00 ; $E3, DOWN ARROW (DN)
|
||||
.DB $00 ; $E4, PAGE RIGHT (DN)
|
||||
.DB $00 ; $E5, PAGE LEFT (DN)
|
||||
.DB $00 ; $E6, NO (DN)
|
||||
.DB $00 ; $E7, YES (DN)
|
||||
.DB $00 ; $E8, SYM (DN)
|
||||
.DB $00 ; $E9, PAUSE (DN)
|
||||
.DB $00 ; $EA, TV/NABU (DN)
|
||||
.DB $F9 ; $E0, RIGHT ARROW (DN) -> RIGHT ARROW
|
||||
.DB $F8 ; $E1, LEFT ARROW (DN) -> LEFT ARROW
|
||||
.DB $F6 ; $E2, UP ARROW (DN) -> UP ARROW
|
||||
.DB $F7 ; $E3, DOWN ARROW (DN) -> DOWN ARROW
|
||||
.DB $F5 ; $E4, PAGE RIGHT (DN) -> PAGE DOWN
|
||||
.DB $F4 ; $E5, PAGE LEFT (DN) -> PAGE UP
|
||||
.DB $F3 ; $E6, NO (DN) -> END
|
||||
.DB $F2 ; $E7, YES (DN) -> HOME
|
||||
.DB $EE ; $E8, SYM (DN) -> SYSRQ
|
||||
.DB $EF ; $E9, PAUSE (DN) -> PAUSE
|
||||
.DB $00 ; $EA, TV/NABU (DN) -> APP
|
||||
.DB $00 ; $EB, N/A
|
||||
.DB $00 ; $EC, N/A
|
||||
.DB $00 ; $ED, N/A
|
||||
.DB $00 ; $EE, N/A
|
||||
.DB $00 ; $EF, N/A
|
||||
.DB $F9 ; $F0, RIGHT ARROW (UP) -> RIGHT ARROW
|
||||
.DB $F8 ; $F1, LEFT ARROW (UP) -> LEFT ARROW
|
||||
.DB $F6 ; $F2, UP ARROW (UP) -> UP ARROW
|
||||
.DB $F7 ; $F3, DOWN ARROW (UP) -> DOWN ARROW
|
||||
.DB $F5 ; $F4, PAGE RIGHT (UP) -> PAGE DOWN
|
||||
.DB $F4 ; $F5, PAGE LEFT (UP) -> PAGE UP
|
||||
.DB $F3 ; $F6, NO (UP) -> END
|
||||
.DB $F2 ; $F7, YES (UP) -> HOME
|
||||
.DB $EC ; $F8, SYM (UP) -> SYSRQ
|
||||
.DB $EE ; $F9, PAUSE (UP) -> PAUSE
|
||||
.DB $EF ; $FA, TV/NABU (UP) -> APP
|
||||
.DB $00 ; $F0, RIGHT ARROW (UP)
|
||||
.DB $00 ; $F1, LEFT ARROW (UP)
|
||||
.DB $00 ; $F2, UP ARROW (UP)
|
||||
.DB $00 ; $F3, DOWN ARROW (UP)
|
||||
.DB $00 ; $F4, PAGE RIGHT (UP)
|
||||
.DB $00 ; $F5, PAGE LEFT (UP)
|
||||
.DB $00 ; $F6, NO (UP)
|
||||
.DB $00 ; $F7, YES (UP)
|
||||
.DB $00 ; $F8, SYM (UP)
|
||||
.DB $00 ; $F9, PAUSE (UP)
|
||||
.DB $00 ; $FA, TV/NABU (UP)
|
||||
.DB $00 ; $FB, N/A
|
||||
.DB $00 ; $FC, N/A
|
||||
.DB $00 ; $FD, N/A
|
||||
|
||||
@@ -1049,7 +1049,22 @@ INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
|
||||
|
||||
#ENDIF
|
||||
|
||||
#IF ((PLATFORM != PLT_MBC) & (PLATFORM != PLT_DUO))
|
||||
#IF (PLATFORM == PLT_NABU)
|
||||
;
|
||||
; NABU Z80 IM2 INTERRUPTS
|
||||
;
|
||||
INT_HCAARCV .EQU 0 ; UART 0
|
||||
INT_HCAASND .EQU 1 ; UART 1 ?????
|
||||
INT_NABUKB .EQU 2 ; ZILOG CTC 0, CHANNEL A
|
||||
INT_VDP .EQU 3 ; ZILOG CTC 0, CHANNEL B
|
||||
INT_OPTCRD0 .EQU 4 ; ZILOG CTC 0, CHANNEL C
|
||||
INT_OPTCRD1 .EQU 5 ; ZILOG CTC 0, CHANNEL D
|
||||
INT_OPTCRD2 .EQU 6 ; ZILOG SIO 0, CHANNEL A & B
|
||||
INT_OPTCRD3 .EQU 7 ; ZILOG SIO 1, CHANNEL A & B
|
||||
|
||||
#ENDIF
|
||||
|
||||
#IF ((PLATFORM != PLT_MBC) & (PLATFORM != PLT_DUO) & (PLATFORM != PLT_NABU))
|
||||
|
||||
; GENERIC Z80 M2 INTERRUPTS
|
||||
|
||||
|
||||
@@ -179,6 +179,9 @@ NABUKBENABLE .SET TRUE ; INCLUDE NABU KEYBOARD SUPPORT
|
||||
;======================================================================
|
||||
;
|
||||
TMS_PREINIT:
|
||||
#IF (NABUKBENABLE == TRUE)
|
||||
CALL NABUKB_PREINIT
|
||||
#ENDIF
|
||||
; DISABLE INTERRUPT GENERATION
|
||||
LD A, (TMS_INITVDU_REG_1)
|
||||
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT
|
||||
|
||||
@@ -57,7 +57,14 @@ UART_CTSBAD .EQU 4 ; CTS STALL DETECTED
|
||||
#IF (PLATFORM == PLT_DUO)
|
||||
UARTSBASE .EQU $58
|
||||
UARTDBASE .EQU $70
|
||||
#ELSE
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PLATFORM == PLT_NABU)
|
||||
UARTSBASE .EQU $48
|
||||
UARTDBASE .EQU $80
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((PLATFORM != PLT_DUO) & (PLATFORM != PLT_NABU))
|
||||
UARTSBASE .EQU $68
|
||||
UARTDBASE .EQU $80
|
||||
#ENDIF
|
||||
@@ -67,7 +74,6 @@ UARTCBASE .EQU $80
|
||||
UARTMBASE .EQU $18
|
||||
UART4BASE .EQU $C0
|
||||
UARTRBASE .EQU $A0
|
||||
UARTNBASE .EQU $48
|
||||
;
|
||||
#IF (UARTINTS)
|
||||
;
|
||||
@@ -79,7 +85,6 @@ UART1_IVT .EQU IVT(INT_UART1)
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
#DEFINE UART_INP(RID) CALL UART_INP_IMP \ .DB RID
|
||||
#DEFINE UART_OUTP(RID) CALL UART_OUTP_IMP \ .DB RID
|
||||
@@ -1185,18 +1190,6 @@ UART_CFG_MFP:
|
||||
DEVECHO "\n"
|
||||
;
|
||||
#ENDIF
|
||||
#IF (UARTNABU)
|
||||
.DB 0 ; DEVICE NUMBER (UPDATED DURING INIT)
|
||||
.DB 0 ; UART TYPE
|
||||
.DB UARTNBASE ; IO PORT BASE (RBR, THR)
|
||||
.DB UARTNBASE + UART_LSR ; LINE STATUS PORT (LSR)
|
||||
.DW UARTCFG ; LINE CONFIGURATION
|
||||
.DW 0 ; SHOULD NEVER NEED INT HANDLER
|
||||
;
|
||||
DEVECHO "UART: MODE=NABU, IO="
|
||||
DEVECHO UARTNBASE
|
||||
DEVECHO "\n"
|
||||
#ENDIF
|
||||
;
|
||||
UART_CNT .EQU ($ - UART_CFG) / 8
|
||||
;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 5
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.5.0-dev.36"
|
||||
#DEFINE BIOSVER "3.5.0-dev.37"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 5
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.5.0-dev.36"
|
||||
db "3.5.0-dev.37"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user