mirror of https://github.com/wwarthen/RomWBW.git
committed by
GitHub
74 changed files with 1159 additions and 785 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,295 +1,296 @@ |
|||
|
|||
|
|||
**RomWBW ReadMe** \ |
|||
Version 3.5 \ |
|||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ |
|||
15 Dec 2024 |
|||
|
|||
# Overview |
|||
|
|||
RomWBW software provides a complete, commercial quality implementation |
|||
of CP/M (and workalike) operating systems and applications for modern |
|||
Z80/180/280 retro-computing hardware systems. A wide variety of |
|||
platforms are supported including those produced by these developer |
|||
communities: |
|||
|
|||
- [RetroBrew Computers](https://www.retrobrewcomputers.org) |
|||
(<https://www.retrobrewcomputers.org>) |
|||
- [RC2014](https://rc2014.co.uk) (<https://rc2014.co.uk>), |
|||
[RC2014-Z80](https://groups.google.com/g/rc2014-z80) |
|||
(<https://groups.google.com/g/rc2014-z80>) |
|||
- [Retro Computing](https://groups.google.com/g/retro-comp) |
|||
(<https://groups.google.com/g/retro-comp>) |
|||
- [Small Computer Central](https://smallcomputercentral.com/) |
|||
(<https://smallcomputercentral.com/>) |
|||
|
|||
A complete list of the currently supported platforms is found in the |
|||
\[Installation\] section. |
|||
|
|||
General features include: |
|||
|
|||
- Z80 Family CPUs including Z80, Z180, and Z280 |
|||
- Banked memory services for several banking designs |
|||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, |
|||
Iomega |
|||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO |
|||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445 |
|||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces |
|||
- Real time clock drivers including DS1302, BQ4845 |
|||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and |
|||
FreeRTOS |
|||
- Built-in VT-100 terminal emulation support |
|||
|
|||
RomWBW is distributed as both source code and pre-built ROM and disk |
|||
images. Some of the provided software can be launched directly from the |
|||
ROM firmware itself: |
|||
|
|||
- System Monitor |
|||
- Operating Systems (CP/M 2.2, ZSDOS) |
|||
- ROM BASIC (Nascom BASIC and Tasty BASIC) |
|||
- ROM Forth |
|||
|
|||
A dynamic disk drive letter assignment mechanism allows mapping |
|||
operating system drive letters to any available disk media. |
|||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) |
|||
support the use of multiple slices (up to 256 per device). Each slice |
|||
contains a complete CP/M filesystem and can be mapped independently to |
|||
any drive letter. This overcomes the inherent size limitations in legacy |
|||
OSes and allows up to 2GB of accessible storage on a single device. |
|||
|
|||
The pre-built ROM firmware images are generally suitable for most users. |
|||
However, it is also very easy to modify and build custom ROM images that |
|||
fully tailor the firmware to your specific preferences. All tools |
|||
required to build custom ROM firmware under Windows are included – no |
|||
need to install assemblers, etc. The firmware can also be built using |
|||
Linux or MacOS after confirming a few standard tools have been |
|||
installed. |
|||
|
|||
Multiple disk images are provided in the distribution. Most disk images |
|||
contain a complete, bootable, ready-to-run implementation of a specific |
|||
operating system. A “combo” disk image contains multiple slices, each |
|||
with a full operating system implementation. If you use this disk image, |
|||
you can easily pick whichever operating system you want to boot without |
|||
changing media. |
|||
|
|||
By design, RomWBW isolates all of the hardware specific functions in the |
|||
ROM chip itself. The ROM provides a hardware abstraction layer such that |
|||
all of the operating systems and applications on a disk will run on any |
|||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB |
|||
Card) and move it between systems transparently. |
|||
|
|||
A tool is provided that allows you to access a FAT-12/16/32 filesystem. |
|||
The FAT filesystem may be coresident on the same disk media as RomWBW |
|||
slices or on stand-alone media. This makes exchanging files with modern |
|||
OSes such as Windows, MacOS, and Linux very easy. |
|||
|
|||
# Acquiring RomWBW |
|||
|
|||
The [RomWBW Repository](https://github.com/wwarthen/RomWBW) |
|||
(<https://github.com/wwarthen/RomWBW>) on GitHub is the official |
|||
distribution location for all project source and documentation. The |
|||
fully-built distribution releases are available on the [RomWBW Releases |
|||
Page](https://github.com/wwarthen/RomWBW/releases) |
|||
(<https://github.com/wwarthen/RomWBW/releases>) of the repository. On |
|||
this page, you will normally see a Development Snapshot as well as |
|||
recent stable releases. Unless you have a specific reason, I suggest you |
|||
stick to the most recent stable release. Expand the “Assets” drop-down |
|||
for the release you want to download, then select the asset named |
|||
RomWBW-vX.X.X-Package.zip. The Package asset includes all pre-built ROM |
|||
and Disk images as well as full source code. The other assets contain |
|||
only source code and do not have the pre-built ROM or disk images. |
|||
|
|||
All source code and distributions are maintained on GitHub. Code |
|||
contributions are very welcome. |
|||
|
|||
# Installation & Operation |
|||
|
|||
In general, installation of RomWBW on your platform is very simple. You |
|||
just need to program your ROM with the correct ROM image from the RomWBW |
|||
distribution. Subsequently, you can write disk images on your disk |
|||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more |
|||
functionality. |
|||
|
|||
Complete instructions for installation and operation of RomWBW are found |
|||
in the [RomWBW User |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf). |
|||
|
|||
## Documentation |
|||
|
|||
Documentation for RomWBW includes: |
|||
|
|||
- [RomWBW User |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf) |
|||
- [RomWBW System |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf) |
|||
- [RomWBW |
|||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf) |
|||
- [RomWBW |
|||
Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf) |
|||
|
|||
# Acknowledgments |
|||
|
|||
I want to acknowledge that a great deal of the code and inspiration for |
|||
RomWBW has been provided by or derived from the work of others in the |
|||
RetroBrew Computers Community. I sincerely appreciate all of their |
|||
contributions. The list below is probably missing many names – please |
|||
let me know if I missed you! |
|||
|
|||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which |
|||
became the first platform RomWBW supported. Some of his original code |
|||
can still be found in RomWBW. |
|||
|
|||
- Dan Werner wrote much of the code from which RomWBW was originally |
|||
derived and he has always been a great source of knowledge and advice. |
|||
|
|||
- Douglas Goodall contributed code, time, testing, and advice in “the |
|||
early days”. He created an entire suite of application programs to |
|||
enhance the use of RomWBW. Unfortunately, they have become unusable |
|||
due to internal changes within RomWBW. As of RomWBW 2.6, these |
|||
applications are no longer provided. |
|||
|
|||
- Sergey Kiselev created several hardware platforms for RomWBW including |
|||
the very popular Zeta. |
|||
|
|||
- David Giles created support for the Z180 CSIO which is now included SD |
|||
Card driver. |
|||
|
|||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the |
|||
AY-3-8910 sound driver, DMA support, and a long list of general code |
|||
and documentation enhancements. |
|||
|
|||
- Ed Brindley contributed some of the code that supports the RCBus |
|||
platform. |
|||
|
|||
- Spencer Owen created the RC2014 series of hobbyist kit computers which |
|||
has exponentially increased RomWBW usage. Some of his kits include |
|||
RomWBW. |
|||
|
|||
- Stephen Cousins has likewise created a series of hobbyist kit |
|||
computers at Small Computer Central and is distributing RomWBW with |
|||
many of them. |
|||
|
|||
- Alan Cox has contributed some driver code and has provided a great |
|||
deal of advice. |
|||
|
|||
- The CP/NET client files were developed by Douglas Miller. |
|||
|
|||
- Phillip Stevens contributed support for FreeRTOS. |
|||
|
|||
- Curt Mayer contributed the original Linux / MacOS build process. |
|||
|
|||
- UNA BIOS and FDISK80 are the products of John Coffman. |
|||
|
|||
- FLASH4 is a product of Will Sowerbutts. |
|||
|
|||
- CLRDIR is a product of Max Scane. |
|||
|
|||
- Tasty Basic is a product of Dimitri Theulings. |
|||
|
|||
- Dean Netherton contributed eZ80 CPU support, the sound driver |
|||
interface, and the SN76489 sound driver. |
|||
|
|||
- The RomWBW Disk Catalog document was produced by Mykl Orders. |
|||
|
|||
- Rob Prouse has created many of the supplemental disk images including |
|||
Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft BASIC Compiler, |
|||
Microsoft Fortran Compiler, and a Games compendium. |
|||
|
|||
- Martin R has provided substantial help reviewing and improving the |
|||
User Guide and Applications documents. |
|||
|
|||
- Mark Pruden has also contributed a great deal of content to the Disk |
|||
Catalog, User Guide as well as contributing the disk image for the |
|||
Z3PLUS operating system, the COPYSL utility, and also implemented |
|||
feature for RomWBW configuration by NVRAM. |
|||
|
|||
- Jacques Pelletier has contributed the DS1501 RTC driver code. |
|||
|
|||
- Jose Collado has contributed enhancements to the TMS driver including |
|||
compatibility with standard TMS register configuration. |
|||
|
|||
- Kevin Boone has contributed a generic HBIOS date/time utility (WDATE). |
|||
|
|||
- Matt Carroll has contributed a fix to XM.COM that corrects the port |
|||
specification when doing a send. |
|||
|
|||
- Dean Jenkins enhanced the build process to accommodate the Raspberry |
|||
Pi 4. |
|||
|
|||
- Tom Plano has contributed a new utility (HTALK) to allow talking |
|||
directly to HBIOS COM ports. |
|||
|
|||
- Lars Nelson has contributed several generic utilities such as a |
|||
universal (OS agnostic) UNARC application. |
|||
|
|||
- Dylan Hall added support for specifying a secondary console. |
|||
|
|||
- Bill Shen has contributed boot loaders for several of his systems. |
|||
|
|||
- Laszlo Szolnoki has contributed an EF9345 video display controller |
|||
driver. |
|||
|
|||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol |
|||
that leverages RomWBW memory banking. |
|||
|
|||
- Les Bird has contributed support for the NABU w/ Option Board |
|||
|
|||
Contributions of all kinds to RomWBW are very welcome. |
|||
|
|||
# Licensing |
|||
|
|||
RomWBW is free software: you can redistribute it and/or modify it under |
|||
the terms of the GNU General Public License as published by the Free |
|||
Software Foundation, either version 3 of the License, or (at your |
|||
option) any later version. |
|||
|
|||
RomWBW is distributed in the hope that it will be useful, but WITHOUT |
|||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|||
more details. |
|||
|
|||
You should have received a copy of the GNU General Public License along |
|||
with RomWBW. If not, see <https://www.gnu.org/licenses/>. |
|||
|
|||
Portions of RomWBW were created by, contributed by, or derived from the |
|||
work of others. It is believed that these works are being used in |
|||
accordance with the intentions and/or licensing of their creators. |
|||
|
|||
If anyone feels their work is being used outside of its intended |
|||
licensing, please notify: |
|||
|
|||
> Wayne Warthen |
|||
> <wwarthen@gmail.com> |
|||
|
|||
RomWBW is an aggregate work. It is composed of many individual, |
|||
standalone programs that are distributed as a whole to function as a |
|||
cohesive system. Each program may have its own licensing which may be |
|||
different from other programs within the aggregate. |
|||
|
|||
In some cases, a single program (e.g., CP/M Operating System) is |
|||
composed of multiple components with different licenses. It is believed |
|||
that in all such cases the licenses are compatible with GPL version 3. |
|||
|
|||
RomWBW encourages code contributions from others. Contributors may |
|||
assert their own copyright in their contributions by annotating the |
|||
contributed source code appropriately. Contributors are further |
|||
encouraged to submit their contributions via the RomWBW source code |
|||
control system to ensure their contributions are clearly documented. |
|||
|
|||
All contributions to RomWBW are subject to this license. |
|||
|
|||
# Getting Assistance |
|||
|
|||
The best way to get assistance with RomWBW or any aspect of the |
|||
RetroBrew Computers projects is via one of the community forums: |
|||
|
|||
- [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/) |
|||
- [RC2014 Google |
|||
Group](https://groups.google.com/forum/#!forum/rc2014-z80) |
|||
- [retro-comp Google |
|||
Group](https://groups.google.com/forum/#!forum/retro-comp) |
|||
|
|||
Submission of issues and bugs are welcome at the [RomWBW GitHub |
|||
Repository](https://github.com/wwarthen/RomWBW). |
|||
|
|||
Also feel free to email Wayne Warthen at <wwarthen@gmail.com>. |
|||
|
|||
|
|||
**RomWBW ReadMe** \ |
|||
Version 3.5 \ |
|||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ |
|||
20 Dec 2024 |
|||
|
|||
# Overview |
|||
|
|||
RomWBW software provides a complete, commercial quality implementation |
|||
of CP/M (and workalike) operating systems and applications for modern |
|||
Z80/180/280 retro-computing hardware systems. A wide variety of |
|||
platforms are supported including those produced by these developer |
|||
communities: |
|||
|
|||
- [RetroBrew Computers](https://www.retrobrewcomputers.org) |
|||
(<https://www.retrobrewcomputers.org>) |
|||
- [RC2014](https://rc2014.co.uk) (<https://rc2014.co.uk>), |
|||
[RC2014-Z80](https://groups.google.com/g/rc2014-z80) |
|||
(<https://groups.google.com/g/rc2014-z80>) |
|||
- [Retro Computing](https://groups.google.com/g/retro-comp) |
|||
(<https://groups.google.com/g/retro-comp>) |
|||
- [Small Computer Central](https://smallcomputercentral.com/) |
|||
(<https://smallcomputercentral.com/>) |
|||
|
|||
A complete list of the currently supported platforms is found in the |
|||
\[Installation\] section. |
|||
|
|||
General features include: |
|||
|
|||
- Z80 Family CPUs including Z80, Z180, and Z280 |
|||
- Banked memory services for several banking designs |
|||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, |
|||
Iomega |
|||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO |
|||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445 |
|||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces |
|||
- Real time clock drivers including DS1302, BQ4845 |
|||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and |
|||
FreeRTOS |
|||
- Built-in VT-100 terminal emulation support |
|||
|
|||
RomWBW is distributed as both source code and pre-built ROM and disk |
|||
images. Some of the provided software can be launched directly from the |
|||
ROM firmware itself: |
|||
|
|||
- System Monitor |
|||
- Operating Systems (CP/M 2.2, ZSDOS) |
|||
- ROM BASIC (Nascom BASIC and Tasty BASIC) |
|||
- ROM Forth |
|||
|
|||
A dynamic disk drive letter assignment mechanism allows mapping |
|||
operating system drive letters to any available disk media. |
|||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) |
|||
support the use of multiple slices (up to 256 per device). Each slice |
|||
contains a complete CP/M filesystem and can be mapped independently to |
|||
any drive letter. This overcomes the inherent size limitations in legacy |
|||
OSes and allows up to 2GB of accessible storage on a single device. |
|||
|
|||
The pre-built ROM firmware images are generally suitable for most users. |
|||
However, it is also very easy to modify and build custom ROM images that |
|||
fully tailor the firmware to your specific preferences. All tools |
|||
required to build custom ROM firmware under Windows are included – no |
|||
need to install assemblers, etc. The firmware can also be built using |
|||
Linux or MacOS after confirming a few standard tools have been |
|||
installed. |
|||
|
|||
Multiple disk images are provided in the distribution. Most disk images |
|||
contain a complete, bootable, ready-to-run implementation of a specific |
|||
operating system. A “combo” disk image contains multiple slices, each |
|||
with a full operating system implementation. If you use this disk image, |
|||
you can easily pick whichever operating system you want to boot without |
|||
changing media. |
|||
|
|||
By design, RomWBW isolates all of the hardware specific functions in the |
|||
ROM chip itself. The ROM provides a hardware abstraction layer such that |
|||
all of the operating systems and applications on a disk will run on any |
|||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB |
|||
Card) and move it between systems transparently. |
|||
|
|||
A tool is provided that allows you to access a FAT-12/16/32 filesystem. |
|||
The FAT filesystem may be coresident on the same disk media as RomWBW |
|||
slices or on stand-alone media. This makes exchanging files with modern |
|||
OSes such as Windows, MacOS, and Linux very easy. |
|||
|
|||
# Acquiring RomWBW |
|||
|
|||
The [RomWBW Repository](https://github.com/wwarthen/RomWBW) |
|||
(<https://github.com/wwarthen/RomWBW>) on GitHub is the official |
|||
distribution location for all project source and documentation. The |
|||
fully-built distribution releases are available on the [RomWBW Releases |
|||
Page](https://github.com/wwarthen/RomWBW/releases) |
|||
(<https://github.com/wwarthen/RomWBW/releases>) of the repository. On |
|||
this page, you will normally see a Development Snapshot as well as |
|||
recent stable releases. Unless you have a specific reason, I suggest you |
|||
stick to the most recent stable release. Expand the “Assets” drop-down |
|||
for the release you want to download, then select the asset named |
|||
RomWBW-vX.X.X-Package.zip. The Package asset includes all pre-built ROM |
|||
and Disk images as well as full source code. The other assets contain |
|||
only source code and do not have the pre-built ROM or disk images. |
|||
|
|||
All source code and distributions are maintained on GitHub. Code |
|||
contributions are very welcome. |
|||
|
|||
# Installation & Operation |
|||
|
|||
In general, installation of RomWBW on your platform is very simple. You |
|||
just need to program your ROM with the correct ROM image from the RomWBW |
|||
distribution. Subsequently, you can write disk images on your disk |
|||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more |
|||
functionality. |
|||
|
|||
Complete instructions for installation and operation of RomWBW are found |
|||
in the [RomWBW User |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf). |
|||
|
|||
## Documentation |
|||
|
|||
Documentation for RomWBW includes: |
|||
|
|||
- [RomWBW User |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf) |
|||
- [RomWBW System |
|||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf) |
|||
- [RomWBW |
|||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf) |
|||
- [RomWBW |
|||
Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf) |
|||
|
|||
# Acknowledgments |
|||
|
|||
I want to acknowledge that a great deal of the code and inspiration for |
|||
RomWBW has been provided by or derived from the work of others in the |
|||
RetroBrew Computers Community. I sincerely appreciate all of their |
|||
contributions. The list below is probably missing many names – please |
|||
let me know if I missed you! |
|||
|
|||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which |
|||
became the first platform RomWBW supported. Some of his original code |
|||
can still be found in RomWBW. |
|||
|
|||
- Dan Werner wrote much of the code from which RomWBW was originally |
|||
derived and he has always been a great source of knowledge and advice. |
|||
|
|||
- Douglas Goodall contributed code, time, testing, and advice in “the |
|||
early days”. He created an entire suite of application programs to |
|||
enhance the use of RomWBW. Unfortunately, they have become unusable |
|||
due to internal changes within RomWBW. As of RomWBW 2.6, these |
|||
applications are no longer provided. |
|||
|
|||
- Sergey Kiselev created several hardware platforms for RomWBW including |
|||
the very popular Zeta. |
|||
|
|||
- David Giles created support for the Z180 CSIO which is now included SD |
|||
Card driver. |
|||
|
|||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the |
|||
AY-3-8910 sound driver, DMA support, and a long list of general code |
|||
and documentation enhancements. |
|||
|
|||
- Ed Brindley contributed some of the code that supports the RCBus |
|||
platform. |
|||
|
|||
- Spencer Owen created the RC2014 series of hobbyist kit computers which |
|||
has exponentially increased RomWBW usage. Some of his kits include |
|||
RomWBW. |
|||
|
|||
- Stephen Cousins has likewise created a series of hobbyist kit |
|||
computers at Small Computer Central and is distributing RomWBW with |
|||
many of them. |
|||
|
|||
- Alan Cox has contributed some driver code and has provided a great |
|||
deal of advice. |
|||
|
|||
- The CP/NET client files were developed by Douglas Miller. |
|||
|
|||
- Phillip Stevens contributed support for FreeRTOS. |
|||
|
|||
- Curt Mayer contributed the original Linux / MacOS build process. |
|||
|
|||
- UNA BIOS and FDISK80 are the products of John Coffman. |
|||
|
|||
- FLASH4 is a product of Will Sowerbutts. |
|||
|
|||
- CLRDIR is a product of Max Scane. |
|||
|
|||
- Tasty Basic is a product of Dimitri Theulings. |
|||
|
|||
- Dean Netherton contributed eZ80 CPU support, the sound driver |
|||
interface, and the SN76489 sound driver. |
|||
|
|||
- The RomWBW Disk Catalog document was produced by Mykl Orders. |
|||
|
|||
- Rob Prouse has created many of the supplemental disk images including |
|||
Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft BASIC Compiler, |
|||
Microsoft Fortran Compiler, and a Games compendium. |
|||
|
|||
- Martin R has provided substantial help reviewing and improving the |
|||
User Guide and Applications documents. |
|||
|
|||
- Mark Pruden has also contributed a great deal of content to the Disk |
|||
Catalog, User Guide as well as contributing the disk image for the |
|||
Z3PLUS operating system, the COPYSL utility, and also implemented a |
|||
feature for RomWBW configuration by NVRAM, and added the /B bulk mode |
|||
of disk assignment to the ASSIGN utility. |
|||
|
|||
- Jacques Pelletier has contributed the DS1501 RTC driver code. |
|||
|
|||
- Jose Collado has contributed enhancements to the TMS driver including |
|||
compatibility with standard TMS register configuration. |
|||
|
|||
- Kevin Boone has contributed a generic HBIOS date/time utility (WDATE). |
|||
|
|||
- Matt Carroll has contributed a fix to XM.COM that corrects the port |
|||
specification when doing a send. |
|||
|
|||
- Dean Jenkins enhanced the build process to accommodate the Raspberry |
|||
Pi 4. |
|||
|
|||
- Tom Plano has contributed a new utility (HTALK) to allow talking |
|||
directly to HBIOS COM ports. |
|||
|
|||
- Lars Nelson has contributed several generic utilities such as a |
|||
universal (OS agnostic) UNARC application. |
|||
|
|||
- Dylan Hall added support for specifying a secondary console. |
|||
|
|||
- Bill Shen has contributed boot loaders for several of his systems. |
|||
|
|||
- Laszlo Szolnoki has contributed an EF9345 video display controller |
|||
driver. |
|||
|
|||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol |
|||
that leverages RomWBW memory banking. |
|||
|
|||
- Les Bird has contributed support for the NABU w/ Option Board |
|||
|
|||
Contributions of all kinds to RomWBW are very welcome. |
|||
|
|||
# Licensing |
|||
|
|||
RomWBW is free software: you can redistribute it and/or modify it under |
|||
the terms of the GNU General Public License as published by the Free |
|||
Software Foundation, either version 3 of the License, or (at your |
|||
option) any later version. |
|||
|
|||
RomWBW is distributed in the hope that it will be useful, but WITHOUT |
|||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|||
more details. |
|||
|
|||
You should have received a copy of the GNU General Public License along |
|||
with RomWBW. If not, see <https://www.gnu.org/licenses/>. |
|||
|
|||
Portions of RomWBW were created by, contributed by, or derived from the |
|||
work of others. It is believed that these works are being used in |
|||
accordance with the intentions and/or licensing of their creators. |
|||
|
|||
If anyone feels their work is being used outside of its intended |
|||
licensing, please notify: |
|||
|
|||
> Wayne Warthen |
|||
> <wwarthen@gmail.com> |
|||
|
|||
RomWBW is an aggregate work. It is composed of many individual, |
|||
standalone programs that are distributed as a whole to function as a |
|||
cohesive system. Each program may have its own licensing which may be |
|||
different from other programs within the aggregate. |
|||
|
|||
In some cases, a single program (e.g., CP/M Operating System) is |
|||
composed of multiple components with different licenses. It is believed |
|||
that in all such cases the licenses are compatible with GPL version 3. |
|||
|
|||
RomWBW encourages code contributions from others. Contributors may |
|||
assert their own copyright in their contributions by annotating the |
|||
contributed source code appropriately. Contributors are further |
|||
encouraged to submit their contributions via the RomWBW source code |
|||
control system to ensure their contributions are clearly documented. |
|||
|
|||
All contributions to RomWBW are subject to this license. |
|||
|
|||
# Getting Assistance |
|||
|
|||
The best way to get assistance with RomWBW or any aspect of the |
|||
RetroBrew Computers projects is via one of the community forums: |
|||
|
|||
- [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/) |
|||
- [RC2014 Google |
|||
Group](https://groups.google.com/forum/#!forum/rc2014-z80) |
|||
- [retro-comp Google |
|||
Group](https://groups.google.com/forum/#!forum/retro-comp) |
|||
|
|||
Submission of issues and bugs are welcome at the [RomWBW GitHub |
|||
Repository](https://github.com/wwarthen/RomWBW). |
|||
|
|||
Also feel free to email Wayne Warthen at <wwarthen@gmail.com>. |
|||
|
|||
@ -1,301 +1,302 @@ |
|||
RomWBW ReadMe |
|||
Wayne Warthen (wwarthen@gmail.com) |
|||
15 Dec 2024 |
|||
|
|||
|
|||
|
|||
OVERVIEW |
|||
|
|||
|
|||
RomWBW software provides a complete, commercial quality implementation |
|||
of CP/M (and workalike) operating systems and applications for modern |
|||
Z80/180/280 retro-computing hardware systems. A wide variety of |
|||
platforms are supported including those produced by these developer |
|||
communities: |
|||
|
|||
- RetroBrew Computers (https://www.retrobrewcomputers.org) |
|||
- RC2014 (https://rc2014.co.uk), |
|||
RC2014-Z80 (https://groups.google.com/g/rc2014-z80) |
|||
- Retro Computing (https://groups.google.com/g/retro-comp) |
|||
- Small Computer Central (https://smallcomputercentral.com/) |
|||
|
|||
A complete list of the currently supported platforms is found in the |
|||
[Installation] section. |
|||
|
|||
General features include: |
|||
|
|||
- Z80 Family CPUs including Z80, Z180, and Z280 |
|||
- Banked memory services for several banking designs |
|||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, |
|||
Iomega |
|||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO |
|||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445 |
|||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces |
|||
- Real time clock drivers including DS1302, BQ4845 |
|||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and |
|||
FreeRTOS |
|||
- Built-in VT-100 terminal emulation support |
|||
|
|||
RomWBW is distributed as both source code and pre-built ROM and disk |
|||
images. Some of the provided software can be launched directly from the |
|||
ROM firmware itself: |
|||
|
|||
- System Monitor |
|||
- Operating Systems (CP/M 2.2, ZSDOS) |
|||
- ROM BASIC (Nascom BASIC and Tasty BASIC) |
|||
- ROM Forth |
|||
|
|||
A dynamic disk drive letter assignment mechanism allows mapping |
|||
operating system drive letters to any available disk media. |
|||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) |
|||
support the use of multiple slices (up to 256 per device). Each slice |
|||
contains a complete CP/M filesystem and can be mapped independently to |
|||
any drive letter. This overcomes the inherent size limitations in legacy |
|||
OSes and allows up to 2GB of accessible storage on a single device. |
|||
|
|||
The pre-built ROM firmware images are generally suitable for most users. |
|||
However, it is also very easy to modify and build custom ROM images that |
|||
fully tailor the firmware to your specific preferences. All tools |
|||
required to build custom ROM firmware under Windows are included – no |
|||
need to install assemblers, etc. The firmware can also be built using |
|||
Linux or MacOS after confirming a few standard tools have been |
|||
installed. |
|||
|
|||
Multiple disk images are provided in the distribution. Most disk images |
|||
contain a complete, bootable, ready-to-run implementation of a specific |
|||
operating system. A “combo” disk image contains multiple slices, each |
|||
with a full operating system implementation. If you use this disk image, |
|||
you can easily pick whichever operating system you want to boot without |
|||
changing media. |
|||
|
|||
By design, RomWBW isolates all of the hardware specific functions in the |
|||
ROM chip itself. The ROM provides a hardware abstraction layer such that |
|||
all of the operating systems and applications on a disk will run on any |
|||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB |
|||
Card) and move it between systems transparently. |
|||
|
|||
A tool is provided that allows you to access a FAT-12/16/32 filesystem. |
|||
The FAT filesystem may be coresident on the same disk media as RomWBW |
|||
slices or on stand-alone media. This makes exchanging files with modern |
|||
OSes such as Windows, MacOS, and Linux very easy. |
|||
|
|||
|
|||
|
|||
ACQUIRING ROMWBW |
|||
|
|||
|
|||
The RomWBW Repository (https://github.com/wwarthen/RomWBW) on GitHub is |
|||
the official distribution location for all project source and |
|||
documentation. The fully-built distribution releases are available on |
|||
the RomWBW Releases Page (https://github.com/wwarthen/RomWBW/releases) |
|||
of the repository. On this page, you will normally see a Development |
|||
Snapshot as well as recent stable releases. Unless you have a specific |
|||
reason, I suggest you stick to the most recent stable release. Expand |
|||
the “Assets” drop-down for the release you want to download, then select |
|||
the asset named RomWBW-vX.X.X-Package.zip. The Package asset includes |
|||
all pre-built ROM and Disk images as well as full source code. The other |
|||
assets contain only source code and do not have the pre-built ROM or |
|||
disk images. |
|||
|
|||
All source code and distributions are maintained on GitHub. Code |
|||
contributions are very welcome. |
|||
|
|||
|
|||
|
|||
INSTALLATION & OPERATION |
|||
|
|||
|
|||
In general, installation of RomWBW on your platform is very simple. You |
|||
just need to program your ROM with the correct ROM image from the RomWBW |
|||
distribution. Subsequently, you can write disk images on your disk |
|||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more |
|||
functionality. |
|||
|
|||
Complete instructions for installation and operation of RomWBW are found |
|||
in the RomWBW User Guide. |
|||
|
|||
|
|||
Documentation |
|||
|
|||
Documentation for RomWBW includes: |
|||
|
|||
- RomWBW User Guide |
|||
- RomWBW System Guide |
|||
- RomWBW Applications |
|||
- RomWBW Errata |
|||
|
|||
|
|||
|
|||
ACKNOWLEDGMENTS |
|||
|
|||
|
|||
I want to acknowledge that a great deal of the code and inspiration for |
|||
RomWBW has been provided by or derived from the work of others in the |
|||
RetroBrew Computers Community. I sincerely appreciate all of their |
|||
contributions. The list below is probably missing many names – please |
|||
let me know if I missed you! |
|||
|
|||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which |
|||
became the first platform RomWBW supported. Some of his original |
|||
code can still be found in RomWBW. |
|||
|
|||
- Dan Werner wrote much of the code from which RomWBW was originally |
|||
derived and he has always been a great source of knowledge and |
|||
advice. |
|||
|
|||
- Douglas Goodall contributed code, time, testing, and advice in “the |
|||
early days”. He created an entire suite of application programs to |
|||
enhance the use of RomWBW. Unfortunately, they have become unusable |
|||
due to internal changes within RomWBW. As of RomWBW 2.6, these |
|||
applications are no longer provided. |
|||
|
|||
- Sergey Kiselev created several hardware platforms for RomWBW |
|||
including the very popular Zeta. |
|||
|
|||
- David Giles created support for the Z180 CSIO which is now included |
|||
SD Card driver. |
|||
|
|||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the |
|||
AY-3-8910 sound driver, DMA support, and a long list of general code |
|||
and documentation enhancements. |
|||
|
|||
- Ed Brindley contributed some of the code that supports the RCBus |
|||
platform. |
|||
|
|||
- Spencer Owen created the RC2014 series of hobbyist kit computers |
|||
which has exponentially increased RomWBW usage. Some of his kits |
|||
include RomWBW. |
|||
|
|||
- Stephen Cousins has likewise created a series of hobbyist kit |
|||
computers at Small Computer Central and is distributing RomWBW with |
|||
many of them. |
|||
|
|||
- Alan Cox has contributed some driver code and has provided a great |
|||
deal of advice. |
|||
|
|||
- The CP/NET client files were developed by Douglas Miller. |
|||
|
|||
- Phillip Stevens contributed support for FreeRTOS. |
|||
|
|||
- Curt Mayer contributed the original Linux / MacOS build process. |
|||
|
|||
- UNA BIOS and FDISK80 are the products of John Coffman. |
|||
|
|||
- FLASH4 is a product of Will Sowerbutts. |
|||
|
|||
- CLRDIR is a product of Max Scane. |
|||
|
|||
- Tasty Basic is a product of Dimitri Theulings. |
|||
|
|||
- Dean Netherton contributed eZ80 CPU support, the sound driver |
|||
interface, and the SN76489 sound driver. |
|||
|
|||
- The RomWBW Disk Catalog document was produced by Mykl Orders. |
|||
|
|||
- Rob Prouse has created many of the supplemental disk images |
|||
including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft |
|||
BASIC Compiler, Microsoft Fortran Compiler, and a Games compendium. |
|||
|
|||
- Martin R has provided substantial help reviewing and improving the |
|||
User Guide and Applications documents. |
|||
|
|||
- Mark Pruden has also contributed a great deal of content to the Disk |
|||
Catalog, User Guide as well as contributing the disk image for the |
|||
Z3PLUS operating system, the COPYSL utility, and also implemented |
|||
feature for RomWBW configuration by NVRAM. |
|||
|
|||
- Jacques Pelletier has contributed the DS1501 RTC driver code. |
|||
|
|||
- Jose Collado has contributed enhancements to the TMS driver |
|||
including compatibility with standard TMS register configuration. |
|||
|
|||
- Kevin Boone has contributed a generic HBIOS date/time utility |
|||
(WDATE). |
|||
|
|||
- Matt Carroll has contributed a fix to XM.COM that corrects the port |
|||
specification when doing a send. |
|||
|
|||
- Dean Jenkins enhanced the build process to accommodate the Raspberry |
|||
Pi 4. |
|||
|
|||
- Tom Plano has contributed a new utility (HTALK) to allow talking |
|||
directly to HBIOS COM ports. |
|||
|
|||
- Lars Nelson has contributed several generic utilities such as a |
|||
universal (OS agnostic) UNARC application. |
|||
|
|||
- Dylan Hall added support for specifying a secondary console. |
|||
|
|||
- Bill Shen has contributed boot loaders for several of his systems. |
|||
|
|||
- Laszlo Szolnoki has contributed an EF9345 video display controller |
|||
driver. |
|||
|
|||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol |
|||
that leverages RomWBW memory banking. |
|||
|
|||
- Les Bird has contributed support for the NABU w/ Option Board |
|||
|
|||
Contributions of all kinds to RomWBW are very welcome. |
|||
|
|||
|
|||
|
|||
LICENSING |
|||
|
|||
|
|||
RomWBW is free software: you can redistribute it and/or modify it under |
|||
the terms of the GNU General Public License as published by the Free |
|||
Software Foundation, either version 3 of the License, or (at your |
|||
option) any later version. |
|||
|
|||
RomWBW is distributed in the hope that it will be useful, but WITHOUT |
|||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|||
more details. |
|||
|
|||
You should have received a copy of the GNU General Public License along |
|||
with RomWBW. If not, see https://www.gnu.org/licenses/. |
|||
|
|||
Portions of RomWBW were created by, contributed by, or derived from the |
|||
work of others. It is believed that these works are being used in |
|||
accordance with the intentions and/or licensing of their creators. |
|||
|
|||
If anyone feels their work is being used outside of its intended |
|||
licensing, please notify: |
|||
|
|||
Wayne Warthen |
|||
wwarthen@gmail.com |
|||
|
|||
RomWBW is an aggregate work. It is composed of many individual, |
|||
standalone programs that are distributed as a whole to function as a |
|||
cohesive system. Each program may have its own licensing which may be |
|||
different from other programs within the aggregate. |
|||
|
|||
In some cases, a single program (e.g., CP/M Operating System) is |
|||
composed of multiple components with different licenses. It is believed |
|||
that in all such cases the licenses are compatible with GPL version 3. |
|||
|
|||
RomWBW encourages code contributions from others. Contributors may |
|||
assert their own copyright in their contributions by annotating the |
|||
contributed source code appropriately. Contributors are further |
|||
encouraged to submit their contributions via the RomWBW source code |
|||
control system to ensure their contributions are clearly documented. |
|||
|
|||
All contributions to RomWBW are subject to this license. |
|||
|
|||
|
|||
|
|||
GETTING ASSISTANCE |
|||
|
|||
|
|||
The best way to get assistance with RomWBW or any aspect of the |
|||
RetroBrew Computers projects is via one of the community forums: |
|||
|
|||
- RetroBrew Computers Forum |
|||
- RC2014 Google Group |
|||
- retro-comp Google Group |
|||
|
|||
Submission of issues and bugs are welcome at the RomWBW GitHub |
|||
Repository. |
|||
|
|||
Also feel free to email Wayne Warthen at wwarthen@gmail.com. |
|||
RomWBW ReadMe |
|||
Wayne Warthen (wwarthen@gmail.com) |
|||
20 Dec 2024 |
|||
|
|||
|
|||
|
|||
OVERVIEW |
|||
|
|||
|
|||
RomWBW software provides a complete, commercial quality implementation |
|||
of CP/M (and workalike) operating systems and applications for modern |
|||
Z80/180/280 retro-computing hardware systems. A wide variety of |
|||
platforms are supported including those produced by these developer |
|||
communities: |
|||
|
|||
- RetroBrew Computers (https://www.retrobrewcomputers.org) |
|||
- RC2014 (https://rc2014.co.uk), |
|||
RC2014-Z80 (https://groups.google.com/g/rc2014-z80) |
|||
- Retro Computing (https://groups.google.com/g/retro-comp) |
|||
- Small Computer Central (https://smallcomputercentral.com/) |
|||
|
|||
A complete list of the currently supported platforms is found in the |
|||
[Installation] section. |
|||
|
|||
General features include: |
|||
|
|||
- Z80 Family CPUs including Z80, Z180, and Z280 |
|||
- Banked memory services for several banking designs |
|||
- Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, |
|||
Iomega |
|||
- Serial drivers including UART (16550-like), ASCI, ACIA, SIO |
|||
- Video drivers including TMS9918, SY6545, MOS8563, HD6445 |
|||
- Keyboard (PS/2) drivers via VT8242 or PPI interfaces |
|||
- Real time clock drivers including DS1302, BQ4845 |
|||
- OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and |
|||
FreeRTOS |
|||
- Built-in VT-100 terminal emulation support |
|||
|
|||
RomWBW is distributed as both source code and pre-built ROM and disk |
|||
images. Some of the provided software can be launched directly from the |
|||
ROM firmware itself: |
|||
|
|||
- System Monitor |
|||
- Operating Systems (CP/M 2.2, ZSDOS) |
|||
- ROM BASIC (Nascom BASIC and Tasty BASIC) |
|||
- ROM Forth |
|||
|
|||
A dynamic disk drive letter assignment mechanism allows mapping |
|||
operating system drive letters to any available disk media. |
|||
Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) |
|||
support the use of multiple slices (up to 256 per device). Each slice |
|||
contains a complete CP/M filesystem and can be mapped independently to |
|||
any drive letter. This overcomes the inherent size limitations in legacy |
|||
OSes and allows up to 2GB of accessible storage on a single device. |
|||
|
|||
The pre-built ROM firmware images are generally suitable for most users. |
|||
However, it is also very easy to modify and build custom ROM images that |
|||
fully tailor the firmware to your specific preferences. All tools |
|||
required to build custom ROM firmware under Windows are included – no |
|||
need to install assemblers, etc. The firmware can also be built using |
|||
Linux or MacOS after confirming a few standard tools have been |
|||
installed. |
|||
|
|||
Multiple disk images are provided in the distribution. Most disk images |
|||
contain a complete, bootable, ready-to-run implementation of a specific |
|||
operating system. A “combo” disk image contains multiple slices, each |
|||
with a full operating system implementation. If you use this disk image, |
|||
you can easily pick whichever operating system you want to boot without |
|||
changing media. |
|||
|
|||
By design, RomWBW isolates all of the hardware specific functions in the |
|||
ROM chip itself. The ROM provides a hardware abstraction layer such that |
|||
all of the operating systems and applications on a disk will run on any |
|||
RomWBW-based system. To put it simply, you can take a disk (or CF/SD/USB |
|||
Card) and move it between systems transparently. |
|||
|
|||
A tool is provided that allows you to access a FAT-12/16/32 filesystem. |
|||
The FAT filesystem may be coresident on the same disk media as RomWBW |
|||
slices or on stand-alone media. This makes exchanging files with modern |
|||
OSes such as Windows, MacOS, and Linux very easy. |
|||
|
|||
|
|||
|
|||
ACQUIRING ROMWBW |
|||
|
|||
|
|||
The RomWBW Repository (https://github.com/wwarthen/RomWBW) on GitHub is |
|||
the official distribution location for all project source and |
|||
documentation. The fully-built distribution releases are available on |
|||
the RomWBW Releases Page (https://github.com/wwarthen/RomWBW/releases) |
|||
of the repository. On this page, you will normally see a Development |
|||
Snapshot as well as recent stable releases. Unless you have a specific |
|||
reason, I suggest you stick to the most recent stable release. Expand |
|||
the “Assets” drop-down for the release you want to download, then select |
|||
the asset named RomWBW-vX.X.X-Package.zip. The Package asset includes |
|||
all pre-built ROM and Disk images as well as full source code. The other |
|||
assets contain only source code and do not have the pre-built ROM or |
|||
disk images. |
|||
|
|||
All source code and distributions are maintained on GitHub. Code |
|||
contributions are very welcome. |
|||
|
|||
|
|||
|
|||
INSTALLATION & OPERATION |
|||
|
|||
|
|||
In general, installation of RomWBW on your platform is very simple. You |
|||
just need to program your ROM with the correct ROM image from the RomWBW |
|||
distribution. Subsequently, you can write disk images on your disk |
|||
drives (IDE disk, CF Card, SD Card, etc.) which then provides even more |
|||
functionality. |
|||
|
|||
Complete instructions for installation and operation of RomWBW are found |
|||
in the RomWBW User Guide. |
|||
|
|||
|
|||
Documentation |
|||
|
|||
Documentation for RomWBW includes: |
|||
|
|||
- RomWBW User Guide |
|||
- RomWBW System Guide |
|||
- RomWBW Applications |
|||
- RomWBW Errata |
|||
|
|||
|
|||
|
|||
ACKNOWLEDGMENTS |
|||
|
|||
|
|||
I want to acknowledge that a great deal of the code and inspiration for |
|||
RomWBW has been provided by or derived from the work of others in the |
|||
RetroBrew Computers Community. I sincerely appreciate all of their |
|||
contributions. The list below is probably missing many names – please |
|||
let me know if I missed you! |
|||
|
|||
- Andrew Lynch started it all when he created the N8VEM Z80 SBC which |
|||
became the first platform RomWBW supported. Some of his original |
|||
code can still be found in RomWBW. |
|||
|
|||
- Dan Werner wrote much of the code from which RomWBW was originally |
|||
derived and he has always been a great source of knowledge and |
|||
advice. |
|||
|
|||
- Douglas Goodall contributed code, time, testing, and advice in “the |
|||
early days”. He created an entire suite of application programs to |
|||
enhance the use of RomWBW. Unfortunately, they have become unusable |
|||
due to internal changes within RomWBW. As of RomWBW 2.6, these |
|||
applications are no longer provided. |
|||
|
|||
- Sergey Kiselev created several hardware platforms for RomWBW |
|||
including the very popular Zeta. |
|||
|
|||
- David Giles created support for the Z180 CSIO which is now included |
|||
SD Card driver. |
|||
|
|||
- Phil Summers contributed the Forth and BASIC adaptations in ROM, the |
|||
AY-3-8910 sound driver, DMA support, and a long list of general code |
|||
and documentation enhancements. |
|||
|
|||
- Ed Brindley contributed some of the code that supports the RCBus |
|||
platform. |
|||
|
|||
- Spencer Owen created the RC2014 series of hobbyist kit computers |
|||
which has exponentially increased RomWBW usage. Some of his kits |
|||
include RomWBW. |
|||
|
|||
- Stephen Cousins has likewise created a series of hobbyist kit |
|||
computers at Small Computer Central and is distributing RomWBW with |
|||
many of them. |
|||
|
|||
- Alan Cox has contributed some driver code and has provided a great |
|||
deal of advice. |
|||
|
|||
- The CP/NET client files were developed by Douglas Miller. |
|||
|
|||
- Phillip Stevens contributed support for FreeRTOS. |
|||
|
|||
- Curt Mayer contributed the original Linux / MacOS build process. |
|||
|
|||
- UNA BIOS and FDISK80 are the products of John Coffman. |
|||
|
|||
- FLASH4 is a product of Will Sowerbutts. |
|||
|
|||
- CLRDIR is a product of Max Scane. |
|||
|
|||
- Tasty Basic is a product of Dimitri Theulings. |
|||
|
|||
- Dean Netherton contributed eZ80 CPU support, the sound driver |
|||
interface, and the SN76489 sound driver. |
|||
|
|||
- The RomWBW Disk Catalog document was produced by Mykl Orders. |
|||
|
|||
- Rob Prouse has created many of the supplemental disk images |
|||
including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft |
|||
BASIC Compiler, Microsoft Fortran Compiler, and a Games compendium. |
|||
|
|||
- Martin R has provided substantial help reviewing and improving the |
|||
User Guide and Applications documents. |
|||
|
|||
- Mark Pruden has also contributed a great deal of content to the Disk |
|||
Catalog, User Guide as well as contributing the disk image for the |
|||
Z3PLUS operating system, the COPYSL utility, and also implemented a |
|||
feature for RomWBW configuration by NVRAM, and added the /B bulk |
|||
mode of disk assignment to the ASSIGN utility. |
|||
|
|||
- Jacques Pelletier has contributed the DS1501 RTC driver code. |
|||
|
|||
- Jose Collado has contributed enhancements to the TMS driver |
|||
including compatibility with standard TMS register configuration. |
|||
|
|||
- Kevin Boone has contributed a generic HBIOS date/time utility |
|||
(WDATE). |
|||
|
|||
- Matt Carroll has contributed a fix to XM.COM that corrects the port |
|||
specification when doing a send. |
|||
|
|||
- Dean Jenkins enhanced the build process to accommodate the Raspberry |
|||
Pi 4. |
|||
|
|||
- Tom Plano has contributed a new utility (HTALK) to allow talking |
|||
directly to HBIOS COM ports. |
|||
|
|||
- Lars Nelson has contributed several generic utilities such as a |
|||
universal (OS agnostic) UNARC application. |
|||
|
|||
- Dylan Hall added support for specifying a secondary console. |
|||
|
|||
- Bill Shen has contributed boot loaders for several of his systems. |
|||
|
|||
- Laszlo Szolnoki has contributed an EF9345 video display controller |
|||
driver. |
|||
|
|||
- Ladislau Szilagyi has contributed an enhanced version of CP/M Cowgol |
|||
that leverages RomWBW memory banking. |
|||
|
|||
- Les Bird has contributed support for the NABU w/ Option Board |
|||
|
|||
Contributions of all kinds to RomWBW are very welcome. |
|||
|
|||
|
|||
|
|||
LICENSING |
|||
|
|||
|
|||
RomWBW is free software: you can redistribute it and/or modify it under |
|||
the terms of the GNU General Public License as published by the Free |
|||
Software Foundation, either version 3 of the License, or (at your |
|||
option) any later version. |
|||
|
|||
RomWBW is distributed in the hope that it will be useful, but WITHOUT |
|||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|||
more details. |
|||
|
|||
You should have received a copy of the GNU General Public License along |
|||
with RomWBW. If not, see https://www.gnu.org/licenses/. |
|||
|
|||
Portions of RomWBW were created by, contributed by, or derived from the |
|||
work of others. It is believed that these works are being used in |
|||
accordance with the intentions and/or licensing of their creators. |
|||
|
|||
If anyone feels their work is being used outside of its intended |
|||
licensing, please notify: |
|||
|
|||
Wayne Warthen |
|||
wwarthen@gmail.com |
|||
|
|||
RomWBW is an aggregate work. It is composed of many individual, |
|||
standalone programs that are distributed as a whole to function as a |
|||
cohesive system. Each program may have its own licensing which may be |
|||
different from other programs within the aggregate. |
|||
|
|||
In some cases, a single program (e.g., CP/M Operating System) is |
|||
composed of multiple components with different licenses. It is believed |
|||
that in all such cases the licenses are compatible with GPL version 3. |
|||
|
|||
RomWBW encourages code contributions from others. Contributors may |
|||
assert their own copyright in their contributions by annotating the |
|||
contributed source code appropriately. Contributors are further |
|||
encouraged to submit their contributions via the RomWBW source code |
|||
control system to ensure their contributions are clearly documented. |
|||
|
|||
All contributions to RomWBW are subject to this license. |
|||
|
|||
|
|||
|
|||
GETTING ASSISTANCE |
|||
|
|||
|
|||
The best way to get assistance with RomWBW or any aspect of the |
|||
RetroBrew Computers projects is via one of the community forums: |
|||
|
|||
- RetroBrew Computers Forum |
|||
- RC2014 Google Group |
|||
- retro-comp Google Group |
|||
|
|||
Submission of issues and bugs are welcome at the RomWBW GitHub |
|||
Repository. |
|||
|
|||
Also feel free to email Wayne Warthen at wwarthen@gmail.com. |
|||
|
|||
@ -0,0 +1,4 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
pushd EZ512 && call Build || exit /b & popd |
|||
@ -0,0 +1,16 @@ |
|||
|
|||
Eazy80_512 has a 64K ROM contains a monitor. The monitor command "b 4" loads RomWBW program |
|||
starting from SD sector 288 into first 4 banks of memory. RAM disk is not loaded, so drive A is |
|||
blank. |
|||
|
|||
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 <- not loaded, blank |
|||
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,26 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
set TOOLS=../../Tools |
|||
|
|||
set PATH=%TOOLS%\srecord;%PATH% |
|||
|
|||
for %%f in (..\..\Binary\RCZ80_ez512_*.rom) do call :build %%~nf |
|||
|
|||
goto :eof |
|||
|
|||
:build |
|||
echo. |
|||
echo Creating %1 disk image... |
|||
echo. |
|||
|
|||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 ..\..\Binary\%1.rom -binary -offset 0x24000 -o temp.dat -binary |
|||
move temp.dat ..\..\Binary\%1_hd1k_prefix.dat |
|||
|
|||
copy /b ..\..\Binary\%1_hd1k_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\%1_hd1k_combo.img || exit /b |
|||
|
|||
goto :eof |
|||
@ -0,0 +1,3 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
@ -0,0 +1,22 @@ |
|||
Eazy80_512 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 EZ512 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 |
|||
----- |
|||
- Eazy80_512 monitor reads the first 128KB of RomWBW stored started from sector 288 into banks 0-3 |
|||
- Afterward Z80 jumps to location 0x0 to execute RomWBW |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,27 @@ |
|||
DEST=../../Binary |
|||
|
|||
HD1KIMGS = $(DEST)/hd1k_cpm22.img $(DEST)/hd1k_zsdos.img $(DEST)/hd1k_nzcom.img \
|
|||
$(DEST)/hd1k_cpm3.img $(DEST)/hd1k_zpm3.img $(DEST)/hd1k_ws4.img |
|||
|
|||
ROMS := $(wildcard $(DEST)/RCZ80_ez512_*.rom) |
|||
ROMS := $(patsubst $(DEST)/%.rom,%,$(ROMS)) |
|||
|
|||
OBJECTS := $(patsubst %,%_hd1k_prefix.dat,$(ROMS)) |
|||
OBJECTS += $(patsubst %,%_hd1k_combo.img,$(ROMS)) |
|||
|
|||
TOOLS = ../../Tools |
|||
|
|||
include $(TOOLS)/Makefile.inc |
|||
|
|||
DIFFPATH = $(DIFFTO)/Binary |
|||
|
|||
%_hd1k_prefix.dat: $(DEST)/%.rom |
|||
srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x0 0x200 ez512_cfldr.bin -binary -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x1B8 0x200 ez512_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x1F000 0x20000 ez512_mon.bin -binary -offset 0x1F000 -o temp.dat -binary |
|||
srec_cat temp.dat -binary -exclude 0x24000 0xA4000 $< -binary -offset 0x24000 -o temp.dat -binary |
|||
mv temp.dat $@ |
|||
|
|||
%_hd1k_combo.img: %_hd1k_prefix.dat $(HD1KIMGS) |
|||
cat $^ > $@ |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,112 @@ |
|||
; |
|||
;================================================================================================== |
|||
; ROMWBW DEFAULT BUILD SETTINGS FOR RCBUS Z80 ZRC512 |
|||
;================================================================================================== |
|||
; |
|||
; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM |
|||
; INDICATED ABOVE. THESE SETTINGS DEFINE THE OFFICIAL BUILD FOR THIS |
|||
; PLATFORM AS DISTRIBUTED IN ROMWBW RELEASES. |
|||
; |
|||
; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW: |
|||
; |
|||
; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS |
|||
; | |
|||
; +-> cfg_<platform>.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM |
|||
; | |
|||
; +-> Config/<plt>_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD |
|||
; | |
|||
; +-> Config/<plt>_<cust>.asm - USER: CUSTOM USER BUILD SETTINGS |
|||
; |
|||
; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW |
|||
; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE |
|||
; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY |
|||
; OVERRIDE THESE SETTINGS AS DESIRED. |
|||
; |
|||
; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT |
|||
; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE |
|||
; MODIFIED. |
|||
; |
|||
; TO CUSTOMIZE YOUR BUILD SETTINGS YOU SHOULD MODIFY THIS FILE, THE |
|||
; DEFAULT BUILD SETTINGS (Config/<platform>_std.asm) OR PREFERABLY |
|||
; CREATE AN OPTIONAL CUSTOM USER SETTINGS FILE THAT INCLUDES THE DEFAULT |
|||
; BUILD SETTINGS FILE (SEE EXAMPLE Config/SBC_user.asm). |
|||
; |
|||
; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE |
|||
; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST |
|||
; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES. |
|||
; |
|||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE |
|||
; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE). |
|||
; |
|||
; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE |
|||
; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT |
|||
; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU". |
|||
; |
|||
#DEFINE PLATFORM_NAME "EaZy80-512", " [", CONFIG, "]" |
|||
; |
|||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE |
|||
#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED |
|||
; |
|||
#INCLUDE "cfg_RCZ80.asm" |
|||
; |
|||
CPUOSC .SET 22000000 ; CPU OSC FREQ IN MHZ |
|||
; |
|||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) |
|||
; |
|||
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT |
|||
KIOBASE .SET $00 ; KIO BASE I/O ADDRESS |
|||
; |
|||
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_EZ512 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512] |
|||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS |
|||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES |
|||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP |
|||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD |
|||
; |
|||
CTCENABLE .SET TRUE ; ENABLE ZILOG CTC SUPPORT |
|||
CTCBASE .SET KIOBASE+$04 ; CTC BASE I/O ADDRESS |
|||
CTCTIMER .SET TRUE ; ENABLE CTC PERIODIC TIMER |
|||
CTCOSC .SET 3686400 ; CTC CLOCK FREQUENCY |
|||
; |
|||
DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) |
|||
; |
|||
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) |
|||
SIOCNT .SET 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP |
|||
SIO0MODE .SET SIOMODE_STD ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] |
|||
SIO0BASE .SET KIOBASE+$08 ; SIO 0: REGISTERS BASE ADR |
|||
SIO0ACLK .SET CTCOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 |
|||
SIO0ACTCC .SET 0 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE |
|||
SIO0BCLK .SET CTCOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 |
|||
SIO0BCTCC .SET 1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE |
|||
; |
|||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) |
|||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU] |
|||
TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958 |
|||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) |
|||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) |
|||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) |
|||
; |
|||
MDROM .SET FALSE ; MD: ENABLE ROM DISK |
|||
; |
|||
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|MBC] |
|||
; |
|||
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|||
; |
|||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) |
|||
; |
|||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) |
|||
SDMODE .SET SDMODE_EZ512 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512] |
|||
SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY |
|||
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) |
|||
IMMENABLE .SET FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM) |
|||
; |
|||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER |
|||
; |
|||
AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER |
|||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU] |
|||
AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT |
|||
Loading…
Reference in new issue