Browse Source

Add ROM Updater to Boot Loader

- Phil Summers' ROM Updater has been given an official/permanent place in the Boot Loader menu.
- Rearranged the order and sizing of the modules in the third ROM bank to allow space for above.
- Made a few minor updates to the DSKYng support code.
patch
Wayne Warthen 5 years ago
parent
commit
1de6f8f8ab
  1. 1
      Doc/ChangeLog.txt
  2. 18
      Source/Apps/tstdskng.asm
  3. 7
      Source/HBIOS/Build.ps1
  4. 13
      Source/HBIOS/Build.sh
  5. 3
      Source/HBIOS/Makefile
  6. 29
      Source/HBIOS/dskyng.asm
  7. 12
      Source/HBIOS/imgpad.asm
  8. 4
      Source/HBIOS/imgpad2.asm
  9. BIN
      Source/HBIOS/netboot.mod
  10. 61
      Source/HBIOS/romldr.asm
  11. 48
      Source/HBIOS/std.asm
  12. 11
      Source/HBIOS/updater.asm
  13. 2
      Source/ver.inc
  14. 2
      Source/ver.lib

1
Doc/ChangeLog.txt

@ -42,6 +42,7 @@ Version 3.1.1
- PMS: Early DMA support - PMS: Early DMA support
- W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B) - W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B)
- DDW: Support for DSKYng capabitlities - DDW: Support for DSKYng capabitlities
- WBW: Added Phil Summers' ROM Updater into ROM Loader
Version 3.1 Version 3.1
----------- -----------

18
Source/Apps/tstdskng.asm

@ -16,9 +16,9 @@
FALSE: .EQU 0 FALSE: .EQU 0
TRUE: .EQU !FALSE TRUE: .EQU !FALSE
; ;
DSKY_OSC: .EQU 1000000 ; OSCILLATOR FREQ IN HZ
DSKY_OSC: .EQU 3000000 ; OSCILLATOR FREQ IN HZ
; ;
BDOS: .EQU FALSE ; BDOS OR DIRECT TO 8250ISH
BDOS: .EQU TRUE ; BDOS OR DIRECT TO 8250ISH
; ;
UART_BASE: .EQU $68 ; UART BASE IO ADDRESS UART_BASE: .EQU $68 ; UART BASE IO ADDRESS
PPI_BASE: .EQU $60 ; PPI BASE IO PORT PPI_BASE: .EQU $60 ; PPI BASE IO PORT
@ -31,7 +31,12 @@ PPI_BASE: .EQU $60 ; PPI BASE IO PORT
; 10 04 ; 10 04
; +--08--+ 80 ; +--08--+ 80
; ;
; KEY CODE MAP (KEY CODES) --CCCRRR
; KEY CODE MAP (KEY CODES) CSCCCRRR
; ||||||||
; |||||+++-- ROW
; ||+++----- COL
; |+-------- SHIFT
; +--------- CONTROL
; ;
; 00 08 10 18 23 ; 00 08 10 18 23
; 01 09 11 19 22 ; 01 09 11 19 22
@ -85,7 +90,7 @@ DSKY_PRESCL: .EQU DSKY_OSC / 100000 ; PRESCALER
LD SP,STACK LD SP,STACK
; ;
CALL PRTSTRD CALL PRTSTRD
.DB "\r\nNextGenDSKY Test Program, v1.2, 2021-06-26$"
.DB "\r\nNextGenDSKY Test Program, v1.3, 2021-07-15$"
CALL PRTSTRD CALL PRTSTRD
.DB "\r\nPPI port 0x$" .DB "\r\nPPI port 0x$"
LD A,PPI_BASE LD A,PPI_BASE
@ -179,7 +184,7 @@ M1:
; ;
M2: M2:
CALL CST ; CONSOLE STATUS CALL CST ; CONSOLE STATUS
JR NZ,M4 ; ABORT IF KEY PRESSED
JP NZ,M4 ; ABORT IF KEY PRESSED
CALL DSKY_STAT CALL DSKY_STAT
AND $3F ; DUMP 2 HIGH BITS AND $3F ; DUMP 2 HIGH BITS
JR Z,M2 ; LOOP IF STATUS ZERO JR Z,M2 ; LOOP IF STATUS ZERO
@ -198,6 +203,7 @@ M2:
M3: M3:
PUSH BC PUSH BC
CALL DSKY_DIN CALL DSKY_DIN
XOR %11000000 ; FLIP CONTROL & SHIFT MODIFIERS
CALL PRTHEXBYTE CALL PRTHEXBYTE
CALL PC_SPACE CALL PC_SPACE
; SHIFT BUFFER ; SHIFT BUFFER
@ -223,7 +229,7 @@ M3:
LD HL,DSPBUF LD HL,DSPBUF
CALL DSKY_PUTENCSTR CALL DSKY_PUTENCSTR
POP AF POP AF
; TOGGLE LED, KEY CODE: --CCCRRR
; TOGGLE LED, KEY CODE: CSCCCRRR
PUSH AF PUSH AF
AND $07 ; ISOLATE ROW AND $07 ; ISOLATE ROW
LD B,A ; SAVE IN B LD B,A ; SAVE IN B

