Browse Source

Merge pull request #577 from kiwisincebirth/map/slc-inv-rom

Added New Rom App - Slice Inventory - executed from RomLdr "S"
pull/578/head
Wayne Warthen 7 months ago
committed by GitHub
parent
commit
5a519540bc
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      Doc/ChangeLog.txt
  2. 3
      Source/Apps/slabel/slabel.asm
  3. 4
      Source/Doc/Introduction.md
  4. 5
      Source/HBIOS/Build.cmd
  5. 5
      Source/HBIOS/Makefile
  6. 398
      Source/HBIOS/invntslc.asm
  7. 8
      Source/HBIOS/layout.inc
  8. 122
      Source/HBIOS/romldr.asm

1
Doc/ChangeLog.txt

@ -13,6 +13,7 @@ Version 3.6
- WBW: Per Peter Onion, switch KERMIT default file xfer mode to binary
- J?L: Source for ZSDOS2 and BPBIOS Utilities (from disassembly)
- WBW: Support ROM-based font storage
- MAP: New Slice Inventory Rom App "S" display bootable slices, during boot
Version 3.5.1
-------------

3
Source/Apps/slabel/slabel.asm

@ -4,6 +4,9 @@
;==============================================================================
;
; Author: Mark Pruden
;
; This is a SUPERSET of INVNTSLC.ASM -> Please See this program also when
; making changes, as code ( in routine prtslc: ) exists there also
;______________________________________________________________________________
;
; Usage:

4
Source/Doc/Introduction.md

@ -290,8 +290,8 @@ please let me know if I missed you!
- significant content in the Disk Catalog and User Guide
- creation of the Introduction and Hardware documents
- Z3PLUS operating system disk image
- COPYSL utility
- SLABEL utility
- COPYSL, and SLABEL utilities
- Display of bootable slices via "S" command during startup
- a feature for RomWBW configuration by NVRAM
- the /B bulk mode of disk assignment to the ASSIGN utility

5
Source/HBIOS/Build.cmd

