CP/M System Files and Manuals

CP/M System Files and Manuals

written by Maurice Hawes / SUC/UK
Source: SUC-magazine March 1993, Volume 13 Number 2, pp. 12 – 16

INTRODUCTION

In the first Part of this article ( Vol.13 No.1 ) I concluded by showing that, even when two CP/M systems superficially appear to contain the same files, close comparison may show that this is not the case. To illustrate this, I took the common set of filenames in MicroTechnology‘s MZ-80A and MZ-80B CP/M systems, and divided it into two groups. In one group, the MZ-80A and MZ-80B files were identical; but in the other group the files were different.

This forms a good starting-point for further discussion, as a very slight re-arrangement produces one group which forms the standard ‘core’ of CP/M; and another group which is ‘special‘ to, and typical of, M-T‘s CP/M systems on the MZ-80A / B and some other Sharp computers ( all files are ‘.COM‘ unless otherwise stated ):

MICROTECHNOLOGY CP/M ON THE MZ.-80A / MZ-80B, version 2.2.2.xx
Standard CP/M ‘core’ files by Digital Research

ASM, DDT, DUMP, DUMP.ASM, ED, LOAD, MOVCPM, PIP, STAT, SUBMIT, SYSGEN, and XSUB.

Note that the list above does not include the ‘resident‘ part of the CP/M System ( BIOS + BDOS ), nor the ‘Console Command Processor‘ ( CCP ) with its ‘internal‘ commands ERA, DIR, REN, SAVE, and TYPE. On the MZ-80A / B and on many other machines, these parts of CP/M and the code to ‘boot load‘ them are all ‘hidden‘ on a specially reserved section, normally the outermost tracks, of a CP/M disk, and they do not appear ( cannot possibly appear ) on a DIR listing.

The ‘resident‘ part of CP/M, and CCP, all load into high memory, but also use the area $0000 – $00FF. All other files, such as those listed above, are then loaded and run at $0100 whenever they are required ( for this reason, they are sometimes called ‘transient‘ ).

The transient ‘core‘ files listed above, and the five internal commands ERA, DIR, REN, SAVE and TYPE, are fully explained in the standard D.R. CP/M manual, and in many books written about CP/M in its heyday, so I shall not discuss them in detail here. But I must mention that ASM, DDT, ED, DUMP, DUMP.ASM, LOAD, and MOVCPM are mainly of use to expert CP/M programmers, so non-technical users may confidently erase them from all their working copies of a CP/M system disk, to leave more room for ‘applications‘. On the other hand, PIP, STAT, SUBMIT, SYSGEN and XSUB are very useful. ( PIP and SYSGEN, in particular, should always be on every system disk ).

You should note that the list above does NOT contain files to format or copy disks – CP/M has no ‘standard‘ files to do these things. Therefore, to implement CP/M on a particular machine, the software house concerned had to choose a disk format, and then write any programs needed to format and copy disks. As a result, such programs ( which should also be on every system disk ) are special ( e.g. M-T‘s FORMAT and BACKUP, see next paragraph ).

BACKUP, BOOT ( MZ-80B only ), CMT, CONFIG, CONSOLE,
COPY, DEL, EJECT, FILES, FORMAT, INIT, IODEFS.ASM, TIME

BACKUP in a menu-driven program which is self-explanatory. lt can copy in various modes, including complete disks.
BOOT ( MZ-80B only ) forces an IPL ( same as pressing IPL button )
CMT is only used on Sharp machines which have tape decks as standard equipment. lt can copy files between tape and CP/M disk, either way. The syntax is complicated, with many ‘/‘ options, and is beyond explanation here; but the two most useful options, in my experience, are:

CMT first.tap/N – loads the first tape file encountered and saves it on the default disk, as‘FIRST.TAP‘.

CMT d:file.ext – loads D:FILE.EXT and copies it to tape.

CONSOLE sets the screen display format i.e. the number of lines that can be scrolled, the screen width if applicable, and reverse or normal video. Typical syntax:

( MZ-80B ) CONSOLE S0,24,C80,N ( full screen, 80-col, normal video )
( MZ-80A ) CONSOLE L0,24,C40,R ( full screen, 40-col, reverse video )

CONFIG sets IOBYTE, the INIT command line, the inbuilt serial and parallel drivers and ( MZ-80B only ) the function keys.
COPY dumps the screen to the printer.
DEL is a check-and-delete version of the ERA command.
EJECT sends a FORM FEED to the printer.
FILES gives an alphabetically-sorted DIR, plus free space etc.
FORMAT formats a new disk ( asks for drive after loading ).
IODEFS ( as IODEFS.ASM ) an assembly source file, not needed by the normal non-technical user.
INIT is a ‘dummy‘ auto-start file, modifiable by the user to change the start-up procedure ( cf. Basic ‘AUTO RUN‘ ).
TIME accesses the built-in Sharp clock. Syntax is:

TIME ( CR ) returns the current ‘time‘
TIME HH:MM:SS ( CR ) sets the internal clock.

