Browse Source

Clean Up NVRAM Switch Terminology

- Essentially, switch from the term "default boot" to the term "boot options".

See Issue #451
pull/470/head v3.5.0-dev.98
Wayne Warthen 1 year ago
parent
commit
f03dcf7193
  1. BIN
      Doc/RomWBW Applications.pdf
  2. BIN
      Doc/RomWBW Disk Catalog.pdf
  3. BIN
      Doc/RomWBW Errata.pdf
  4. BIN
      Doc/RomWBW System Guide.pdf
  5. BIN
      Doc/RomWBW User Guide.pdf
  6. 2
      ReadMe.md
  7. 2
      ReadMe.txt
  8. 26
      Source/Doc/Applications.md
  9. 11
      Source/Doc/SystemGuide.md
  10. 18
      Source/Doc/UserGuide.md
  11. 20
      Source/HBIOS/hbios.asm
  12. 10
      Source/HBIOS/hbios.inc
  13. 4
      Source/HBIOS/romldr.asm
  14. 104
      Source/HBIOS/sysconf.asm
  15. 2
      Source/ver.inc
  16. 2
      Source/ver.lib

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Errata.pdf

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf

Binary file not shown.

2
ReadMe.md

@ -3,7 +3,7 @@
**RomWBW ReadMe** \ **RomWBW ReadMe** \
Version 3.5 \ Version 3.5 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
01 Dec 2024
05 Dec 2024
# Overview # Overview

2
ReadMe.txt

@ -1,6 +1,6 @@
RomWBW ReadMe RomWBW ReadMe
Wayne Warthen (wwarthen@gmail.com) Wayne Warthen (wwarthen@gmail.com)
01 Dec 2024
05 Dec 2024

26
Source/Doc/Applications.md

@ -398,23 +398,23 @@ system configuration.
### Basic Operation ### Basic Operation
The application is an interactive application it does not have command line syntax.
The application is an interactive application; it does not have a command line syntax.
Instead commands are executed from within the application in a command line structure. Instead commands are executed from within the application in a command line structure.
When you first start the (`SYSCONF`) utility it will display the current switches When you first start the (`SYSCONF`) utility it will display the current switches
followed by a command listing. followed by a command listing.
When you first run the (`SYSCONF`) utility the NVRAM will be uninitialised, and can When you first run the (`SYSCONF`) utility the NVRAM will be uninitialised, and can
be initialised using the (R)eset command, which write default values to NVRAM.
be initialised using the (R)eset command, which writes default values to NVRAM.
Updates are done immediately to NVRAM as you enter them, i.e. there is no confirm Updates are done immediately to NVRAM as you enter them, i.e. there is no confirm
changes step. If you make an incorrect changes you simply need to enter a new
changes step. If you make any incorrect changes, you simply need to enter a new
command to set the Switch value correctly. command to set the Switch value correctly.
Once a change has been made it is available, however may not take effect until
Once a change has been made it is available, however it may not take effect until
the next system reboot. This is dependent on the Switch itself. the next system reboot. This is dependent on the Switch itself.
If no NVRAM is provided by your hardware then running this application will just
If no NVRAM is provided by your hardware, then running this application will just
report the missing hardware and exit immediately. report the missing hardware and exit immediately.
To exit from the application use the (Q)uit command. To exit from the application use the (Q)uit command.
@ -445,7 +445,7 @@ character is used to delimit parameters in the command.
This switch will define if the system will perform auto boot at the RomWBW boot prompt. This switch will define if the system will perform auto boot at the RomWBW boot prompt.
Enabling this will not prevent a user from typing a boot command, so long as the timeout is not Enabling this will not prevent a user from typing a boot command, so long as the timeout is not
exceeded. When configured this replaces the (`BOOT_DEFAULT`) variable
exceeded. When configured this replaces the (`AUTO_CMD`) variable
defined in build configuration. defined in build configuration.
Making changes to auto boot has no affect until the next reboot. Making changes to auto boot has no affect until the next reboot.
@ -465,13 +465,13 @@ Making changes to auto boot has no affect until the next reboot.
| S AB E,10 | Enable Auto Boot with 10 second delay | | S AB E,10 | Enable Auto Boot with 10 second delay |
| S AB D | Disable Auto Boot | | S AB D | Disable Auto Boot |
#### Default Boot (DB)
#### Boot Options (BO)
This switch will define the default boot command to be executed when pressing enter
at the RomWBW boot prompt. When configured this replaces the (`BOOT_TIMEOUT`) variable
defined in build configuration.
This switch will define the boot command to be executed when auto boot is
enabled. When configured this replaces the (`AUTO_CMD`) variable
defined in the ROM build configuration.
Making changes to auto boot has no affect until the next reboot.
Making changes to boot options has no affect until the next reboot.
**Arguments** **Arguments**
@ -487,8 +487,8 @@ Making changes to auto boot has no affect until the next reboot.
| Command | Description | | Command | Description |
|-------------|----------------------------------------------------------| |-------------|----------------------------------------------------------|
| S DB D,2,14 | Set the default boot from Disk; Unit 2, Slice 14 |
| S DB R,M | Set the default boot to be the (M)onitor Rom Application |
| S BO D,2,14 | Set the default boot from Disk; Unit 2, Slice 14 |
| S BO R,M | Set the default boot to be the (M)onitor Rom Application |
## CP/M 2.2 ## CP/M 2.2

