forked from MirrorRepos/RomWBW
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