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