Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
software:firmwareos:romwbw:start [2020/03/30 14:43] wwarthen |
software:firmwareos:romwbw:start [2023/03/20 13:20] (current) wwarthen |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== RomWBW ====== | ||
| - | === Z80/Z180 System Software === | + | **RomWBW ReadMe**\\ |
| + | Version 3.2\\ | ||
| + | Wayne Warthen | ||
| + | 20 Mar 2023\\ | ||
| - | Version 2.9.1, 2019-06-03 | + | ====== Overview ====== |
| - | Wayne Warthen\\ | + | 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: |
| - | [[mailto: | + | |
| - | __Download:__ | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | * {{:software: | + | General features include: |
| - | * {{: | + | |
| - | __Related pages:__ | + | * Banked memory services for several banking designs |
| + | * Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD | ||
| + | * Serial drivers including UART (16550-like), | ||
| + | * 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 |
| - | * [[: | + | |
| - | * [[:software:firmwareos: | + | |
| - | ===== Summary ===== | + | * System Monitor |
| + | * Operating Systems (CP/M 2.2, ZSDOS) | ||
| + | * ROM BASIC (Nascom BASIC and Tasty BASIC) | ||
| + | * ROM Forth | ||
| - | RomWBW provides a complete software | + | A dynamic disk drive letter assignment mechanism allows mapping operating |
| - | In addition to a simple system monitor, RomWBW 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/ | + | The pre-built ROM firmware images are generally suitable for most users. However, it is also very easy to modify |
| - | A pre-built ROM image is included for each platform. If desired, system | + | 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, |
| - | John Coffman' | + | By design, |
| - | ===== Installation ===== | + | A tool is provided that allows you to access a FAT-12/ |
| - | In general, you will just program your system' | + | ====== Acquiring |
| - | The pre-built | + | The [[https:// |
| - | RomWBW is distributed as a package (zip archive) containing the pre-built ROM images, | + | All source code and distributions are maintained on GitHub. Code contributions are very welcome. |
| - | ^Platform^ROM Image File^Built-in Device Support| | + | ====== Installation & Operation ====== |
| - | ^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** | + | In general, installation of RomWBW on your platform is very simple. You just need to program your ROM with the correct |
| - | Connect a serial terminal or computer with terminal emulation software to the primary RS-232 port of your CPU board. A null-modem connection will generally be required. Set the line characteristics to 38400 baud, 8 data bits, 1 stop bit, no parity, and no flow control. Select VT-100 terminal emulation. RC2014 Z80 serial port baud rate is an exception and is determined by hardware, but is typically 115200 baud. | + | Complete instructions for installation and operation |
| - | Upon power-up, your terminal should display a sign-on banner within 2 seconds followed by hardware inventory and discovery information. When hardware initialization is completed, a boot loader prompt allows you to choose a ROM-based operating system, system monitor, or boot from a disk device. | + | ===== Documentation ===== |
| - | ===== Upgrading ===== | + | Documentation for RomWBW includes: |
| - | Program a new ROM chip from an image in the new distribution. Install the new ROM chip and boot your system. At the boot loader "Boot:" prompt, select either CP/M or Z-System | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | 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. | + | ====== Acknowledgments ====== |
| - | If you use a customized ROM image, it is recommended | + | I want to acknowledge |
| - | 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 | + | * Andrew Lynch started it all when he created |
| - | + | * 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. | |
| - | Once you have successfully booted your system with the new ROM, you should update the system software | + | * Douglas Goodall contributed code, time, testing, and advice in “the early days”. He created an entire suite of application programs |
| - | + | * Sergey Kiselev created several hardware platforms for RomWBW including the very popular Zeta. | |
| - | If your system has any bootable drives, then 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 | + | * 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. |
| - | B> | + | * Spencer Owen created |
| - | </ | + | |
| - | + | | |
| - | If you have copies | + | * 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. |
| - | B>COPY B: | + | * UNA BIOS and FDISK80 |
| - | </ | + | * FLASH4 |
| - | + | * CLRDIR | |
| - | The following programs | + | * Tasty Basic is a product |
| - | + | * Dean Netherton contributed | |
| - | * ASSIGN.COM | + | * The RomWBW Disk Catalog document was produced by Mykl Orders. |
| - | * FORMAT.COM | + | |
| - | * OSLDR.COM | + | |
| - | * SYSCOPY.COM | + | |
| - | * TALK.COM | + | |
| - | * FDU.COM (previously FDTST.COM) | + | |
| - | * XM.COM | + | |
| - | * MODE.COM | + | |
| - | * RTC.COM | + | |
| - | * TIMER.COM | + | |
| - | * INTTEST.COM | + | |
| - | + | ||
| - | ===== Usage Instructions ===== | + | |
| - | + | ||
| - | 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. | + | |
| - | + | ||
| - | The following custom applications are included on the ROM disk to enhance the operation of RomWBW: | + | |
| - | + | ||
| - | ^ Application | + | |
| - | |ASSIGN.COM|Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions.| | + | |
| - | |SYSCOPY.COM|Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions.| | + | |
| - | |FDU.COM|Format | + | |
| - | |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' | + | |
| - | |CLRDIR.COM|Format | + | |
| - | + | ||
| - | 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. | + | |
| - | + | ||
| - | ^ Application | + | |
| - | |TUNE.COM|Play .PT2, .PT3, .MYM audio files.| | + | |
| - | |FAT.COM|Copy, | + | |
| - | + | ||
| - | Please see the [[: | + | |
| - | + | ||
| - | Check the [[: | + | |
| - | + | ||
| - | < | + | |
| - | | + | |
| - | ===== UNA Hardware BIOS ===== | + | |
| - | </ | + | |
| - | + | ||
| - | John Coffman | + | |
| - | + | ||
| - | UNA is customized dynamically using a 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. | + | |
| - | + | ||
| - | While John is likely to enhance UNA over time, there are currently a few things that UNA does not support: | + | |
| - | + | ||
| - | * Floppy Drives | + | |
| - | * Terminal Emulation | + | |
| - | * Zeta 1, N8, RC2014, and Easy Z80 Systems | + | |
| - | * Some older support boards | + | |
| - | + | ||
| - | <note tip>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.</ | + | |
| - | + | ||
| - | Please refer to the [[: | + | |
| - | + | ||
| - | ===== CP/M vs. Z-System ===== | + | |
| - | + | ||
| - | There are two OS variants included in this distribution | + | |
| - | + | ||
| - | The traditional Digital Research (DRI) CP/M OS is the first choice. The Doc directory contains | + | |
| - | + | ||
| - | The other choice | + | |
| - | + | ||
| - | ===== ROM Customization ===== | + | |
| - | + | ||
| - | The pre-built ROM images are configured for the basic capabilities of each platform. If you add board(s) to your system, you will need to customize your ROM image to include support for the added board(s). | + | |
| - | + | ||
| - | Essentially, | + | |
| - | + | ||
| - | For those who are interested in more than basic system customization, | + | |
| - | + | ||
| - | Complete documentation | + | |
| - | + | ||
| - | Note that the ROM customization process does not apply to UNA. All UNA customization is performed within | + | |
| - | + | ||
| - | ===== Source Code Respository ===== | + | |
| - | + | ||
| - | All source code and distributions are maintained on GitHub. Code contributions are very welcome. | + | |
| - | [[https:// | + | Contributions of all kinds to RomWBW |
| - | ===== Distribution Directory Layout | + | ====== Licensing ====== |
| - | The RomWBW | + | 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. |
| - | ^ Directory | + | RomWBW is distributed |
| - | ^Binary|The final output files of the build process are placed here. Most importantly, | + | |
| - | ^Doc|Contains various detailed documentation including | + | |
| - | ^Source|Contains | + | |
| - | ^Tools|Contains | + | |
| - | ===== Acknowledgements ===== | + | You should have received a copy of the GNU General Public License along with RomWBW. If not, see https:// |
| - | While I have heavily modified much of the code, I want to acknowledge that much of the work is derived | + | Portions |
| - | 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. | + | If anyone feels their work is being used outside |
| - | David Giles has contributed support for the CSIO support in the SD Card driver. | + | > Wayne Warthen\\ |
| + | > < | ||
| - | Ed Brindley has contributed some of the code that supports | + | RomWBW is an aggregate work. It is composed |
| - | Phil Summers has contributed Forth and BASIC in ROM. | + | 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. |
| - | UNA BIOS is a product of John Coffman. | + | 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. |
| - | ===== Getting Assistance ===== | + | All contributions to RomWBW are subject to this license. |
| - | The best way to get assistance with RomWBW or any aspect of the RetroBrew Computers projects is via the community forum. | + | ====== Getting Assistance ====== |
| - | [[https:// | + | The best way to get assistance with RomWBW or any aspect of the RetroBrew Computers projects is via one of the community forums: |
| - | Also feel free to email Wayne Warthen at [[wwarthen@gmail.com|]]. | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | \\ | + | Submission of issues and bugs are welcome at the [[https:// |
| + | Also feel free to email Wayne Warthen at < | ||