7
Source/HBIOS/Build.ps1

@ -194,7 +194,7 @@ if ($Platform -ne "UNA")
"Building ${RomName} output files..." "Building ${RomName} output files..."
# Build 32K OS chunk containing the loader, debug monitor, and two OS images # Build 32K OS chunk containing the loader, debug monitor, and two OS images
Concat 'romldr.bin', 'dbgmon.bin', "..\cpm22\cpm_${Bios}.bin", "..\zsdos\zsys_${Bios}.bin" osimg.bin
Concat 'romldr.bin', 'dbgmon.bin', "..\zsdos\zsys_${Bios}.bin", "..\cpm22\cpm_${Bios}.bin" osimg.bin
# Build 20K OS chunk containing the loader, debug monitor, and one OS image # Build 20K OS chunk containing the loader, debug monitor, and one OS image
Concat 'romldr.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin Concat 'romldr.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin
@ -202,8 +202,8 @@ Concat 'romldr.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin
# Build second and third 32K chunks containing supplemental ROM apps (not for UNA) # Build second and third 32K chunks containing supplemental ROM apps (not for UNA)
if ($Platform -ne "UNA") if ($Platform -ne "UNA")
{ {
Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'eastaegg.bin', 'usrrom.bin' osimg1.bin
Concat 'netboot.mod', 'imgpad2.bin' osimg2.bin
Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'eastaegg.bin', 'netboot.mod', 'updater.bin', 'usrrom.bin' osimg1.bin
Concat 'imgpad2.bin' osimg2.bin
} }
# #
@ -258,7 +258,6 @@ else
Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg2.bin',$RomDiskFile $RomFile Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg2.bin',$RomDiskFile $RomFile
Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg2.bin' $UpdFile Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg2.bin' $UpdFile
Concat 'hbios_app.bin','osimg_small.bin' $ComFile Concat 'hbios_app.bin','osimg_small.bin' $ComFile
# Concat 'hbios_img.bin','osimg_small.bin' $ImgFile
} }
# Remove the temporary working ROM disk file # Remove the temporary working ROM disk file

13
Source/HBIOS/Build.sh

