Browse Source

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
pull/396/head
Wayne Warthen 2 years ago
parent
commit
e0414bca05
  1. 3
      Source/HBIOS/cfg_duo.asm
  2. 3
      Source/HBIOS/cfg_dyno.asm
  3. 3
      Source/HBIOS/cfg_epitx.asm
  4. 3
      Source/HBIOS/cfg_heath.asm
  5. 3
      Source/HBIOS/cfg_master.asm
  6. 3
      Source/HBIOS/cfg_mbc.asm
  7. 3
      Source/HBIOS/cfg_mk4.asm
  8. 3
      Source/HBIOS/cfg_mon.asm
  9. 3
      Source/HBIOS/cfg_n8.asm
  10. 3
      Source/HBIOS/cfg_nabu.asm
  11. 3
      Source/HBIOS/cfg_rcz180.asm
  12. 3
      Source/HBIOS/cfg_rcz280.asm
  13. 3
      Source/HBIOS/cfg_rcz80.asm
  14. 3
      Source/HBIOS/cfg_rph.asm
  15. 3
      Source/HBIOS/cfg_s100.asm
  16. 3
      Source/HBIOS/cfg_sbc.asm
  17. 3
      Source/HBIOS/cfg_scz180.asm
  18. 3
      Source/HBIOS/cfg_z80retro.asm
  19. 3
      Source/HBIOS/cfg_zeta.asm
  20. 3
      Source/HBIOS/cfg_zeta2.asm
  21. 31
      Source/HBIOS/hbios.asm
  22. 33
      Source/HBIOS/nabu.asm
  23. 157
      Source/HBIOS/nabukb.asm
  24. 17
      Source/HBIOS/std.asm
  25. 3
      Source/HBIOS/tms.asm
  26. 23
      Source/HBIOS/uart.asm
  27. 2
      Source/ver.inc
  28. 2
      Source/ver.lib

3
Source/HBIOS/cfg_duo.asm

@ -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)
;

3
Source/HBIOS/cfg_dyno.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

3
Source/HBIOS/cfg_epitx.asm

@ -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

3
Source/HBIOS/cfg_heath.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)
;

3
Source/HBIOS/cfg_master.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

3
Source/HBIOS/cfg_mbc.asm

@ -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)
;

3
Source/HBIOS/cfg_mk4.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

3
Source/HBIOS/cfg_mon.asm

@ -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)
;

3
Source/HBIOS/cfg_n8.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

3
Source/HBIOS/cfg_nabu.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 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)
;

3
Source/HBIOS/cfg_rcz180.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

3
Source/HBIOS/cfg_rcz280.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)
;

3
Source/HBIOS/cfg_rcz80.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)
;

3
Source/HBIOS/cfg_rph.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

3
Source/HBIOS/cfg_s100.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

3
Source/HBIOS/cfg_sbc.asm

@ -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)
;

3
Source/HBIOS/cfg_scz180.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

3
Source/HBIOS/cfg_z80retro.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
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)
;

3
Source/HBIOS/cfg_zeta.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)
;

3
Source/HBIOS/cfg_zeta2.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)
;

31
Source/HBIOS/hbios.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
;
;--------------------------------------------------------------------------------------------------

33
Source/HBIOS/nabu.asm

@ -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

157
Source/HBIOS/nabukb.asm

@ -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,36 +91,82 @@ 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
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_STAT2 ; IF NORMAL CHAR, BUFFER IT
JR Z,NABUKB_XB2 ; IF NORMAL CHAR, BUFFER IT
CP $90 ; START OF ERR CODES
JR C,NABUKB_STAT1 ; NOT ERR CODE, CONTINUE
JR C,NABUKB_XB1 ; 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:
JR NC,NABUKB_XB1 ; NOT ERR CODE, CONTINUE
RET ; DISCARD ERR CODE AND RETURN
NABUKB_XB1:
CP $E0 ; SPECIAL CHARACTER?
JR C,NABUKB_STAT2 ; IF NOT, SKIP XLAT, BUFFER KEY
JR C,NABUKB_XB2 ; IF NOT, SKIP XLAT, BUFFER KEY
CALL NABUKB_XLAT ; IF SO, TRANSLATE IT
JR C,NABUKB_STATX ; CF INDICATES INVALID
NABUKB_STAT2:
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
OR A ; SET FLAGS
RET ; DONE
;
NABUKB_STATX:
XOR A ; SIGNAL NO CHAR READY
JP CIO_IDLE ; RETURN VIA IDLE PROCESSOR
; ROUTINE TO TRANSLATE SPECIAL NABU KEYBOARD KEY CODES
;
NABUKB_XLAT:
; NABU KEYBOARD USES $E0-$FF FOR SPECIAL KEYS
@ -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

17
Source/HBIOS/std.asm

@ -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

3
Source/HBIOS/tms.asm

@ -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

23
Source/HBIOS/uart.asm

@ -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
Source/ver.inc

@ -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

2
Source/ver.lib

@ -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

Loading…
Cancel
Save