Table of Contents
ZSOS Development Environment (UNDER CONSTRUCTION)
This page gives a high-level description of the tools used to create the ZSOS images. A complete .zip file of the entire development environment in a ready-to-run configuration is included at the bottom of this page. There are four major parts of this environment:
- The ZSOS Source Code - modified CP/M 3 source code files for the BIOS portion of the CPMLDR boot loader and the BIOS portion of the CP/M 3 operating system.
- AltairZ80 simulator - a simulation of an Altair 8800 w/a Z80 CPU upgrade that is used to run a CP/M 3 environment on a modern computer for the purposes of assembling the source code into binary machine code.
- cpmtools - a set of tools for manipulating CP/M-compatible disk images under Windows/Linux, which used to create disk images using the binaries created inside AltairZ80.
- Development environment scripts - a set of Windows .bat/Linux .sh files and CP/M 3 SUBMIT (.SUB) files that semi-automate the process of turning a given source code set into a working disk image.
Before reading the following, I strongly recommend reviewing John M's Bringing up CP/M 3 for the first time on an IDE hard disk system and David Fry's Disk Layout Considerations for CP/M 3.0 System Build.
ZSOS Source Code
The ZSOS source code consists of .ASM files used to build the CPMLDR BIOS and CPM3.SYS BIOS. For the 0.10 release of ZSOS, these files are derived from two releases on the S100Computers.com website:
- Most Current HSYSGEN (for Non-Banked Systems)
- Most Current HMAKECPM ()
In addition, the following .pdf documents contains the “No Holes” LBA address routines used for the CF card support:
To differentiate the SUBMIT (CP/M batch/script) files in this version from John M's originals, I have changed the letter designations from “HSYSGEN” and “HMAKECPM” to “ISYSGEN” and “IMAKECPM”. Within the development environment image, the source files used to create the CP/M CPMLDR boot loader are located in the .\ISYSGENI folder, and the source files used to create the CP/M CPM3.SYS BIOS/BDOS file are located in the .\IMAKECPMI folder.
The tables below summarize the source files within each folder and their purposes.
CPMLDR Sources in .\ISYSGENI | |
---|---|
Source File | Description |
HLDRBIOS.ASM | The CPMLDR mini-BIOS. Implements a subset of the full CP/M BIOS and is linked with CPMLDR.REL to produce the final CPMLDR.COM. |
CPM3.SYS Sources in .\IMAKECPMI | |
---|---|
Source File | Description |
BIOSKRNL.ASM | The root module of the CP/M 3 BIOS. Unchanged from John M's original files. |
CHARIO3.ASM | Character I/O routines. Modified for ZSOS 0.10 to incorporate routines for the DLP parallel FIFO→USB adapter. |
HBOOT3.ASM | The boot loader module. Modified for ZSOS 0.10 to change the sign-in message. |
HDRVTBL3.ASM | The CP/M 3 drive tables. Unchanged from John M's original files. |
HIDE3.ASM | The Hard Disk BIOS module. Modified for ZSOS 0.10 to incorporate David's “no holes” LBA translation code. |
MOVE3.ASM | The Memory Move module. Unchanged from John M's original files. |
SCB3.ASM |
AltairZ80 Simulator
The AltairZ80 simulator is part of the SIMH CPU/hardware simulation system. AltairZ80 simulates an Altair 8800 system which has been upgraded with a Zilog Z80 processor.
cpmtools
Development Environment Scripts
ISYSGEN.SUB (CP/M 3 SUBMIT 'batch file')
IMAKECPM.SUB (CP/M 3 SUBMIT 'batch file)
makebasicimage.bat / imakebasicimage.sh (Windows/Linux OS scripts)
makeextendedimage.bat / makeextendedimage.sh (Windows/Linux OS scripts)
Using the Development Environment
The general procedure for using this environment is:
- Make any desired modifications to the 'input' source files in .\ISYSGENI and/or .\IMAKECPMI
- If .\ISYSGENI files were changed:
- Load AltairZ80 (
altairz80 cpm3
in the main development environment directory) - Change to Drive I: and run 'SUBMIT ISYSGEN'
- Verify that all compilation steps completed successfully
- Hit 'Ctrl-E' and type 'Exit' to exit AltairZ80
- If .\IMAKECPMI files were changed:
- Load AltairZ80 (
altairz80 cpm3
in the main development environment directory) - Change to Drive I: and run 'SUBMIT IMAKECPM'
- Verify that all compilation steps completed successfully
- Hit 'Ctrl-E' and type 'Exit' to exit AltairZ80
- If a basic image is desired, use makebasicimage.bat / imakebasicimage.sh to create one
- If an extended image is desired makeextendedimage.bat / makeextendedimage.sh to create one
- Use Win32DiskImager or dd to write the image to a CF card, and try it!
Note: New versions of CPMLDR.COM and CPM3.SYS will overwrite old versions, so be sure to copy versions you want to keep somewhere else!