System information
The sector allocation for the standard distribution version of CP/M is given here for reference
purposes. The first sector contains an optional software boot section (see the table on the
following page). Disk controllers are often set up to bring track 0, sector 1, into memory at a
specific location, often location 0000H. The program in this sector, called BOOT, has the
responsibility of bringing the remaining sectors into memory starting at location 3400H + b. If
the controller does not have a built-in sector load, the program in track 0, sector 1 can be ignored.
In this case, load the program from track 0, sector 2, to location 3400H + b.
As an example, the Intel MDS-800 hardware cold start loader brings track 0, sector 1, into
absolute address 3000H. Upon loading this sector, control transfers to location 3000H, where the
bootstrap operation commences by loading the remainder of track 0 and all of track 1 into
memory, starting at 3400H + b. Note that this bootstrap loader is of little use in a non-MDS
environment, although it is useful to examine it because some of the boot actions will have to be
duplicated in the user's cold start loader.
This program is assembled and listed in Appendix B for reference purposes, with an assumed
origin of 100H. The hexadecimal operation codes that are listed on the left might be useful if the
program has to be entered through the panel switches.
The PUTSYS program can be constructed from GETSYS by changing only a few operations in
the GETSYS program given above, as shown in Appendix C. The register pair HL becomes the
dump address, next address to write, and operations on these registers do not change within the
program. The READSEC subroutine is replaced by a WRITESEC subroutine, which performs
the opposite function; data from address HL is written to the track given by register B and sector
given by register C. It is often useful to combine GETSYS and PUTSYS into a single program
during the test and development phase, as shown in Appendix C.
6.5 Disk Organization
6.4 Sample GETSYS and PUTSYS CP/M Operating System Manual
6-13