11
Source/Doc/SystemGuide.md

@ -531,7 +531,7 @@ The following switch ID's are defined, and described in sections below.
| Switch Number | Name | Description | | Switch Number | Name | Description |
|---------------|--------------|-----------------------------------------------| |---------------|--------------|-----------------------------------------------|
| 0x00 | -reserved- | Reserved | | 0x00 | -reserved- | Reserved |
| 0x01 | Default Boot | Default boot, either a Rom App or Disk Boot |
| 0x01 | Boot Options | ROM or Disk Boot Settings |
| 0x02 | -n/a- | -n/a- high order byte of previous switch | | 0x02 | -n/a- | -n/a- high order byte of previous switch |
| 0x03 | Auto Boot | Automatically boot enabled without user input | | 0x03 | Auto Boot | Automatically boot enabled without user input |
| 0x04 - 0xFE | -future- | Future general usage | | 0x04 - 0xFE | -future- | Future general usage |
@ -544,18 +544,19 @@ the bytes in NVRAM to check for authenticity before using the configuration.
|-------------|--------------|-----------------------------------| |-------------|--------------|-----------------------------------|
| 0x00 | Header Byte | Header Signature Byte 'W' | | 0x00 | Header Byte | Header Signature Byte 'W' |
| 0x01 - 0x03 | Switch Data | Actual Switch Data | | 0x01 - 0x03 | Switch Data | Actual Switch Data |
| 0x04 | Parity Check | Parity byte to check authenticity |
| 0x04 | Parity Check | Checksum byte to check integrity |
The above data is copied into the HBIOS Configuration Block (HCB) at startup at The above data is copied into the HBIOS Configuration Block (HCB) at startup at
the location starting at CB_SWITCHES. the location starting at CB_SWITCHES.
### Default Boot (NVSW_DEFBOOT)
### Boot Options (NVSW_BOOTOPTS)
16 bit Switch defining the default Rom application or Disk device to boot.
16 bit Switch defining the ROM application or Disk device to boot if
automatic booting is enabled.
| Bit 15 | Bits 14-8 | Bits 7-0 | | Bit 15 | Bits 14-8 | Bits 7-0 |
|-------------|-------------------|--------------------| |-------------|-------------------|--------------------|
| 1 = Rom App | -undefined- | App to Boot (Char) |
| 1 = ROM App | -undefined- | App to Boot (Char) |
| 0 = Disk | Disk Unit (0-127) | Disk Slice (0-255) | | 0 = Disk | Disk Unit (0-127) | Disk Slice (0-255) |
### Auto Boot (NVSW_AUTOBOOT) ### Auto Boot (NVSW_AUTOBOOT)

18
Source/Doc/UserGuide.md

