Browse Source

Merge commit 'e1beb01a5181939abb0da8253b095e24f596c214' into map/userguide-fat

pull/421/head
Mark Pruden 1 year ago
parent
commit
2c985070e8
  1. 2
      Source/HBIOS/Makefile.new
  2. 1
      Source/HBIOS/cfg_duo.asm
  3. 1
      Source/HBIOS/cfg_dyno.asm
  4. 1
      Source/HBIOS/cfg_epitx.asm
  5. 1
      Source/HBIOS/cfg_fz80.asm
  6. 3
      Source/HBIOS/cfg_gmz180.asm
  7. 1
      Source/HBIOS/cfg_heath.asm
  8. 3
      Source/HBIOS/cfg_master.asm
  9. 1
      Source/HBIOS/cfg_mbc.asm
  10. 1
      Source/HBIOS/cfg_mk4.asm
  11. 1
      Source/HBIOS/cfg_mon.asm
  12. 1
      Source/HBIOS/cfg_n8.asm
  13. 1
      Source/HBIOS/cfg_nabu.asm
  14. 1
      Source/HBIOS/cfg_rcz180.asm
  15. 1
      Source/HBIOS/cfg_rcz280.asm
  16. 1
      Source/HBIOS/cfg_rcz80.asm
  17. 1
      Source/HBIOS/cfg_rph.asm
  18. 1
      Source/HBIOS/cfg_s100.asm
  19. 1
      Source/HBIOS/cfg_sbc.asm
  20. 1
      Source/HBIOS/cfg_scz180.asm
  21. 1
      Source/HBIOS/cfg_z80retro.asm
  22. 1
      Source/HBIOS/cfg_zeta.asm
  23. 1
      Source/HBIOS/cfg_zeta2.asm
  24. 316
      Source/HBIOS/gm7303.asm
  25. 21
      Source/HBIOS/hbios.asm
  26. 2
      Source/ver.inc
  27. 2
      Source/ver.lib

2
Source/HBIOS/Makefile.new

@ -5,7 +5,7 @@ DIST_OBJECTS := \
RCZ80_zrc_ram RCZ80_zrc512 RPH_std SBC_std SBC_simh MBC_std \ RCZ80_zrc_ram RCZ80_zrc512 RPH_std SBC_std SBC_simh MBC_std \
DUO_std SCZ180_sc126 SCZ180_sc130 SCZ180_sc131 SCZ180_sc140 \ DUO_std SCZ180_sc126 SCZ180_sc130 SCZ180_sc131 SCZ180_sc140 \
SCZ180_sc503 SCZ180_sc700 S100_std UNA_std Z80RETRO_std \ SCZ180_sc503 SCZ180_sc700 S100_std UNA_std Z80RETRO_std \
ZETA_std ZETA2_std HEATH_std EPITX_std
ZETA_std ZETA2_std HEATH_std EPITX_std GMZ180_std
# RCZ80_mt RCZ80_duart MON_std # RCZ80_mt RCZ80_duart MON_std
OBJECTS := $(DIST_OBJECTS) OBJECTS := $(DIST_OBJECTS)

1
Source/HBIOS/cfg_duo.asm

@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_dyno.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_epitx.asm

@ -96,6 +96,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_fz80.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

3
Source/HBIOS/cfg_gmz180.asm

@ -95,6 +95,9 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU TRUE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
GM7303BASE .EQU $30 ; BASE ADDRESS FOR GM3703 BOARD
GM7303DSKACT .EQU TRUE ; ENABLE DISK ACTIVITY OF GM7303 LCD DISPLAY
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_heath.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU TRUE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

3
Source/HBIOS/cfg_master.asm

@ -124,6 +124,9 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
GM7303BASE .EQU $30 ; BASE ADDRESS FOR GM3703 BOARD
GM7303DSKACT .EQU TRUE ; ENABLE DISK ACTIVITY OF GM7303 LCD DISPLAY
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_mbc.asm

@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_mk4.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_mon.asm

@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_n8.asm

@ -97,6 +97,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_nabu.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_rcz180.asm

@ -101,6 +101,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY
LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_rcz280.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_rcz80.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_rph.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_s100.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_sbc.asm

@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_scz180.asm

@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY
LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_z80retro.asm