Most of the above files are useful to the average user ( but you may certainly erase IODEFS.ASM, and maybe EJECT and CMT as well ). In the official M-T CP/M Manuals for the MZ-80A and the MZ-80B, all these files, and other special features of the M-T systems, are described in a supplementary ‘Sharp‘ section, occupying 20 – 30 pages ( depending on the machine and the revision number ). For both machines, the last known revision number is 2.2.2.15.

MICROTECHNOLOGY CP/M ON THE MZ-700, Version 2.2.2.15

In 1989, a member of the S.U.C. rewrote the MicroTechnology 48K version of MZ-80A CP/M 2.2.2.15, for the MZ-700, as a 52K system. This MZ-700 system retains all M-T‘s ‘special‘ MZ-80A files; and although CMT.COM had to be ‘tweaked‘ for the MZ-700, the ‘Sharp‘ section of M-T‘s MZ-80A CP/M Manual is still applicable.

CRYSTAL CP/M ON THE MZ-80K ( v2.21 and v2.23 )

Few S.U.C members run this system, so it is of limited interest. But as it was the first CP/M system on a Sharp computer, it should go on record. I have not seen a Crystal CP/M Manual; but I do have Andrew Cornish‘s description of the system, first published in the Liverpool Software Gazette Vol.7, pp.10 – 13 ( 1980 ), and reprinted with corrections in Sharpsoft User Notes Vol.6, pp.20 – 25 ( 1982 ).

Crystal MZ-80K CP/M contains all the standard CP/M files except for MOVCPM. There seem to be at least two versions, 2.21 and 2.23; J. E. tells me that 2.21 ( 1980 ) produces ‘Sharp ASCII‘ files, but 2.23 ( 1983 ) produces ‘Standard ASCII‘ files, and there are other minor differences. The ‘special‘ files from Crystal, listed below, are from my 2.21 master disk ( I do not have a 2.23 master disk ):

AUTOGEN generates a ‘turnkey‘ disk, to auto-run a program.
COPY the name Crystal gave to their disk-copying utility.
EXIT exits from CP/M back to the MZ-80K ROM Monitor.
FORMAT formats a new disk.
MUSIC plays the MZ-80K 1-channel music System.
TAPE transfers files between tape and CP/M disk. Syntax is:

TAPE L ( to load the first file from tape )
TAPE S d:filename.ext ( to save specified file on tape )

TIME reads or sets the internal MZ-80K clock.

VARIOUS VERSIONS OF CP/M ON THE PC-3201

Sharp CP/M on the PC-3201, version 2.2 ( A.1 )

Sharp‘s PC-3201 CP/M starts at $4200 and expects files to load at $4300, so I cannot recommend it to anyone! But, for the record, it has the standard CP/M files ASM, ED, LOAD, MOVCPM, PIP, STAT, SUBMIT, and SYSGEN; plus a slightly non-standard DDT. In other words, it does NOT contain the files XSUB, DUMP and DUMP.ASM.

Amazingly, there are NO special files in this CP/M. In a meagre 5-page ‘Errata‘ to the standard D.R. CP/M Manual, Sharp do mention locations $4200 / $4300, and state that FDOS ‘INIT‘ must be used to format disks; but they do not mention disk-copying. So tried FDOS ‘BACKUP‘ to copy a CP/M system disk; but it was rejected as ‘SECURE‘ ( i.e. secret, not to be copied ). I did finally manage to ‘copy‘ a system disk via FDOS INIT, then SYSGEN, and PIP *.*; but as the system is virtually useless, the point is rather academic.

MicroTechnology CP/M on the PC-3201, Version 2.2.2.xx

M-T‘s implementation of CP/M on the PC-3201 relies an a plug-in ‘relocator board‘, to allow RAM to start at $0000. Once installed, the system offers ‘core‘ files ASM, DDT, DUMP, ED, LOAD, MOVCPM, PIP, STAT, SUBMIT, SYSGEN, and XSUB. My disk is version 2.2.2.00.

lt also contains M-T‘s special files BACKUP, DEL, EJECT, FILES, FORMAT, INIT, and IODEFS.ASM. These are similar to the MZ-80A / B versions and are described in M-T‘s 24-page PC-3201 supplement to the standard CP/M Manual. My supplement, version 2.2.2.02., does not mention CMT, CONFIG, CONSOLE, COPY, or TIME.

VARIOUS VERSIONS OF CP/M ON THE MZ-3500

( There are several versions by Sharp, and one by MicroTechnology. )

Sharp versions of CP/M on the MZ-3500, v1.xx and v2.0A

In all these versions, the BIOS / BDOS / CCP is stored in a VISIBLE ‘file‘ called SUBCPU.SYS, which MUST be the first file on the disk and in the directory, and of course it is fatal to delete it !

The earlier Sharp versions are numbered 1.xx, and contain the standard CP/M files ASM, DDT, DUMP, ED, LOAD, PIP, STAT, SUBMIT, SYSGEN, and XSUB; but not MOVCPM and DUMP.ASM; and only 1 special file, FORMAT. So these early Sharp versions have no disk-copying command, and the Sharp ‘extension‘ to the standard CP/M Manual, ( 19 pages, numbered E1 – E19 ) does not even mention the topic!

