From 0b92e4193560eb35b65c3d19e5bad617d74e5df7 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sat, 17 Apr 2021 17:00:42 -0700 Subject: [PATCH] Prototype Network Boot Support --- Source/HBIOS/Build.ps1 | 11 ++++++----- Source/HBIOS/Build.sh | 11 ++++++----- Source/HBIOS/Makefile | 2 +- Source/HBIOS/{imgpad0.asm => imgpad1.asm} | 0 Source/HBIOS/netboot.mod | Bin 0 -> 32768 bytes Source/HBIOS/romldr.asm | 2 ++ Source/HBIOS/std.asm | 7 ++++++- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 9 files changed, 23 insertions(+), 14 deletions(-) rename Source/HBIOS/{imgpad0.asm => imgpad1.asm} (100%) create mode 100644 Source/HBIOS/netboot.mod diff --git a/Source/HBIOS/Build.ps1 b/Source/HBIOS/Build.ps1 index 5f7fc69d..403abe47 100644 --- a/Source/HBIOS/Build.ps1 +++ b/Source/HBIOS/Build.ps1 @@ -183,7 +183,7 @@ if ($Platform -ne "UNA") Asm 'tastybasic' Asm 'game' Asm 'usrrom' - Asm 'imgpad0' + Asm 'imgpad1' } # @@ -198,10 +198,11 @@ Concat 'romldr.bin', 'eastaegg.bin','dbgmon.bin', "..\cpm22\cpm_${Bios}.bin", ". # Build 20K OS chunk containing the loader, debug monitor, and one OS image Concat 'romldr.bin', 'eastaegg.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin -# Build second 32K chunk containing supplemental ROM apps (not for UNA) +# Build second and third 32K chunks containing supplemental ROM apps (not for UNA) if ($Platform -ne "UNA") { - Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'imgpad0.bin', 'usrrom.bin' osimg1.bin + Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'imgpad1.bin', 'usrrom.bin' osimg1.bin + Concat 'netboot.mod' osimg2.bin } # @@ -253,8 +254,8 @@ if ($Platform -eq "UNA") } else { - Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg.bin',$RomDiskFile $RomFile - Concat 'hbios_rom.bin','osimg.bin','osimg1.bin','osimg.bin' $UpdFile + 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_app.bin','osimg_small.bin' $ComFile # Concat 'hbios_img.bin','osimg_small.bin' $ImgFile } diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index 117fa459..f2cd9571 100755 --- a/Source/HBIOS/Build.sh +++ b/Source/HBIOS/Build.sh @@ -99,10 +99,10 @@ done cp ../Forth/camel80.bin . -make dbgmon.bin romldr.bin eastaegg.bin imgpad.bin +make dbgmon.bin romldr.bin eastaegg.bin imgpad1.bin if [ $platform != UNA ] ; then - make nascom.bin tastybasic.bin game.bin usrrom.bin imgpad0.bin + make nascom.bin tastybasic.bin game.bin usrrom.bin imgpad1.bin make hbios_rom.bin hbios_app.bin hbios_img.bin fi @@ -112,7 +112,8 @@ cat romldr.bin eastaegg.bin dbgmon.bin ../CPM22/cpm_$BIOS.bin ../ZSDOS/zsys_$BIO cat romldr.bin eastaegg.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin if [ $platform != UNA ] ; then - cat camel80.bin nascom.bin tastybasic.bin game.bin imgpad0.bin usrrom.bin >osimg1.bin + cat camel80.bin nascom.bin tastybasic.bin game.bin imgpad1.bin usrrom.bin >osimg1.bin + cat netboot.mod >osimg2.bin fi echo "Building ${romsize}KB $romname ROM disk data file..." @@ -161,8 +162,8 @@ if [ $platform = UNA ] ; then cp $romdiskfile $outdir/UNA_WBW_ROM$romsize.bin cat ../UBIOS/UNA-BIOS.BIN osimg.bin ../UBIOS/FSFAT.BIN $romdiskfile >$romname.rom else - cat hbios_rom.bin osimg.bin osimg1.bin osimg.bin $romdiskfile >$romname.rom - cat hbios_rom.bin osimg.bin osimg1.bin osimg.bin >$romname.upd + 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_app.bin osimg_small.bin > $romname.com # cat hbios_img.bin osimg_small.bin > $romname.img fi diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index ed639fdf..da5e9504 100644 --- a/Source/HBIOS/Makefile +++ b/Source/HBIOS/Makefile @@ -34,7 +34,7 @@ else endif MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \ - dbgmon.bin hbios_app.bin imgpad0.bin osimg1.bin romldr.bin \ + dbgmon.bin hbios_app.bin imgpad1.bin osimg1.bin osimg2.bin romldr.bin \ eastaegg.bin hbios_img.bin imgpad.bin osimg.bin tastybasic.bin \ game.bin usrrom.bin diff --git a/Source/HBIOS/imgpad0.asm b/Source/HBIOS/imgpad1.asm similarity index 100% rename from Source/HBIOS/imgpad0.asm rename to Source/HBIOS/imgpad1.asm diff --git a/Source/HBIOS/netboot.mod b/Source/HBIOS/netboot.mod new file mode 100644 index 0000000000000000000000000000000000000000..b5fff4bd97943c96d661f9e25d728042eeb46a5a GIT binary patch literal 32768 zcmeIuu}Z^G7zN;D=}>4F7Z>4*oeM5~0G$LWzJUaKr8j;Nad4 zbyO2y!sYv?pL5Rioo7#{mw9`Xx3he(8|Urr=ke@&^4gx{$6tq+_s>B-&Th9|{PFg@ zZw{NT*f)KijkE2h3!Bk!G@Pd}kM(^jm*FC%I$W)*x>&8^V%oPiWvr@Dgk^jPbqZyy z@5*)m{cW#Pv54h#k~snd2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Fqeh F0>9-fIS&8; literal 0 HcmV?d00001 diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 685671aa..33d3dbfa 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -2051,6 +2051,7 @@ 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_user, 'U', $FF, BID_IMG1, $7000, USR_LOC, USR_SIZ, USR_LOC) +ra_ent(str_net, 'N', $FF, BID_IMG2, $0000, NET_LOC, NET_SIZ, NET_LOC) #endif #if (DSKYENABLE) ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY) @@ -2080,6 +2081,7 @@ str_tbas .db "Tasty BASIC",0 str_play .db "Play a Game",0 str_user .db "User App",0 str_egg .db "",0 +str_net .db "Network Boot",0 newcon .db 0 newspeed .db 0 ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 47f8f986..062b82a9 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -473,7 +473,8 @@ BID_RAMN .EQU (BID_RAM0 + ((RAMSIZE / 32) - 1)) BID_BOOT .EQU BID_ROM0 ; BOOT BANK BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK -BID_FSFAT .EQU BID_ROM0 + 3 ; FAT FILESYSTEM DRIVER BANK +;BID_FSFAT .EQU BID_ROM0 + 3 ; FAT FILESYSTEM DRIVER BANK +BID_IMG2 .EQU BID_ROM0 + 3 ; NETWORK BOOT BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK @@ -540,6 +541,10 @@ USR_LOC .EQU $0200 ; USER USR_SIZ .EQU $1000 USR_END .EQU USR_LOC + USR_SIZ +NET_LOC .EQU $0100 ; NETWORK BOOT +NET_SIZ .EQU $8000 +NET_END .EQU NET_LOC + NET_SIZ + MON_DSKY .EQU MON_LOC + (0 * 3) ; MONITOR ENTRY (DSKY) MON_SERIAL .EQU MON_LOC + (1 * 3) ; MONITOR ENTRY (SERIAL PORT) ; diff --git a/Source/ver.inc b/Source/ver.inc index e4d09ae7..a3e82492 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.69" +#DEFINE BIOSVER "3.1.1-pre.70" diff --git a/Source/ver.lib b/Source/ver.lib index 94ed85c7..a4e86c75 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.69" + db "3.1.1-pre.70" endm