@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_zeta.asm

@ -82,6 +82,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

1
Source/HBIOS/cfg_zeta2.asm

@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL
LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY
LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER
LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY LCDDSKACT .EQU TRUE ; ENABLES DISK ACTIVITY ON LCD DISPLAY
GM7303ENABLE .EQU FALSE ; ENABLES THE PROLOG 7303 BOARD WITH 16X2 LCD
; ;
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE

316
Source/HBIOS/gm7303.asm

@ -0,0 +1,316 @@
;
;==================================================================================================
; HARDWARE SUPPORT FOR GENESS MODULES 7303 STD BUS KEYBOARD/GM7303
; - INCORPORATES HITACHI HD44780 AS 2 X 16 DISPLAY AND 24 KEY HEX KEYPAD
;==================================================================================================
;
; Heavily derived from the lcd.asm driver, but forked because the 7303 card has keyboard
; functionality as well. Eventually will be used as a Z80/180 monitor tool
;
; The GM7303 supports an LCD display while the original has 2 DL1416 starburst displays.
;==================================================================================================
;
; CARD FUNCTIONS: (BASE_IO = 0x30)
;
; 20X2 LCD 0X30 OUTPUT (D0-D7)
; 0X31 OUTPUT (D0 - LCD E)
; (D1 - LCD R/W*)
; (D2 - LCD RS)
; S1 & S2 INPUT 0x30 INPUT (BIT 6,7)
; 8 OUTPUT LEDS 0x30 OUTPUT
; KEYBOARD 0X30 OUTPUT (COLUMN BIT 0-3)
; 0X30 INPUT (ROW BIT 0-5)
;
;===================================================================================================
;
; Date Change
; 05Sep2024 Initial development - basic init functions
; 06Sep2024 Working - Cleaned out functions that wont be used - TODO - Implement keyboard
;
;
GM7303_DATA .EQU GM7303BASE + 0 ; WRITE
GM7303_CTRL .EQU GM7303BASE + 1 ; WRITE
GM7303_KYBD .EQU GM7303BASE + 0 ; READ/WRITE
;
GM7303_FUNC_CLEAR .EQU $01 ; CLEAR DISPLAY
GM7303_FUNC_HOME .EQU $02 ; HOME CURSOR & REMOVE ALL SHIFTING
GM7303_FUNC_ENTRY .EQU $04 ; SET CUR DIR AND DISPLAY SHIFT
GM7303_FUNC_DISP .EQU $08 ; DISP, CUR, BLINK ON/OFF
GM7303_FUNC_SHIFT .EQU $10 ; MOVE CUR / SHIFT DISP
GM7303_FUNC_SET .EQU $20 ; SET INTERFACE PARAMS
GM7303_FUNC_CGADR .EQU $40 ; SET CGRAM ADRESS
GM7303_FUNC_DDADR .EQU $80 ; SET DDRAM ADDRESS
;
DEVECHO "GM7303: IO="
DEVECHO GM7303BASE
DEVECHO "\n"
;
; HARDWARE RESET PRIOR TO ROMWBW CONSOLE INITIALIZATION
;
GM7303_PREINIT:
; TEST FOR PRESENCE...
CALL GM7303_DETECT ; PROBE FOR HARDWARE
LD A,(GM7303_PRESENT) ; GET PRESENCE FLAG
OR A ; SET FLAGS
RET Z ; BAIL OUT IF NOT PRESENT ; RESET GM7303 CONTROLLER, DELAYS ARE FIXED,
; INITIALISE LCD
CALL GM7303_RESET ; RESET THE LCD
PUSH HL
LD HL,GM7303_INIT_TBL
LD D,04H ; 4 BYTES TO SEND
NEXT_INIT:
LD A,(HL) ; GET COMMAND
OUT (GM7303_DATA),A ; WRITE TO TO DISPLAY
CALL CMD_STROBE ; COMMAND STROBE
PUSH DE
LD DE,5000/16 ; WAIT >4MS, WE USE 5MS
CALL VDELAY ; DO IT
POP DE
INC HL
DEC D ; (D)=00 -> COMMAND
JR NZ,NEXT_INIT ; NO - DO NEXT INIT COMMAND
POP HL
;
; PUT SOMETHING ON THE DISPLAY
LD DE,GM7303_STR_BAN ; DISPLAY BANNER
CALL GM7303_OUTDS
; SECOND LINE
LD HL,$0100 ; ROW 2, COL 0
CALL GM7303_GOTORC
LD DE,GM7303_STR_CFG ; DISPLAY CONFIG
CALL GM7303_OUTDS
XOR A ; SIGNAL SUCCESS
RET ; DONE
;
; POST CONSOLE INITIALIZATION
;
GM7303_INIT:
CALL NEWLINE ; FORMATTING
PRTS("GM7303: IO=$")
LD A,GM7303BASE
CALL PRTHEXBYTE
;
LD A,(GM7303_PRESENT) ; GET PRESENCE FLAG
OR A ; SET FLAGS
JR Z,GM7303_INIT1 ; HANDLE NOT PRESENT
XOR A ; SIGNAL SUCCESS
RET ; DONE
;
GM7303_INIT1:
PRTS(" NOT PRESENT$")
OR $FF
RET
;
; CALLED FROM HBIOS RIGHT BEFORE A DISK ACCESS
; HL: ADDRESS OF 32-BIT SECTOR NUMBER (LITTLE-ENDIAN)
;
; FORMAT: "Dsk99 R:12345678"
; 0123456789012345
;
GM7303_DSKACT:
; SAVE EVERYTHING
PUSH AF
PUSH BC
PUSH DE
PUSH HL
;
LD A,(GM7303_PRESENT) ; GET PRESENCE FLAG
OR A ; SET FLAGS
JR Z,GM7303_DSKACT_Z ; HANDLE NOT PRESENT
;
PUSH HL
LD HL,$0100 ; ROW 1, COL 0
CALL GM7303_GOTORC ; SET DISPLAY ADDRESS
POP HL
;
LD DE,GM7303_STR_IO ; PREFIX
CALL GM7303_OUTDS ; SEND TO DISPLAY (COLS 0-5)
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
CALL GM7303_DSKACT_BYTE ; SEND TO DISPLAY (COLS 6-7) HEX???
;
LD A,' ' ; SEPARATOR
CALL GM7303_OUTD ; SEND TO DISPLAY (COL 8)
;
LD A,(HB_DSKFUNC) ; ACTIVE DISK FUNCTION
CP BF_DIOWRITE ; WRITE?
LD A,'W' ; ASSUME WRITE
JR Z,GM7303_DSKACT0 ; GO AHEAD
LD A,'R' ; OTHERWISE READ
GM7303_DSKACT0:
CALL GM7303_OUTD ; SEND CHAR (COL 10)
LD A,':' ; SEPARATOR
CALL GM7303_OUTD ; SEND TO DISPLAY (COL 11)
;
LD A,3 ; POINT TO
CALL ADDHLA ; END OF DWORD (MSB)
LD B,4 ; DO 4 BYTES
;
GM7303_DSKACT1:
LD A,(HL) ; GET BYTE
CALL GM7303_DSKACT_BYTE ; SEND TO DISPLAY (COLS 12-19)
DEC HL ; DEC PTR
DJNZ GM7303_DSKACT1 ; DO ALL 4 BYTES
;
GM7303_DSKACT_Z:
; CLEAN UP AND GO AWAY
POP HL
POP DE
POP BC
POP AF
RET
;;
GM7303_DSKACT_BYTE:
PUSH AF ; SAVE BYTE
RRCA ; DO TOP NIBBLE FIRST
RRCA
RRCA
RRCA
CALL HEXCONV ; CONVERT NIBBLE TO ASCII
CALL GM7303_OUTD ; SEND TO DISPLAY
POP AF ; RECOVER CURRENT BYTE
CALL HEXCONV ; CONVERT NIBBLE TO ASCII
CALL GM7303_OUTD ; SEND TO DISPLAY
RET ; DONE
; DETECT PRESENCE OF GM7303 CONTROLLER
; WE CAN'T USE CONTROLLER RAM AS THE GM7303 DOES NOT SUPPORT LCD READS
; SIMPLY TEST FOR THE EXISTANCE OF BUS PULLDOWN AT THE SWITCH PORT
;
GM7303_DETECT:
IN A,(GM7303_DATA) ; GET VALUE OF DATA INPUTS
CP 00 ; GM7303 PULLS DATA TO GROUND
JR Z,GM7303_AVAILABLE
GM7303_MISSING:
LD A,00
LD (GM7303_PRESENT),A
RET
GM7303_AVAILABLE:
LD A,$FF
LD (GM7303_PRESENT),A
RET
;
; DELAY ROUTINE
;
GM7303_DELAY:
PUSH AF
PUSH DE
LD DE,3 ; WAIT PERIOD
CALL VDELAY ; DO IT
POP DE
POP AF
RET
CMD_STROBE: ; Send a command to the LCD
LD A,01H ; (A) = (X,X,X,X,X,RS,R/W*, E)
; SET R/W* LINE low (BIT 1=0)
; SET RS line LOW FOR COMMAND (BIT 2=0)
; SET ENABLE LINE HIGH (BIT 0=1)
; CARRY ON THROUGH THE STROBE ROUTINE
STROBE:
OR 01H ; SET ENABLE LINE HIGH (BIT 0=1)
OUT (GM7303_CTRL),A
CALL GM7303_DELAY
XOR 01H ; SET ENABLE LINE LOW (BIT 0=0)
OUT (GM7303_CTRL),A
CALL GM7303_DELAY
RET ; EXIT
GM7303_OUTD:
GM7303_DISPLAY: ; OUTPUT ASCII CHARACTER TO LCD DISPLAY
; CHAR IN A
AND 07FH
OUT (GM7303_DATA),A ; OUTPUT TO THE DATA PORT
; AND STROBE IT IN
DATA_STROBE:
LD A,04H ; SET R/W* LINE low (BIT 1=0)
; SET RS line HIGH FOR DATA (BIT 2=1)
; (A) = (X,X,X,X,X,RS,R/W*, E)
JP STROBE ; DO THE STROBE
; RETURN THROUGH THE STROBE ROUTINE
GM7303_COMMAND: ; OUTPUT COMMAND TO 7303 MODULE LCD
OUT (GM7303_DATA),A ; WRITE TO TO DISPLAY
JP CMD_STROBE ; COMMAND STROBE (STROBE ROUTING LETS US RETURN)
; SEND DATA STRING
; DE=STRING ADDRESS, NULL TERMINATED
;
GM7303_OUTDS:
LD A,(DE) ; NEXT BYTE TO SEND
; LD A,045H ; NEXT BYTE TO SEND
OR A ; SET FLAGS
RET Z ; DONE WHEN NULL REACHED
INC DE ; BUMP POINTER
CALL GM7303_DISPLAY ; SEND IT
JR GM7303_OUTDS ; LOOP AS NEEDED
;
; GOTO ROW(H),COL(L)
;
GM7303_GOTORC:
PUSH HL ; SAVE INCOMING
LD A,H ; ROW # TO A
LD HL,GM7303_ROWS ; POINT TO ROWS TABLE
CALL ADDHLA ; INDEX TO ROW ENTRY
LD A,(HL) ; GET ROW START
POP HL ; RECOVER INCOMING
ADD A,L ; ADD COLUMN
ADD A,GM7303_FUNC_DDADR ; ADD SET DDRAM COMMAND
JR GM7303_COMMAND ; AND SEND IT
;
; RESET LCD CONTROLLER MANUAL RESET METHOD
;
GM7303_RESET:
LD A,GM7303_FUNC_SET | %11000 ; 8 BIT INTERFACE, COMMAND MODE, 2 LINES
OUT (GM7303_DATA),A
LD A,01 ; SET ENABLE LINE HIGH (BIT 0=1)
OUT (GM7303_CTRL),A
LD DE,5000/16 ; WAIT >40MS, WE USE 50MS
CALL VDELAY ; DO IT
LD A,00 ; SET ENABLE LINE LOW (BIT 0=0)
OUT (GM7303_CTRL),A
LD A,01 ; SET ENABLE LINE HIGH (BIT 0=1)
OUT (GM7303_CTRL),A
LD DE,500/16 ; WAIT >4MS, WE USE 5MS
CALL VDELAY ; DO IT
LD A,00 ; SET ENABLE LINE LOW (BIT 0=0)
OUT (GM7303_CTRL),A
LD A,01 ; SET ENABLE LINE HIGH (BIT 0=1)
OUT (GM7303_CTRL),A
LD DE,500/16 ; WAIT >4MS, WE USE 5MS
CALL VDELAY ; DO IT
LD A,00 ; SET ENABLE LINE LOW (BIT 0=0)
OUT (GM7303_CTRL),A
RET
;
; DATA STORAGE
;
GM7303_PRESENT .DB 0 ; NON-ZERO WHEN HARDWARE DETECTED
;
GM7303_ROWS .DB $00,$40 ; ROW START INDEX FOR 2 LINE DISPLAY
;
GM7303_INIT_TBL: ; TABLE OF INITIALISATION COMMANDS FOR THE LCD
.DB 38H ; 8 BIT OPERATION, 2 LINE DISPLAY, 8X5 FONT
.DB 0EH ; TURN ON DISPLAY, CURSOR AND BLINK
.DB 06H ; SET CURSOR MOVE FROM LEFT TO RIGHT
.DB 01H ; CLEAR DISPLAY
;
GM7303_STR_BAN .DB "RomWBW ", BIOSVER, 0
GM7303_STR_CFG .DB "Build:", CONFIG, 0
GM7303_STR_IO .DB "Dsk", 0