@ -99,21 +99,21 @@ done
cp ../Forth/camel80.bin . cp ../Forth/camel80.bin .
make dbgmon.bin romldr.bin eastaegg.bin imgpad2.bin
make dbgmon.bin romldr.bin imgpad2.bin
if [ $platform != UNA ] ; then if [ $platform != UNA ] ; then
make nascom.bin tastybasic.bin game.bin usrrom.bin imgpad2.bin
make nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin usrrom.bin imgpad2.bin
make hbios_rom.bin hbios_app.bin hbios_img.bin make hbios_rom.bin hbios_app.bin hbios_img.bin
fi fi
echo "Building $romname output files..." echo "Building $romname output files..."
cat romldr.bin dbgmon.bin ../CPM22/cpm_$BIOS.bin ../ZSDOS/zsys_$BIOS.bin >osimg.bin
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin ../CPM22/cpm_$BIOS.bin >osimg.bin
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin
if [ $platform != UNA ] ; then if [ $platform != UNA ] ; then
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin usrrom.bin >osimg1.bin
cat netboot.mod imgpad2.bin >osimg2.bin
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin usrrom.bin >osimg1.bin
cat imgpad2.bin >osimg2.bin
fi fi
echo "Building ${romsize}KB $romname ROM disk data file..." echo "Building ${romsize}KB $romname ROM disk data file..."
@ -165,7 +165,4 @@ else
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin $romdiskfile >$romname.rom cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin $romdiskfile >$romname.rom
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin >$romname.upd cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin >$romname.upd
cat hbios_app.bin osimg_small.bin > $romname.com cat hbios_app.bin osimg_small.bin > $romname.com
# cat hbios_img.bin osimg_small.bin > $romname.img
fi fi
#rm $romdiskfile

3
Source/HBIOS/Makefile

@ -37,7 +37,7 @@ endif
MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \ MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \
dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \ dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
eastaegg.bin hbios_img.bin osimg.bin tastybasic.bin \ eastaegg.bin hbios_img.bin osimg.bin tastybasic.bin \
game.bin usrrom.bin
game.bin updater.bin usrrom.bin
SUBDIRS = SUBDIRS =
DEST = ../../Binary DEST = ../../Binary
@ -81,6 +81,7 @@ romldr.bin: build.inc
dbgmon.bin: build.inc dbgmon.bin: build.inc
nascom.bin: build.inc nascom.bin: build.inc
eastaegg.bin: build.inc eastaegg.bin: build.inc
updater.bin: build.inc
dumps: dumps:
for i in $(MOREDIFF) ; do \ for i in $(MOREDIFF) ; do \

29
Source/HBIOS/dskyng.asm

@ -13,7 +13,12 @@
; 10 04 ; 10 04
; +--08--+ 80 ; +--08--+ 80
; ;
; KEY CODE MAP (KEY CODES) --CCCRRR
; KEY CODE MAP (KEY CODES) CSCCCRRR
; ||||||||
; |||||+++-- ROW
; ||+++----- COL
; |+-------- SHIFT
; +--------- CONTROL
; ;
; 00 08 10 18 23 ; 00 08 10 18 23
; 01 09 11 19 22 ; 01 09 11 19 22
@ -147,7 +152,9 @@ DSKY_GETKEY:
LD A,DSKY_CMD_FIFO LD A,DSKY_CMD_FIFO
CALL DSKY_CMD CALL DSKY_CMD
CALL DSKY_DIN CALL DSKY_DIN
AND $3F ; STRIP OFF SHIFT AND CONTROL KEYS (FOR NOW)
XOR %11000000 ; FLIP POLARITY OF SHIFT/CTL BITS
PUSH AF ; SAVE VALUE
AND $3F ; STRIP SHIFT/CTL BITS FOR LOOKUP
LD B,28 ; SIZE OF DECODE TABLE LD B,28 ; SIZE OF DECODE TABLE
LD C,0 ; INDEX LD C,0 ; INDEX
LD HL,DSKY_KEYMAP ; POINT TO BEGINNING OF TABLE LD HL,DSKY_KEYMAP ; POINT TO BEGINNING OF TABLE
@ -157,11 +164,15 @@ DSKY_GETKEY1:
INC HL INC HL
INC C ; BUMP INDEX INC C ; BUMP INDEX
DJNZ DSKY_GETKEY1 ; LOOP UNTIL EOT DJNZ DSKY_GETKEY1 ; LOOP UNTIL EOT
POP AF ; FIX STACK
LD A,$FF ; NOT FOUND ERR, RETURN $FF LD A,$FF ; NOT FOUND ERR, RETURN $FF
RET RET
DSKY_GETKEY2: DSKY_GETKEY2:
; RETURN THE INDEX POSITION WHERE THE SCAN CODE WAS FOUND ; RETURN THE INDEX POSITION WHERE THE SCAN CODE WAS FOUND
LD A,C ; RETURN INDEX VALUE
; THE ORIGINAL SHIFT/CTRL BITS ARE RESTORED
POP AF ; RESTORE RAW VALUE
AND %11000000 ; ISOLATE SHIFT/CTRL BITS
OR C ; COMBINE WITH INDEX VALUE
RET RET
; ;
;_KEYMAP_TABLE_____________________________________________________________________________________________________________ ;_KEYMAP_TABLE_____________________________________________________________________________________________________________
@ -558,7 +569,7 @@ DSKY_L2ON:
LD C,$0E LD C,$0E
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
and $DF
or $20
LD C,$0E LD C,$0E
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
@ -592,7 +603,7 @@ DSKY_L2OFF:
LD C,$0E LD C,$0E
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
or $20
and $DF
LD C,$0E LD C,$0E
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
@ -665,14 +676,10 @@ DSKY_PPIRD1:
; ;
DSKY_PPIIDLE: DSKY_PPIIDLE:
JR DSKY_PPIRD ; SAME AS READ MODE JR DSKY_PPIRD ; SAME AS READ MODE
;
;
;
; ;
; CODES FOR NUMERICS ; CODES FOR NUMERICS
; HIGH BIT ALWAYS SET TO SUPPRESS DECIMAL POINT
; CLEAR HIGH BIT TO SHOW DECIMAL POINT
; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT
; SET HIGH BIT TO SHOW DECIMAL POINT
; ;
HEXMAP: HEXMAP:
DSKY_NUMS: DSKY_NUMS:

12
Source/HBIOS/imgpad.asm

@ -1,12 +0,0 @@
#INCLUDE "std.asm"
;
SLACK .EQU ($8000-LDR_SIZ-MON_SIZ-SYS_SIZ-SYS_SIZ-EGG_SIZ)
.FILL SLACK,00H
;
MON_STACK .EQU $
;
.ECHO "Padspace space created: "
.ECHO SLACK
.ECHO " bytes.\n"
.END

4
Source/HBIOS/imgpad2.asm

@ -1,9 +1,7 @@
#INCLUDE "std.asm" #INCLUDE "std.asm"
; ;
SLACK .EQU ($8000-NET_SIZ)
SLACK .EQU $8000
.FILL SLACK,00H .FILL SLACK,00H
;
MON_STACK .EQU $
; ;
.ECHO "Padspace space created: " .ECHO "Padspace space created: "
.ECHO SLACK .ECHO SLACK

BIN
Source/HBIOS/netboot.mod

Binary file not shown.

61
Source/HBIOS/romldr.asm

@ -211,8 +211,8 @@ prompt:
call DSKY_SHOWSEG ; show on DSKY call DSKY_SHOWSEG ; show on DSKY
#IF (DSKYMODE == DSKYMODE_NG) #IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_PUTLED
.DB $3f,$3f,$3f,$3f,$00,$00,$00,$00
call DSKY_PUTLED
.db $3f,$3f,$3f,$3f,$00,$00,$00,$00
call DSKY_BEEP call DSKY_BEEP
call DSKY_L2ON call DSKY_L2ON
#ENDIF #ENDIF
@ -267,6 +267,14 @@ clrbuf1:
; ;
concmd: concmd:
call clrled ; clear LEDs call clrled ; clear LEDs
;
#if (DSKYENABLE)
#if (DSKYMODE == DSKYMODE_NG)
call DSKY_PUTLED
.db $00,$00,$00,$00,$00,$00,$00,$00
call DSKY_L2OFF
#endif
#endif
; ;
; Get a command line from console and handle it ; Get a command line from console and handle it
call rdln ; get a line from the user call rdln ; get a line from the user
@ -369,13 +377,12 @@ dskycmd:
cp $FF ; check for error cp $FF ; check for error
ret z ; abort if so ret z ; abort if so
; ;
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_PUTLED
.DB $00,$00,$00,$00,$00,$00,$00,$00
#if (DSKYMODE == DSKYMODE_NG)
call DSKY_PUTLED
.db $00,$00,$00,$00,$00,$00,$00,$00
call DSKY_L2OFF call DSKY_L2OFF
#ENDIF
#endif
;
; Attempt built-in commands ; Attempt built-in commands
cp KY_BO ; reboot system cp KY_BO ; reboot system
jp z,reboot ; if so, do it jp z,reboot ; if so, do it
@ -2075,34 +2082,35 @@ ra_ent .equ 12
; ;
ra_tbl: ra_tbl:
; ;
; Name Key Dsky Bank Src Dest Size Entry
; --------- ------- ----- -------- ----- ------- ------- ----------
ra_ent(str_mon, 'M', KY_CL, BID_IMG0, $1000, MON_LOC, MON_SIZ, MON_SERIAL)
; Name Key Dsky Bank Src Dest Size Entry
; --------- ------- ----- -------- ----- ------- ------- ----------
ra_ent(str_mon, 'M', KY_CL, BID_IMG0, MON_IMGLOC, MON_LOC, MON_SIZ, MON_SERIAL)
ra_entsiz .equ $ - ra_tbl ra_entsiz .equ $ - ra_tbl
ra_ent(str_cpm22, 'C', KY_BK, BID_IMG0, $2000, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, $5000, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_zsys, 'Z', KY_FW, BID_IMG0, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
ra_ent(str_cpm22, 'C', KY_BK, BID_IMG0, CPM_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
ra_ent(str_fth, 'F', KY_EX, BID_IMG1, $0000, FTH_LOC, FTH_SIZ, FTH_LOC)
ra_ent(str_bas, 'B', KY_DE, BID_IMG1, $1700, BAS_LOC, BAS_SIZ, BAS_LOC)
ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, $3700, TBC_LOC, TBC_SIZ, TBC_LOC)
ra_ent(str_play, 'P', $FF, BID_IMG1, $4000, GAM_LOC, GAM_SIZ, GAM_LOC)
ra_ent(str_egg, 'E'+$80, $FF, BID_IMG1, $4900, EGG_LOC, EGG_SIZ, EGG_LOC)
ra_ent(str_user, 'U', $FF, BID_IMG1, $4B00, USR_LOC, USR_SIZ, USR_LOC)
ra_ent(str_net, 'N', $FF, BID_IMG2, $0000, NET_LOC, NET_SIZ, NET_LOC)
ra_ent(str_fth, 'F', KY_EX, BID_IMG1, FTH_IMGLOC, FTH_LOC, FTH_SIZ, FTH_LOC)
ra_ent(str_bas, 'B', KY_DE, BID_IMG1, BAS_IMGLOC, BAS_LOC, BAS_SIZ, BAS_LOC)
ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, TBC_IMGLOC, TBC_LOC, TBC_SIZ, TBC_LOC)
ra_ent(str_play, 'P', $FF, BID_IMG1, GAM_IMGLOC, GAM_LOC, GAM_SIZ, GAM_LOC)
ra_ent(str_egg, 'E'+$80, $FF, BID_IMG1, EGG_IMGLOC, EGG_LOC, EGG_SIZ, EGG_LOC)
ra_ent(str_net, 'N', $FF, BID_IMG1, NET_IMGLOC, NET_LOC, NET_SIZ, NET_LOC)
ra_ent(str_upd, 'O', $FF, BID_IMG1, UPD_IMGLOC, UPD_LOC, UPD_SIZ, UPD_LOC)
ra_ent(str_user, 'U', $FF, BID_IMG1, USR_IMGLOC, USR_LOC, USR_SIZ, USR_LOC)
#endif #endif
#if (DSKYENABLE) #if (DSKYENABLE)
ra_ent(str_dsky, 'Y'+$80, KY_GO, BID_IMG0, $1000, MON_LOC, MON_SIZ, MON_DSKY)
ra_ent(str_dsky, 'Y'+$80, KY_GO, BID_IMG0, MON_IMGLOC, MON_LOC, MON_SIZ, MON_DSKY)
#endif #endif
.dw 0 ; table terminator .dw 0 ; table terminator
; ;
ra_tbl_app: ra_tbl_app:
; ;
; Name Key Dsky Bank Src Dest Size Entry
; --------- ------- ----- -------- ----- ------- ------- ----------
ra_ent(str_mon, 'M', KY_CL, bid_cur, $1000, MON_LOC, MON_SIZ, MON_SERIAL)
ra_ent(str_zsys, 'Z', KY_FW, bid_cur, $2000, CPM_LOC, CPM_SIZ, CPM_ENT)
; Name Key Dsky Bank Src Dest Size Entry
; --------- ------- ----- -------- ----- ------- ------- ----------
ra_ent(str_mon, 'M', KY_CL, bid_cur, MON_IMGLOC, MON_LOC, MON_SIZ, MON_SERIAL)
ra_ent(str_zsys, 'Z', KY_FW, bid_cur, ZSYS_IMGLOC, CPM_LOC, CPM_SIZ, CPM_ENT)
#if (DSKYENABLE) #if (DSKYENABLE)
ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY)
ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, MON_IMGLOC, MON_LOC, MON_SIZ, MON_DSKY)
#endif #endif
.dw 0 ; table terminator .dw 0 ; table terminator
; ;
@ -2114,6 +2122,7 @@ str_fth .db "Forth",0
str_bas .db "BASIC",0 str_bas .db "BASIC",0
str_tbas .db "Tasty BASIC",0 str_tbas .db "Tasty BASIC",0
str_play .db "Play a Game",0 str_play .db "Play a Game",0
str_upd .db "ROM Updater",0
str_user .db "User App",0 str_user .db "User App",0
str_egg .db "",0 str_egg .db "",0
str_net .db "Network Boot",0 str_net .db "Network Boot",0

