Browse Source

Z80ASM Disk Image Improvements

pull/472/head
Mark Pruden 1 year ago
parent
commit
fe947248bd
  1. 1
      Doc/ChangeLog.txt
  2. 9860
      Doc/Language/SLR180 (SLR Systems 1985).pdf
  3. BIN
      Doc/Language/SLRNK (SLR Systems 1984).pdf
  4. BIN
      Doc/Language/Z80DIS User Manual (1985).pdf
  5. BIN
      Doc/RomWBW Disk Catalog.pdf
  6. 590
      ReadMe.md
  7. 602
      ReadMe.txt
  8. 92
      Source/Doc/Catalog.md
  9. 54
      Source/Images/d_z80asm/Readme.txt
  10. BIN
      Source/Images/d_z80asm/u0/180FIG.COM
  11. 363
      Source/Images/d_z80asm/u0/8080.MAC
  12. BIN
      Source/Images/d_z80asm/u0/CONFIG.COM
  13. BIN
      Source/Images/d_z80asm/u0/DUMP.HEX
  14. 166
      Source/Images/d_z80asm/u0/DUMP.LST
  15. BIN
      Source/Images/d_z80asm/u0/DUMP.REL
  16. BIN
      Source/Images/d_z80asm/u0/MAKESYM.COM
  17. 45
      Source/Images/d_z80asm/u0/MAKESYM.DOC
  18. BIN
      Source/Images/d_z80asm/u0/SLR180.COM
  19. 61
      Source/Images/d_z80asm/u0/SLR180.DOC
  20. BIN
      Source/Images/d_z80asm/u0/SYNTAX.HLP
  21. BIN
      Source/Images/d_z80asm/u0/SYNTAX.TXT
  22. BIN
      Source/Images/d_z80asm/u1/LNKFIG.COM
  23. BIN
      Source/Images/d_z80asm/u1/NZLNKFIX.ZEX
  24. BIN
      Source/Images/d_z80asm/u1/SLRIB.COM
  25. BIN
      Source/Images/d_z80asm/u1/SLRNK.COM
  26. 64
      Source/Images/d_z80asm/u1/SLRNK.DOC
  27. BIN
      Source/Images/d_z80asm/u1/SLRNKFIX.ZEX
  28. BIN
      Source/Images/d_z80asm/u1/SYNTAX.HLP
  29. BIN
      Source/Images/d_z80asm/u1/SYNTAX.TXT
  30. BIN
      Source/Images/d_z80asm/u1/SYSSLR.REL
  31. BIN
      Source/Images/d_z80asm/u1/VSLR.REL
  32. BIN
      Source/Images/d_z80asm/u1/Z3SLR.REL
  33. 265
      Source/Images/d_z80asm/u2/README.22
  34. BIN
      Source/Images/d_z80asm/u2/Z80DIS.000
  35. BIN
      Source/Images/d_z80asm/u2/Z80DIS.001
  36. BIN
      Source/Images/d_z80asm/u2/Z80DIS.002
  37. BIN
      Source/Images/d_z80asm/u2/Z80DIS.COM
  38. 1057
      Source/Images/d_z80asm/u2/Z80DIS22.DOC
  39. BIN
      Source/Images/d_z80asm/u2/ZDINSTAL.COM
  40. BIN
      Source/Images/d_z80asm/u2/ZDINSTAL.DTA
  41. 64
      Source/Images/d_z80asm/u2/ZDINSTAL.MSG

1
Doc/ChangeLog.txt

@ -48,6 +48,7 @@ Version 3.5
- MAP: Added Disk Image for the Z3PLUS (Z-System for CP/M-Plus) os.
- H?H: Fix XModem 12.3 WRERR to put CAN char in proper register to send.
- MAP: Initial NVRAM configuration infrastructure, and boot device selection.
- MAP: Added additional tools (Linker/Disasembler) to the Z80ASM Disk Image
Version 3.4
-----------

9860
Doc/Language/SLR180 (SLR Systems 1985).pdf

File diff suppressed because one or more lines are too long

BIN
Doc/Language/SLRNK (SLR Systems 1984).pdf

Binary file not shown.

BIN
Doc/Language/Z80DIS User Manual (1985).pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

590
ReadMe.md

@ -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>.

602
ReadMe.txt

@ -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.

92
Source/Doc/Catalog.md