21
Source/HBIOS/hbios.asm

@ -2310,6 +2310,9 @@ HB_CPU1:
#IF (H8PENABLE) #IF (H8PENABLE)
CALL H8P_PREINIT CALL H8P_PREINIT
#ENDIF #ENDIF
#IF (GM7303ENABLE)
CALL GM7303_PREINIT
#ENDIF
; ;
FPLEDS(DIAG_05) FPLEDS(DIAG_05)
; ;
@ -3730,6 +3733,9 @@ HB_INITTBL:
#IF (H8PENABLE) #IF (H8PENABLE)
.DW H8P_INIT .DW H8P_INIT
#ENDIF #ENDIF
#IF (GM7303ENABLE)
.DW GM7303_INIT
#ENDIF
#IF (PLATFORM == PLT_NABU) #IF (PLATFORM == PLT_NABU)
.DW NABU_INIT .DW NABU_INIT
#ENDIF #ENDIF
@ -4347,6 +4353,11 @@ HB_DSKACT:
CALL LCD_DSKACT CALL LCD_DSKACT
#ENDIF #ENDIF
#ENDIF #ENDIF
#IF (GM7303ENABLE)
#IF (GM7303DSKACT)
CALL GM7303_DSKACT
#ENDIF
#ENDIF
#IF (DSKYENABLE) #IF (DSKYENABLE)
#IF (DSKYDSKACT) #IF (DSKYDSKACT)
; ;
@ -7964,6 +7975,7 @@ PS_VDGDC .TEXT "GDC$"
PS_VDTMS .TEXT "TMS$" PS_VDTMS .TEXT "TMS$"
PS_VDVGA .TEXT "VGA$" PS_VDVGA .TEXT "VGA$"
PS_VDVRC .TEXT "VRC$" PS_VDVRC .TEXT "VRC$"
PS_VDEF .TEXT "EF$"
PS_VDFV .TEXT "FV$" PS_VDFV .TEXT "FV$"
; ;
; VIDEO TYPE STRINGS ; VIDEO TYPE STRINGS
@ -8023,6 +8035,15 @@ SIZ_LCD .EQU $ - ORG_LCD
MEMECHO " bytes.\n" MEMECHO " bytes.\n"
#ENDIF #ENDIF
; ;
#IF (GM7303ENABLE)
ORG_GM7303 .EQU $
#INCLUDE "gm7303.asm"
SIZ_GM7303 .EQU $ - ORG_GM7303
MEMECHO "GM7303 occupies "
MEMECHO SIZ_GM7303
MEMECHO " bytes.\n"
#ENDIF
;
#IF (H8PENABLE) #IF (H8PENABLE)
ORG_H8P .EQU $ ORG_H8P .EQU $
#INCLUDE "h8p.asm" #INCLUDE "h8p.asm"

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 5 #DEFINE RMN 5
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-dev.76"
#DEFINE BIOSVER "3.5.0-dev.77"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 5
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.5.0-dev.76"
db "3.5.0-dev.77"
endm endm

Loading…
Cancel
Save