mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Add Z1RCC Support
- Added build support for Bill Chen's Z1RCC. - Thanks and credit to Bill for supplying the bulk of the build changes.
This commit is contained in:
20
Source/Z1RCC/Bank Layout.txt
Normal file
20
Source/Z1RCC/Bank Layout.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Z1RCC has no real ROM. It has a single 512K RAM chip. The RomWBW
|
||||
ROMless startup mode is used.
|
||||
|
||||
The ROMless startup mode treats the entire 512KB as RAM. The entire
|
||||
512KB of RAM (less the top 32KB) must be preloaded by the Z1RCC CF
|
||||
Loader. There will be no ROM disk available under RomWBW. There will
|
||||
be a RAM Disk and it's initial contents will be seeded by the image
|
||||
loaded by the CF Loader.
|
||||
|
||||
Bank Contents Description
|
||||
-------- -------- -----------
|
||||
0x0 BIOS HBIOS Bank (operating)
|
||||
0x1 IMG0 ROM Loader, Monitor, ROM OSes
|
||||
0x2 IMG1 ROM Applications
|
||||
0x3 IMG2 Reserved
|
||||
0x4-0xB RAMD RAM Disk Banks
|
||||
0xC BUF OS Buffers (CP/M3)
|
||||
0xD AUX Aux Bank (CP/M 3, BPBIOS, etc.)
|
||||
0xE USR User Bank (CP/M TPA, etc.)
|
||||
0xF COM Common Bank, Upper 32KB
|
||||
23
Source/Z1RCC/Build.cmd
Normal file
23
Source/Z1RCC/Build.cmd
Normal file
@@ -0,0 +1,23 @@
|
||||
@echo on
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../Tools
|
||||
|
||||
set PATH=%TOOLS%\srecord;%PATH%
|
||||
|
||||
if exist ..\..\Binary\RCZ180_z1rcc.rom call :build_z1rcc
|
||||
|
||||
goto :eof
|
||||
|
||||
:build_z1rcc
|
||||
|
||||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x0 0x200 z1rcc_cfldr.bin -binary -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 z1rcc_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 z1rcc_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 ..\..\Binary\RCZ180_z1rcc.rom -binary -offset 0x24000 -o temp.dat -binary
|
||||
move temp.dat ..\..\Binary\hd1k_z1rcc_prefix.dat
|
||||
|
||||
copy /b ..\..\Binary\hd1k_z1rcc_prefix.dat + ..\..\Binary\hd1k_cpm22.img + ..\..\Binary\hd1k_zsdos.img + ..\..\Binary\hd1k_nzcom.img + ..\..\Binary\hd1k_cpm3.img + ..\..\Binary\hd1k_zpm3.img + ..\..\Binary\hd1k_ws4.img ..\..\Binary\hd1k_z1rcc_combo.img || exit /b
|
||||
|
||||
goto :eof
|
||||
3
Source/Z1RCC/Clean.cmd
Normal file
3
Source/Z1RCC/Clean.cmd
Normal file
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
30
Source/Z1RCC/Makefile
Normal file
30
Source/Z1RCC/Makefile
Normal file
@@ -0,0 +1,30 @@
|
||||
HD1KZ1RCCPREFIX = hd1k_z1rcc_prefix.dat
|
||||
HD1KZ1RCCCOMBOIMG = hd1k_z1rcc_combo.img
|
||||
Z1RCCROM = ../../Binary/RCZ180_z1rcc.rom
|
||||
HD1KIMGS = ../../Binary/hd1k_cpm22.img ../../Binary/hd1k_zsdos.img ../../Binary/hd1k_nzcom.img \
|
||||
../../Binary/hd1k_cpm3.img ../../Binary/hd1k_zpm3.img ../../Binary/hd1k_ws4.img
|
||||
|
||||
OBJECTS :=
|
||||
|
||||
ifneq ($(wildcard $(Z1RCCROM)),)
|
||||
OBJECTS += $(HD1KZ1RCCPREFIX) $(HD1KZ1RCCCOMBOIMG)
|
||||
endif
|
||||
|
||||
DEST=../../Binary
|
||||
|
||||
TOOLS = ../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
DIFFPATH = $(DIFFTO)/Binary
|
||||
|
||||
$(HD1KZ1RCCPREFIX):
|
||||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x0 0x200 z1rcc_cfldr.bin -binary -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 z1rcc_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 z1rcc_mon.bin -binary -offset 0x1F000 -o temp.dat -binary
|
||||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 $(Z1RCCROM) -binary -offset 0x24000 -o temp.dat -binary
|
||||
mv temp.dat $@
|
||||
|
||||
$(HD1KZ1RCCCOMBOIMG): $(HD1KZ1RCCPREFIX) $(HD1KIMGS)
|
||||
cat $^ > $@
|
||||
24
Source/Z1RCC/Z1RCC Disk Layout.txt
Normal file
24
Source/Z1RCC/Z1RCC Disk Layout.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
Z1RCC Disk Prefix Layout
|
||||
======================
|
||||
|
||||
---- Bytes ---- --- Sectors ---
|
||||
Start Length Start Length Description
|
||||
------- ------- ------- ------- ---------------------------
|
||||
0x00000 0x001BE 0 1 CF Boot Loader
|
||||
0x001B8 0x00048 RomWBW Partition Table
|
||||
0x00200 0x1EE00 1 247 Unused
|
||||
0x1F000 0x01000 248 8 Z1RCC Monitor v0.2a
|
||||
0x20000 0x04000 256 32 Unused
|
||||
0x24000 0x80000 288 1024 RomWBW
|
||||
0xA4000 0x5C000 1312 736 Unused
|
||||
0x100000 2048 Start of slices (partition 0x1E)
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
- At startup CPLD ROM is mapped to Z80 CPU address space 0x0000-0x003F, CPU begins execution at 0x0000
|
||||
- CPLD ROM (CF bootstrap mode) reads CF Boot Loader (512B) from start of CF (MBR) to 0xA000 and runs it
|
||||
- CF Boot Loader reads Z1RCC Monitor (4KB) from sectors 0xF8-0xFF of CF to 0xB000 and runs from 0xB400
|
||||
- Z1RCC Monitor reads 480KB (RomWBW) from sectors 0x120-0x4DF of CF into 480KB of physical RAM
|
||||
|
||||
|
||||
Reference in New Issue
Block a user