48
Source/HBIOS/std.asm

@ -538,39 +538,65 @@ CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS
CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS) CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS)
CPM_IMGSIZ .EQU $3000
; ROM BANK 1
LDR_LOC .EQU $0000
LDR_SIZ .EQU $1000 LDR_SIZ .EQU $1000
LDR_END .EQU LDR_LOC +LDR_SIZ
LDR_IMGLOC .EQU $0000
MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE
MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR
MON_IMGLOC .EQU LDR_IMGLOC + LDR_SIZ
ZSYS_IMGLOC .EQU MON_IMGLOC + MON_SIZ
CPM_IMGLOC .EQU ZSYS_IMGLOC + CPM_IMGSIZ
; ROM BANK 2
FTH_LOC .EQU $0200 ; CAMEL FORTH
FTH_SIZ .EQU $1700
FTH_END .EQU FTH_LOC + FTH_SIZ
FTH_IMGLOC .EQU $0000
BAS_LOC .EQU $0200 ; NASCOM BASIC BAS_LOC .EQU $0200 ; NASCOM BASIC
BAS_SIZ .EQU $2000 BAS_SIZ .EQU $2000
BAS_END .EQU BAS_LOC + BAS_SIZ BAS_END .EQU BAS_LOC + BAS_SIZ
BAS_IMGLOC .EQU FTH_IMGLOC + FTH_SIZ
TBC_LOC .EQU $0A00 ; TASTYBASIC TBC_LOC .EQU $0A00 ; TASTYBASIC
TBC_SIZ .EQU $0900 TBC_SIZ .EQU $0900
TBC_END .EQU TBC_LOC + TBC_SIZ TBC_END .EQU TBC_LOC + TBC_SIZ
TBC_IMGLOC .EQU BAS_IMGLOC + BAS_SIZ
GAM_LOC .EQU $0200 ; GAME 2048
GAM_SIZ .EQU $0900
GAM_END .EQU GAM_LOC + GAM_SIZ
GAM_IMGLOC .EQU TBC_IMGLOC + TBC_SIZ
EGG_LOC .EQU $F000 ; EASTER EGG EGG_LOC .EQU $F000 ; EASTER EGG
EGG_SIZ .EQU $0200 EGG_SIZ .EQU $0200
EGG_END .EQU EGG_LOC + EGG_SIZ EGG_END .EQU EGG_LOC + EGG_SIZ
EGG_IMGLOC .EQU GAM_IMGLOC + GAM_SIZ
FTH_LOC .EQU $0200 ; CAMEL FORTH
FTH_SIZ .EQU $1700
FTH_END .EQU FTH_LOC + FTH_SIZ
NET_LOC .EQU $0100 ; NETWORK BOOT
NET_SIZ .EQU $1000
NET_END .EQU NET_LOC + NET_SIZ
NET_IMGLOC .EQU EGG_IMGLOC + EGG_SIZ
GAM_LOC .EQU $0200 ; GAME 2048
GAM_SIZ .EQU $0900
GAM_END .EQU GAM_LOC + GAM_SIZ
UPD_LOC .EQU $0200 ; ROM UPDATER
UPD_SIZ .EQU $0D00
UPD_END .EQU UPD_LOC + UPD_SIZ
UPD_IMGLOC .EQU NET_IMGLOC + NET_SIZ
USR_LOC .EQU $0200 ; USER USR_LOC .EQU $0200 ; USER
USR_SIZ .EQU $8000 - FTH_SIZ - BAS_SIZ - TBC_SIZ - GAM_SIZ - EGG_SIZ
USR_SIZ .EQU BNKTOP - UPD_IMGLOC - UPD_SIZ
USR_END .EQU USR_LOC + USR_SIZ USR_END .EQU USR_LOC + USR_SIZ
NET_LOC .EQU $0100 ; NETWORK BOOT
NET_SIZ .EQU $2000
NET_END .EQU NET_LOC + NET_SIZ
USR_IMGLOC .EQU UPD_IMGLOC + UPD_SIZ
MON_DSKY .EQU MON_LOC + (0 * 3) ; MONITOR ENTRY (DSKY) MON_DSKY .EQU MON_LOC + (0 * 3) ; MONITOR ENTRY (DSKY)
MON_SERIAL .EQU MON_LOC + (1 * 3) ; MONITOR ENTRY (SERIAL PORT) MON_SERIAL .EQU MON_LOC + (1 * 3) ; MONITOR ENTRY (SERIAL PORT)

