mirror of https://github.com/wwarthen/RomWBW.git
22 changed files with 249 additions and 6 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@ |
|||||
|
@echo off |
||||
|
setlocal |
||||
|
|
||||
|
pushd ZRC512 && call Build || exit /b & popd |
||||
@ -0,0 +1,68 @@ |
|||||
|
; |
||||
|
;================================================================================================== |
||||
|
; RCBUS Z80 ZRC512 CONFIGURATION |
||||
|
;================================================================================================== |
||||
|
; |
||||
|
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE |
||||
|
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS |
||||
|
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE |
||||
|
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. |
||||
|
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY |
||||
|
; YOUR FILE IN THE BUILD PROCESS. |
||||
|
; |
||||
|
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. |
||||
|
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO |
||||
|
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON |
||||
|
; SETTINGS. |
||||
|
; |
||||
|
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, |
||||
|
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING |
||||
|
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! |
||||
|
; |
||||
|
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO |
||||
|
; DIRECTORIES ABOVE THIS ONE). |
||||
|
; |
||||
|
#DEFINE PLATFORM_NAME "ZRC512", " [", CONFIG, "]" |
||||
|
; |
||||
|
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT |
||||
|
; |
||||
|
#include "cfg_rcz80.asm" |
||||
|
; |
||||
|
CPUOSC .SET 22000000 ; CPU OSC FREQ IN MHZ |
||||
|
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP |
||||
|
; |
||||
|
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS |
||||
|
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES |
||||
|
; |
||||
|
RAMSIZE .SET 512 ; 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 |
||||
|
; |
||||
|
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) |
||||
|
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) |
||||
|
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) |
||||
|
DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) |
||||
|
; |
||||
|
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) |
||||
|
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) |
||||
|
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] |
||||
|
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) |
||||
|
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) |
||||
|
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD |
||||
|
; |
||||
|
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER |
||||
|
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC] |
||||
|
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER |
||||
|
; |
||||
|
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) |
||||
|
FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC] |
||||
|
; |
||||
|
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
||||
|
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
||||
|
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) |
||||
|
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT SC ONLY |
||||
|
IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM) |
||||
|
; |
||||
|
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
||||
@ -0,0 +1,41 @@ |
|||||
|
ZRC has no real ROM. It has a single 2048K RAM chip. There |
||||
|
are two startup modes supported by RomWBW. |
||||
|
|
||||
|
The normal startup mode treats the first 512KB like ROM and the |
||||
|
remaining 1536KB as RAM. The first 512KB (pseudo-ROM) must be preloaded |
||||
|
by the ZRC CF Loader. This mode simulates a normal ROM-based RomWBW |
||||
|
startup. |
||||
|
|
||||
|
Bank Contents Description |
||||
|
---- -------- ----------- |
||||
|
0x0 BOOT Boot Bank (HBIOS image) + |
||||
|
0x1 IMG0 ROM Loader, Monitor, ROM OSes | |
||||
|
0x2 IMG1 ROM Applications | Pseudo-ROM |
||||
|
0x3 IMG2 Reserved | |
||||
|
0x4-0xF ROMD ROM Disk Banks + |
||||
|
0x10 BIOS HBIOS Bank (operating) |
||||
|
0x11-0x3B RAMD RAM Disk Banks |
||||
|
0x3C BUF OS Buffers (CP/M3) |
||||
|
0x3D AUX Aux Bank (CP/M 3, BPBIOS, etc.) |
||||
|
0x3E USR User Bank (CP/M TPA, etc.) |
||||
|
0x3F COM Common Bank, Upper 32KB |
||||
|
|
||||
|
The ROMless startup mode treats the entire 2048KB as RAM. However, in |
||||
|
this mode, only the first 512KB of RAM is utilized. This is because |
||||
|
the RAM Disk is seeded by the CF Loader which is currently constrained |
||||
|
to loading 512KB. The entire 512KB of RAM (less the top 32KB) must be |
||||
|
preloaded by the ZRC 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 |
||||
@ -0,0 +1,23 @@ |
|||||
|
@echo off |
||||
|
setlocal |
||||
|
|
||||
|
set TOOLS=../../Tools |
||||
|
|
||||
|
set PATH=%TOOLS%\srecord;%PATH% |
||||
|
|
||||
|
if exist ..\..\Binary\RCZ80_zrc512.rom call :build_zrc512 |
||||
|
|
||||
|
goto :eof |
||||
|
|
||||
|
:build_zrc512 |
||||
|
|
||||
|
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x0 0x200 zrc512_cfldr.bin -binary -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x1B8 0x200 zrc512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 zrc512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 ..\..\Binary\RCZ80_zrc512.rom -binary -offset 0x24000 -o temp.dat -binary |
||||
|
move temp.dat ..\..\Binary\hd1k_zrc512_prefix.dat |
||||
|
|
||||
|
copy /b ..\..\Binary\hd1k_zrc512_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_zrc512_combo.img || exit /b |
||||
|
|
||||
|
goto :eof |
||||
@ -0,0 +1,3 @@ |
|||||
|
@echo off |
||||
|
setlocal |
||||
|
|
||||
@ -0,0 +1,30 @@ |
|||||
|
HD1KZRC512PREFIX = hd1k_zrc512_prefix.dat |
||||
|
HD1KZRC512COMBOIMG = hd1k_zrc512_combo.img |
||||
|
ZRC512ROM = ../../Binary/RCZ80_zrc512.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 $(ZRC512ROM)),) |
||||
|
OBJECTS += $(HD1KZRC512PREFIX) $(HD1KZRC512COMBOIMG) |
||||
|
endif |
||||
|
|
||||
|
DEST=../../Binary |
||||
|
|
||||
|
TOOLS = ../../Tools |
||||
|
|
||||
|
include $(TOOLS)/Makefile.inc |
||||
|
|
||||
|
DIFFPATH = $(DIFFTO)/Binary |
||||
|
|
||||
|
$(HD1KZRC512PREFIX): |
||||
|
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x0 0x200 zrc512_cfldr.bin -binary -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x1B8 0x200 zrc512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 zrc512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary |
||||
|
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 $(ZRC512ROM) -binary -offset 0x24000 -o temp.dat -binary |
||||
|
mv temp.dat $@ |
||||
|
|
||||
|
$(HD1KZRC512COMBOIMG): $(HD1KZRC512PREFIX) $(HD1KIMGS) |
||||
|
cat $^ > $@ |
||||
@ -0,0 +1,24 @@ |
|||||
|
ZRC512 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 ZRC512 Monitor v0.3 |
||||
|
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 0xB000 and runs it |
||||
|
- CF Boot Loader reads ZRC512 Monitor (4KB) from sectors 0xF8-0xFF of CF to 0xB400 and runs it |
||||
|
- ZRC Monitor reads 480KB (RomWBW) from sectors 0x120-0x4DF of CF into 480KB of physical RAM |
||||
|
- ZRC Monitor maps first 32KB of physical RAM to first 32KB of CPU RAM and starts execution at 0x0000 |
||||
|
|
||||
Loading…
Reference in new issue