@ -1306,7 +1306,9 @@ Also contained on this image in User Area 1 are.
| Floppy Disk Image: **fd_z80asm.img**
| Hard Disk Image: **hd_z80asm.img**
Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
This disk contains 4 major components
* Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
source statements from a disk file, converts them into their binary equivalent,
and stores the output in either a core-image, Intel hex format, or relocatable
object file. The mnemonics recognized are those of Zilog/Mostek. The optional
@ -1314,19 +1316,91 @@ listing output may be sent to a disk file, the console and/or the printer, in
any combination. Output files may also be generated containing cross-reference
information on each symbol used.
The manual is available in the Doc/Language directory,
z80asm (SLR Systems).pdf
* SLR180 is a powerful relocating macro assembler for Z80
compatible CP/M systems. It takes assembly language source
statements from a disk file, converts them into their binary
equivalent, and stores the output in either a core-image, Intel
hex format, or relocatable object file. The mnemonics recognized
are those of Zilog/Hitachi. The optional listing output may be
sent to a disk file, the console and/or the printer, in any
combination. Output files may also be generated containing
cross-reference information on each symbol used.
* SLRNK is a powerful linking loader for Z80-based CP/M systems.
It takes relocatable binary information in either Microsoft or
SLR Systems format from a disk file, resolves external and entry
point references, and stores the output in memory for execution
or outputs it to a disk file.
* Z80DIS is an entirely new disassembler for Z80 based CP/M sys-
tems. Z80DIS is written in TURBO PASCAL. Z80DIS generates Z80
mnemonics and prepares an assembly language file with many
special features for ease of understanding the intent of the
code. The program and documantation are Copyright 1985, by
Kenneth Gielow, Palo Alto, CA. All rights are reserved.
The manual(s) are available in the Doc/Language directory,
* z80asm (SLR Systems).pdf
* SL180 (SLR Systems 1985).pdf
* SLRNK (SLR Systems 1984).pdf
* Z80DIS User Manual (1985).pdf
A run through of using the assembler is available at
[https://8bitlabs.ca/Posts/2023/05/20/learning-z80-asm]
And another shorter, but shows linker usage guide
[https://pollmyfinger.wordpress.com/2022/01/10/modular-retro-z80-assembly-language-programming-using-slr-systems-z80asm-and-srlnk/]
The following files are found in
* /Source/Images/d_z80asm
| **File** | **Description** |
|------------|-------------------------------------|
| DUMP.* | Sample Program |
| TEST.* | Sample Program |
| Z80ASM.COM | Relocating macro assembler for CP/M |
| Z80ASM.DOC | Documentation for Z80.COM |
User Area 0 - Assembler
| **File** | **Description** |
|-------------|---------------------------------------------|
| 180FIG.COM | Configuration utility for SLR180.COM |
| 8080.MAC | ? |
| CONFIG.COM | Configuration utility for Z80ASM.COM |
| DUMP.* | Sample Program |
| MAKESYM.COM | Symbol File .SYM file generation |
| MAKESYM.DOC | Documentation for MAKESYM.COM |
| SLR180.COM | HD64180 Relocating Macro Assembler |
| SLR180.DOC | Release Notes for SLR180.COM |
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
| TEST.* | Sample Program |
| Z80ASM.COM | Z80 Relocating Macro Assembler |
| Z80ASM.DOC | Release Notes for Z80ASM.COM |
User Area 1 - Linker
| **File** | **Description** |
|--------------|-----------------------------------------------|
| LNKFIG.COM | Configuration utility for SLRNK.COM |
| NZLNKFIX.ZEX | ? |
| SLRIB.COM | SuperLibrarian, library manager |
| SLRNK.COM | SuperLinker, the main linker tool |
| SLRNK.DOC | Release Notes for SLRNK.COM |
| SLRNKFIX.ZEX | ? |
| SYNTAX.HLP | Documentation basic usage for all SLR Tools |
| SYNTAX.TXT | Documentation basic usage for all SLR Tools |
| SYSSLR.REL | SYSLIB (older) Library compatible with SLR |
| VSLR.REL | VLIB (older) Library compatible with SLR |
| Z3SLR.REL | Z3LIB (older) Library compatible with SLR |
User Area 2 - Disassembler
| **File** | **Description** |
|--------------|----------------------------------|
| README.22 | Documentation for Z80DIS |
| Z80DIS.000 | Overlay File for Z80DIS.COM |
| Z80DIS.001 | Overlay File for Z80DIS.COM |
| Z80DIS.002 | Overlay File for Z80DIS.COM |
| Z80DIS.COM | Z80DIS Disassembler main program |
| Z80DIS22.DOC | Main Documentation for Z80DIS |
| ZDINSTAL.COM | Instal and Config for Z80DIS.COM |
| ZDINSTAL.DTA | Overlay file for ZDINSTAL.COM |
| ZDINSTAL.MSG | Overlay file for ZDINSTAL.COM |

54
Source/Images/d_z80asm/Readme.txt

@ -1,3 +1,7 @@
======================================
Assembly Language Tools by SLR Systems
======================================
===== Z80ASM v1.30 by SLR Systems =====
Z80ASM is a relocating macro assembler for CP/M. It takes assembly language
@ -8,8 +12,58 @@ listing output may be sent to a disk file, the console and/or the printer, in
any combination. Output files may also be generated containing cross-reference
information on each symbol used.
===== SLR180 v1.31 by SLR Systems =====
SLR180 is a powerful relocating macro assembler for Z80
compatible CP/M systems. It takes assembly language source
statements from a disk file, converts them into their binary
equivalent, and stores the output in either a core-image, Intel
hex format, or relocatable object file. The mnemonics recognized
are those of Zilog/Hitachi. The optional listing output may be
sent to a disk file, the console and/or the printer, in any
combination. Output files may also be generated containing
cross-reference information on each symbol used.
===== MAKESYM SuperLinker v1.31 =====
MAKESYM is a utility to create symbol SYM table files
===== SLRNK SuperLinker v1.31 =====
SLRNK is a powerful linking loader for Z80-based CP/M systems.
It takes relocatable binary information in either Microsoft or
SLR Systems format from a disk file, resolves external and entry
point references, and stores the output in memory for execution
or outputs it to a disk file.
===== SLRIB SuperLibrarian v1.30 =====
Library Manager
===== Z80DIS Disassembler v2.2 =====
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.
Z80 Disassembler program written by KENNETH GIELOW, Palo Alto, CA.
===== Documentation =====
The manual is available in the Doc/Language directory,
z80asm (SLR Systems).pdf
SL180 (SLR Systems 1985).pdf
SLRNK (SLR Systems 1984).pdf
Z80DIS User Manual (1985).pdf
The file SYNTAX.TXT also has a good tutorial
===== Third Party Documentation =====
A run through of using the assembler is available at
https://8bitlabs.ca/Posts/2023/05/20/learning-z80-asm
And another shorter, but shows linker usage guide
https://pollmyfinger.wordpress.com/2022/01/10/modular-retro-z80-assembly-language-programming-using-slr-systems-z80asm-and-srlnk/

BIN
Source/Images/d_z80asm/u0/180FIG.COM

Binary file not shown.

363
Source/Images/d_z80asm/u0/8080.MAC

@ -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


BIN
Source/Images/d_z80asm/u0/CONFIG.COM

Binary file not shown.

BIN
Source/Images/d_z80asm/u0/DUMP.HEX

Binary file not shown.

166
Source/Images/d_z80asm/u0/DUMP.LST

@ -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

BIN
Source/Images/d_z80asm/u0/DUMP.REL

Binary file not shown.

BIN
Source/Images/d_z80asm/u0/MAKESYM.COM

Binary file not shown.

45
Source/Images/d_z80asm/u0/MAKESYM.DOC

@ -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

BIN
Source/Images/d_z80asm/u0/SLR180.COM

Binary file not shown.

61
Source/Images/d_z80asm/u0/SLR180.DOC

@ -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.

BIN
Source/Images/d_z80asm/u0/SYNTAX.HLP

Binary file not shown.

BIN
Source/Images/d_z80asm/u0/SYNTAX.TXT

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/LNKFIG.COM

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/NZLNKFIX.ZEX

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/SLRIB.COM

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/SLRNK.COM

Binary file not shown.

64
Source/Images/d_z80asm/u1/SLRNK.DOC

@ -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.


BIN
Source/Images/d_z80asm/u1/SLRNKFIX.ZEX

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/SYNTAX.HLP

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/SYNTAX.TXT

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/SYSSLR.REL

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/VSLR.REL

Binary file not shown.

BIN
Source/Images/d_z80asm/u1/Z3SLR.REL

Binary file not shown.

265
Source/Images/d_z80asm/u2/README.22

@ -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


BIN
Source/Images/d_z80asm/u2/Z80DIS.000

Binary file not shown.

BIN
Source/Images/d_z80asm/u2/Z80DIS.001

Binary file not shown.

BIN
Source/Images/d_z80asm/u2/Z80DIS.002

Binary file not shown.

BIN
Source/Images/d_z80asm/u2/Z80DIS.COM

Binary file not shown.

1057
Source/Images/d_z80asm/u2/Z80DIS22.DOC

File diff suppressed because it is too large

BIN
Source/Images/d_z80asm/u2/ZDINSTAL.COM

Binary file not shown.

BIN
Source/Images/d_z80asm/u2/ZDINSTAL.DTA

Binary file not shown.

64
Source/Images/d_z80asm/u2/ZDINSTAL.MSG

@ -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…
Cancel
Save