Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:firmwareos:romwbw:start [2019/07/15 23:21] – Initial import from Wayback Machine software:firmwareos:romwbw:start [2026/06/15 12:45] (current) – external edit 127.0.0.1
Line 1: Line 1:
 /* Imported from Wayback Machine /* Imported from Wayback Machine
-   Original URL : https://retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:start +   Original URL : https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:start 
-   Snapshot date: 2019-07-15+   Snapshot date: 2024-05-16
    Generator    : wayback-archiver    Generator    : wayback-archiver
 */ */
  
-====== RomWBW ======+**RomWBW ReadMe**\\ 
 +Version 3.2\\ 
 +Wayne Warthen <wwarthen@gmail.com>\\ 
 +20 Mar 2023\\
  
-=== Z80/Z180 System Software ===+====== Overview ======
  
-Version 2.9.12019-06-03+RomWBW software provides a completecommercial 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:
  
-Wayne Warthen\\ +[[https://www.retrobrewcomputers.org|RetroBrew Computers]]
-<mailto:wwarthen@gmail.com>+
  
-//Download://+[[https://rc2014.co.uk|RC2014]], [[https://groups.google.com/g/rc2014-z80|RC2014-Z80]]
  
-[[https://retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw-2.9.1-package.zip|RomWBW v2.9.1 Distribution Package]]+[[https://groups.google.com/forum/#!forum/retro-comp|retro-comp]]
  
-[[https://retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf|RomWBW Architecture Document]]+[[https://smallcomputercentral.com/|Small Computer Central]]
  
-//Related pages://+General features include:
  
-[[software:firmwareos:romwbw:apps|RomWBW Applications]]+Banked memory services for several banking designs
  
-[[software:firmwareos:romwbw:zsystem|Z-System Notes]]+Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD
  
-[[software:firmwareos:romwbw:errata|Errata]]+Serial drivers including UART (16550-like), ASCI, ACIA, SIO
  
-===== Summary =====+Video drivers including TMS9918, SY6545, MOS8563, HD6445
  
-RomWBW provides a complete software system for all Z80/Z180 CPU-based systems produced by the RetroBrew Computers Community including the SBC 1/2, Zeta 1/2, N8, Mark IV, RC2014, and Easy Z80. Virtually all RetroBrew hardware is supported including floppy, hard disk (IDE, CF Card, SD Card), Video, Audio, and keyboard. VT-100 terminal emulation is built-in for all video adapters.+Keyboard (PS/2) drivers via VT8242 or PPI interfaces
  
-In addition to a simple system monitorRomWBW includes robust adaptations of both CP/M-80 2.2 and Z-System (ZCPR + ZSDOS). Either operating system can be loaded directly from ROM or installed and loaded from disk storage. A selection of standard/useful applications is provided via a built-in ROM disk. A RAM disk is also provided for fast/temporary file storage.+Real time clock drivers including DS1302BQ4845
  
-A pre-built ROM image is included for each platformIf desiredsystem customization is achieved by making simple modifications to a configuration file and running a build script to generate a custom ROM image. All source and build tools are included in the distribution. The build scripts run under any modern 32 or 64 bit version of Microsoft Windows.+OSes: CP/M 2.2, ZSDOS, CP/M 3, NZ-COM, ZPM3, QPM, p-System, and FreeRTOS
  
-John Coffman's UNA hardware BIOS is fully supported by RomWBW. See the section below for more information on running RomWBW on top of UNA.+Built-in VT-100 terminal emulation support
  
-===== Installation =====+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:
  
-In general, you will just program your system's ROM with the appropriate ROM image from the RomWBW distribution. This can be done with a ROM programmer. Alternatively, if your system supports in-situ ROM programming, you can use Will Sowerbutts' FLASH application which has been included in recent RomWBW distributions.+System Monitor
  
-The pre-built ROM images will automatically detect and support a reasonable range of devices including serial ports, video adapters, on-board disk interfaces, and PropIO/ParPortProp boards without building a custom ROM.+Operating Systems (CP/M 2.2, ZSDOS)
  
-RomWBW is distributed as a package (zip archive) containing the pre-built ROM images, source code, and all required build tools. To use a pre-built ROM image, download the distribution package to a modern computer (Windows, Mac, Linux, etc.). Unzip the archive using any of the common zip management applications. You will see that the distribution is broken up into a few sub-directories. The Binary directory contains the pre-built ROM images. Based on the table below, pick the appropriate ROM image:+ROM BASIC (Nascom BASIC and Tasty BASIC)
  
-^Platform   ^ROM Image File^Built-in Device Support                                                                                           ^ +ROM Forth
-|SBC V1/V2  |SBC_std.rom   |Supports onboard PPIDE disk, VGA3/CVDU video/kbd, PropIO (video, kbd, SD Card)                                    | +
-|Zeta V1    |ZETA_std.rom  |Supports ParPortProp (video, kbd, SD Card)                                                                        | +
-|Zeta V2    |ZETA2_std.rom |Supports ParPortProp (video, kbd, SD Card)                                                                        | +
-|N8         |N8_std.rom    |Supports onboard SD Card, video, keyboard; production board assumed (date code >= 2312)                           | +
-|Mark IV    |MK4_std.rom   |Supports onboard SD Card, IDE Disk, VGA3/CVDU video/kbd, PropIO (video, kbd, SD Card)                             | +
-|RC2014 Z80 |RCZ80_std.rom |Requires external banked 512KB RAM/ROM module; supports ACIA, SIO/2, Compact Flash, PPIDE, and Floppy modules     | +
-|RC2014 Z180|RCZ180_ext.rom|Requires external banked 512KB RAM/ROM module; supports Z180 ASCI, SIO/2, Compact Flash, PPIDE, and Floppy modules| +
-|RC2014 Z180|RCZ180_nat.rom|Requires native 512 RAM/ROM module; supports Z180 ASCI, ACIA, SIO/2, Compact Flash, PPIDE, and Floppy modules     | +
-|Easy Z80   |EZZ80_std.rom |Supports onboard SIO, IDE                                                                                         |+
  
-Your system does **not** need to have all the devices listed above to use the pre-built ROMThe devices will be detected and used only if presentAll you need to have is the CPU board with RAM/ROM and a serial port. All pre-built ROM images are simple 512KB binary images. If your system utilizes a 1MB ROM, you can just program the image into the first 512KB of the ROM. The ReadMe.txt file in the Binary directory has more detailed information on the pre-built ROM images.+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) 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 letterThis overcomes the inherent size limitations in legacy OSes and allows up to 2GB of accessible storage on a single device.
  
-Connect a serial terminal or computer with terminal emulation software to the primary RS-232 port of your CPU boardA null-modem connection will generally be required. Set the line characteristics to 38400 baud, 8 data bits, 1 stop bit, no parityand no flow controlSelect VT-100 terminal emulation. RC2014 Z80 serial port baud rate is an exception and is determined by hardware, but is typically 115200 baud.+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 preferencesAll tools required to build custom ROM firmware under Windows are included – no need to install assemblersetcThe firmware can also be built using Linux or MacOS after confirming a few standard tools have been installed.
  
-Upon power-up, your terminal should display a sign-on banner within 2 seconds followed by hardware inventory and discovery informationWhen hardware initialization is completed, boot loader prompt allows you to choose a ROM-based operating system, system monitoror boot from a disk device.+Multiple disk images are provided in the distributionMost disk images contain complete, bootable, ready-to-run implementation of a specific operating system. A “combo” disk image contains multiple sliceseach with a full operating system implementation. If you use this disk imageyou can easily pick whichever operating system you want to boot without changing media.
  
-===== Upgrading =====+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 Card) and move it between systems transparently.
  
-Program new ROM chip from an image in the new distributionInstall the new ROM chip and boot your system. At the boot loader “Boot:” prompt, select either CP/M or Z-System to load the corresponding OS directly from ROM.+A tool is provided that allows you to access FAT-12/16/32 filesystemThe 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.
  
-If you have spare ROM chips for your system, it is always safest to keep your existing, working ROM chip and program a new one with the new firmware. If the new one fails to boot, you can easily return to the known working ROM.+====== Acquiring RomWBW ======
  
-If you use customized ROM image, it is recommended that you first try a pre-built ROM image first and then move on to generating a custom image.+The [[https://github.com/wwarthen/RomWBW|RomWBW Repository]] on GitHub is the official distribution location for all project source and documentation. The fully-built distribution releases are available on the [[https://github.com/wwarthen/RomWBW/releases|RomWBW Releases Page]] of the repository. On this page, you will normally see Development Snapshot as well as recent stable releases. Unless you have 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.
  
-It is entirely possible to reprogram your system ROM using the FLASH utility from Will Sowerbutts on your ROM drive (B:)In this case, you would need to transfer the new ROM image to your system using XModem. Obviously, there is some risk to this approach since any issues with the programming or ROM image could result in a non-functional system.+All source code and distributions are maintained on GitHubCode contributions are very welcome.
  
-Once you have successfully booted your system with the new ROM, you should update the system software from previous releases that you may have copied to disk drives. This is described below.+====== Installation & Operation ======
  
-If your system has any bootable drivesthen update the OS image on each drive using SYSCOPY. For example, if C: is a bootable drive with the Z-System OS, you would update the OS image on this drive with the command:+In generalinstallation 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.
  
-<code code> +Complete instructions for installation and operation of RomWBW are found in the [[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf|RomWBW User Guide]].
-  B>SYSCOPY C:=B:ZSYS.SYS +
-</code>+
  
-If you have copies of any of the system utilities on drives other than the ROM disk drive, you need to copy the latest version of the programs from the ROM drive (B:) to any drives containing these programs. For example, if you have a copy of the ASSIGN.COM program on C:, you would update it from the new ROM using the COPY command:+===== Documentation =====
  
-<code code> +Documentation for RomWBW includes:
-  B>COPY B:ASSIGN.COM C: +
-</code>+
  
-The following programs are maintained with the ROM images and all copies of these programs should be updated when upgrading to a new ROM version:+[[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf|RomWBW User Guide]]
  
-ASSIGN.COM+[[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf|RomWBW System Guide]]
  
-FORMAT.COM+[[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf|RomWBW Applications]]
  
-OSLDR.COM+[[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20ROM%20Applications.pdf|RomWBW ROM Applications]]
  
-SYSCOPY.COM+[[https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf|RomWBW Errata]]
  
-TALK.COM+====== Acknowledgments ======
  
-FDU.COM (previously FDTST.COM)+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 CommunityI sincerely appreciate all of their contributionsThe list below is probably missing many names – please let me know if I missed you!
  
-XM.COM+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.
  
-MODE.COM+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.
  
-RTC.COM+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.
  
-TIMER.COM+Sergey Kiselev created several hardware platforms for RomWBW including the very popular Zeta.
  
-INTTEST.COM+David Giles created support for the Z180 CSIO which is now included SD Card driver.
  
-===== Usage Instructions =====+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.
  
-A typical set of CP/M-80 2.2 and Z-System applications are included on the ROM file system. The Doc directory of the distribution contains the CP/M, ZSDOS, and ZCPR user manuals which provide the primary usage information. Note that the Z-System applications will generally not run under CP/M.+Ed Brindley contributed some of the code that supports the RCBus platform.
  
-The following custom applications are included on the ROM disk to enhance the operation of RomWBW:+Spencer Owen created the RC2014 series of hobbyist kit computers which has exponentially increased RomWBW usage. Some of his kits include RomWBW.
  
-^Appplication^Description                                                                                                                         ^ +Stephen Cousins has likewise created series of hobbyist kit computers at Small Computer Central and is distributing RomWBW with many of them.
-|ASSIGN.COM  |Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions.                                             | +
-|SYSCOPY.COM |Copy system image to device to make it bootable. Use SYSCOPY with no parms for usage instructions.                                | +
-|FDU.COM     |Format and test floppy disks. Menu driven interface.                                                                                | +
-|OSLDR.COM   |Load a new OS on the fly. For example, you can switch to Z-System when running CP/M. Use OSLDR with no parms for usage instructions.| +
-|FORMAT.COM  |Will someday be a command line tool to format floppy disks. Currently does nothing!                                                 | +
-|MODE.COM    |Reconfigures serial ports dynamically.                                                                                              | +
-|XM.COM      |XModem file transfer program adapted to hardware. Automatically uses primary serial port on system.                                 | +
-|FLASH.COM   |Will Sowerbutts' in-situ ROM programming utility                                                                                  |+
  
-Some custom applications do not fit on the ROM disk. They can be found on the Hard Disk image hd0.img or the individual files can be found in the Source\Images\hd0 directory in the u0 and u3 subdirectories.+Alan Cox has contributed some driver code and has provided a great deal of advice.
  
-^Appplication^Description                                                          ^ +The CP/NET client files were developed by Douglas Miller.
-|TUNE.COM    |Play .PT2, .PT3, .MYM audio files.                                   | +
-|FAT.COM     |Copy, rename, delete, or list directory of MS-DOS filesystems (beta).|+
  
-Please see the [[software:firmwareos:romwbw:apps|RomWBW Applications]] page for more information on using these applications.+Phillip Stevens contributed support for FreeRTOS.
  
-Check the [[software:firmwareos:romwbw:errata|Errata]] page for current usage notes.+Curt Mayer contributed the original Linux / MacOS build process.
  
-===== UNA Hardware BIOS =====+UNA BIOS and FDISK80 are the products of John Coffman.
  
-John Coffman has produced new generation of hardware BIOS called UNA. The standard RomWBW distribution includes it's own hardware BIOS. However, RomWBW can alternatively be constructed with UNA as the hardware BIOS portion of the ROM. If you wish to use the UNA variant of RomWBW, then just program your ROM with the ROM image called “UNA_std.rom” in the Binary directory. This one image is suitable on **all** of the platforms and hardware UNA supports.+FLASH4 is product of Will Sowerbutts.
  
-UNA is customized dynamically using ROM based setup routine and the setup is persisted in the system NVRAM of the RTC chip. This means that the single UNA-based ROM image can be used on most of the RetroBrew platforms and is easily customized. UNA also supports FAT file system access that can be used for in-situ ROM programming and loading system images.+CLRDIR is a product of Max Scane.
  
-While John is likely to enhance UNA over time, there are currently few things that UNA does not support:+Tasty Basic is a product of Dimitri Theulings.
  
-Floppy Drives+Dean Netherton contributed the sound driver interface and the SN76489 sound driver.
  
-Terminal Emulation+The RomWBW Disk Catalog document was produced by Mykl Orders.
  
-Zeta 1, N8, RC2014, and Easy Z80 Systems+Contributions of all kinds to RomWBW are very welcome.
  
-Some older support boards+====== Licensing ======
  
-The UNA version embedded in RomWBW is the latest production release of UNA. RomWBW will be updated with John's upcoming UNA release with support for VGA3 as soon as it reaches production status.+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.
  
-Please refer to the [[software:firmwareos:una:start|UNA BIOS Firmware Page]] for more information on UNA.+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.
  
-===== CP/M vsZ-System =====+You should have received a copy of the GNU General Public License along with RomWBW. If not, see https://www.gnu.org/licenses/.
  
-There are two OS variants included in this distribution and you may choose which one you prefer to useBoth variants are now included in the pre-built ROM images. You will be given the choice to boot either CP/or Z-System at startup.+Portions of RomWBW were created by, contributed by, or derived from the work of othersIt is believed that these works are being used in accordance with the intentions and/or licensing of their creators.
  
-The traditional Digital Research (DRI) CP/M OS is the first choice. The Doc directory contains a manual for CP/M usage (“CPM Manual.pdf”). If you are new to the RetroBrew Computer systemsI would currently recommend using the CP/M variant to start with simply because it has gone through more testing and you are less likely to encounter problems.+If anyone feels their work is being used outside of its intended licensingplease notify:
  
-The other choice is to use the most popular non-DRI CP/M “clone” which is generally referred to as Z-System. Z-System is intended to be an enhanced version of CP/M and should run all CP/M 2.2 applications. It is optimized for the Z80 CPU (as opposed to 8080 for CP/M) and has some significant improvements such as date/time stamping of filesFor further information on the RomWBW implementation of Z-System, see the wiki page [[playground:wwarthen:zsystem|Z-System Notes]]. Additionally, the official documentation for Z-System is included in the RomWBW distribution Doc directory (“ZSDOS Manual.pdf” and “ZCPR Manual.pdf”).+<blockquote> 
 +Wayne Warthen\\ 
 +\\ 
 +<wwarthen@gmail.com> 
 +</blockquote> 
 +RomWBW is an aggregate work. It is composed of many individual, standalone programs that are distributed as a whole to function as a cohesive systemEach program may have its own licensing which may be different from other programs within the aggregate.
  
-===== ROM Customization =====+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.
  
-The pre-built ROM images are configured for the basic capabilities of each platformIf you add board(s) to your system, you will need to customize your ROM image to include support for the added board(s).+RomWBW encourages code contributions from others. Contributors may assert their own copyright in their contributions by annotating the contributed source code appropriatelyContributors are further encouraged to submit their contributions via the RomWBW source code control system to ensure their contributions are clearly documented.
  
-Essentially, the creation of a custom ROM is accomplished by updating a small configuration file, then running a script to compile the software and generate the custom ROM image. At this time, the build process runs on Windows 32 or 64 bit versions. All tools (compilers, assemblers, etc.) are included in the distribution, so it is not necessary to setup a build environment on your computer.+All contributions to RomWBW are subject to this license.
  
-For those who are interested in more than basic system customization, note that all source code is provided (including the operating systems).+====== Getting Assistance ======
  
-Complete documentation of the customization process is found in the ReadMe.txt file in the Source directory.+The best way to get assistance with RomWBW or any aspect of the RetroBrew Computers projects is via one of the community forums:
  
-Note that the ROM customization process does not apply to UNA. All UNA customization is performed within the ROM setup script.+[[forum|RetroBrew Computers Forum]]
  
-===== Source Code Respository =====+[[https://groups.google.com/forum/#!forum/rc2014-z80|RC2014 Google Group]]
  
-All source code and distributions are maintained on GitHubCode contributions are very welcome.+[[https://groups.google.com/forum/#!forum/retro-comp|retro-comp Google Group]]
  
-https://github.com/wwarthen/RomWBW +Submission of issues and bugs are welcome at the [[https://github.com/wwarthen/RomWBW|RomWBW GitHub Repository]].
- +
-===== Distribution Directory Layout ===== +
- +
-The RomWBW distribution is a compressed zip archive file organized in a set of directories. Each of these directories has it's own ReadMe.txt file describing the contents in detail. In summary, these directories are: +
- +
-^Directory^Description                                                                                                                            ^ +
-|Binary   |The final output files of the build process are placed here. Most importantly, are the ROM images with the file names ending in “.rom”.| +
-|Doc      |Contains various detailed documentation including the operating systems, RomWBW architecture, etc.                                     | +
-|Source   |Contains the source code files used to build the software and ROM images.                                                              | +
-|Tools    |Contains the MS Windows programs that are used by the build process or that may be useful in setting up your system.                   | +
- +
-===== Acknowledgements ===== +
- +
-While I have heavily modified much of the code, I want to acknowledge that much of the work is derived or copied from the work of others in the RetroBrew Computers Community including Andrew Lynch, Dan Werner, Max Scane, David Giles, John Coffman, and probably many others I am not clearly aware of (let me know if I omitted someone!). +
- +
-I especially want to credit Douglas Goodall for contributing code, time, testing, and advice. He created an entire suite of application programs to enhance the use of RomWBW. However, he is looking for someone to continue the maintenance of these applications and they have become unusable due to changes within RomWBW. As of RomWBW 2.6, these applications are no longer provided. +
- +
-David Giles has contributed support for the CSIO support in the SD Card driver. +
- +
-Ed Brindley has contributed some of the code that supports the RC2014 platform. +
- +
-Phil Summers has contributed Forth and BASIC in ROM. +
- +
-UNA BIOS is a product of John Coffman. +
- +
-===== Getting Assistance ===== +
- +
-The best way to get assistance with RomWBW or any aspect of the RetroBrew Computers projects is via the community forum. +
- +
-[[forum|[[forum:]]]]+
  
 Also feel free to email Wayne Warthen at <wwarthen@gmail.com>. Also feel free to email Wayne Warthen at <wwarthen@gmail.com>.
- 
-\\ 
  
software/firmwareos/romwbw/start.1563232882.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0