Browse Source

Updates to RomLoader to improve UX. Dont afftec the overall functionality

pull/580/head
Mark Pruden 7 months ago
parent
commit
36ea53f612
  1. 41
      Source/HBIOS/romldr.asm
  2. 35
      Source/HBIOS/sysconf.asm

41
Source/HBIOS/romldr.asm

@ -174,12 +174,15 @@ start1:
; ;
; For app mode startup, use alternate table ; For app mode startup, use alternate table
ld hl,ra_tbl ; assume ROM application table ld hl,ra_tbl ; assume ROM application table
ld de,str_help ; assume ROM help menu
ld a,(bootmode) ; get boot mode ld a,(bootmode) ; get boot mode
cp BM_ROMBOOT ; ROM boot? cp BM_ROMBOOT ; ROM boot?
jr z,start2 ; if so, ra_tbl OK, skip ahead jr z,start2 ; if so, ra_tbl OK, skip ahead
ld hl,ra_tbl_app ; switch to RAM application table ld hl,ra_tbl_app ; switch to RAM application table
ld de,str_help_app ; switch to RAM help menu
start2: start2:
ld (ra_tbl_loc),hl ; and overlay pointer ld (ra_tbl_loc),hl ; and overlay pointer
ld (str_help_loc),de ; and overlay help menu pointer
; ;
; Copy original page zero into user page zero ; Copy original page zero into user page zero
; ;
@ -627,6 +630,8 @@ runcmd0:
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
cp 'S' ; S = Slice Inventory cp 'S' ; S = Slice Inventory
jp z,slclst ; if so, do it jp z,slclst ; if so, do it
cp 'W' ; W = Rom WBW NVR Config Rom App
jp z,nvrconfig ; if so, do it
cp 'I' ; C = set console interface cp 'I' ; C = set console interface
jp z,setcon ; if so, do it jp z,setcon ; if so, do it
cp 'V' ; V = diagnostic verbosity cp 'V' ; V = diagnostic verbosity
@ -850,7 +855,7 @@ dskycmd1:
; Display Help ; Display Help
; ;
help: help:
ld hl,str_help ; point to help string
ld hl,(str_help_loc) ; point to help string
call pstr ; display it call pstr ; display it
ret ret
; ;
@ -903,6 +908,12 @@ slclst:
ld a,'S' ; "S"lice Inv App ld a,'S' ; "S"lice Inv App
jp romcall ; Call a Rom App with Return jp romcall ; Call a Rom App with Return
; ;
; RomWBW Config
;
nvrconfig:
ld a,'W' ; "W" Rom WBW Configure App
jp romcall ; Call a Rom App with Return
;
; Set console interface unit ; Set console interface unit
; ;
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
@ -2573,10 +2584,22 @@ str_help .db "\r\n"
.db "\r\n W - RomWBW Configure" .db "\r\n W - RomWBW Configure"
.db "\r\n I <u> [<c>] - Set Console Interface/Baud Rate" .db "\r\n I <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity" .db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
.db "\r\n N - Network Boot"
#endif #endif
.db "\r\n <u>[.<s>] - Boot Disk Unit/Slice" .db "\r\n <u>[.<s>] - Boot Disk Unit/Slice"
.db 0 .db 0
; ;
str_help_app .db "\r\n"
.db "\r\n L - List ROM Applications"
.db "\r\n R - Reboot System"
#if (BIOS == BIOS_WBW)
.db "\r\n I <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
#endif
.db "\r\n <u>[.<s>] - Boot Disk Unit/Slice"
.db 0
;
;======================================================================= ;=======================================================================
; DSKY keypad led matrix masks ; DSKY keypad led matrix masks
;======================================================================= ;=======================================================================
@ -2663,12 +2686,12 @@ ra_tbl:
; Name Key Dsky Bank Src Dest Size Entry ; Name Key Dsky Bank Src Dest Size Entry
; --------- ------- ----- -------- ----- ------- ------- ---------- ; --------- ------- ----- -------- ----- ------- ------- ----------
ra_ent(str_mon, 'M', KY_CL, MON_BNK, MON_IMGLOC, MON_LOC, MON_SIZ, MON_SERIAL) ra_ent(str_mon, 'M', KY_CL, MON_BNK, MON_IMGLOC, MON_LOC, MON_SIZ, MON_SERIAL)
ra_entsiz .equ $ - ra_tbl
#if (BIOS == BIOS_WBW)
#if (PLATFORM == PLT_S100)
ra_entsiz .equ $ - ra_tbl
#if (BIOS == BIOS_WBW)
#if (PLATFORM == PLT_S100)
ra_ent(str_smon, 'O', $FF, bid_cur, $8000, $8000, $0001, s100mon) ra_ent(str_smon, 'O', $FF, bid_cur, $8000, $8000, $0001, s100mon)
#endif
#endif
#endif
#endif
ra_ent(str_cpm22, 'C', KY_BK, CPM22_BNK, CPM22_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT) ra_ent(str_cpm22, 'C', KY_BK, CPM22_BNK, CPM22_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_zsys, 'Z', KY_FW, ZSYS_BNK, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT) ra_ent(str_zsys, 'Z', KY_FW, ZSYS_BNK, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
@ -2676,9 +2699,9 @@ ra_ent(str_bas, 'B', KY_DE, BAS_BNK, BAS_IMGLOC, BAS_LOC, BAS_SIZ, BAS_
ra_ent(str_tbas, 'T', KY_EN, TBC_BNK, TBC_IMGLOC, TBC_LOC, TBC_SIZ, TBC_LOC) ra_ent(str_tbas, 'T', KY_EN, TBC_BNK, TBC_IMGLOC, TBC_LOC, TBC_SIZ, TBC_LOC)
ra_ent(str_fth, 'F', KY_EX, FTH_BNK, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LOC) ra_ent(str_fth, 'F', KY_EX, FTH_BNK, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LOC)
ra_ent(str_play, 'P', $FF, GAM_BNK, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_LOC) ra_ent(str_play, 'P', $FF, GAM_BNK, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_LOC)
ra_ent(str_net, 'N', $FF, NET_BNK, NET_IMGLOC, NET_LOC, NET_SIZ, NET_LOC)
ra_ent(str_net, 'N'+$80, $FF, NET_BNK, NET_IMGLOC, NET_LOC, NET_SIZ, NET_LOC)
ra_ent(str_upd, 'X', $FF, UPD_BNK, UPD_IMGLOC, UPD_LOC, UPD_SIZ, UPD_LOC) ra_ent(str_upd, 'X', $FF, UPD_BNK, UPD_IMGLOC, UPD_LOC, UPD_SIZ, UPD_LOC)
ra_ent(str_nvr, 'W'+$80, $FF, NVR_BNK, NVR_IMGLOC, NVR_LOC, NVR_SIZ, NVR_LOC)
ra_ent(str_blnk, 'W'+$80, $FF, NVR_BNK, NVR_IMGLOC, NVR_LOC, NVR_SIZ, NVR_LOC)
ra_ent(str_blnk, 'S'+$80, $FF, SLC_BNK, SLC_IMGLOC, SLC_LOC, SLC_SIZ, SLC_LOC) ra_ent(str_blnk, 'S'+$80, $FF, SLC_BNK, SLC_IMGLOC, SLC_LOC, SLC_SIZ, SLC_LOC)
ra_ent(str_user, 'U', $FF, USR_BNK, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC) ra_ent(str_user, 'U', $FF, USR_BNK, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC)
#endif #endif
@ -2710,7 +2733,6 @@ str_bas .db "BASIC",0
str_tbas .db "Tasty BASIC",0 str_tbas .db "Tasty BASIC",0
str_play .db "Play a Game",0 str_play .db "Play a Game",0
str_upd .db "XModem Flash Updater",0 str_upd .db "XModem Flash Updater",0
str_nvr .db "RomWBW Configure", 0
str_user .db "User App",0 str_user .db "User App",0
str_blnk .db "",0 str_blnk .db "",0
str_net .db "Network Boot",0 str_net .db "Network Boot",0
@ -2740,6 +2762,7 @@ mediaid .db 0 ; media id
; ;
bootmode .db 0 ; ROM, APP, or IMG boot bootmode .db 0 ; ROM, APP, or IMG boot
ra_tbl_loc .dw 0 ; points to active ra_tbl ra_tbl_loc .dw 0 ; points to active ra_tbl
str_help_loc .dw 0 ; points to active str_help
bootunit .db 0 ; boot disk unit bootunit .db 0 ; boot disk unit
bootslice .db 0 ; boot disk slice bootslice .db 0 ; boot disk slice
loadcnt .db 0 ; num disk sectors to load loadcnt .db 0 ; num disk sectors to load

35
Source/HBIOS/sysconf.asm

@ -8,7 +8,7 @@
; and RomWBW Operation. Write to RTC NVRAM to store config ; and RomWBW Operation. Write to RTC NVRAM to store config
; is reliant on HBIOS ; is reliant on HBIOS
; ;
; NOTE: This program is built as both a CP/M COM and Rom WBW Applicaton
; NOTE: This program is built as both a CP/M COM and Rom WBW Application
; ;
; ROM APPLICATION THAT IS AUTOMATICALLY INCLUDED IN THE ROMWBW ROM. ; ROM APPLICATION THAT IS AUTOMATICALLY INCLUDED IN THE ROMWBW ROM.
; IT IS INVOKED FROM THE BOOT LOADER USING THE 'W' OPTION. (See RomLDR) ; IT IS INVOKED FROM THE BOOT LOADER USING THE 'W' OPTION. (See RomLDR)
@ -18,7 +18,16 @@
; BASED ON USEROM.ASM ; BASED ON USEROM.ASM
; THANKS AND CREDIT TO MARTIN R. FOR PROVIDING THIS APPLICATION! ; THANKS AND CREDIT TO MARTIN R. FOR PROVIDING THIS APPLICATION!
; Also Based on The Tasty Basic Configuration ; Also Based on The Tasty Basic Configuration
; Utilitity function were also copied from RomLdr, Assign.
; Utility function were also copied from RomLdr, Assign.
;
;-----------------------------------------------------------------------
;
; Change Log:
; 2024-11-08 [MAP] Initial v1.0 release
; 2024-12-06 [WBW] Misc Fixes Improvements after initial release
; 2025-06-30 [MAP] 1.1 Changed to be invoked in CALL RET fashion from RomLdr
;
;-----------------------------------------------------------------------
; ;
#include "../ver.inc" #include "../ver.inc"
#include "hbios.inc" #include "hbios.inc"
@ -56,8 +65,9 @@ DEL .EQU 127 ; ASCII del/rubout
.ORG NVR_LOC .ORG NVR_LOC
; ;
#ifdef ROMWBW #ifdef ROMWBW
; Reuse the stack provided by Rom LDR
; PLACE STACK AT THE TOP OF AVAILABLE RAM (JUST BELOW THE HBIOS PROXY). ; PLACE STACK AT THE TOP OF AVAILABLE RAM (JUST BELOW THE HBIOS PROXY).
LD SP,HBX_LOC
; LD SP,HBX_LOC
#endif #endif
#ifdef CPM #ifdef CPM
; setup stack (save old value) ; setup stack (save old value)
@ -75,9 +85,10 @@ exit:
; call crlf ; formatting ; call crlf ; formatting
; ;
#ifdef ROMWBW #ifdef ROMWBW
LD B,BF_SYSRESET ; SYSTEM RESTART
LD C,BF_SYSRES_WARM ; WARM START
RST 08 ; CALL HBIOS (DOES NOT RETURN)
RET ; Return to Rom LDR
; LD B,BF_SYSRESET ; SYSTEM RESTART
; LD C,BF_SYSRES_WARM ; WARM START
; RST 08 ; CALL HBIOS (DOES NOT RETURN)
#endif #endif
#ifdef CPM #ifdef CPM
; ;
@ -205,7 +216,7 @@ helpandloop: ; HELP MENU
JR z,printmainhelp ; if empty line, print main help JR z,printmainhelp ; if empty line, print main help
call upcase call upcase
; ;
; the folloiwng is just testing a single charater
; the following is just testing a single character
cp 'A' ; Auto Boot help menu cp 'A' ; Auto Boot help menu
JP Z,HELP_AB JP Z,HELP_AB
cp 'B' ; Boot Options help menu cp 'B' ; Boot Options help menu
@ -234,7 +245,7 @@ setvalueandloop:
JR z,setvalueerror ; if empty line, print ? JR z,setvalueerror ; if empty line, print ?
call upcase call upcase
; ;
; the folloiwng is just testing a single charater
; the following is just testing a single character
cp 'A' ; Auto Boot help menu cp 'A' ; Auto Boot help menu
JP Z,SET_AB JP Z,SET_AB
cp 'B' ; Boot Options help menu cp 'B' ; Boot Options help menu
@ -265,7 +276,7 @@ PRT_STATUS:
LD BC,BC_SYSGET_SWITCH LD BC,BC_SYSGET_SWITCH
LD D,$FF ; check for existence of switches LD D,$FF ; check for existence of switches
RST 08 RST 08
JR NZ,STAT_NOTFOUND ; error means switchs are not enabled
JR NZ,STAT_NOTFOUND ; error means switches are not enabled
; ;
; print invdividual stats, on all per switch ; print invdividual stats, on all per switch
; ;
@ -499,7 +510,7 @@ err_ret:
;======================================================================= ;=======================================================================
; ;
str_banner .db "\r\n" str_banner .db "\r\n"
.db "RomWBW System Config Utility, Version 1.0 Nov-2024\r\n",0
.db "RomWBW System Config Utility, Version 1.1 June-2025\r\n",0
; ;
MSG_MENU .DB "\r\n" MSG_MENU .DB "\r\n"
.DB "Commands:\r\n" .DB "Commands:\r\n"
@ -507,7 +518,7 @@ MSG_MENU .DB "\r\n"
.DB " (S)et {SW} {val}[,{val}[,{val}]]- Set a switch value(s)\r\n" .DB " (S)et {SW} {val}[,{val}[,{val}]]- Set a switch value(s)\r\n"
.DB " (R)eset - Init NVRAM to Defaults\r\n" .DB " (R)eset - Init NVRAM to Defaults\r\n"
.DB " (H)elp [{SW}] - This help menu, or help on a switch\r\n" .DB " (H)elp [{SW}] - This help menu, or help on a switch\r\n"
.DB " (Q)uit - Quit\r\n"
.DB " e(X)it - Exit Configuration\r\n"
.DB 0 .DB 0
MSG_PROMPT: .DB "\r\n" MSG_PROMPT: .DB "\r\n"
.DB "$", 0 .DB "$", 0
@ -1015,7 +1026,7 @@ CIN: PUSH BC
; ;
stksav .dw 0 ; stack pointer saved at start stksav .dw 0 ; stack pointer saved at start
; ;
cmdbuf: .FILL cmdmax,0 ; cmd inut buffer
cmdbuf: .FILL cmdmax,0 ; cmd input buffer
; ;
.fill stksiz,0 ; stack .fill stksiz,0 ; stack
stack .equ $ ; stack top stack .equ $ ; stack top

Loading…
Cancel
Save