11
Source/HBIOS/updater.asm

@ -4,10 +4,7 @@
; PROVIDES THE CAPABILTY TO UPDATE ROMWBW FROM THE SBC BOOT LOADER USING ; PROVIDES THE CAPABILTY TO UPDATE ROMWBW FROM THE SBC BOOT LOADER USING
; AN XMODEM FILE TRANSFER. ; AN XMODEM FILE TRANSFER.
; ;
; TO INSTALL, SAVE THIS FILE AS USRROM.ASM IN \RomWBW\Source\HBIOS
; AND REBUILD AND INSTALL THE NEW ROM VERSION.
;
; THE UPDATER CAN THEN BE ACCESSED USING THE "U" OPTION IN THE SBC BOOT LOADER.
; THIS TOOL CAN BE LAUNCHED FROM THE ROMWBW BOOT LOADER USING OPTION 'R'.
; ;
; OPTION (C) AND (S) - CONSOLE AND SERIAL DEVICE ; OPTION (C) AND (S) - CONSOLE AND SERIAL DEVICE
; ;
@ -129,7 +126,7 @@ HBX_BNKSEL .EQU $FE2B
; ;
XFUDBG .EQU 0 XFUDBG .EQU 0
; ;
.ORG USR_LOC
.ORG UPD_LOC
; ;
; ASCII codes ; ASCII codes
; ;
@ -1215,9 +1212,9 @@ LSTDEV: .EQU $
; ;
sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING
; ;
SLACK .EQU (USR_END - $)
SLACK .EQU (UPD_END - $)
.FILL SLACK,$FF .FILL SLACK,$FF
.ECHO "User ROM space remaining: "
.ECHO "ROM Updater space remaining: "
.ECHO SLACK .ECHO SLACK
.ECHO " bytes.\n" .ECHO " bytes.\n"
.END .END

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.88"
#DEFINE BIOSVER "3.1.1-pre.89"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.88"
db "3.1.1-pre.89"
endm endm

Loading…
Cancel
Save