From e212054774ccc6d957fcbe25867ebdd948076cdb Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 6 Sep 2024 17:00:21 -0700 Subject: [PATCH 1/5] Fix Missing Video Device String --- Source/HBIOS/hbios.asm | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 37ae2ad3..2fd51b5a 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -7964,6 +7964,7 @@ PS_VDGDC .TEXT "GDC$" PS_VDTMS .TEXT "TMS$" PS_VDVGA .TEXT "VGA$" PS_VDVRC .TEXT "VRC$" +PS_VDEF .TEXT "EF$" PS_VDFV .TEXT "FV$" ; ; VIDEO TYPE STRINGS From 61d08e9f71c04a7ce75110a54356c1d933c76a96 Mon Sep 17 00:00:00 2001 From: drj113 Date: Sat, 7 Sep 2024 10:18:07 +1000 Subject: [PATCH 2/5] GM7303 LCD Keypad support Changes to support a modified Prolog Keypad and LCD driver card - Heavily inspired by the lcd.asm module, but separated out to allow for future keyboard support. --- Source/HBIOS/Build.cmd | 2 + Source/HBIOS/Makefile.new | 2 +- Source/HBIOS/cfg_gmz180.asm | 5 +- Source/HBIOS/gm7303.asm | 316 ++++++++++++++++++++++++++++++++++++ Source/HBIOS/hbios.asm | 21 ++- 5 files changed, 343 insertions(+), 3 deletions(-) create mode 100644 Source/HBIOS/gm7303.asm diff --git a/Source/HBIOS/Build.cmd b/Source/HBIOS/Build.cmd index 35162fd4..134ffe24 100644 --- a/Source/HBIOS/Build.cmd +++ b/Source/HBIOS/Build.cmd @@ -244,5 +244,7 @@ call Build EPITX std || exit /b call Build NABU std || exit /b call Build FZ80 std || exit /b call Build UNA std || exit /b +call Build GMZ180 std || exit /b + goto :eof diff --git a/Source/HBIOS/Makefile.new b/Source/HBIOS/Makefile.new index 16d7f26e..9beb9d79 100644 --- a/Source/HBIOS/Makefile.new +++ b/Source/HBIOS/Makefile.new @@ -5,7 +5,7 @@ DIST_OBJECTS := \ RCZ80_zrc_ram RCZ80_zrc512 RPH_std SBC_std SBC_simh MBC_std \ DUO_std SCZ180_sc126 SCZ180_sc130 SCZ180_sc131 SCZ180_sc140 \ 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 OBJECTS := $(DIST_OBJECTS) diff --git a/Source/HBIOS/cfg_gmz180.asm b/Source/HBIOS/cfg_gmz180.asm index c7a81604..e9524f0d 100644 --- a/Source/HBIOS/cfg_gmz180.asm +++ b/Source/HBIOS/cfg_gmz180.asm @@ -84,7 +84,7 @@ LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU] LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED ; -DSKYENABLE .EQU FALSE ; ENABLES DSKY FUNCTIONALITY +DSKYENABLE .EQU FALSE ; ENABLES DSKY FUNCTIONALITY DSKYDSKACT .EQU FALSE ; ENABLES DISK ACTIVITY ON DSKY DISPLAY ICMENABLE .EQU FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) ICMPPIBASE .EQU $60 ; BASE I/O ADDRESS OF ICM PPI @@ -95,6 +95,9 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/gm7303.asm b/Source/HBIOS/gm7303.asm new file mode 100644 index 00000000..a0f7430e --- /dev/null +++ b/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 + + + diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 2fd51b5a..8e2b92f3 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2310,6 +2310,9 @@ HB_CPU1: #IF (H8PENABLE) CALL H8P_PREINIT #ENDIF +#IF (GM7303ENABLE) + CALL GM7303_PREINIT +#ENDIF ; FPLEDS(DIAG_05) ; @@ -3730,6 +3733,9 @@ HB_INITTBL: #IF (H8PENABLE) .DW H8P_INIT #ENDIF +#IF (GM7303ENABLE) + .DW GM7303_INIT +#ENDIF #IF (PLATFORM == PLT_NABU) .DW NABU_INIT #ENDIF @@ -4347,6 +4353,11 @@ HB_DSKACT: CALL LCD_DSKACT #ENDIF #ENDIF +#IF (GM7303ENABLE) + #IF (GM7303DSKACT) + CALL GM7303_DSKACT + #ENDIF +#ENDIF #IF (DSKYENABLE) #IF (DSKYDSKACT) ; @@ -7964,7 +7975,6 @@ PS_VDGDC .TEXT "GDC$" PS_VDTMS .TEXT "TMS$" PS_VDVGA .TEXT "VGA$" PS_VDVRC .TEXT "VRC$" -PS_VDEF .TEXT "EF$" PS_VDFV .TEXT "FV$" ; ; VIDEO TYPE STRINGS @@ -8024,6 +8034,15 @@ SIZ_LCD .EQU $ - ORG_LCD MEMECHO " bytes.\n" #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) ORG_H8P .EQU $ #INCLUDE "h8p.asm" From 8d91176230b6ce3988f5d6b2652203d8db279fa5 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 6 Sep 2024 17:54:02 -0700 Subject: [PATCH 3/5] Cosmetic Updates --- Source/HBIOS/Build.cmd | 2 -- Source/HBIOS/cfg_gmz180.asm | 8 ++++---- Source/HBIOS/hbios.asm | 5 +++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Source/HBIOS/Build.cmd b/Source/HBIOS/Build.cmd index 134ffe24..35162fd4 100644 --- a/Source/HBIOS/Build.cmd +++ b/Source/HBIOS/Build.cmd @@ -244,7 +244,5 @@ call Build EPITX std || exit /b call Build NABU std || exit /b call Build FZ80 std || exit /b call Build UNA std || exit /b -call Build GMZ180 std || exit /b - goto :eof diff --git a/Source/HBIOS/cfg_gmz180.asm b/Source/HBIOS/cfg_gmz180.asm index e9524f0d..01077108 100644 --- a/Source/HBIOS/cfg_gmz180.asm +++ b/Source/HBIOS/cfg_gmz180.asm @@ -84,7 +84,7 @@ LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU] LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED ; -DSKYENABLE .EQU FALSE ; ENABLES DSKY FUNCTIONALITY +DSKYENABLE .EQU FALSE ; ENABLES DSKY FUNCTIONALITY DSKYDSKACT .EQU FALSE ; ENABLES DISK ACTIVITY ON DSKY DISPLAY ICMENABLE .EQU FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) ICMPPIBASE .EQU $60 ; BASE I/O ADDRESS OF ICM PPI @@ -95,9 +95,9 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 +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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 8e2b92f3..75e292db 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2311,7 +2311,7 @@ HB_CPU1: CALL H8P_PREINIT #ENDIF #IF (GM7303ENABLE) - CALL GM7303_PREINIT + CALL GM7303_PREINIT #ENDIF ; FPLEDS(DIAG_05) @@ -7975,6 +7975,7 @@ PS_VDGDC .TEXT "GDC$" PS_VDTMS .TEXT "TMS$" PS_VDVGA .TEXT "VGA$" PS_VDVRC .TEXT "VRC$" +PS_VDEF .TEXT "EF$" PS_VDFV .TEXT "FV$" ; ; VIDEO TYPE STRINGS @@ -8035,7 +8036,7 @@ SIZ_LCD .EQU $ - ORG_LCD #ENDIF ; #IF (GM7303ENABLE) -ORG_GM7303 .EQU $ +ORG_GM7303 .EQU$ #INCLUDE "gm7303.asm" SIZ_GM7303 .EQU $ - ORG_GM7303 MEMECHO "GM7303 occupies " From d20c72fe21ea5f9527d0f5b84fd1bf1e11488c98 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 6 Sep 2024 17:55:31 -0700 Subject: [PATCH 4/5] Bump Version Number --- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/ver.inc b/Source/ver.inc index 51e79644..74471207 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 5 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.5.0-dev.76" +#DEFINE BIOSVER "3.5.0-dev.77" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index ed3c00ff..b8bf07c7 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 5 rup equ 0 rtp equ 0 biosver macro - db "3.5.0-dev.76" + db "3.5.0-dev.77" endm From e1beb01a5181939abb0da8253b095e24f596c214 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 6 Sep 2024 18:12:46 -0700 Subject: [PATCH 5/5] Update Configs to Handle GM3707 Enable - The non-Genesis config files needed to be updated to disable the GM3707. --- Source/HBIOS/cfg_duo.asm | 1 + Source/HBIOS/cfg_dyno.asm | 1 + Source/HBIOS/cfg_epitx.asm | 1 + Source/HBIOS/cfg_fz80.asm | 1 + Source/HBIOS/cfg_heath.asm | 1 + Source/HBIOS/cfg_master.asm | 3 +++ Source/HBIOS/cfg_mbc.asm | 1 + Source/HBIOS/cfg_mk4.asm | 1 + Source/HBIOS/cfg_mon.asm | 1 + Source/HBIOS/cfg_n8.asm | 1 + Source/HBIOS/cfg_nabu.asm | 1 + Source/HBIOS/cfg_rcz180.asm | 1 + Source/HBIOS/cfg_rcz280.asm | 1 + Source/HBIOS/cfg_rcz80.asm | 1 + Source/HBIOS/cfg_rph.asm | 1 + Source/HBIOS/cfg_s100.asm | 1 + Source/HBIOS/cfg_sbc.asm | 1 + Source/HBIOS/cfg_scz180.asm | 1 + Source/HBIOS/cfg_z80retro.asm | 1 + Source/HBIOS/cfg_zeta.asm | 1 + Source/HBIOS/cfg_zeta2.asm | 1 + Source/HBIOS/hbios.asm | 2 +- 22 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Source/HBIOS/cfg_duo.asm b/Source/HBIOS/cfg_duo.asm index 1fcc4177..3479b707 100644 --- a/Source/HBIOS/cfg_duo.asm +++ b/Source/HBIOS/cfg_duo.asm @@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index a044dd5a..eddb776e 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_epitx.asm b/Source/HBIOS/cfg_epitx.asm index 29cb322f..d184d8c8 100644 --- a/Source/HBIOS/cfg_epitx.asm +++ b/Source/HBIOS/cfg_epitx.asm @@ -96,6 +96,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_fz80.asm b/Source/HBIOS/cfg_fz80.asm index ac8f1b59..1d170f34 100644 --- a/Source/HBIOS/cfg_fz80.asm +++ b/Source/HBIOS/cfg_fz80.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_heath.asm b/Source/HBIOS/cfg_heath.asm index e0a02a20..7b74cafe 100644 --- a/Source/HBIOS/cfg_heath.asm +++ b/Source/HBIOS/cfg_heath.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU TRUE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index a1a27b1e..aa3d5960 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -124,6 +124,9 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index 42979884..448c0b14 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index cdbc26c3..ab9a47bd 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_mon.asm b/Source/HBIOS/cfg_mon.asm index 1195d421..08eae842 100644 --- a/Source/HBIOS/cfg_mon.asm +++ b/Source/HBIOS/cfg_mon.asm @@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 013c9f42..10689dba 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -97,6 +97,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_nabu.asm b/Source/HBIOS/cfg_nabu.asm index ffd17d82..6274884d 100644 --- a/Source/HBIOS/cfg_nabu.asm +++ b/Source/HBIOS/cfg_nabu.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index ff4d325a..4810d61c 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -101,6 +101,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index 88167ddc..e7f3ff06 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index a54383a7..cf373f57 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_rph.asm b/Source/HBIOS/cfg_rph.asm index 904481d7..9ac15716 100644 --- a/Source/HBIOS/cfg_rph.asm +++ b/Source/HBIOS/cfg_rph.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_s100.asm b/Source/HBIOS/cfg_s100.asm index 17948d0a..046a3faa 100644 --- a/Source/HBIOS/cfg_s100.asm +++ b/Source/HBIOS/cfg_s100.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 2a3dae88..63b532b9 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -90,6 +90,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index d901cae0..0b536b9e 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -95,6 +95,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU TRUE ; ENABLE LCD DISPLAY LCDBASE .EQU $AA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_z80retro.asm b/Source/HBIOS/cfg_z80retro.asm index fa527c99..3679abeb 100644 --- a/Source/HBIOS/cfg_z80retro.asm +++ b/Source/HBIOS/cfg_z80retro.asm @@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 9efd553b..0e8757fb 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -82,6 +82,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index 700f64f1..cc03d9cc 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -93,6 +93,7 @@ H8PENABLE .EQU FALSE ; ENABLES HEATH H8 FRONT PANEL LCDENABLE .EQU FALSE ; ENABLE LCD DISPLAY LCDBASE .EQU $DA ; BASE I/O ADDRESS OF LCD CONTROLLER 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 SECCON .EQU $FF ; SECONDARY CONSOLE DEVICE diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 75e292db..d25748bc 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -8036,7 +8036,7 @@ SIZ_LCD .EQU $ - ORG_LCD #ENDIF ; #IF (GM7303ENABLE) -ORG_GM7303 .EQU$ +ORG_GM7303 .EQU $ #INCLUDE "gm7303.asm" SIZ_GM7303 .EQU $ - ORG_GM7303 MEMECHO "GM7303 occupies "