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. 31
      Source/HBIOS/romldr.asm
  2. 35
      Source/HBIOS/sysconf.asm

31
Source/HBIOS/romldr.asm

@ -174,12 +174,15 @@ start1:
;
; For app mode startup, use alternate table
ld hl,ra_tbl ; assume ROM application table
ld de,str_help ; assume ROM help menu
ld a,(bootmode) ; get boot mode
cp BM_ROMBOOT ; ROM boot?
jr z,start2 ; if so, ra_tbl OK, skip ahead
ld hl,ra_tbl_app ; switch to RAM application table
ld de,str_help_app ; switch to RAM help menu
start2:
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
;
@ -627,6 +630,8 @@ runcmd0:
#if (BIOS == BIOS_WBW)
cp 'S' ; S = Slice Inventory
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
jp z,setcon ; if so, do it
cp 'V' ; V = diagnostic verbosity
@ -850,7 +855,7 @@ dskycmd1:
; Display Help
;
help:
ld hl,str_help ; point to help string
ld hl,(str_help_loc) ; point to help string
call pstr ; display it
ret
;
@ -903,6 +908,12 @@ slclst:
ld a,'S' ; "S"lice Inv App
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
;
#if (BIOS == BIOS_WBW)
@ -2573,10 +2584,22 @@ str_help .db "\r\n"
.db "\r\n W - RomWBW Configure"
.db "\r\n I <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
.db "\r\n N - Network Boot"
#endif
.db "\r\n <u>[.<s>] - Boot Disk Unit/Slice"
.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
;=======================================================================
@ -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_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_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_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_user, 'U', $FF, USR_BNK, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC)
#endif
@ -2710,7 +2733,6 @@ str_bas .db "BASIC",0
str_tbas .db "Tasty BASIC",0
str_play .db "Play a Game",0
str_upd .db "XModem Flash Updater",0
str_nvr .db "RomWBW Configure", 0
str_user .db "User App",0
str_blnk .db "",0
str_net .db "Network Boot",0
@ -2740,6 +2762,7 @@ mediaid .db 0 ; media id
;
bootmode .db 0 ; ROM, APP, or IMG boot
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
bootslice .db 0 ; boot disk slice
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
; 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.
; IT IS INVOKED FROM THE BOOT LOADER USING THE 'W' OPTION. (See RomLDR)
@ -18,7 +18,16 @@
; BASED ON USEROM.ASM
; THANKS AND CREDIT TO MARTIN R. FOR PROVIDING THIS APPLICATION!
; 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 "hbios.inc"
@ -56,8 +65,9 @@ DEL .EQU 127 ; ASCII del/rubout
.ORG NVR_LOC
;
#ifdef ROMWBW
; Reuse the stack provided by Rom LDR
; PLACE STACK AT THE TOP OF AVAILABLE RAM (JUST BELOW THE HBIOS PROXY).
LD SP,HBX_LOC
; LD SP,HBX_LOC
#endif
#ifdef CPM
; setup stack (save old value)
@ -75,9 +85,10 @@ exit:
; call crlf ; formatting
;
#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
#ifdef CPM
;
@ -205,7 +216,7 @@ helpandloop: ; HELP MENU
JR z,printmainhelp ; if empty line, print main help
call upcase
;
; the folloiwng is just testing a single charater
; the following is just testing a single character
cp 'A' ; Auto Boot help menu
JP Z,HELP_AB
cp 'B' ; Boot Options help menu
@ -234,7 +245,7 @@ setvalueandloop:
JR z,setvalueerror ; if empty line, print ?
call upcase
;
; the folloiwng is just testing a single charater
; the following is just testing a single character
cp 'A' ; Auto Boot help menu
JP Z,SET_AB
cp 'B' ; Boot Options help menu
@ -265,7 +276,7 @@ PRT_STATUS:
LD BC,BC_SYSGET_SWITCH
LD D,$FF ; check for existence of switches
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
;
@ -499,7 +510,7 @@ err_ret:
;=======================================================================
;
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"
.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 " (R)eset - Init NVRAM to Defaults\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
MSG_PROMPT: .DB "\r\n"
.DB "$", 0
@ -1015,7 +1026,7 @@ CIN: PUSH BC
;
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
stack .equ $ ; stack top

Loading…
Cancel
Save