@ -71,7 +71,7 @@ if %Platform%==DUO (
)
::
:: Bring the previously build font files into this directory
:: Bring the previously build font files into this directory
::
copy ..\Fonts\font*.asm . || exit /b
@ -91,6 +91,7 @@ tasm -t%CPUType% -g3 -dAPPBOOT hbios.asm hbios_app.bin hbios_app.lst || exit /b
call :asm dbgmon || exit /b
call :asm romldr || exit /b
call :asm invntslc || exit /b
call :asm eastaegg || exit /b
call :asm nascom || exit /b
:: call :asm tastybasic || exit /b
@ -124,7 +125,7 @@ if %Platform%==S100 (
copy /b romldr.bin + dbgmon.bin + ..\zsdos\zsys_wbw.bin + ..\cpm22\cpm_wbw.bin rom1.bin || exit /b
copy /b ..\Forth\camel80.bin + nascom.bin + ..\tastybasic\src\tastybasic.bin + game.bin + eastaegg.bin + %NETBOOT% + updater.bin + sysconf.bin + usrrom.bin rom2.bin || exit /b
copy /b %HwMon% + romfonts.bin rom3.bin
copy /b %HwMon% + invntslc.bin + romfonts.bin rom3.bin
copy /b romldr.bin + dbgmon.bin + ..\zsdos\zsys_wbw.bin appboot.bin || exit /b
::

5
Source/HBIOS/Makefile

@ -32,7 +32,7 @@ else ifeq ($(CPUFAM),3)
TASM=$(BINDIR)/uz80as -t z280
endif
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin sysconf.bin sysconf.com usrrom.bin romfonts.bin
DEPS=prereq dbgmon.bin romldr.bin nascom.bin tastybasic.bin invntslc.bin game.bin eastaegg.bin updater.bin sysconf.bin sysconf.com usrrom.bin romfonts.bin
ifeq ($(ROM_PLATFORM),UNA)
ROMDEPS=romldr.bin dbgmon.bin
@ -72,7 +72,7 @@ $(OBJECTS) : $(ROMDEPS)
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$(BIOS).bin >appboot.bin
if [ $(ROM_PLATFORM) != UNA ] ; then \
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin $(NETBOOT) updater.bin sysconf.bin usrrom.bin >rom2.bin ; \
cat $(HWMON) romfonts.bin >rom3.bin ; \
cat $(HWMON) invntslc.bin romfonts.bin >rom3.bin ; \
for f in hbios_rom.bin rom1.bin rom2.bin rom3.bin ; do \
srec_cat $$f -Binary -Crop 0 0x7FFF -Checksum_Negative_Big_Endian 0x7FFF 1 1 -o $$f -Binary ; \
done \
@ -133,6 +133,7 @@ hbios_env.sh: hbios_env.com
romldr.bin: build.inc
dbgmon.bin: build.inc
nascom.bin: build.inc
invntslc.bin: build.inc
eastaegg.bin: build.inc
updater.bin: build.inc
romfonts.bin: build.inc

398
Source/HBIOS/invntslc.asm

@ -0,0 +1,398 @@
;==============================================================================
; SLICE INVENTORY - Inventory Slice
; Version June-2025
;==============================================================================
;
; Author: Mark Pruden
;
; This is a SUBSET of SLABEL.ASM -> Please See this program also when
; making changes, as most of the code found here exists there also
;
; This is a program CALLED from RomLoader, and is specific to RomWBW
;
; See SLABEL.ASM for ALL other Notes about This program.
;------------------------------------------------------------------------------
;
; Change Log:
; 2025-06-30 [MAP] Initial v1.0 release for distribution
;______________________________________________________________________________
;
; Include Files
;
#include "./hbios.inc"
#include "./layout.inc"
;______________________________________________________________________________
;
; General operational equates (should not requre adjustment)
;
sigbyte1 .equ $A5 ; 1st sig byte boot info sector (bb_sig)
sigbyte2 .equ $5A ; 2nd sig byte boot info sector (bb_sig)
;
labelterm .equ '$' ; terminating charater for disk label
;
;*****************************************************************************
;
; APPLICATION WILL WILL BE LOADED AT USR_LOC. THEREFORE, THE CODE
; MUST "ORG" AT THIS ADDRESS. TO CHANGE THE LOAD LOCATION OF THIS
; CODE, YOU CAN UPDATE SLC_LOC IN LAYOUT.INC
;
.ORG SLC_LOC
;
;*****************************************************************************
; Main Code (shared) starts here
;*****************************************************************************
;
; Print list of all slices
;
prtslc:
ld de,PRTSLC_HDR ; Header for list of Slices
call prtstr ; Print It
;
ld bc,BC_SYSGET_DIOCNT ; FUNC: SYSTEM INFO GET DISK DRIVES
rst 08 ; E := UNIT COUNT
;
ld b,e ; MOVE Disk CNT TO B FOR LOOP COUNT
ld c,0 ; C WILL BE UNIT INDEX
prtslc1:
ld a,b ; loop counter
or a ; set flags
ret z ; IF no more drives, finished
;
ld a,c ; unit index
ld (currunit),a ; store the unit number
;
push bc ; save loop vars
call prtslc2 ; for each disk Unit, print its details
pop bc ; restore loop variables
;
inc c ; bump the unit number
djnz prtslc1 ; main disk loop
;
prtslcfin:
ret ; loop has finished, RETURN
;
;*****************************************************************************
; Supporting Code Stars Here
;*****************************************************************************
;
; Print list of All Slices for a given Unit
;
prtslc2:
; get the media infor
ld b,BF_DIOMEDIA ; get media information
ld e,1 ; with media discovery
rst 08 ; do media discovery
ret nz ; an error
;
ld a,MID_HD ; hard disk
cp e ; is it hard disk
ret nz ; if not noting to do
;
; setup the loop
ld b,64 ; arbitrary (?) number of slices to check.
; NOTE: could be higher, but each slice check has disk IO
ld c,0 ; starting at slice 0
;
prtslc2a:
ld a,c ; slice number
ld (currslice),a ; save slice number
;
push bc ; save loop
call prtslc3 ; print detals of the slice
pop bc ; restore loop
ret nz ; if error dont continie
;
inc c ; next slice number
djnz prtslc2a ; loop if more slices
;
ret ; return from Slice Loop
;
;-------------------------------------------------------------------------------
; Print details of a Slice for a given Unit/Slice
;
prtslc3:
; get the details of the device / slice
ld a,(currunit)
ld d,a ; unit
ld a,(currslice)
ld e,a ; slice
ld b,BF_EXTSLICE ; EXT function to check compute slice offset
rst 08 ; noting this call checks partition table.
ret NZ ; an error, for lots of reasons, e.g. Slice not valid
;
call thirdsector ; point to the third sector of partition
;
call diskread ; do the sector read
ret nz ; read error. exit the slice loop
;
; Check signature
ld bc,(bb_sig) ; get signature read
ld a,sigbyte1 ; expected value of first byte
cp b ; compare
jr nz,prtslc5 ; ignore missing signature and loop
ld a,sigbyte2 ; expected value of second byte
cp c ; compare
jr nz,prtslc5 ; ignore missing signature and loop
;
; Print volume label string at HL, '$' terminated, 16 chars max
ld a,(currunit)
call prtdecb ; print unit number as decimal
call pdot ; print a DOT
ld a,(currslice)
call prtdecb
ld a,' '
call cout ; print a space
call cout ; print a space
ld hl,bb_label ; point to label
call pvol ; print it
call crlf
;
prtslc5:
xor a
ret
;
;-------------------------------------------------------------------------------
; Print volume label string at HL, '$' terminated, 16 chars max
;
pvol:
ld b,16 ; init max char downcounter
pvol1:
ld a,(hl) ; get next character
cp labelterm ; set flags based on terminator $
inc hl ; bump pointer regardless
ret z ; done if null
call cout ; display character
djnz pvol1 ; loop till done
ret ; hit max of 16 chars
;
;-------------------------------------------------------------------------------
; advance the DE HL LBA sector by 2, ie third sector
;
thirdsector:
ld bc,2 ; sector offset
add hl,bc ; add to LBA value low word
jr nc,sectornum ; check for carry
inc de ; if so, bump high word
sectornum:
ld (lba),hl ; update lba, low word
ld (lba+2),de ; update lba, high word
ret
;
;===============================================================================
;
; Read disk sector(s)
; DE:HL is LBA, B is sector count, C is disk unit
;
diskread:
;
; Seek to requested sector in DE:HL
ld a,(currunit)
ld c,a ; from the specified unit
set 7,d ; set LBA access flag
ld b,BF_DIOSEEK ; HBIOS func: seek
rst 08 ; do it
ret nz ; handle error
;
; Read sector(s) into buffer
ld a,(currunit)
ld c,a ; from the specified unit
ld e,1 ; read 1 sector
ld hl,(dma) ; read into info sec buffer
ld a,(BID_USR) ; get user bank to accum
ld d,a ; and move to D
ld b,BF_DIOREAD ; HBIOS func: disk read
rst 08 ; do it
ret ; and done
;
;*****************************************************************************
; SUPPORT ROUTINES
;*****************************************************************************
;
; Print a dot on console
;
pdot:
push af
ld a,'.'
call cout
pop af
ret
;
;-------------------------------------------------------------------------------
; Print character in A without destroying any registers
; NOTE THIS CODE IS SPECIFIC AS IT USES HBIOS DIRECTLY
;
prtchr:
cout:
push af ; save registers
push bc
push de
push hl
LD B,BF_CIOOUT
LD C,CIO_CONSOLE
LD E,A
RST 08
pop hl ; restore registers
pop de
pop bc
pop af
ret
;
;-------------------------------------------------------------------------------
; Start a newline on console (cr/lf)
;
crlf2:
call crlf ; two of them
crlf:
push af ; preserve AF
ld a,13 ; <CR>
call prtchr ; print it
ld a,10 ; <LF>
call prtchr ; print it
pop af ; restore AF
ret
;
;-------------------------------------------------------------------------------
; Print a zero terminated string at (de) without destroying any registers
;
prtstr:
push af
push de
;
prtstr1:
ld a,(de) ; get next char
or a
jr z,prtstr2
call prtchr
inc de
jr prtstr1
;
prtstr2:
pop de ; restore registers
pop af
ret
;
;-------------------------------------------------------------------------------
; Print value of a in decimal with leading zero suppression
;
prtdecb:
push hl
push af
ld l,a
ld h,0
call prtdec
pop af
pop hl
ret
;
;-------------------------------------------------------------------------------
; Print value of HL in decimal with leading zero suppression
;
prtdec:
push bc
push de
push hl
ld e,'0'
ld bc,-10000
call prtdec1
ld bc,-1000
call prtdec1
ld bc,-100
call prtdec1
ld c,-10
call prtdec1
ld e,0
ld c,-1
call prtdec1
pop hl
pop de
pop bc
ret
prtdec1:
ld a,'0' - 1
prtdec2:
inc a
add hl,bc
jr c,prtdec2
sbc hl,bc
cp e
jr z,prtdec3
ld e,0
call cout
prtdec3:
ret
;
;===============================================================================
;
PRTSLC_HDR .TEXT "\r\n\r\n"
.TEXT "Un.Sl Drive \r\n"
.TEXT "----- ----------------\r\n"
.DB 0
;
;===============================================================================
; Working data
;===============================================================================
;
currunit .db 0 ; parameters for disk unit, current unit
currslice .db 0 ; parameters for disk slice, current slice
lba .dw 0, 0 ; lba address (4 bytes), of slice
;
BID_USR .db 0 ; Bank ID for user bank
dma .dw bl_infosec ; address for disk buffer
;
;===============================================================================
;
; IT IS CRITICAL THAT THE FINAL BINARY BE EXACTLY SLC_SIZ BYTES.
; THIS GENERATES FILLER AS NEEDED. IT WILL ALSO FORCE AN ASSEMBLY
; ERROR IF THE SIZE EXCEEDS THE SPACE ALLOCATED.
;
SLACK .EQU (SLC_END - $)
;
#IF (SLACK < 0)
.ECHO "*** INVENTORY SLICE IS TOO BIG!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
.FILL SLACK,$00
.ECHO "Slice Inventory space remaining: "
.ECHO SLACK
.ECHO " bytes.\n"
;
;===============================================================================
; Disk Buffer
;===============================================================================
;
; define origin of disk buffer = 9000
; Note this shares SAME Buffer Address as ROMLDR
.org $9000
;
; Below is copied from ROM LDR
; Boot info sector is read into area below.
; The third sector of a disk device is reserved for boot info.
;
bl_infosec .equ $
.ds (512 - 128)
bb_metabuf .equ $
bb_sig .ds 2 ; signature (0xA55A if set)
bb_platform .ds 1 ; formatting platform
bb_device .ds 1 ; formatting device
bb_formatter .ds 8 ; formatting program
bb_drive .ds 1 ; physical disk drive #
bb_lu .ds 1 ; logical unit (lu)
.ds 1 ; msb of lu, now deprecated
.ds (bb_metabuf + 128) - $ - 32
bb_protect .ds 1 ; write protect boolean
bb_updates .ds 2 ; update counter
bb_rmj .ds 1 ; rmj major version number
bb_rmn .ds 1 ; rmn minor version number
bb_rup .ds 1 ; rup update number
bb_rtp .ds 1 ; rtp patch level
bb_label .ds 16 ; 16 character drive label
bb_term .ds 1 ; label terminator ('$')
bb_biloc .ds 2 ; loc to patch boot drive info
bb_cpmloc .ds 2 ; final ram dest for cpm/cbios
bb_cpmend .ds 2 ; end address for load
bb_cpment .ds 2 ; CP/M entry point (cbios boot)
;
;===============================================================================
.END

8
Source/HBIOS/layout.inc

@ -184,6 +184,14 @@ HWMON_END .EQU HWMON_LOC + HWMON_SIZ
HWMON_IMGLOC .EQU BNK_NXTLOC ; LOCATION OF BINARY LOAD IMAGE IN BANK
BNK_NXTLOC .SET HWMON_IMGLOC + HWMON_SIZ ; IMG LOC OF NEXT COMPONENT
;
; Slice Inventory Application
SLC_BNK .EQU BNK_CUR
SLC_LOC .EQU $0200 ; LOAD LOCATION
SLC_SIZ .EQU $0200 ; SIZE OF IMAGE
SLC_END .EQU SLC_LOC + SLC_SIZ ; END LOCATION
SLC_IMGLOC .EQU BNK_NXTLOC ; LOCATION OF BINARY LOAD IMAGE IN BANK
BNK_NXTLOC .SET SLC_IMGLOC + SLC_SIZ ; IMG LOC OF NEXT COMPONENT
;
FONTS_BNK .EQU BNK_CUR
FONTS_LOC .EQU BNK_NXTLOC
FONTS_SIZ .EQU $2000

122
Source/HBIOS/romldr.asm

@ -625,6 +625,8 @@ runcmd0:
cp 'R' ; R = reboot system
jp z,reboot ; if so, do it
#if (BIOS == BIOS_WBW)
cp 'S' ; S = Slice Inventory
jp z,slclst ; if so, do it
cp 'I' ; C = set console interface
jp z,setcon ; if so, do it
cp 'V' ; V = diagnostic verbosity
@ -632,18 +634,8 @@ runcmd0:
#endif
;
; Attempt ROM application launch
ld ix,(ra_tbl_loc) ; point to start of ROM app tbl
ld c,a ; save command in C
runcmd1:
ld a,(ix+ra_conkey) ; get match char
and ~$80 ; clear "hidden entry" bit
cp c ; compare
jp z,romload ; if match, load it
ld de,ra_entsiz ; table entry size
add ix,de ; bump IX to next entry
ld a,(ix) ; check for end
or (ix+1) ; ... of table
jr nz,runcmd1 ; loop till done
call findcon ; find the application from console Key in A REG
jp z,romload ; if match found, then load it
;
; Attempt disk boot
ld de,cmdbuf ; start of buffer
@ -905,6 +897,12 @@ applst2:
devlst:
jp prtall ; do it
;
; Slice list
;
slclst:
ld a,'S' ; "S"lice Inv App
jp romcall ; Call a Rom App with Return
;
; Set console interface unit
;
#if (BIOS == BIOS_WBW)
@ -1054,6 +1052,27 @@ reboot:
#endif
;
;=======================================================================
; Call a ROM Application (with return)
; This is same as romload: but doesnt display load messages
; Intended for Utility applications (part of RomWBW) not third part apps
; these apps are on Help menu, hidden from Application List
; Parameters A - The app to call.
;=======================================================================
;
romcall:
call findcon ; find the application based on A reg
ret nz ; if not found then return to prompt
;
call romcopy ; Copy ROM App into working memory
;
ld l,(ix+ra_ent) ; HL := app entry address
ld h,(ix+ra_ent+1) ; IX register returned from findcon
jp (hl) ; call to the routine.
;
; NOTE It is assumed the Rom App should perform a RET,
; returning control to the caller of this sub routine.
;
;=======================================================================
; Load and run a ROM application, IX=ROM app table entry
;=======================================================================
;
@ -1066,36 +1085,49 @@ romload:
ld h,(ix+ra_name+1)
call pstr
;
;ld hl,msg_load ; point to load message
;call dsky_show ; display message
ld c,DSKY_MSG_LDR_LOAD ; point to load message
call dsky_msg ; display message
;
call romcopy ; Copy ROM App into working memory
ld a,'.' ; dot character
call cout ; show progress
;
ld c,DSKY_MSG_LDR_GO ; point to go message
call dsky_msg ; display message
;
ld l,(ix+ra_ent) ; HL := app entry address
ld h,(ix+ra_ent+1) ; ...
jp (hl) ; go
;
;=======================================================================
; Routine - Copy Rom App from Rom to it's running location
; param : IX - Pointer to the Rom App to copy into RAM
;=======================================================================
;
romcopy:
;
#if (BIOS == BIOS_WBW)
;
; Copy image to it's running location
ld a,(ix+ra_bnk) ; get image source bank id
cp bid_cur ; special value?
jr nz,romload1 ; if not, continue
jr nz,romcopy1 ; if not, continue
ld a,(bid_ldr) ; else substitute
romload1:
romcopy1:
push af ; save source bank
;
ld e,a ; source bank to E
ld d,BID_USR ; dest is user bank
ld l,(ix+ra_siz) ; HL := image size
ld h,(ix+ra_siz+1) ; ...
ld b,BF_SYSSETCPY ; HBIOS func: setup bank copy
rst 08 ; do it
ld a,'.' ; dot character
call cout ; show progress
;
ld e,(ix+ra_dest) ; DE := run dest adr
ld d,(ix+ra_dest+1) ; ...
ld l,(ix+ra_src) ; HL := image source adr
ld h,(ix+ra_src+1) ; ...
ld b,BF_SYSBNKCPY ; HBIOS func: bank copy
rst 08 ; do it
ld a,'.' ; dot character
call cout ; show progress
;
; Record boot information
pop af ; recover source bank
@ -1104,8 +1136,6 @@ romload1:
ld b,BF_SYSSET ; HBIOS func: system set
ld c,BF_SYSSET_BOOTINFO ; BBIOS subfunc: boot info
rst 08 ; do it
ld a,'.' ; dot character
call cout ; show progress
;
#endif
;
@ -1121,8 +1151,6 @@ romload1:
ld bc,$01FB ; UNA func: set bank
ld de,(bid_ldr) ; select user bank
rst 08 ; do it
ld a,'.' ; dot character
call cout ; show progress
;
; Copy image to running location
ld l,(ix+ra_src) ; HL := image source adr
@ -1132,15 +1160,11 @@ romload1:
ld c,(ix+ra_siz) ; BC := image size
ld b,(ix+ra_siz+1) ; ...
ldir ; copy image
ld a,'.' ; dot character
call cout ; show progress
;
; Switch back to user bank
ld bc,$01FB ; UNA func: set bank
ld de,(bid_ldr) ; select user bank
rst 08 ; do it
ld a,'.' ; dot character
call cout ; show progress
;
; Record boot information
ld de,(bid_ldr) ; original bank
@ -1150,15 +1174,7 @@ romload1:
;
#endif
;
;ld hl,msg_go ; point to go message
;call dsky_show ; display message
ld c,DSKY_MSG_LDR_GO ; point to go message
call dsky_msg ; display message
;
ld l,(ix+ra_ent) ; HL := app entry address
ld h,(ix+ra_ent+1) ; ...
jp (hl) ; go
;
ret
;=======================================================================
; Boot ROM Application
;=======================================================================
@ -1166,20 +1182,32 @@ romload1:
; Enter with ROM application menu selection (command) character in A
;
romboot:
call findcon ; Match the application base on console command in A
jp z,romload ; if match application found then load it
ret ; no match, just return to - prompt:
;
;=======================================================================
; Find App For Console Command
; Pass in A, the console command character
; Return IX pointer, and Z if found; NZ if not found
;=======================================================================
;
findcon:
call upcase ; force uppercase for matching
ld ix,(ra_tbl_loc) ; point to start of ROM app tbl
ld c,a ; save command char in C
romboot1:
findcon1:
ld a,(ix+ra_conkey) ; get match char
and ~$80 ; clear "hidden entry" bit
cp c ; compare
jp z,romload ; if match, load it
ret z ; if matched, return
ld de,ra_entsiz ; table entry size
add ix,de ; bump IX to next entry
ld a,(ix) ; check for end
or (ix+1) ; ... of table
jr nz,romboot1 ; loop till done
ret ; no match, just return
jr nz,findcon1 ; loop if still more table entries
or 0ffh ; set NZ flag, signal not found
ret ; no match, and return
;
;=======================================================================
; Boot disk unit/slice
@ -2537,6 +2565,9 @@ str_diaglvl .db "\r\n\r\nHBIOS Diagnostic Level: ",0
str_help .db "\r\n"
.db "\r\n L - List ROM Applications"
.db "\r\n D - Device Inventory"
#if (BIOS == BIOS_WBW)
.db "\r\n S - Slice Inventory"
#endif
.db "\r\n R - Reboot System"
#if (BIOS == BIOS_WBW)
.db "\r\n W - RomWBW Configure"
@ -2640,7 +2671,7 @@ ra_ent(str_smon, '1', $FF, bid_cur, $8000, $8000, $0001, s100
#endif
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)
#if (BIOS == BIOS_WBW)
#if (BIOS == BIOS_WBW)
ra_ent(str_bas, 'B', KY_DE, BAS_BNK, BAS_IMGLOC, BAS_LOC, BAS_SIZ, BAS_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)
@ -2648,12 +2679,13 @@ ra_ent(str_play, 'P', $FF, GAM_BNK, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_
ra_ent(str_net, 'N', $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, '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
#if (DSKYENABLE)
ra_ent(str_dsky, 'Y'+$80, KY_GO, MON_BNK, MON_IMGLOC, MON_LOC, MON_SIZ, MON_DSKY)
#endif
ra_ent(str_egg, 'E'+$80, $FF, EGG_BNK, EGG_IMGLOC, EGG_LOC, EGG_SIZ, EGG_LOC)
ra_ent(str_blnk, 'E'+$80, $FF, EGG_BNK, EGG_IMGLOC, EGG_LOC, EGG_SIZ, EGG_LOC)
;
.dw 0 ; table terminator
;
@ -2680,7 +2712,7 @@ 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_egg .db "",0
str_blnk .db "",0
str_net .db "Network Boot",0
str_switches .db "FP Switches = 0x",0
str_nvswitches .db "NV Switches Found",0

Loading…
Cancel
Save