The later, and recommended, Sharp version ( 2.0A ) does support MOVCPM. lt also has additional special files BACKUP, DEL, EJECT, FILES, and CONFIG, covered by a further ‘supplement‘ ( 18 pages, X-1 to X-18 ) which Sharp added to the earlier 19-page ‘extension‘ ! Once you have digested all 37 extra pages, it becomes clear that V2.0A supports many extra features, such as ESC sequences for resetting the many programmable keys ( including function keys ).

MicroTechnology CP/M on the MZ-3500, version 2.2.1.00

This is the only MZ-3500 CP/M system for which I do not have the documentation. So the comments below are based on inspection of a rather grotty-looking master disk which came from EC2A ***. ( Remark by sharpmz: London / Sharpsoft )

In M-T‘s MZ-3500 CP/M, the BIOS / BDOS / CCP ( like its counterpart in the Sharp systems ) is stored as a ‘file‘; in this case it does NOT have a VISIBLE directory entry ( but it shows up as SYSTEM.DAT under a sector editor ). Standard ‘core‘ files are ASM, DDT, DUMP, DUMP.ASM, ED, LOAD, MOVCPM, PIP, STAT, SUBMIT, SYSGEN, and XSUB.

Special M-T files include BACKUP, DEL, EJECT, FILES, FORMAT, INIT, and IODEFS.ASM, which are essentially the same as described in the MZ-80A / B CP/M Manuals. There are also 6 special files for resetting disk drives ( MZ-3540, MZ-80B, PC3201, SUPER, IBMSD and 8INCH ), these are covered in detail in the MZ-3500 section of this issue. Finally, there are same undocumented special files as well – CBIOS, BIOS and DEBLOCK ( ASM files ), DISKDEF.LIB, SYSGEN.OVR.

M-T‘s MZ-3500 CP/M is VERY comprehensive, and I would dearly love to see the documentatian for it ( if it exists ). Any offers ?

SHARP‘S PERSONAL CP/M 2.2 on the MZ-800 ( and MZ-700 )

This System includes features which are not found in earlier versions of CP/M 2.2. The BIOS / BDOS / CCP is in a file called PCPM.SYS; this may be anywhere on the disk, but it MUST be first in the directory ( though it is normally hidden ). PCP/M offers the option at two screen control standards, ANSI ( default ), and VT-52.

Standard CP/M files are ASM, DDT, DUMP.ASM, ED, LOAD, PIP, STAT, SUBMIT, SYSGEN ( as COPYSYS ) and XSUB; notable omissions from this list are MOVCPM and DUMP.COM. Special files include BACKUP ( under the name COPYDISK ), DEL, DISKDEF, DISKEDIT, EJECT, FILES, FORMAT, SETUP, TIME AND VCCP.

ALL the above files are covered in the 1-volume Sharp / D.R. MZ-800 PCP/M Manual ( 370pp. approx ). New features include:

DISKDEF a cursor-driven program for setting drive B: to read various CP/M disks ( MZ-800 / 80B / 3500 / 5500, 1D / 2DIBMPC )
DISKEDIT a user-friendly direct sector-editing program, which can work in file or sector mode.
FORMAT formats a disk and THEN copies over the hidden boot-up code and PCPM.SYS. To format anly, use FORMAT/N.
SETUP another cursor-driven program, for setting up various parameters in the PCP/M system. These include the name of the auto-execute file, screen colours, CP/M device assignment ( including FD drives ), floppy-disk settings ( read after write, stepping rate ), key click on / off, MSB mask, printer ( Sharp / ASCII, CR / LF ), RS-232 settings, and definable key settings ( function keys, and others ).
VCCP ( Visual CCP ) is an optional extra CCP, which can be used as the ‘auto-execute‘ file. lt shows a 2-window screen; one is a directory of the default disk; the other is a list of commands, selectable by moving the cursor.
N.B. VCCP.COM DOES NOT LIKE VT-52 SCREEN MODE !!!

Status line ( bottom ) shows FN key settings, ‘TIME‘, and SML/CAPS.

All in all, MZ-800 PCP/M, in combination with the MZ-800 itself, with its built-in 80-column screen option and switchable printer protocol, makes a nice system ( pity Sharp didn‘t put these things on earlier MZ- machines ! ). And now, thanks to Robin Hill and John Edwards, an MZ-700 version of PCP/M ( Version 2 ) is now available, in 40 and 80-column versions ( details elsewhere in this issue ).

The above should help you sort out CP/M, and its documentation, on any Sharp machine you may acquire. lt is worth the effort, as CP/M offers a wide range of applications software which is quite good even by today‘s high standards e.g. WORDSTAR 3, SUPERCALC 2, DBASE 2.4 and, dare I say it‚ PEACHTEXT on all the above machines. And expert programmers can use DISX, DISCMOD and ZENASM. So go out and enjoy CP/M – but remember, if you have an MZ-80K, an MZ-80A or an MZ-700, it must be modified for 80 columns. No problem on the MZ-80A or MZ-700, but tricky on the MZ-80K ( talk to John Edwards ).