mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
AutoBoot Tweak
- Remove "default" boot concept.
This commit is contained in:
@@ -267,33 +267,23 @@ nvrsw_def:
|
||||
call nl ; display message to indicate switches found
|
||||
ld hl,str_nvswitches
|
||||
call pstr
|
||||
;
|
||||
ld bc,BC_SYSGET_SWITCH ; HBIOS SysGet NVRAM Switches
|
||||
ld d,NVSW_DEFBOOT ; Read Default Boot (disk/Rom) switch
|
||||
rst 08
|
||||
ld a,h
|
||||
and DBOOT_ROM ; Get the Default Boot from ROM Flag
|
||||
jr nz,nvrsw_rom ; IF Set as ROM App BOOT, otherwise Disk
|
||||
;
|
||||
nvrsw_disk:
|
||||
ld a,h ; (H contains the Disk Unit 0-127)
|
||||
ld (bootunit),a ; copy the NVRam Unit and Slice
|
||||
ld a,l ; (L contains the boot slice 0-255)
|
||||
ld (bootslice),a ; directly into the selected boot
|
||||
ld l,'~' ; We use the "~" char to signal, DISK BOOT
|
||||
; setting it a the auto cmd (string/char)
|
||||
nvrsw_rom:
|
||||
ld h,0 ; Clear high orer byte, leaving L intact
|
||||
ld (acmd),hl ; Load the Character into auto command
|
||||
; Thus (acma) = L (the boot character)
|
||||
; (acma+1) = H=0 (string terminator)
|
||||
nvrsw_auto:
|
||||
ld bc,BC_SYSGET_SWITCH ; HBIOS SysGet NVRAM Switches
|
||||
ld d,NVSW_AUTOBOOT ; GET Autoboot switch
|
||||
rst 08
|
||||
ld a,l
|
||||
and ABOOT_AUTO ; Get the autoboot flag
|
||||
jr z,prompt ; not set, so directly prompt
|
||||
;
|
||||
; At this point, we know that NVR is valid and we have tested the
|
||||
; ABOOT_AUTO bit. Branching to "prompt" will bypass ROM config
|
||||
; autoboot settings. Branching to "nonvrswitch" will proceed with
|
||||
; ROM config autoboot settings. I have not decided which makes more
|
||||
; sense. For now, we branch to nonvrswitch because it makes
|
||||
; my testing easier. :-)
|
||||
;
|
||||
;;;jr z,prompt ; not set, so directly prompt
|
||||
jr z,nonvrswitch ; not set, proceed to ROM config
|
||||
;
|
||||
or $FF ; auto cmd active value
|
||||
ld (acmd_act),a ; set the auto command active flag
|
||||
@@ -308,6 +298,26 @@ nvrsw_auto:
|
||||
srl b
|
||||
rr c ; BC should now contain timeout * 64
|
||||
ld (acmd_to),bc ; save auto cmd timeout 64ths of second
|
||||
;
|
||||
ld bc,BC_SYSGET_SWITCH ; HBIOS SysGet NVRAM Switches
|
||||
ld d,NVSW_DEFBOOT ; Read Default Boot (disk/Rom) switch
|
||||
rst 08
|
||||
ld a,h
|
||||
and DBOOT_ROM ; Get the Default Boot from ROM Flag
|
||||
jr nz,nvrsw_rom ; IF Set as ROM App BOOT, otherwise Disk
|
||||
;
|
||||
nvrsw_disk:
|
||||
ld a,h ; (H contains the Disk Unit 0-127)
|
||||
ld (bootunit),a ; copy the NVRam Unit and Slice
|
||||
ld a,l ; (L contains the boot slice 0-255)
|
||||
ld (bootslice),a ; directly into the selected boot
|
||||
ld l,'~' ; We use the "~" char to signal, DISK BOOT
|
||||
; ; setting it a the auto cmd (string/char)
|
||||
nvrsw_rom:
|
||||
ld h,0 ; Clear high order byte, leaving L intact
|
||||
ld (acmd),hl ; Load the Character into auto command
|
||||
; ; Thus (acma) = L (the boot character)
|
||||
; ; (acma+1) = H=0 (string terminator)
|
||||
;
|
||||
jr initautoboot ; init auto boot from NVRAM, ignore Build Config
|
||||
;
|
||||
@@ -347,7 +357,7 @@ initautoboot:
|
||||
;=======================================================================
|
||||
;
|
||||
prompt:
|
||||
; if autboot is active, notify user as a reminder
|
||||
; if autoboot is active, notify user as a reminder
|
||||
ld a,(acmd_act) ; get auto cmd active flag
|
||||
or a ; active?
|
||||
jr z,prompt2 ; bypass message if not active
|
||||
@@ -371,8 +381,6 @@ prompt2:
|
||||
call pstr ; do it
|
||||
call clrbuf ; zero fill the cmd buffer
|
||||
;
|
||||
;ld hl,msg_sel ; boot select msg
|
||||
;call dsky_show ; show on DSKY
|
||||
ld c,DSKY_MSG_LDR_SEL ; boot select msg
|
||||
call dsky_msg ; show on DSKY
|
||||
#if (DSKYENABLE)
|
||||
@@ -521,10 +529,11 @@ concmd:
|
||||
; Get a command line from console and handle it
|
||||
call rdln ; get a line from the user
|
||||
ld de,cmdbuf ; point to buffer
|
||||
call skipws ; skip whitespace
|
||||
or a ; set flags to check for null
|
||||
jr nz,runcmd ; got a cmd, process it
|
||||
; if no cmd entered, fall thru to process default cmd
|
||||
jr runcmd ; process command
|
||||
;;;call skipws ; skip whitespace
|
||||
;;;or a ; set flags to check for null
|
||||
;;;jr nz,runcmd ; got a cmd, process it
|
||||
;;;; if no cmd entered, fall thru to process default cmd
|
||||
;
|
||||
autocmd:
|
||||
; Copy autocmd string to buffer and process it
|
||||
@@ -546,8 +555,8 @@ runcmd:
|
||||
call upcase ; make upper case
|
||||
;
|
||||
; Auto Command (probably) from NVR default Disk Boot
|
||||
CP '~' ; We use the "~" char to signal, DISK
|
||||
JP Z,diskboot ; noting the - (bootunit) (bootslice) have inited.
|
||||
cp '~' ; We use the "~" char to signal, DISK
|
||||
jp z,diskboot ; noting the - (bootunit) (bootslice) have inited.
|
||||
; Attempt built-in commands
|
||||
cp 'H' ; H = display help
|
||||
jp z,help ; if so, do it
|
||||
|
||||
Reference in New Issue
Block a user