@ -905,24 +905,24 @@ some limited configuration option options inside this NVRAM.
Several configuration options are currently supported, these are known as Switches Several configuration options are currently supported, these are known as Switches
* Specify Automatic boot at startup, after an optional delay (AB) * Specify Automatic boot at startup, after an optional delay (AB)
* Define the Default Disk or ROM App to be booted at startup (DB)
* Define the Disk or ROM App to be booted at for automatic boot (BO)
RomWBW uses bytes located at the start of RTC NVRAM, and includes a Parity check of
the bytes in NVRAM to check for authenticity before using the configuration.
RomWBW uses bytes located at the start of RTC NVRAM, and includes a checksum of
the bytes in NVRAM to check for integrity before using the configuration.
Initially NVRAM has to be reset (with default values), before it can be used. Initially NVRAM has to be reset (with default values), before it can be used.
As well as setting defaults, it also writes the correct parity, and allows the
NVRAM to be accessed and to store RomWBW config.
As well as setting defaults, it also writes the correct checksum, and allows the
NVRAM to be accessed and to store the RomWBW config.
This is an explicit step that must be done, as any existing data stored is overitten.
If you are using NVRAM for other purposes then you can continue to do so
This is an explicit step that must be done, as any existing data stored is overwritten.
If you are using NVRAM for other purposes, then you can continue to do so
so long as you do NOT perform this Reset step. so long as you do NOT perform this Reset step.
NVRAM may also need to be reset in these circumstances
NVRAM may also need to be reset in these circumstances:
* When there has been a loss of power to the NVRAM. * When there has been a loss of power to the NVRAM.
* When upgrading to a new RomWBW version, or a RomWBW version that has new switches. * When upgrading to a new RomWBW version, or a RomWBW version that has new switches.
* If the NVRAM has been overitten by another application.
* If the NVRAM has been overwritten by another application.
If you want to continue to use NVRAM in your applications you may want to consider storing If you want to continue to use NVRAM in your applications you may want to consider storing
your data above the RomWBW Switch data. your data above the RomWBW Switch data.

20
Source/HBIOS/hbios.asm

@ -462,7 +462,7 @@ CB_HEAPTOP .DW 0
; ;
.FILL (HCB + $30 - $),0 .FILL (HCB + $30 - $),0
; ;
; First byte (header) of NVRAM = "W" if fully initialised, or a ststus byte
; First byte (header) of NVRAM = "W" if fully initialised, or a status byte
; = 0 if no NVRAM detected, or = 1 If NVR exists, but not configured ; = 0 if no NVRAM detected, or = 1 If NVR exists, but not configured
CB_SWITCHES .DB 0 ; this byte is set during init CB_SWITCHES .DB 0 ; this byte is set during init
; ;
@ -470,20 +470,20 @@ CB_SWITCHES .DB 0 ; this byte is set during init
; Bit 7-0 DISK BOOT SLice Number to Boot -> default = 0 ; Bit 7-0 DISK BOOT SLice Number to Boot -> default = 0
; Bit 7-0 ROM BOOT (alpha character) Application to boot -> default = "H" ; Bit 7-0 ROM BOOT (alpha character) Application to boot -> default = "H"
; Byte 1: (H) ; Byte 1: (H)
; Bit 7 - ROM/DISK - Rom or Disk Boot -> Default=ROM=1 (BOOT_DEFAULT is Numeric/Alpha)
; Bit 7 - ROM/DISK - Rom or Disk Boot -> Default=ROM=1 (AUTO_CMD is Numeric/Alpha)
; Bit 6-0 - DISK BOOT Disk Unit to Boot (0-127) -> default = 0 ; Bit 6-0 - DISK BOOT Disk Unit to Boot (0-127) -> default = 0
CB_SWDEFBOOT .DB 'H' ; (WORD) DEFAULT BOOT NVR OPTIONS. USED By ROMLDR
.DB DBOOT_ROM ; Default Boot - ROM Application
CB_SW_AB_OPT .DB 'H' ; (WORD) AUTO BOOT NVR OPTIONS. USED By ROMLDR
.DB BOPTS_ROM ; Boot Opts - ROM Application
; ;
; Byte 0: (L) ; Byte 0: (L)
; Bit 7-6 - Reserved ; Bit 7-6 - Reserved
; Bit 5 - AUTO BOOT Auto boot, default=false (BOOT_TIMEOUT != -1) ; Bit 5 - AUTO BOOT Auto boot, default=false (BOOT_TIMEOUT != -1)
; Bit 4 - Reserved ; Bit 4 - Reserved
; Bit 3-0 - BOOT_TIMEOUT in seconds (0-15) 0=immediate -> default=3 ; Bit 3-0 - BOOT_TIMEOUT in seconds (0-15) 0=immediate -> default=3
CB_SWAUTOB .DB 0 ; AUTO BOOT NVR OPTIONS. USED By ROMLDR
CB_SW_AB_CFG .DB 0 ; AUTO BOOT NVR CONFIG. USED By ROMLDR
; ;
; CHECKSUM ; CHECKSUM
CB_SWITCHCK .DB 0 ; CHECKSUM (XOR=0), INCLUDES HEADER and CB_VERSION
CB_SW_CKSUM .DB 0 ; CHECKSUM (XOR=0), INCLUDES HEADER and CB_VERSION
; ;
; STANDARD BANK ID'S START AT $D8. DEFAULT VALUES FOR 512KB SYSTEM WITH NO RESERVED BANKS ; STANDARD BANK ID'S START AT $D8. DEFAULT VALUES FOR 512KB SYSTEM WITH NO RESERVED BANKS
; ;
@ -3407,7 +3407,7 @@ NVR_INIT:
JR NZ, NVR_INIT_DEF ; failed to correclty read data JR NZ, NVR_INIT_DEF ; failed to correclty read data
; ;
CALL NVSW_CHECKSUM ; checksum calc into A CALL NVSW_CHECKSUM ; checksum calc into A
LD HL,CB_SWITCHCK ; address of HCB switch checksum value
LD HL,CB_SW_CKSUM ; address of HCB switch checksum value
CP (HL) ; compare Caculated Check, with hcb Check Value CP (HL) ; compare Caculated Check, with hcb Check Value
JR Z,NVR_INIT_END ; The same so success JR Z,NVR_INIT_END ; The same so success
NVR_INIT_DEF: NVR_INIT_DEF:
@ -7611,7 +7611,7 @@ NVSW_RESET:
; ;
NVSW_UPDATE: NVSW_UPDATE:
CALL NVSW_CHECKSUM ; CALC checksum into A CALL NVSW_CHECKSUM ; CALC checksum into A
LD (CB_SWITCHCK),A ; store checksum in hcb
LD (CB_SW_CKSUM),A ; store checksum in hcb
CALL NVSW_WRITE ; write the bytes to nvr CALL NVSW_WRITE ; write the bytes to nvr
RET Z ; Successful write, return RET Z ; Successful write, return
; write failed for some reason ??? ; write failed for some reason ???
@ -7695,8 +7695,8 @@ NVSW_WRITE2:
; ;
NVSW_DEFAULT: NVSW_DEFAULT:
.DB 'W' ; Signature Byte .DB 'W' ; Signature Byte
.DB 'H' ; Default Boot - Rom Application [H]elp
.DB DBOOT_ROM ; Default Boot - ROM Application
.DB 'H' ; Auto Boot - Rom Application [H]elp
.DB BOPTS_ROM ; Auto Boot - ROM Application
.DB 0 ; Auto Boot - NO auto boot .DB 0 ; Auto Boot - NO auto boot
; Configure above byte from (BOOT_TIMEOUT != -1) ; Configure above byte from (BOOT_TIMEOUT != -1)
; SIZE OF NVR BYTES ; SIZE OF NVR BYTES

