BOOT3.ARC contains a few tools for implementing CP/M Plus. 1. GENCPM ====== CP/M Plus is loaded from CPM3.SYS which is a regular file residing in the data tracks of the boot drive. The program which generates CPM3.SYS from the BDOS and BIOS modules is GENCPM provided by Digital Research as part of the CP/M 3 distribution. Unfortunately GENCPM has at least one minor bug. It generates a CPM3.SYS file with an incorrect label on one of the memory map fields displayed during system startup. The GENCPM.COM file in this archive corrects that. Note that this is a cosmetic patch only. Without the patch GENCPM stil makes a CPM3.SYS file which is otherwise correct. 2. BOOTSYS ======= BOOTSYS is my version of Andreas Gerlich's program of the same name. It is the program used to load CP/M Plus in the yaze-ag Z80-CP/M emulator but in its current form it is also is useful for testing a new CP/M 3 build on a real (or emulated) Z80 without overwriting the current system. 3. BOOTLDR ======= BOOTLDR is a program patterned after BOOTSYS and uses a lot of its code. It serves a similar function but whereas BOOTSYS loads a full CP/M 3, BOOTLDR is meant to load CPMLDR with an attached LDRBIOS. If all is well then it should load CPM3.SYS from disk and transfer control to it. The idea is to make it easy to test a LDRBIOS without writing it to the system tracks of the boot drive. 4. ZPM3LDR ======= ZPM3LDR.Z80 is an accurate disassembly of Simeon Cran's ZPM3LDR.REL which he distributed with ZPM3 but for which no source code was ever available. There are some conditionals in the source code. One causes the assembly of an exact replica of Simeon's ZPM3LDR.REL. Subordinate conditionals control variations. All the details are documented in the code. For what it is worth, ZPM3LDR has never worked for me and at the time of writing I have not determined why. 5. FPUTBOOT ======== A late addition ... this program writes the system tracks of a diskette. Documentation is in the source file. No assembled version is supplied. 6. Submit files ============ MAKEBOOT.SUB and MAKELDR.SUB are two sample submit files for generating BOOTSYS and BOOTLDR. CHECKSIM.SUB verifies that ZPM3LDR.Z80 generates the same code as Simeon Cran's original ZPM3LDR.REL. MAKELDR.SUB and CHECKSIM.SUB assume there is a LDRBIOS.Z80 which will assemble cleanly. That is reasonable given their purpose. Notes ===== Assuming you have a running CP/M (be it 2.2 or 3.1) then BOOTSYS is the key program. A new CP/M 3 system can be developed and tested without disturbing the current system in any way. CPM3.COM is generated from BOOTSYS and the CPM3.SYS which emerges from a GENCPM. The CPM3.SYS on the boot drive is not touched. It is a very safe tool. Once you have a working CP/M Plus then the next exercise is to write the bootstrap loader to the system tracks of the boot disk. If your system boots from a hard drive then you need to be very careful to avoid turning the computer into a brick. This is where BOOTLDR can help. It allows you to test your loader suite *before* touching the system tracks. Note that it is a REALLY GOOD IDEA to create a bootable floppy disk before touching a hard drive. Even better, make two. There should be enough on the floppy to bring up a CP/M Plus with all the basic tools so that you have the means to fix the hard drive when it gets scrogged. I am in the process of restoring the computer which ran Tesseract RCPM+ during the 1980s. It has a barely functional CP/M Plus on the hard drive but the disk geometry is wrong so the disk will need to be reformatted. This is what prompted me to write or fix these tools. Jon Saxton January 2014