diff --git a/Source/CPM22/License.pdf b/Source/CPM22/License.pdf new file mode 100644 index 00000000..94912501 Binary files /dev/null and b/Source/CPM22/License.pdf differ diff --git a/Source/CPM3/License.pdf b/Source/CPM3/License.pdf new file mode 100644 index 00000000..94912501 Binary files /dev/null and b/Source/CPM3/License.pdf differ diff --git a/Source/HBIOS/Build.cmd b/Source/HBIOS/Build.cmd index 4dc90995..a821b47f 100644 --- a/Source/HBIOS/Build.cmd +++ b/Source/HBIOS/Build.cmd @@ -4,7 +4,7 @@ setlocal if "%1" == "dist" goto :dist :: -:: Build [ [ [ []]]] +:: Build [ [ []]] :: set TOOLS=../../Tools @@ -28,11 +28,21 @@ PowerShell -ExecutionPolicy Unrestricted .\Build.ps1 %* || exit /b :: :: Below, we process the command file created by the PowerShell script. :: This sets the environment variables: Platform, Config, ROMName, -:: ROMSize, & CPUType. +:: & CPUType. :: call build_env.cmd +:: +:: Create a small app that is used to export key build variables of the build. +:: Then run the app to output a file with the variables. Finally, read the +:: variables into variables usable in this batch file. +:: + +tasm -t80 -g3 -dCMD hbios_env.asm hbios_env.com hbios_env.lst || exit /b +zxcc hbios_env >hbios_env.cmd +call hbios_env.cmd + :: :: Start of the actual build process for a given ROM. :: @@ -183,34 +193,34 @@ goto :eof :dist -call Build SBC std 512 || exit /b -call Build SBC simh 512 || exit /b -call Build MBC std 512 || exit /b -call Build ZETA std 512 || exit /b -call Build ZETA2 std 512 || exit /b -call Build N8 std 512 || exit /b -call Build MK4 std 512 || exit /b -call Build RCZ80 std 512 || exit /b -call Build RCZ80 skz 512 || exit /b -call Build RCZ80 kio 512 || exit /b -call Build RCZ80 mt 512 || exit /b -call Build RCZ80 duart 512 || exit /b -call Build RCZ80 zrc 512 || exit /b -call Build RCZ80 zrc_ram 0 || exit /b -call Build RCZ180 ext 512 || exit /b -call Build RCZ180 nat 512 || exit /b -call Build RCZ280 ext 512 || exit /b -call Build RCZ280 nat 512 || exit /b -call Build RCZ280 nat_zz 512 || exit /b -call Build RCZ280 nat_zzr 256 || exit /b -call Build SCZ180 126 512 || exit /b -call Build SCZ180 130 512 || exit /b -call Build SCZ180 131 512 || exit /b -call Build SCZ180 140 512 || exit /b -call Build EZZ80 std 512 || exit /b -call Build EZZ80 tz80 512 || exit /b -call Build DYNO std 512 || exit /b -call Build UNA std 512 || exit /b -call Build RPH std 512 || exit /b +call Build SBC std || exit /b +call Build SBC simh || exit /b +call Build MBC std || exit /b +call Build ZETA std || exit /b +call Build ZETA2 std || exit /b +call Build N8 std || exit /b +call Build MK4 std || exit /b +call Build RCZ80 std || exit /b +call Build RCZ80 skz || exit /b +call Build RCZ80 kio || exit /b +call Build RCZ80 mt || exit /b +call Build RCZ80 duart || exit /b +call Build RCZ80 zrc || exit /b +call Build RCZ80 zrc_ram || exit /b +call Build RCZ180 ext || exit /b +call Build RCZ180 nat || exit /b +call Build RCZ280 ext || exit /b +call Build RCZ280 nat || exit /b +call Build RCZ280 nat_zz || exit /b +call Build RCZ280 nat_zzr || exit /b +call Build SCZ180 126 || exit /b +call Build SCZ180 130 || exit /b +call Build SCZ180 131 || exit /b +call Build SCZ180 140 || exit /b +call Build EZZ80 std || exit /b +call Build EZZ80 tz80 || exit /b +call Build DYNO std || exit /b +call Build UNA std || exit /b +call Build RPH std || exit /b goto :eof diff --git a/Source/HBIOS/Build.ps1 b/Source/HBIOS/Build.ps1 index 21689463..0ff96229 100644 --- a/Source/HBIOS/Build.ps1 +++ b/Source/HBIOS/Build.ps1 @@ -1,4 +1,4 @@ -param([string]$Platform = "", [string]$Config = "", [int]$RomSize = 512, [string]$ROMName = "") +param([string]$Platform = "", [string]$Config = "", [string]$ROMName = "") # If a PowerShell exception occurs, just stop the script immediately. $ErrorAction = 'Stop' @@ -67,19 +67,6 @@ while ($true) $Config = (Read-Host -prompt "Configuration").Trim() } -# -# Establish the ROM size (in KB). It may have been passed in on the command line. Validate -# $RomSize and loop requesting a new value as long as it is not valid. The valid ROM sizes -# are just hard-coded for now. The ROM size does nothing more than determine the size of the -# ROM disk portion of the ROM image. -# - -while ($true) -{ - if (($RomSize -eq 0) -or ($RomSize -eq 128) -or ($RomSize -eq 256) -or ($RomSize -eq 512) -or ($RomSize -eq 1024)) {break} - $RomSize = (Read-Host -prompt "ROM Size [0|128|256|512|1024]").Trim() -} - # # TASM should be invoked with the proper CPU type. Below, the CPU type is inferred # from the platform. @@ -117,8 +104,6 @@ $TimeStamp = '"' + (Get-Date -Format 'yyyy-MM-dd') + '"' ; #DEFINE TIMESTAMP ${TimeStamp} ; -ROMSIZE .EQU ${ROMSize} -; #INCLUDE "${ConfigFile}" ; "@ | Out-File "build.inc" -Encoding ASCII @@ -134,6 +119,5 @@ ROMSIZE .EQU ${ROMSize} set Platform=${Platform} set Config=${Config} set ROMName=${ROMName} -set ROMSize=${ROMSize} set CPUType=${CPUType} "@ | Out-File "build_env.cmd" -Encoding ASCII diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index ad8cd3d0..37c54583 100755 --- a/Source/HBIOS/Build.sh +++ b/Source/HBIOS/Build.sh @@ -9,35 +9,35 @@ export ROMSIZE if [ "${ROM_PLATFORM}" == "dist" ] ; then echo "!!!DISTRIBUTION BUILD!!!" - ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="MK4"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="N8"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; ROMSIZE="256"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; ROMSIZE="0"; bash Build.sh - ROM_PLATFORM="RPH"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="MBC"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="UNA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh - ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; ROMSIZE="512"; bash Build.sh + ROM_PLATFORM="DYNO"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="EZZ80"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="EZZ80"; ROM_CONFIG="tz80"; bash Build.sh + ROM_PLATFORM="MK4"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="N8"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="RCZ180"; ROM_CONFIG="ext"; bash Build.sh + ROM_PLATFORM="RCZ180"; ROM_CONFIG="nat"; bash Build.sh + ROM_PLATFORM="RCZ280"; ROM_CONFIG="ext"; bash Build.sh + ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat"; bash Build.sh + ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zz"; bash Build.sh + ROM_PLATFORM="RCZ280"; ROM_CONFIG="nat_zzr"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="kio"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="mt"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="duart"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="skz"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc"; bash Build.sh + ROM_PLATFORM="RCZ80"; ROM_CONFIG="zrc_ram"; bash Build.sh + ROM_PLATFORM="RPH"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="SBC"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="SBC"; ROM_CONFIG="simh"; bash Build.sh + ROM_PLATFORM="MBC"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="SCZ180"; ROM_CONFIG="126"; bash Build.sh + ROM_PLATFORM="SCZ180"; ROM_CONFIG="130"; bash Build.sh + ROM_PLATFORM="SCZ180"; ROM_CONFIG="131"; bash Build.sh + ROM_PLATFORM="SCZ180"; ROM_CONFIG="140"; bash Build.sh + ROM_PLATFORM="UNA"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="ZETA"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="ZETA2"; ROM_CONFIG="std"; bash Build.sh exit fi @@ -59,15 +59,6 @@ done CONFIGFILE=Config/${ROM_PLATFORM}_${ROM_CONFIG}.asm -if [ -z "${ROMSIZE}" ] ; then - ROMSIZE="512" -fi - -while [ ! '(' "${ROMSIZE}" = 1024 -o "${ROMSIZE}" = 512 -o "${ROMSIZE}" = 256 -o "${ROMSIZE}" = 128 -o "${ROMSIZE}" = 0 ')' ] ; do - echo -n "Romsize :" - read ROMSIZE -done - if [ -z "${ROMNAME}" ] ; then ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG} fi @@ -93,12 +84,15 @@ cat <<- EOF > build.inc ; #DEFINE TIMESTAMP "${TIMESTAMP}" ; -ROMSIZE .EQU ${ROMSIZE} -; #INCLUDE "${CONFIGFILE}" ; EOF +make hbios_env.sh +source hbios_env.sh + +cat hbios_env.sh + export OBJECTS OBJECTS="${ROMNAME}.rom" if [ "${ROM_PLATFORM}" != "UNA" ] ; then diff --git a/Source/HBIOS/Clean.cmd b/Source/HBIOS/Clean.cmd index d35f7fcb..432d4166 100644 --- a/Source/HBIOS/Clean.cmd +++ b/Source/HBIOS/Clean.cmd @@ -14,3 +14,4 @@ if exist *.sys del *.sys if exist build.inc del build.inc if exist font*.asm del font*.asm if exist build_env.cmd del build_env.cmd +if exist hbios_env.cmd del hbios_env.cmd diff --git a/Source/HBIOS/Config/RCZ280_nat_zzr.asm b/Source/HBIOS/Config/RCZ280_nat_zzr.asm index 4439f45d..4832805b 100644 --- a/Source/HBIOS/Config/RCZ280_nat_zzr.asm +++ b/Source/HBIOS/Config/RCZ280_nat_zzr.asm @@ -31,6 +31,7 @@ CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ ; RAMSIZE .SET 256 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 256 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .SET 256 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) ; RAMLOC .SET 18 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/Config/RCZ80_zrc_ram.asm b/Source/HBIOS/Config/RCZ80_zrc_ram.asm index cd68248d..99fea429 100644 --- a/Source/HBIOS/Config/RCZ80_zrc_ram.asm +++ b/Source/HBIOS/Config/RCZ80_zrc_ram.asm @@ -31,6 +31,7 @@ CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ ; RAMSIZE .SET 2048 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180] ; MDROM .SET FALSE ; MD: ENABLE ROM DISK diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index eaad9983..abf6854c 100644 --- a/Source/HBIOS/Makefile +++ b/Source/HBIOS/Makefile @@ -6,7 +6,7 @@ MOREDIFF = game.bin hbios_rom.bin nascom.bin usrrom.bin \ SUBDIRS = DEST = ../../Binary TOOLS =../../Tools -OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat +OTHERS = *.img *.rom *.com *.upd *.bin *.z80 cpm.sys zsys.sys Build.inc font*.asm *.dat hbios_env.sh include $(TOOLS)/Makefile.inc FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm @@ -39,11 +39,11 @@ endif ROMNAME=${ROM_PLATFORM}_${ROM_CONFIG} -#$(info DEPS=$(DEPS)) -#$(info ROM_PLATFORM=$(ROM_PLATFORM)) -#$(info ROM_CONFIG=$(ROM_CONFIG)) -#$(info ROMSIZE=$(ROMSIZE)) -#$(info ROMNAME=$(ROMNAME)) +$(info DEPS=$(DEPS)) +$(info ROM_PLATFORM=$(ROM_PLATFORM)) +$(info ROM_CONFIG=$(ROM_CONFIG)) +$(info ROMSIZE=$(ROMSIZE)) +$(info ROMNAME=$(ROMNAME)) all:: if [ -z "$(OBJECTS)" ] ; then \ @@ -99,6 +99,12 @@ hbios_app.bin: hbios.asm build.inc $(DEPS) hbios_img.bin: hbios.asm build.inc $(DEPS) $(TASM) -dIMGBOOT hbios.asm hbios_img.bin hbios_img.lst +hbios_env.com: hbios_env.asm build.inc + $(TASM) -dBASH hbios_env.asm hbios_env.com hbios_env.lst + +hbios_env.sh: hbios_env.com + $(ZXCC) hbios_env.com >hbios_env.sh + romldr.bin: build.inc dbgmon.bin: build.inc nascom.bin: build.inc diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index a5400782..50785e2e 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_ezz80.asm b/Source/HBIOS/cfg_ezz80.asm index ebc35644..ffdb7586 100644 --- a/Source/HBIOS/cfg_ezz80.asm +++ b/Source/HBIOS/cfg_ezz80.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 22e0f27b..526d829e 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -30,6 +30,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index 048a4b9b..5cfbcb4c 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 466e84ff..c5108411 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index f303b55f..c5d8ba50 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index 66536de4..373f23ec 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index 58fe389d..95d86e91 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index ee0cf84a..805cecff 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -33,6 +33,7 @@ INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/cfg_rph.asm b/Source/HBIOS/cfg_rph.asm index ebba0a25..a17fbf99 100644 --- a/Source/HBIOS/cfg_rph.asm +++ b/Source/HBIOS/cfg_rph.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_RPH ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 6295cb71..26c945c0 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index a8947263..978ecc86 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE diff --git a/Source/HBIOS/cfg_una.asm b/Source/HBIOS/cfg_una.asm index eae041fb..469e0f65 100644 --- a/Source/HBIOS/cfg_una.asm +++ b/Source/HBIOS/cfg_una.asm @@ -26,6 +26,7 @@ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ; RTCIO .EQU $70 ; RTC LATCH REGISTER ADR ; diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 3ac56328..8f080708 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -33,6 +33,7 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index 8c40e759..ec794f13 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -33,6 +33,7 @@ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) ROMSIZE_CHK .EQU 0 ; ROMSIZE VALUE VEREIFICATION (0=DISABLED) MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH] MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index e729f5c2..cfb04eec 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -219,6 +219,7 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW ; .FILL (000H - $),0FFH ; RST 0 JP HB_START + .DB 0 ; SIG PTR STARTS AT $0004 .DW ROM_SIG .FILL (008H - $),0FFH ; RST 8 JP HB_INVOKE ; INVOKE HBIOS FUNCTION diff --git a/Source/HBIOS/hbios_env.asm b/Source/HBIOS/hbios_env.asm new file mode 100644 index 00000000..16356176 --- /dev/null +++ b/Source/HBIOS/hbios_env.asm @@ -0,0 +1,61 @@ +; +;================================================================================================== +; HBIOS ENVIRONMENT EXPORT +;================================================================================================== +; +; Do we need a private stack??? +; Use a macro do dump each variable? +; +#include "std.asm" +; + .org $100 ; Normal CP/M start address +; + ; Dump ROMSIZE + call PRTSTRD +#ifdef CMD + .text "set ROMSize=$" +#endif +#ifdef BASH + .text "ROMSIZE=$" +#endif + ld hl,ROMSIZE + call PRTDEC + call EOL +; + ret ; Return +; +; Output end-of-line. Handles differences between +; Windows CMD file and Bash. +; +EOL: +#ifdef CMD + ld a,13 + call COUT +#endif + ld a,10 + call COUT + ret + +; +; Print a single character from register A. +; This routine is required by the utility routines included below. +; +COUT: + push af + push bc + push de + push hl + ld e,a + ld c,2 + call $0005 + pop hl + pop de + pop bc + pop af + ret +; +; Include the utility routines +; +#include "util.asm" +; + .end \ No newline at end of file diff --git a/Source/ReadMe.txt b/Source/ReadMe.txt index 701a3da2..a187e8c1 100644 --- a/Source/ReadMe.txt +++ b/Source/ReadMe.txt @@ -296,13 +296,10 @@ For example: In this case, you will not be prompted. This is useful if you wish to automate your build process. -There is a third parameter that you can specify to the BuildROM -command via a command line. If you want to build a 1024K (1MB) ROM, -you can add "1024" to the end of the line, like this: - - C:\RomWBW\Source> BuildROM MK4 cust 1024 - -You must ensure that your system actually supports a 1024K ROM. +In the past, the size of the ROM could be specified as the third +parameter of the command. This parameter is now deprecated and +the size of the ROM is specified in your configuration file +using the ROMSIZE variable. Special Build Commands ---------------------- diff --git a/Source/ver.inc b/Source/ver.inc index d28d93cf..5dfe1610 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.179" +#DEFINE BIOSVER "3.1.1-pre.180" diff --git a/Source/ver.lib b/Source/ver.lib index 17bcfe0b..78f63bde 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.179" + db "3.1.1-pre.180" endm