Browse Source

Reimplement Duodyne boot recovery

Add feature description in documentation.
pull/459/head
b1ackmai1er 1 year ago
parent
commit
7f07af1b62
  1. 19
      Source/Doc/SystemGuide.md
  2. 1
      Source/HBIOS/cfg_DUO.asm
  3. 1
      Source/HBIOS/cfg_MASTER.asm
  4. 5
      Source/HBIOS/std.asm

19
Source/Doc/SystemGuide.md

@ -499,6 +499,25 @@ The startup then proceeds very much like the Application Boot
process described above. HBIOS is installed in its operating bank process described above. HBIOS is installed in its operating bank
and control is passed to the Boot Loader. and control is passed to the Boot Loader.
## Boot Recovery
To assist users when driver faults or misconfiguration causes a boot
failure, RomWBW supports a limited recovery cabability. This is
acheived by allowing the user to reboot their machine, loading
a minimal driver set. Implementation of this feature requires a
hardware input "BOOT RECOVERY" button to be available and
appropriate software configuration to be completed in the HBIOS.
When implemented, holding the "BOOT RECOVERY" button in after a
reset or power cycle will cause the normal driver load process to
be skipped in preference to a minimal set of drivers being loaded.
Typically this would be: Serial communication, RAM disk and parallel
port IDE interface drivers.
Platforms supporting this option currently are the MBC, Duodyne and
latter version of the ECB-SBC-V3.
# Driver Model # Driver Model
The framework code for bank switching also allows hardware drivers to be The framework code for bank switching also allows hardware drivers to be

1
Source/HBIOS/cfg_DUO.asm

@ -54,6 +54,7 @@ HBIOS_MUTEX .SET FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .SET 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) TICKFREQ .SET 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BT_REC_TYPE .SET BT_REC_DUORI ; BOOT RECOVERY METHOD TO USE
BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .SET 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT BOOT_DELAY .SET 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT AUTOCON .SET FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT

1
Source/HBIOS/cfg_MASTER.asm

@ -54,6 +54,7 @@ HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
USELZSA2 .EQU FALSE ; ENABLE FONT COMPRESSION USELZSA2 .EQU FALSE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BT_REC_TYPE .EQU BT_REC_NONE ; BOOT RECOVERY METHOD TO USE
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
AUTOCON .EQU FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT AUTOCON .EQU FALSE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT

5
Source/HBIOS/std.asm

@ -102,11 +102,10 @@ BT_AUTO .EQU 2 ; AUTO SELECT BOOT_DEFAULT AFTER BOOT_TIMEOUT
; ;
BT_REC_NONE .EQU 0 ; NO RECOVERY MODE BT_REC_NONE .EQU 0 ; NO RECOVERY MODE
BT_REC_FORCE .EQU 1 ; FORCE BOOT RECOVERY MODE BT_REC_FORCE .EQU 1 ; FORCE BOOT RECOVERY MODE
BT_REC_SBC01 .EQU 2 ; ECB-SBCV2 - BIT 1 RTC HIGH
BT_REC_SBCB0 .EQU 2 ; ECB-SBCV2 - BIT 0 RTC HIGH
BT_REC_SBC1B .EQU 3 ; ECB-SBCV2 - 1-BIT IO PORT BT_REC_SBC1B .EQU 3 ; ECB-SBCV2 - 1-BIT IO PORT
BT_REC_SBCRI .EQU 4 ; ECB-SBCV2 - 16550 UART RING INDICATOR LINE BT_REC_SBCRI .EQU 4 ; ECB-SBCV2 - 16550 UART RING INDICATOR LINE
;
BT_REC_TYPE .EQU BT_REC_NONE ; BOOT RECOVERY METHOD TO USE
BT_REC_DUORI .EQU 5 ; DUO MULTI I/O - TL16C2552FN UART RING INDICATOR LINE
; ;
; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD_TBL) ; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD_TBL)
; ;

Loading…
Cancel
Save