10
Source/HBIOS/hbios.inc

@ -340,7 +340,7 @@ SW_OPT .EQU %00000111 ; SLICE/ROM APP
; NVRAM SWITCHES ; NVRAM SWITCHES
; ;
; used for identifying Non Volitile Switches ; used for identifying Non Volitile Switches
NVSW_DEFBOOT .EQU 1 ; Default Boot NVRAM Switch
NVSW_BOOTOPTS .EQU 1 ; Boot Options NVRAM Switch
NVSW_AUTOBOOT .EQU 3 ; Auto Boot NVRAM Switch NVSW_AUTOBOOT .EQU 3 ; Auto Boot NVRAM Switch
; ;
; NVRAM SWITCH BIT MASKS ; NVRAM SWITCH BIT MASKS
@ -349,8 +349,8 @@ NVSW_AUTOBOOT .EQU 3 ; Auto Boot NVRAM Switch
ABOOT_AUTO .EQU %00100000 ; AUTO=1/MANUAL=0 BOOT ABOOT_AUTO .EQU %00100000 ; AUTO=1/MANUAL=0 BOOT
ABOOT_TIMEOUT .EQU %00001111 ; MENU TIMEOUT IN SECONDS, 0=IMMEDIAGE ABOOT_TIMEOUT .EQU %00001111 ; MENU TIMEOUT IN SECONDS, 0=IMMEDIAGE
; DEFAULT BOOT MASKS ; DEFAULT BOOT MASKS
DBOOT_ROM .EQU %10000000 ; ROM=1/DISK=0 FLAG
DBOOT_UNIT .EQU %01111111 ; DISK UNIT
BOPTS_ROM .EQU %10000000 ; ROM=1/DISK=0 FLAG
BOPTS_UNIT .EQU %01111111 ; DISK UNIT
; ;
; MEDIA ID VALUES ; MEDIA ID VALUES
; ;
@ -510,8 +510,8 @@ HCB_BOOTMODE .EQU $14 ; HBIOS BOOTMODE (BYTE)
HCB_HEAP .EQU $20 ; DWORD ADDRESS OF START OF HEAP HCB_HEAP .EQU $20 ; DWORD ADDRESS OF START OF HEAP
HCB_HEAPTOP .EQU $22 ; DWORD ADDRESS OF TOP OF HEAP HCB_HEAPTOP .EQU $22 ; DWORD ADDRESS OF TOP OF HEAP
; ;
HCB_SW_DBOOT .EQU $31 ; DEFAULT BOOT CONFIG (WORD)
HCB_SW_AUTOB .EQU $33 ; AUTO BOOT CONFIG (BYTE)
HCB_SW_BOPTS .EQU $31 ; BOOT OPTIONS (WORD)
HCB_SW_AUTOB .EQU $33 ; AUTO BOOT (BYTE)
; ;
; MEMORY BANK IDS (ONE BYTE EACH) ; MEMORY BANK IDS (ONE BYTE EACH)
HCB_BIDCOM .EQU $D8 ; COMMON BANK (UPPER 32K) HCB_BIDCOM .EQU $D8 ; COMMON BANK (UPPER 32K)

