Files
RomWBW/Source/HBIOS/Layout.txt
Mark Pruden 4555bdec11 Rom Bank Layout improvements
Rom Bank 1 has no size constraint, can increase romldr (oversize) without build issue, bank truncation
Rom bank 2 usrrom (last app) has size constraint check, shouldnt be function of app
Rom bank 2 usr rom pads to end of 32k in its Size, unnecessary as handled by "srec_cat -crop"

So
* move out the bank size protections (from user rom) into layout.inc
* ensre bank 1 has same protection as bank2.
* make user rom a realistic size ($200), padding handled by crc check
* also good to .ECHO overall sizes of banks, improve logging.
2025-01-16 14:32:40 +11:00

155 lines
2.9 KiB
Plaintext

------------------
Final Output Files
------------------
ROM Output File [512K] -> <config>.rom
hbios_rom [32K]
OSIMG [32K]
OSIMG1 [32K]
OSIMG2 [32K]
romdisk - [384K]
UPD Output File [128K] -> <config>.upd
hbios_rom [32K]
OSIMG [32K]
OSIMG1 [32K]
OSIMG2 [32K]
COM Output File -> <config>.com
hbios_app [varies]
OSIMG_SMALL [32K]
-------------------------
Intermediate Output Files
-------------------------
OSIMG [32K] -> osimg.bin
romldr [4K]
dbgmon [4K]
ZSYS (zcpr/zsdos/cbios) [12K]
CPM (ccp/bdos/cbios) [12K]
OSIMG_SMALL [20K] -> osimg_small.bin
romldr [4K]
dbgmon [4K]
ZSYS (zcpr/zsdos/cbios) [12K]
OSIMG1 [32K] -> osimg1.bin
camel80 [5.75K]
nascom [8K]
tastybasic [2.5K]
game [2.25K]
eastaegg [0.5K]
netboot [4K]
updater.bin [3.25K]
sysconf.bin [2K]
usrrom.bin [3.75K (padded)]
OSIMG2 [32K] -> osimg2.bin
s100mon [8.25kb (optional)]
(OR) not populated
CPM [12K] -> cpm.bin
ccp [2K]
bdos [3.5K]
cbios [6.5K]
ZSYS [12K] -> zsys.bin
zcpr [2K]
zsdos [3.5K]
cbios [6.5K]
-----------------
Compilation Units
-----------------
hbios.asm -> hbios_rom.bin, hbios_app.bin
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
<device drivers>
util.asm
time.asm
bcd.asm
dsky.asm
romldr.asm -> romldr.bin: loader?
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
util.asm
dsky.asm
dbgmon.asm -> dbgmon.bin:
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
util.asm
memmgr.asm
dsky.asm
eastaegg.asm -> eastaegg.bin
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
Forth\camel80.azm -> Forth\camel80.bin -> ..\camel80.bin
camel80d.azm
camel80h.azm
nascom.asm -> nascom.bin
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
tastybasic.asm -> tastybasic.bin
std.asm
ver.inc
hbios.inc
build.inc
<config>.asm
plt_<platform>.inc
=======================================================================
HBIOS Loading Modes:
ROMBOOT: Startup from ROM Bank BID_BOOT
APPBOOT: Startup as CP/M application
IMGBOOT: Startup from RAM Bank BID_USR
=======================================================================
- If not (APPBOOT), include page 0
- Base Hardware Init
- Iff (ROMBOOT), init BBR
- Install Proxy
- Set CURBNK:
- If ROMBOOT, then BID_BOOT, else BID_USR
- Install HBIOS
- Copy from CURBNK:0 --> BID_BIOS:0 ($8000 bytes)
- Transition to HBIOS in BID_BIOS
- Copy OS Image to USR Bank
- If (ROM_MODE), copy BID_OS:0 --> BID_USR:0
- Else, copy BID_USR:<os image start> --> BID_USR:0
- Chain to BID_USR:0