mirror of https://github.com/wwarthen/RomWBW.git
41 changed files with 12679 additions and 605 deletions
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,295 +1,295 @@ |
|||
|
|||
|
|||
**RomWBW ReadMe** \ |
|||
Version 3.5 \ |
|||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ |
|||
12 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)) \ |
|||
13 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>. |
|||
|
|||
@ -1,301 +1,301 @@ |
|||
RomWBW ReadMe |
|||
Wayne Warthen (wwarthen@gmail.com) |
|||
12 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) |
|||
13 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. |
|||
|
|||
Binary file not shown.
@ -0,0 +1,363 @@ |
|||
.XLIST |
|||
.COMMENT | |
|||
INITIAL WRITING 12/10/84 SLR |
|||
|
|||
PURPOSE: |
|||
TO SUPPORT INTEL MNEMONICS |
|||
(SOME ZILOG MNEMONICS WILL NO LONGER WORK) |
|||
|
|||
MACROS COMPRESSED TO REQUIRE MINIMUM STORAGE IN MACRO TABLE |
|||
|
|||
(I TESTED THESE ON A SIMPLE TEST FILE I KEYED IN. I DON'T HAVE |
|||
ANY INTEL MNEMONIC STUFF AROUND HERE FOR A REAL GOOD TEST, SO |
|||
UNTIL I START GETTING FEEDBACK, BE CAREFUL!) |
|||
|
|||
IF YOU ARE REALLY SERIOUS ABOUT THIS, LET ME KNOW. THE Z80.LIB |
|||
FILE CAN BE MODIFIED TO WORK ALSO. |
|||
|
|||
TO ALLOW FOR BIGGER EXPRESSIONS, REPLACE 'G J K N' |
|||
WITH 'G J K N O Q S T' |
|||
|
|||
HAVE FUN! |
|||
STEVE |
|||
|
|||
********************** W A R N I N G ******************************** |
|||
|
|||
THESE MACROS DO NOT HANDLE OPERANDS CONTAINING THE '$' PC COUNTER |
|||
IF YOU HAVE CODE THAT USES THE $ LOCATION IN A JUMP ADDRESS |
|||
CALCULATION, YOU NEED TO INSERT THE FOLLOWING CODE IN EACH JUMP |
|||
MACRO: |
|||
1. BEFORE THE DW PUT A .PHASE $-1 |
|||
2. AFTER THE DW PUT A .DEPHASE |
|||
|
|||
THAT IS TO MAKE UP FOR THE FACT THAT THE $ COUNTER WILL BE POINTING |
|||
TO THE DW RATHER THAN THE PRECEDING DB. ONCE THESE MACROS ARE MODIFIED |
|||
YOU CAN NO LONGER USE THE .PHASE AND .DEPHASE PSEUDO-OPS IN YOUR |
|||
CODE... |
|||
|
|||
| |
|||
|
|||
MOV MACRO X,Y |
|||
IFIDN <Y>,<M> |
|||
LD X,(HL) |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <X>,<M> |
|||
LD (HL),Y |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <Y>,<m> |
|||
LD X,(HL) |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <X>,<m> |
|||
LD (HL),Y |
|||
EXITM |
|||
ENDIF |
|||
LD X,Y |
|||
ENDM |
|||
HLT MACRO |
|||
HALT |
|||
ENDM |
|||
MVI MACRO R,G J K N |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
LD R,G J K N |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
LD (HL),G J K N |
|||
ENDM |
|||
INR MACRO R |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
INC R |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
INC (HL) |
|||
ENDM |
|||
DCR MACRO R |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
DEC R |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
DEC (HL) |
|||
ENDM |
|||
ADD MACRO R |
|||
.? 80H,R |
|||
ENDM |
|||
.? MACRO R,Y |
|||
. DEFL 0 |
|||
IRPC X,<BCDEHLMA> |
|||
IFIDN <Y>,<X> |
|||
DB R+. |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
ENDM |
|||
. DEFL 0 |
|||
IRPC X,<bcdehlma> |
|||
IFIDN <Y>,<X> |
|||
DB R+. |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
ENDM |
|||
ENDM |
|||
ADC MACRO R |
|||
.? 88H,R |
|||
ENDM |
|||
SUB MACRO R |
|||
.? 90H,R |
|||
ENDM |
|||
SBB MACRO R |
|||
.? 98H,R |
|||
ENDM |
|||
ANA MACRO R |
|||
.? 0A0H,R |
|||
ENDM |
|||
XRA MACRO R |
|||
.? 0A8H,R |
|||
ENDM |
|||
ORA MACRO R |
|||
.? 0B0H,R |
|||
ENDM |
|||
CMP MACRO R |
|||
.? 0B8H,R |
|||
ENDM |
|||
ADI MACRO G J K N |
|||
DB 0C6H,G J K N |
|||
ENDM |
|||
ACI MACRO G J K N |
|||
DB 0CEH,G J K N |
|||
ENDM |
|||
SUI MACRO G J K N |
|||
DB 0D6H,G J K N |
|||
ENDM |
|||
SBI MACRO G J K N |
|||
DB 0DEH,G J K N |
|||
ENDM |
|||
ANI MACRO G J K N |
|||
DB 0E6H,G J K N |
|||
ENDM |
|||
XRI MACRO G J K N |
|||
DB 0EEH,G J K N |
|||
ENDM |
|||
ORI MACRO G J K N |
|||
DB 0F6H,G J K N |
|||
ENDM |
|||
CPI MACRO G J K N |
|||
DB 0FEH,G J K N |
|||
ENDM |
|||
RLC MACRO |
|||
RLCA |
|||
ENDM |
|||
RRC MACRO |
|||
RRCA |
|||
ENDM |
|||
RAL MACRO |
|||
RLA |
|||
ENDM |
|||
RAR MACRO |
|||
RRA |
|||
ENDM |
|||
JMP MACRO G J K N |
|||
DB 0C3H |
|||
DW G J K N |
|||
ENDM |
|||
JC MACRO G J K N |
|||
DB 0DAH |
|||
DW G J K N |
|||
ENDM |
|||
JNC MACRO G J K N |
|||
DB 0D2H |
|||
DW G J K N |
|||
ENDM |
|||
JZ MACRO G J K N |
|||
DB 0CAH |
|||
DW G J K N |
|||
ENDM |
|||
JNZ MACRO G J K N |
|||
DB 0C2H |
|||
DW G J K N |
|||
ENDM |
|||
JP MACRO G J K N |
|||
DB 0F2H |
|||
DW G J K N |
|||
ENDM |
|||
JM MACRO G J K N |
|||
DB 0FAH |
|||
DW G J K N |
|||
ENDM |
|||
JPE MACRO G J K N |
|||
DB 0EAH |
|||
DW G J K N |
|||
ENDM |
|||
JPO MACRO G J K N |
|||
DB 0E2H |
|||
DW G J K N |
|||
ENDM |
|||
CC MACRO G J K N |
|||
CALL C,G J K N |
|||
ENDM |
|||
CNC MACRO G J K N |
|||
CALL NC,G J K N |
|||
ENDM |
|||
CZ MACRO G J K N |
|||
CALL Z,G J K N |
|||
ENDM |
|||
CNZ MACRO G J K N |
|||
CALL NZ,G J K N |
|||
ENDM |
|||
CP MACRO G J K N |
|||
CALL P,G J K N |
|||
ENDM |
|||
CM MACRO G J K N |
|||
CALL M,G J K N |
|||
ENDM |
|||
CPE MACRO G J K N |
|||
CALL V,G J K N |
|||
ENDM |
|||
CPO MACRO G J K N |
|||
CALL PO,G J K N |
|||
ENDM |
|||
RC MACRO |
|||
RET C |
|||
ENDM |
|||
RNC MACRO |
|||
RET NC |
|||
ENDM |
|||
RZ MACRO |
|||
RET Z |
|||
ENDM |
|||
RNZ MACRO |
|||
RET NZ |
|||
ENDM |
|||
RP MACRO |
|||
RET P |
|||
ENDM |
|||
RM MACRO |
|||
RET M |
|||
ENDM |
|||
RPE MACRO |
|||
RET V |
|||
ENDM |
|||
RPO MACRO |
|||
RET PO |
|||
ENDM |
|||
RST MACRO G J K N |
|||
DB 0C7H+(G J K N)*8 |
|||
ENDM |
|||
IN MACRO G J K N |
|||
DB 0DBH,G J K N |
|||
ENDM |
|||
OUT MACRO G J K N |
|||
DB 0D3H,G J K N |
|||
ENDM |
|||
LXI MACRO R,G J K N |
|||
.. 1,R |
|||
DW G J K N |
|||
ENDM |
|||
PUSH MACRO R |
|||
.. C5,R |
|||
ENDM |
|||
POP MACRO R |
|||
.. C1,R |
|||
ENDM |
|||
STA MACRO G J K N |
|||
DB 32H |
|||
DW G J K N |
|||
ENDM |
|||
LDA MACRO G J K N |
|||
DB 3AH |
|||
DW G J K N |
|||
ENDM |
|||
XCHG MACRO |
|||
DB 0EBH |
|||
ENDM |
|||
XTHL MACRO |
|||
DB 0E3H |
|||
ENDM |
|||
SPHL MACRO |
|||
DB 0F9H |
|||
ENDM |
|||
PCHL MACRO |
|||
DB 0E9H |
|||
ENDM |
|||
DAD MACRO R |
|||
.. 9,R |
|||
ENDM |
|||
STAX MACRO R |
|||
IFIDN <R>,<D> |
|||
DB 18 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<B> |
|||
DB 2 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<d> |
|||
DB 18 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<b> |
|||
DB 2 |
|||
ENDM |
|||
LDAX MACRO R |
|||
IFIDN <R>,<D> |
|||
DB 26 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<B> |
|||
DB 10 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<d> |
|||
DB 26 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<b> |
|||
DB 10 |
|||
ENDM |
|||
INX MACRO R |
|||
.. 3,R |
|||
ENDM |
|||
DCX MACRO R |
|||
.. B,R |
|||
ENDM |
|||
CMA MACRO |
|||
CPL |
|||
ENDM |
|||
STC MACRO |
|||
SCF |
|||
ENDM |
|||
CMC MACRO |
|||
CCF |
|||
ENDM |
|||
SHLD MACRO G J K N |
|||
DB 34 |
|||
DW G J K N |
|||
ENDM |
|||
LHLD MACRO G J K N |
|||
DB 42 |
|||
DW G J K N |
|||
ENDM |
|||
.. MACRO X,Y |
|||
. DEFL 0 |
|||
IRP Q,<B,D,H,PSW,SP,b,d,h,psw,sp> |
|||
IFIDN <Q>,<Y> |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
IF . EQ 4 |
|||
. DEFL 3 |
|||
IFIDN <Q>,<SP> |
|||
. DEFL 0 |
|||
ENDM |
|||
DB 0&X&H+(. SHL 4) |
|||
ENDM |
|||
.LIST |
|||
|
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,166 @@ |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 1 |
|||
DUMP Z80 |
|||
|
|||
2 |
|||
3 0100 ORG 0100H |
|||
4 |
|||
5 0005 CPM EQU 0005H |
|||
6 005C DFCB EQU 005CH |
|||
7 0065 FCBEXT EQU 0065H |
|||
8 |
|||
9 0100 DUMP |
|||
10 0100 11 005C LD DE,DFCB |
|||
11 0103 0E 0F LD C,0FH ;SI |
|||
12 0105 CD 0005 CALL CPM ;OPENFIL |
|||
13 0108 3C INC A |
|||
14 0109 20 09 JR NZ,FILEOK |
|||
15 010B 11 01E6 LD DE,CANTOPE |
|||
16 010E 0E 09 LD C,09H ;HT |
|||
17 0110 CD 0005 CALL CPM ;PRNTSTG |
|||
18 0113 C9 RET |
|||
19 0114 FILEOK |
|||
20 0114 21 0065 LD HL,FCBEXT |
|||
21 0117 7E LD A,(HL) |
|||
22 0118 FE 43 CP 43H ;'C' |
|||
23 011A 20 12 JR NZ,NEXTPAGE |
|||
24 011C 23 INC HL |
|||
25 011D 7E LD A,(HL) |
|||
26 011E FE 4F CP 4FH ;'O' |
|||
27 0120 20 0C JR NZ,NEXTPAGE |
|||
28 0122 23 INC HL |
|||
29 0123 7E LD A,(HL) |
|||
30 0124 FE 4D CP 4DH ;'M' |
|||
31 0126 20 06 JR NZ,NEXTPAGE |
|||
32 0128 21 0100 LD HL,DUMP |
|||
33 012B 22 01F7 LD (ADDR),HL |
|||
34 012E NEXTPAGE |
|||
35 012E 1E 0C LD E,0CH ;FF |
|||
36 0130 0E 02 LD C,02H ;STX |
|||
37 0132 CD 0005 CALL CPM ;CONOUT |
|||
38 0135 3E 08 LD A,08H ;BS |
|||
39 0137 32 01FB LD (PAGECNT),A |
|||
40 013A NEXTSECT |
|||
41 013A 11 005C LD DE,DFCB |
|||
42 013D 0E 14 LD C,14H ;DC4 |
|||
43 013F CD 0005 CALL CPM ;READSEQ |
|||
44 0142 B7 OR A |
|||
45 0143 C0 RET NZ |
|||
46 0144 3E 08 LD A,08H ;BS |
|||
47 0146 32 01F6 LD (LINECNT),A |
|||
48 0149 21 0080 LD HL,0080H |
|||
49 014C 22 01F9 LD (ADDR1),HL |
|||
50 014F NXTLINE |
|||
51 014F 0E 0B LD C,0BH ;VT |
|||
52 0151 CD 0005 CALL CPM ;CONSTAT |
|||
53 0154 B7 OR A |
|||
54 0155 C0 RET NZ |
|||
55 0156 21 01FC LD HL,OUTBUF |
|||
56 0159 36 0D LD (HL),0DH ;CR |
|||
57 015B 23 INC HL |
|||
58 015C 36 0A LD (HL),0AH ;LF |
|||
59 015E 23 INC HL |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 2 |
|||
DUMP Z80 |
|||
|
|||
60 015F ED 5B 01F7 LD DE,(ADDR) |
|||
61 0163 7A LD A,D |
|||
62 0164 CD 01C7 CALL HEXOUT |
|||
63 0167 7B LD A,E |
|||
64 0168 CD 01C7 CALL HEXOUT |
|||
65 016B 36 20 LD (HL),20H ;' ' |
|||
66 016D 23 INC HL |
|||
67 016E EB EX DE,HL |
|||
68 016F 01 0010 LD BC,0010H |
|||
69 0172 09 ADD HL,BC |
|||
70 0173 22 01F7 LD (ADDR),HL |
|||
71 0176 EB EX DE,HL |
|||
72 0177 ED 5B 01F9 LD DE,(ADDR1) |
|||
73 017B 06 10 LD B,10H ;DLE |
|||
74 017D NXTBYTE |
|||
75 017D 1A LD A,(DE) |
|||
76 017E 13 INC DE |
|||
77 017F CD 01C7 CALL HEXOUT |
|||
78 0182 36 20 LD (HL),20H ;' ' |
|||
79 0184 23 INC HL |
|||
80 0185 10 F6 DJNZ NXTBYTE |
|||
81 0187 36 20 LD (HL),20H ;' ' |
|||
82 0189 23 INC HL |
|||
83 018A 36 24 LD (HL),24H ;'$' |
|||
84 018C 11 01FC LD DE,OUTBUF |
|||
85 018F 0E 09 LD C,09H ;HT |
|||
86 0191 CD 0005 CALL CPM ;PRNTSTG |
|||
87 0194 2A 01F9 LD HL,(ADDR1) |
|||
88 0197 06 10 LD B,10H ;DLE |
|||
89 0199 NXTASCI |
|||
90 0199 7E LD A,(HL) |
|||
91 019A 23 INC HL |
|||
92 019B E6 7F AND 7FH ;DEL |
|||
93 019D FE 20 CP 20H ;' ' |
|||
94 019F 38 04 JR C,CTRL |
|||
95 01A1 FE 7F CP 7FH ;DEL |
|||
96 01A3 20 02 JR NZ,NOTCTRL |
|||
97 01A5 CTRL |
|||
98 01A5 3E 2E LD A,2EH ;'.' |
|||
99 01A7 NOTCTRL |
|||
100 01A7 5F LD E,A |
|||
101 01A8 0E 02 LD C,02H ;STX |
|||
102 01AA C5 PUSH BC |
|||
103 01AB E5 PUSH HL |
|||
104 01AC CD 0005 CALL CPM ;CONOUT |
|||
105 01AF E1 POP HL |
|||
106 01B0 C1 POP BC |
|||
107 01B1 10 E6 DJNZ NXTASCI |
|||
108 01B3 22 01F9 LD (ADDR1),HL |
|||
109 01B6 21 01F6 LD HL,LINECNT |
|||
110 01B9 35 DEC (HL) |
|||
111 01BA C2 014F JP NZ,NXTLINE |
|||
112 01BD 21 01FB LD HL,PAGECNT |
|||
113 01C0 35 DEC (HL) |
|||
114 01C1 C2 013A JP NZ,NEXTSECT |
|||
115 01C4 C3 012E JP NEXTPAGE |
|||
116 01C7 HEXOUT |
|||
117 01C7 F5 PUSH AF |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 3 |
|||
DUMP Z80 |
|||
|
|||
118 01C8 1F RRA |
|||
119 01C9 1F RRA |
|||
120 01CA 1F RRA |
|||
121 01CB 1F RRA |
|||
122 01CC E6 0F AND 0FH ;SI |
|||
123 01CE C6 30 ADD A,30H ;'0' |
|||
124 01D0 FE 3A CP 3AH ;':' |
|||
125 01D2 38 02 JR C,HEX1 |
|||
126 01D4 C6 07 ADD A,07H ;BEL |
|||
127 01D6 HEX1 |
|||
128 01D6 77 LD (HL),A |
|||
129 01D7 23 INC HL |
|||
130 01D8 F1 POP AF |
|||
131 01D9 E6 0F AND 0FH ;SI |
|||
132 01DB C6 30 ADD A,30H ;'0' |
|||
133 01DD FE 3A CP 3AH ;':' |
|||
134 01DF 38 02 JR C,HEX2 |
|||
135 01E1 C6 07 ADD A,07H ;BEL |
|||
136 01E3 HEX2 |
|||
137 01E3 77 LD (HL),A |
|||
138 01E4 23 INC HL |
|||
139 01E5 C9 RET |
|||
140 01E6 CANTOPE |
|||
141 01E6 43 61 6E 27 DEFB 43H,61H,6EH,27H,74H,20H ; Can't |
|||
142 01EC 4F 70 65 6E DEFB 4FH,70H,65H,6EH,20H,46H ; Open F |
|||
143 01F2 69 6C 65 24 DEFB 69H,6CH,65H,24H ; ile$ |
|||
144 01F6 LINECNT |
|||
145 01F6 0001 DEFS 0001H |
|||
146 01F7 ADDR |
|||
147 01F7 0002 DEFS 0002H |
|||
148 01F9 ADDR1 |
|||
149 01F9 0002 DEFS 0002H |
|||
150 01FB PAGECNT |
|||
151 01FB 0001 DEFS 0001H |
|||
152 01FC OUTBUF |
|||
153 01FC 0004 DEFS 0004H |
|||
154 END |
|||
0 Error(s) Detected. |
|||
256 Absolute Bytes. 21 Symbols Detected. |
|||
|
|||
130 01D8 |
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,45 @@ |
|||
The MAKESYM program included on this diskette is used to produce a .SYM |
|||
file from the Symbol Table listing provided by Z80ASM or SLRMAC. MAKESYM |
|||
reads a .LST file, converts the symbol table to a format readable by |
|||
ZSID, DSD80, etc, and writes it to a .SYM file on the same drive. |
|||
|
|||
Since extra information is included in the .LST file, such as CSEG relative |
|||
designations, or COMMON relative, external, etc, MAKESYM allows you to |
|||
specify offsets for any or all of the relative types, while stripping out |
|||
any external symbols (Only one COMMON is supported since there is no dis- |
|||
tinction between different COMMONs in the .LST table). |
|||
|
|||
This is useful for intense debugging of a particular module where you would |
|||
like to have all the internal symbols available at debug time, but don't |
|||
want to go in and declare them all global. You just tell MAKESYM where the |
|||
PROG and DATA sections were placed at link time, and there you have it. |
|||
|
|||
This is also useful for generating a useable symbol table when you directly |
|||
generate the .COM or .HEX without linking. In that case you just run MAKESYM |
|||
and don't need to specify any offsets. |
|||
|
|||
To use: |
|||
|
|||
A>MAKESYM FILENAME[.EXT] [/PXXXX] [/DXXXX] [/CXXXX] [/U] |
|||
|
|||
where the brackets surround optional items and are not actually typed. |
|||
|
|||
/PXXXX Here XXXX is the HEX offset for PROG relative items. |
|||
|
|||
/DXXXX Here XXXX is the HEX offset for DATA relative items. |
|||
|
|||
/CXXXX Here XXXX is the HEX offset for COMMON relative items. |
|||
|
|||
/U This tells MAKESYM to perform upper-case conversion |
|||
(Some debuggers allow lower case symbols but don't let |
|||
you access them). |
|||
|
|||
.EXT This is used to overide the default extension of .LST. |
|||
Don't use .SYM (to convert .SYM to .SYM) because |
|||
MAKESYM creates a .SYM file immediately, erasing the |
|||
file it is trying to convert. |
|||
|
|||
|
|||
Have a productive day! |
|||
|
|||
Steve |
|||
Binary file not shown.
@ -0,0 +1,61 @@ |
|||
SLR180 1.30 Release Notes |
|||
|
|||
Bugs Fixed From 1.00: |
|||
|
|||
Nested macro calls using % operator fixed |
|||
IFIDN <>,<> now returns true |
|||
JR NUMBER+$ generates correct code |
|||
INCLUDE and MACLIB filenames can now contain +, -, etc |
|||
Fixed number conversion in non-power-of-two radix |
|||
.$$1 files are cleaned up on abort |
|||
LD A,TYPE 0 works |
|||
ex af,af' works in U/L mode |
|||
|
|||
|
|||
Additions: |
|||
|
|||
All input and output files are always closed upon termination (unless |
|||
terminated by ^C from BUFIN call). |
|||
|
|||
CONFIG option added to allow TABs in strings. Normally SLR180 complains |
|||
about any control characters in quoted strings but generates the correct |
|||
code. This option suppress the error if the control character is a TAB. |
|||
|
|||
CONFIG option added to disable stripping the high bit of each byte read |
|||
from the input source. THIS IS DANGEROUS! Should ONLY be used for using |
|||
non-ASCII characters in comments. DO NOT USE in macros, since the high |
|||
bit is used as a parameter replacement flag. Other indexed tables also |
|||
assume the high bit is clear. |
|||
|
|||
|
|||
|
|||
SLR180 1.31 Release Notes |
|||
|
|||
SLR180 will now delete A:$$$.SUB if an error was detected during any assembly |
|||
(Configurable with 180FIG). This complements the setting of the ZCPR3 error |
|||
flag, and the setting of the CP/M 3.0 Error return code (******* CP/M Plus |
|||
users: SUBMIT files may test the error return code with a leading 'colon', |
|||
documented obscurely in CP/M 3 Programmers Guide 1.6.3 *******). |
|||
|
|||
180fig will now set an alternate user # to be used if a given source file |
|||
cannot be found under the default user #. Useful for keeping just one copy |
|||
of system equates and macro libraries under a single user #. |
|||
|
|||
180fig will let you define a drive to be used for storing intermediate files. |
|||
This should be set to your fastest device. |
|||
|
|||
180fig will let you select Common selection to start back at address relative |
|||
0 (M80 compat), or continue at the last used address (like any other address |
|||
space). |
|||
|
|||
180fig will select whether or not to print the 'nesting level' character in |
|||
the listing. |
|||
|
|||
^C will now abort the assembler, not just the current assembly. |
|||
|
|||
Colon not required on equated labels not in column one, even when that |
|||
requirement is selected. |
|||
|
|||
Labeled IRP and IRPC's work. |
|||
|
|||
Forward referenced EQU's work in one-pass mode. |
|||
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,64 @@ |
|||
SLRNK 1.30 NOTES |
|||
|
|||
|
|||
THE CONFIG PROGRAM HAS BEEN RENAMED LNKFIG. TO SET SLRNK & SLRIB OPTIONS, |
|||
|
|||
A>LNKFIG SLRNK.COM |
|||
|
|||
OR |
|||
|
|||
A>LNKFIG SLRIB.COM |
|||
|
|||
BUGS FIXED: |
|||
|
|||
$memry WAS EVALUATED INCORRECTLY IN SOME CASES |
|||
LOWEST MEMORY ADDRESS SOMETIMES INCORRECT |
|||
|
|||
|
|||
ADDITIONS SINCE 1.20: |
|||
|
|||
ZCPR3 ERROR FLAG SUPPORTED |
|||
/K OPTION CLEARS ERROR FLAG TO THAT POINT |
|||
/I FILES MAY CONTAIN COMMENTS STARTING WITH : |
|||
INPUT FILES ARE CLOSED |
|||
LIMIT OF 63 COMMON BLOCKS REMOVED |
|||
TABLES OPTIMIZED TO ALLOW 1-3K LARGER LINKS |
|||
/E CAN NOW TAKE OPTIONAL :NUMBER AS START ADDRESS |
|||
:NUMBER NOW CAN BE A HEX NUMBER OR VALID, DEFINED SYMBOL |
|||
UNINITIALIZED SPACES NOW FILLED, NO LONGER RANDOM |
|||
DISK OUTPUT MUCH FASTER ON SOME SYSTEMS |
|||
LIBRARIES OPENED R/O MODE UNDER MP/M |
|||
|
|||
|
|||
NEW LNKFIG OPTIONS: |
|||
|
|||
1K OR 2K BUFFER: YOU CAN SELECT THE SIZE DISK I/O BUFFER YOU WANT. 2K IS |
|||
FASTER, BUT 1K WILL ALLOW YOU TO LINK APPROXIMATELY A 1K LARGER FILE. |
|||
|
|||
FILL VALUE: UNINITIALIZED SPACE IS FILLED WITH THIS VALUE. |
|||
|
|||
EMPTY CHAINS: THIS DETERMINES WHETHER OR NOT SLRNK STRIPS EMPTY EXTERNAL |
|||
CHAINS IN MICROSOFT FORMAT. THEORY: IF YOU DECLARED A ROUTINE EXTERNAL, BUT |
|||
NO LONGER USE IT, SHOULD THE LINKER STILL PULL IT IN FROM YOUR LIBRARY? |
|||
NORMALLY YOU WOULD SAY NO, TO PRODUCE THE SMALLEST VALID OUTPUT FILE. HOWEVER, |
|||
SOME COMPILER MANUFACTURERS COULDN'T FIGURE OUT HOW TO ORDER THEIR LIBRARIES |
|||
SUCH THAT THINGS GOT PULLED IN CORRECTLY, SO THEY STICK EXTERNAL DECLARATIONS |
|||
IN HERE AND THERE TO FORCE LOADING OF MODULES. FOR EXAMPLE, IF SLRNK IS |
|||
CONFIGURED TO STRIP EMPTY EXTERNAL CHAINS, SOME AZTEC C FILES WILL NOT LINK |
|||
PROPERLY, BUT SOME WILL. CONFIGURED TO KEEP EMPTY EXTERNAL CHAINS, ALL AZTEC |
|||
C STUFF LINKS, BUT THE FILES THAT WORKED BEFORE NOW PRODUCE A USELESSLY LARGER |
|||
COM FILE... COMPATABILITY? L80 KEEPS ALL EMPTY EXTERNAL CHAINS. |
|||
|
|||
|
|||
SLRNK 1.31 NOTES |
|||
|
|||
SLRNK WILL NOW DELETE A:$$$.SUB IF AN ERROR WAS DETECTED DURING LINK. LNKFIG |
|||
CAN DISABLE THIS. USEFUL FOR TERMINATING SUBMIT FILES ON ERROR. |
|||
|
|||
LNKFIG WILL NOW SET AN ALTERNATE USER # TO BE USED IF A GIVEN .REL FILE CANNOT |
|||
BE FOUND UNDER THE DEFAULT USER #. USEFUL FOR KEEPING LIBRARIES UNDER DIFFERENT |
|||
USER #. |
|||
|
|||
LNKFIG WILL ALSO SET AN ALTERNATE DRIVE TO SEARCH. AFTER ABOVE SEARCH IS |
|||
COMPLETE, ALTERNATE DRIVE IS SELECTED AND USER NUMBER SEARCH STARTED AGAIN. |
|||
|
|||
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,265 @@ |
|||
|
|||
|
|||
|
|||
April 18, 1987 |
|||
This is the READ-ME file from the Z80DIS.LBR package, version 2.2 |
|||
------------------------------------------------------=========== |
|||
|
|||
|
|||
|
|||
|
|||
A personal note from the programmer: |
|||
- -------- ---- ---- --- ---------- |
|||
|
|||
I wrote this disassembler because I could not find another |
|||
that would really open up a large foreign program for inspection. |
|||
RESOURCE and all of its spin-offs give you only a pin-hole look |
|||
at a program without indicating the important interactions with |
|||
other parts of the code. Without the interactions and a wider |
|||
view, figuring out the code purpose or data type of a code block |
|||
is very hard. |
|||
|
|||
Z80DIS eliminates the narrow pin-hole view of a program |
|||
provided by an interactive display. Z80DIS provides fully |
|||
automated analysis of the code structure, well formatted output |
|||
in both assembler and printer formats, a complete cross-reference |
|||
coded by reference type, and commenting of DOS interactions. |
|||
Recent improvements in this latest version add further utility |
|||
and increase the ability to handle even larger code segments. |
|||
|
|||
For those who prefer an interactive approach to disassembly, |
|||
I recommend the combination of Z80DIS with the interactive |
|||
disassembler DAZZLESTAR (DZ) by John Washington in England. Use |
|||
Z80DIS for the automated analysis of the underlying structure and |
|||
use DZ for the interactive refinement of the code. John has |
|||
provided a DZ command (namely KG) to read the break table |
|||
produced by Z80DIS. |
|||
|
|||
As CP/M users are getting less and less support for problems |
|||
with existing 8080 or Z80 software products, maintenance of that |
|||
software has fallen to the CP/M users themselves. Z80DIS lets you |
|||
examine the software and repair the problem yourself. I hope that |
|||
you will find Z80DIS as useful as I have. |
|||
|
|||
Kenneth Gielow |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
1 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
Version 2.2 change note: |
|||
|
|||
Version 2.0 added artificial intelligence to Z80DIS. |
|||
|
|||
Version 2.1 corrected a small bug in the processing of INC, |
|||
DEC, and LD using index registers IX and IY and enhanced the |
|||
distinction between ASCII blank (20 hex) and the instruction |
|||
"JR NZ,xxxx" (also 20 hex). |
|||
|
|||
Version 2.2 modifies the output format for M-80 assembler |
|||
compatibility. Increases the size of program that can be |
|||
disassembled by moving cross-reference tables to virtual |
|||
memory on disk. Fixed several minor bugs. Interprets CP/M |
|||
DOS calls and comments such calls by the function performed. |
|||
|
|||
Caveat: If you are running a system with single sided disks, you |
|||
probably do not want to upgrade from version 2.1 to version |
|||
2.2 because of the increased off-loading of memory functions |
|||
onto disk files |
|||
|
|||
Z80DIS is a disassembler for Z80 based CP/M systems. Z80DIS is |
|||
designed to generate Z80 mnemonics and prepare an assembly |
|||
language file with many special features for ease of |
|||
understanding the intent of the disassembled code. The source for |
|||
Z80DIS has grown to 8400 lines of pascal code. |
|||
|
|||
With Z80DIS versions 2.0 and higher, you need know very little |
|||
about the format of the *.COM file to produce a nearly finished |
|||
source file in most cases. In addition a large number of |
|||
convenience features and defaults have been added that were not |
|||
present in version 1. The Z80DIS change history for version 2.x |
|||
follows at the end of this paper. |
|||
|
|||
Both the Z80DIS program and the Z80DIS documentation are (C) |
|||
Copyright 1985, 1986 and 1987 by Kenneth Gielow; All Rights |
|||
Reserved. While I am freely distributing the binary code for non- |
|||
profit use, I am reserving the source code as a trade secret. |
|||
|
|||
This program requires a Z80 based computer running CP/M version |
|||
2.2 or higher. The code was compiled for a 50K TPA; the top |
|||
address is C7FF. This slightly small size was done for |
|||
compatibility with CP/M 3.0 and ZCPR3. |
|||
|
|||
The following files will be found on Z80DIS21.LBR for this |
|||
program distribution library package: |
|||
|
|||
Z80DIS.COM - the disassembler program |
|||
Z80DIS.000 - overlay file for Z80DIS |
|||
Z80DIS.001 - overlay file for Z80DIS |
|||
Z80DIS.002 - overlay file for Z80DIS |
|||
|
|||
ZDINSTAL.COM - a terminal command installation program |
|||
ZDINSTAL.MSG - contains text of ZDINSTAL messages |
|||
ZDINSTAL.DTA - contains terminal characteristics data |
|||
|
|||
Z80DIS22.DQC - an installation manual. (Squeezed format) |
|||
|
|||
|
|||
|
|||
2 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
The three ZDINSTAL files are based on the TURBO Toolbox GINST |
|||
program and will tailor the display command sequences for your |
|||
terminal. The DOC file is the text of a short user manual which |
|||
explains use and installation of the program. |
|||
|
|||
The interactive displays for parameter specification make the |
|||
program easy to use. All control parameters have defaults preset |
|||
to the most likely values. |
|||
|
|||
FEATURES OF Z80DIS |
|||
------------------ |
|||
|
|||
The major feature of Z80DIS is an extensive analysis of the |
|||
memory usage by the program under investigation. This analysis |
|||
capability forms the basis for an automatic partitioning of the |
|||
code to generate the break table. This analysis also produces a |
|||
fully-annotated cross reference of all addresses. |
|||
|
|||
A disassembler must know whether the bytes are instructions or |
|||
data in order to proceed. Z80DIS is the first disassembler to |
|||
produce its own break table for this purpose. Some previous |
|||
programs, such as RESOURCE, have included a search for ASCII text |
|||
regions, but have left the verification and interpretation up to |
|||
the user. Most other disassemblers are fooled by the trick of |
|||
adding nonsense bytes after jumps to cause the analysis to fall |
|||
out of synchronization with instruction code interpretation. |
|||
|
|||
Z80DIS produces an output listing which itemizes all addresses |
|||
referenced by the code, distinguishes types of label references, |
|||
marks subroutines and jumps and produces an annotated cross- |
|||
reference. This listing shows the exact mode of usage for every |
|||
reference: Jump absolute, Jump relative, Call, Restart, Load 16- |
|||
bit, Store 16-bit, Immediate 16-bit, Load 8-bit, Store 8-bit. In |
|||
version 2.1, this listing also shows the break table region of |
|||
residency for each label so that you may inspect the list for |
|||
inconsistencies. |
|||
|
|||
An address labeling convention assists in understanding the |
|||
assembly code generated. Each label generated on the assembly |
|||
listing indicates, by format, not only the generic type (Jump, |
|||
Call, Data, Other) of any references, but also the singularity of |
|||
the reference. For example, J$02E3 used at address 02E3 indicates |
|||
that only one reference was made to address 02E3 and that that |
|||
reference was a JUMP. |
|||
|
|||
In addition to helping you by automatic analysis of memory use, |
|||
Z80DIS also assists you by styling the presentation of the disas- |
|||
sembled code. The disassembled code is output in two forms: Both |
|||
the usual *.MAC file and a printer formatted *.PRN file. |
|||
|
|||
The *.PRN file is styled to look like the output of an assembler |
|||
with both the instructions and assembled bytes shown. The juxta- |
|||
position of the hexadecimal bytes and the assembly mnemonics |
|||
allows the user to recognize errors caused by an incorrectly |
|||
defined break table. |
|||
|
|||
|
|||
|
|||
|
|||
3 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
DOCUMENTATION NOTICE |
|||
-------------------- |
|||
|
|||
The original, version 1, user manual ran forty-plus pages and |
|||
gave extensive examples and used disassembly of the public domain |
|||
program D.COM as an example. |
|||
|
|||
The version 2 manual is now eighty eight pages of detailed, what- |
|||
if instructions and a dissertation on understanding and handling |
|||
large or complex code modules. |
|||
|
|||
As the binary code for Z80DIS is now running 108K bytes and the |
|||
ascii text for the manual is over 200K bytes, there is no way |
|||
that I can get system operators to carry both. I feel that the |
|||
program is largely self explanatory so that you can get started |
|||
very well with only the minimal help of the included DOC file. |
|||
The short user manual included here deals only with installing |
|||
the Z80DIS program and doing a simple disassembly. For more |
|||
serious work you will want the full manual. |
|||
|
|||
The longer manual expands on the discussion of the features and |
|||
explains the step-wise approach to dealing with much larger |
|||
source codes. The manual also deals with disassembling code which |
|||
relocates itself. Extensive examples are included. All error |
|||
messages and secondary options are discussed in detail. |
|||
|
|||
The full Z80DIS USER MANUAL is available by mail. I am asking a |
|||
nominal charge of $20.00 which includes the printed and bound |
|||
manual, postage, handling, and an update notification service. |
|||
You are granted the right to make not-for-profit copies of the |
|||
manual. The program itself is not available by mail as I do not |
|||
have extensive, multi-format disk copy capability. The |
|||
notification service will consist of a letter to you anytime a |
|||
new version is released so that you may be on the lookout for it. |
|||
|
|||
To order a copy of the Z80DIS USER MANUAL, send a request with |
|||
your name, address, and a check for $ 20.00 to -- |
|||
|
|||
Kenneth Gielow |
|||
79 Tulip Lane |
|||
Palo Alto, CA 94303 |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
4 |
|||
|
|||
|
|||
|
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
@ -0,0 +1,64 @@ |
|||
1 Turbo Pascal general installation System |
|||
2 Choose installation item from the following: |
|||
3 |
|||
4 Screen installation | Quit |
|||
5 |
|||
6 Enter S or Q: |
|||
13 -> |
|||
101 Nothing |
|||
^Q: Quit, ^R: Last page, ^C: Next page, <RETURN>: Select terminal: |
|||
Wait Sorting Definitions |
|||
Change to: |
|||
(Y/N)? |
|||
y |
|||
n |
|||
Text file name: |
|||
Command: |
|||
Numeric entry expected |
|||
Legal range is |
|||
, please re-enter: |
|||
Choose one of the following terminals: |
|||
None of the above ( Max. 20 Characters ) |
|||
Delete a definition ( Max. 20 Characters ) |
|||
Which terminal? (Enter no. or ^Q to exit): |
|||
Delete terminal? (Enter no. or ^Q to exit): |
|||
Do you want to modify this definition before installation? |
|||
Terminal type: |
|||
Send an initialization string to the terminal? |
|||
Initializaion defined as a command string? (No = a file) |
|||
Send a reset string to the terminal |
|||
Reset defined as a command? (No = a file) |
|||
CURSOR LEAD-IN command: |
|||
CURSOR POSITIONING COMMAND to send between line and column: |
|||
CURSOR POSITIONING COMMAND to send after both line and column: |
|||
Column first |
|||
OFFSET to add to LINE: |
|||
OFFSET to add to COLUMN: |
|||
Binary address |
|||
Number of ASCII digits (2 or 3): |
|||
CLEAR SCREEN command: |
|||
Does CLEAR SCREEN also HOME cursor |
|||
HOME command: |
|||
DELETE LINE command: |
|||
INSERT LINE command: |
|||
ERASE TO END OF LINE command: |
|||
START HIGHLIGHTING command: |
|||
END HIGHLIGHTING command: |
|||
Number of rows (lines) on your screen: |
|||
Number of columns on your screen: |
|||
Delay after CURSOR ADDRESS (0-255 ms): |
|||
Delay after CLEAR, DELETE and INSERT (0-255 ms): |
|||
Delay after ERASE TO END OF LINE and HIGHLIGHT (0-255 ms): |
|||
Is this definition correct? |
|||
Hardware dependent information |
|||
Operating frequency of your microprocessor in MHz (for delays): |
|||
101 Nothing |
|||
200 Choose one of the following displays: |
|||
201 Which display? (Enter no. or Q to exit): |
|||
202 Default display mode |
|||
203 Monochrome display |
|||
204 Color display 80x25 |
|||
205 Color display 40x25 |
|||
206 b/w display 80x25 |
|||
207 b/w display 40x25 |
|||
|
|||
Loading…
Reference in new issue