4
Source/HBIOS/romldr.asm

@ -742,10 +742,10 @@ fp_flopboot2:
; ;
runnvr: runnvr:
ld bc,BC_SYSGET_SWITCH ; HBIOS SysGet NVRAM Switches ld bc,BC_SYSGET_SWITCH ; HBIOS SysGet NVRAM Switches
ld d,NVSW_DEFBOOT ; Read Default Boot (disk/Rom) switch
ld d,NVSW_BOOTOPTS ; Read Boot options (disk/Rom) switch
rst 08 rst 08
ld a,h ld a,h
and DBOOT_ROM ; Get the Default Boot from ROM Flag
and BOPTS_ROM ; Get the Boot Opts ROM Flag
jr nz,nvrsw_rom ; IF Set as ROM App BOOT, otherwise Disk jr nz,nvrsw_rom ; IF Set as ROM App BOOT, otherwise Disk
; ;
nvrsw_disk: nvrsw_disk:

104
Source/HBIOS/sysconf.asm

@ -208,8 +208,8 @@ helpandloop: ; HELP MENU
; the folloiwng is just testing a single charater ; the folloiwng is just testing a single charater
cp 'A' ; Auto Boot help menu cp 'A' ; Auto Boot help menu
JP Z,HELP_AB JP Z,HELP_AB
cp 'D' ; Default Boot help menu
JP Z,HELP_DB
cp 'B' ; Boot Options help menu
JP Z,HELP_BO
; ;
printmainhelp: printmainhelp:
ld de,MSG_MENU ; nothing found Print the Main Menu ld de,MSG_MENU ; nothing found Print the Main Menu
@ -237,8 +237,8 @@ setvalueandloop:
; the folloiwng is just testing a single charater ; the folloiwng is just testing a single charater
cp 'A' ; Auto Boot help menu cp 'A' ; Auto Boot help menu
JP Z,SET_AB JP Z,SET_AB
cp 'D' ; Default Boot help menu
JP Z,SET_DB
cp 'B' ; Boot Options help menu
JP Z,SET_BO
; ;
setvalueerror: setvalueerror:
ld de,MSG_QUESTION ; nothing found Print the Main Menu ld de,MSG_QUESTION ; nothing found Print the Main Menu
@ -269,8 +269,8 @@ PRT_STATUS:
; ;
; print invdividual stats, on all per switch ; print invdividual stats, on all per switch
; ;
CALL STAT_DEFBOOT
CALL STAT_AUTOB
CALL STAT_BO
CALL STAT_AB
; ;
; end individual stats ; end individual stats
; ;
@ -297,31 +297,31 @@ STAT_NOTFOUND1:
; Specific Switches Below ; Specific Switches Below
; ====================================================================== ; ======================================================================
; ;
; DEFAULT BOOT
; BOOT OPTIONS
; Byte 1: (L) ; Byte 1: (L)
; Bit 7-0 DISK BOOT SLice Number to Boot -> default = 0 ; Bit 7-0 DISK BOOT SLice Number to Boot -> default = 0
; Bit 7-0 ROM BOOT (alpha character) Application to boot -> default = 0 translates to "H" ; Bit 7-0 ROM BOOT (alpha character) Application to boot -> default = 0 translates to "H"
; Byte 2: (H) ; Byte 2: (H)
; Bit 7 - DISK/ROM - Disk or Rom Boot -> Default=ROM (BOOT_DEFAULT is Numeric/Alpha)
; Bit 7 - DISK/ROM - Disk or Rom Boot -> Default=ROM (AUTO_CMD is Numeric/Alpha)
; Bit 6-0 - DISK BOOT Disk Unit to Boot (0-127) -> default = 0 ; Bit 6-0 - DISK BOOT Disk Unit to Boot (0-127) -> default = 0
; ;
; PRINT CURRENT SWITCH VALUE ; PRINT CURRENT SWITCH VALUE
; ;
STAT_DEFBOOT:
STAT_BO:
LD BC,BC_SYSGET_SWITCH LD BC,BC_SYSGET_SWITCH
LD D,NVSW_DEFBOOT
LD D,NVSW_BOOTOPTS
RST 08 ; Should return auto Boot in HL RST 08 ; Should return auto Boot in HL
RET NZ ; return if error RET NZ ; return if error
LD de,MSG_DEFBOOT
LD de,MSG_BO
CALL prtstr CALL prtstr
LD A,H ; Byte 2 LD A,H ; Byte 2
AND DBOOT_ROM ; DISK/ROM
JR NZ,STAT_AUTOROM ; is it ROM
STAT_AUTODISK:
AND BOPTS_ROM ; DISK/ROM
JR NZ,STAT_BO_ROM ; is it ROM
STAT_BO_DISK:
LD de,MSG_DISK ; disk LD de,MSG_DISK ; disk
CALL prtstr CALL prtstr
LD A,H ; Byte 2 LD A,H ; Byte 2
AND DBOOT_UNIT ; Unit
AND BOPTS_UNIT ; Unit
CALL prtdecb CALL prtdecb
LD de,MSG_DISK2 ; Slice LD de,MSG_DISK2 ; Slice
CALL prtstr CALL prtstr
@ -330,7 +330,7 @@ STAT_AUTODISK:
LD de,MSG_DISK3 ; close bracket LD de,MSG_DISK3 ; close bracket
CALL prtstr CALL prtstr
RET RET
STAT_AUTOROM:
STAT_BO_ROM:
LD de,MSG_ROM ; ROM LD de,MSG_ROM ; ROM
CALL prtstr CALL prtstr
LD A,L ; ROM APP LD A,L ; ROM APP
@ -341,67 +341,67 @@ STAT_AUTOROM:
; ;
; SET SWITCH VALUE ; SET SWITCH VALUE
; ;
SET_DB:
SET_BO:
CALL findskipws ; skip over WS to first char CALL findskipws ; skip over WS to first char
JR z,SET_DB_ERR ; if empty line, print main help
JR z,SET_BO_ERR ; if empty line, print main help
call upcase call upcase
cp 'R' ; ROM cp 'R' ; ROM
JR Z,SET_DB_ROM
JR Z,SET_BO_ROM
cp 'D' ; DISK cp 'D' ; DISK
JR Z,SET_DB_DISK
JR SET_DB_ERR
SET_DB_ROM:
JR Z,SET_BO_DISK
JR SET_BO_ERR
SET_BO_ROM:
CALL findskipcomma CALL findskipcomma
CALL skipws CALL skipws
JR z,SET_DB_ERR ; if empty line, print main help
JR z,SET_BO_ERR ; if empty line, print main help
LD L,A ; LOW BYTE ; next CHAR is the ROM App Name LD L,A ; LOW BYTE ; next CHAR is the ROM App Name
LD A,DBOOT_ROM
LD H,A ; HIGH BYTE, has constant. DBOOT_ROM = $80
JR SET_DB_SAVE ; SAVE
SET_DB_DISK:
LD A,BOPTS_ROM
LD H,A ; HIGH BYTE, has constant. ABOOT_ROM = $80
JR SET_BO_SAVE ; SAVE
SET_BO_DISK:
CALL findskipcomma CALL findskipcomma
CALL skipws CALL skipws
JR z,SET_DB_ERR ; if empty line, print main help
JR z,SET_BO_ERR ; if empty line, print main help
CALL getnum ; next CHAR is the DISK UNIT CALL getnum ; next CHAR is the DISK UNIT
JR C,SET_DB_ERR ; overflow
JR C,SET_BO_ERR ; overflow
BIT 7,A ; is > 127 BIT 7,A ; is > 127
JR NZ, SET_DB_ERR
JR NZ, SET_BO_ERR
LD H,A ; HIGH BYTE, has disk unit < $80 LD H,A ; HIGH BYTE, has disk unit < $80
CALL findskipcomma CALL findskipcomma
CALL skipws CALL skipws
JR z,SET_DB_ERR ; if empty line, print main help
JR z,SET_BO_ERR ; if empty line, print main help
CALL getnum ; next CHAR is the SLICE CALL getnum ; next CHAR is the SLICE
JR C,SET_DB_ERR ; overflow
JR C,SET_BO_ERR ; overflow
LD L,A ; LOW BYTE, has the slice number LD L,A ; LOW BYTE, has the slice number
;JR SET_DB_SAVE ; SAVE - Fall Through
SET_DB_SAVE:
LD D,NVSW_DEFBOOT ; DEFAULT BOOT
;JR SET_BO_SAVE ; SAVE - Fall Through
SET_BO_SAVE:
LD D,NVSW_BOOTOPTS ; BOOT OPTIONS
JP setvaluesave ; SAVE THE VALUE JP setvaluesave ; SAVE THE VALUE
SET_DB_ERR:
SET_BO_ERR:
JP setvalueerror ; ERROR. Added this so can use JR above JP setvalueerror ; ERROR. Added this so can use JR above
; ;
; PRINT HELP TEST FOR SWITCH ; PRINT HELP TEST FOR SWITCH
; ;
HELP_DB:
ld de,MSG_DEFB_H
HELP_BO:
ld de,MSG_BO_H
JP printhelp JP printhelp
; ;
MSG_DEFBOOT .DB CR,LF, " [DB] / Default Boot: ",0
MSG_BO .DB CR,LF, " [BO] / Boot Options: ",0
MSG_DISK .DB "Disk (Unit = ",0 MSG_DISK .DB "Disk (Unit = ",0
MSG_DISK2 .DB ", Slice = ",0 MSG_DISK2 .DB ", Slice = ",0
MSG_DISK3 .DB ")",0 MSG_DISK3 .DB ")",0
MSG_ROM .DB "ROM (App = \"",0 MSG_ROM .DB "ROM (App = \"",0
MSG_ROM2 .DB "\")",0 MSG_ROM2 .DB "\")",0
; ;
MSG_DEFB_H .DB "\r\nDefault Boot - Disk or Rom App (DB):\r\n"
.DB " DB [R|D],[{romapp}|{unit},{slice}]\r\n"
.DB " e.g. S DB D,2,14 ; Disk Boot, unit 2, slice 14\r\n"
.DB " S DB R,M ; Rom Application 'M'onitor\r\n"
MSG_BO_H .DB "\r\nBoot Options - Disk or Rom App (BO):\r\n"
.DB " BO [R|D],[{romapp}|{unit},{slice}]\r\n"
.DB " e.g. S BO D,2,14 ; Disk Boot, unit 2, slice 14\r\n"
.DB " S BO R,M ; Rom Application 'M'onitor\r\n"
.DB " Note: Disk: Unit (0-127); Slice (0-255)\r\n",0 .DB " Note: Disk: Unit (0-127); Slice (0-255)\r\n",0
; ;
;======================================================================= ;=======================================================================
; ;
; AUTO BOOT
; AUTO BOOT CONFIG
; Byte 0: (L) ; Byte 0: (L)
; Bit 7-6 - Reserved ; Bit 7-6 - Reserved
; Bit 5 - AUTO BOOT Auto boot, default=false (i.e. BOOT_TIMEOUT != -1) ; Bit 5 - AUTO BOOT Auto boot, default=false (i.e. BOOT_TIMEOUT != -1)
@ -410,7 +410,7 @@ MSG_DEFB_H .DB "\r\nDefault Boot - Disk or Rom App (DB):\r\n"
; ;
; PRINT CURRENT SWITCH VALUE ; PRINT CURRENT SWITCH VALUE
; ;
STAT_AUTOB:
STAT_AB:
LD BC,BC_SYSGET_SWITCH LD BC,BC_SYSGET_SWITCH
LD D,NVSW_AUTOBOOT LD D,NVSW_AUTOBOOT
RST 08 ; Should return auto Boot in HL RST 08 ; Should return auto Boot in HL
@ -420,14 +420,14 @@ STAT_AUTOB:
LD A,L ; Byte 1 LD A,L ; Byte 1
LD de,MSG_DISABLED LD de,MSG_DISABLED
AND ABOOT_AUTO ; enabled AND ABOOT_AUTO ; enabled
JR Z, STAT_AUTOB1 ; disabled
JR Z, STAT_AB1 ; disabled
LD de,MSG_ENABLED ; enabled LD de,MSG_ENABLED ; enabled
CALL prtstr CALL prtstr
LD A,L ; Byte 1 LD A,L ; Byte 1
AND ABOOT_TIMEOUT ; timeout AND ABOOT_TIMEOUT ; timeout
CALL prtdecb ; print timeout CALL prtdecb ; print timeout
LD de,MSG_ENABLED2 ; and closing bracket LD de,MSG_ENABLED2 ; and closing bracket
STAT_AUTOB1:
STAT_AB1:
CALL prtstr CALL prtstr
RET RET
; ;
@ -458,7 +458,7 @@ SET_AB_DISAB:
LD L,0 LD L,0
;JR SET_AB_SAVE ; SAVE - Fall Through ;JR SET_AB_SAVE ; SAVE - Fall Through
SET_AB_SAVE: SET_AB_SAVE:
LD D,NVSW_AUTOBOOT ; AUTO BOOT
LD D,NVSW_AUTOBOOT ; AUTO BOOT CONFIG
JP setvaluesave ; SAVE THE VALUE JP setvaluesave ; SAVE THE VALUE
SET_AB_ERR: SET_AB_ERR:
JP setvalueerror ; ERROR. Added this so can use JR above JP setvalueerror ; ERROR. Added this so can use JR above
@ -466,7 +466,7 @@ SET_AB_ERR:
; PRINT HELP TEST FOR SWITCH ; PRINT HELP TEST FOR SWITCH
; ;
HELP_AB: HELP_AB:
ld de,MSG_AUTOB_H
ld de,MSG_AB_H
JP printhelp JP printhelp
; ;
MSG_AUTOB: .DB CR,LF," [AB] / Auto Boot: ",0 MSG_AUTOB: .DB CR,LF," [AB] / Auto Boot: ",0
@ -474,7 +474,7 @@ MSG_ENABLED: .DB "Enabled (Timeout = ",0
MSG_ENABLED2: .DB ")",0 MSG_ENABLED2: .DB ")",0
MSG_DISABLED: .DB "Disabled",0 MSG_DISABLED: .DB "Disabled",0
; ;
MSG_AUTOB_H .DB "\r\nAutomatic Boot (AB):\r\n"
MSG_AB_H .DB "\r\nAutomatic Boot (AB):\r\n"
.DB " AB <D|E>[,{timeout}]\r\n" .DB " AB <D|E>[,{timeout}]\r\n"
.DB " e.g. S AB E,3 ; enabled (show menu) with 3 second timout before boot\r\n" .DB " e.g. S AB E,3 ; enabled (show menu) with 3 second timout before boot\r\n"
.DB " S AB E,0 ; enabled with immediate effect, bypass menu\r\n" .DB " S AB E,0 ; enabled with immediate effect, bypass menu\r\n"
@ -1031,12 +1031,12 @@ stack .equ $ ; stack top
SLACK .EQU (NVR_END - $) SLACK .EQU (NVR_END - $)
; ;
#IF (SLACK < 0) #IF (SLACK < 0)
.ECHO "*** NVRCONFIG APP IS TOO BIG!!!\n"
.ECHO "*** SYSCONF APP IS TOO BIG!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR !!! ; FORCE AN ASSEMBLY ERROR
#endif #endif
; ;
.FILL SLACK,$00 .FILL SLACK,$00
.ECHO "NVRCONFIG space remaining: "
.ECHO "SYSCONF space remaining: "
.ECHO SLACK .ECHO SLACK
.ECHO " bytes.\n" .ECHO " bytes.\n"
; ;

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.97"
#DEFINE BIOSVER "3.5.0-dev.98"
#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.97"
db "3.5.0-dev.98"
endm endm

Loading…
Cancel
Save