CP/M and PCP/M on the MZ-700/800 – Disk Parameter Block & Bootstrap Code

CP/M and PCP/M on the MZ-700/800 –
Disk Parameter Block & Bootstrap Code

written by Maurice Hawes / SUC/UK
Source: SUC-magazine July 2003, Volume 23 Number 2, pp. 17 – 20

There are 8 different systems available on the MZ-700 and MZ-800:-

5.25″ 35-track CP/M 2.2.2.15 ( MZ-700 only )
3.5″ 80-track CP/M 2.2.2.15 ( MZ-700 only )
5.25″ 40-track Sharp PCP/M ( 2 versions, for MZ-700 and MZ-800 )
3.5″ 80-track Sharp PCP/M ( 2 versions, for MZ-700 and MZ-800 )
5.25″ 40-track SDS/400 PCP/M ( MZ-800 only )
3.5″ 80-track SDS/768 PCP/M ( MZ-800 only )

However, the DPB displays for the CP/M 2.2.2.15 systems listed above are the same as on those given for the MZ-80B on pages 11 – 12 of this Magazine. This article therefore covers only the PCP/M systems listed above.

DPB Display for 5.25″ 40-track MZ-700 PCP/M ex Robin Hill

Sectors per Track
32
Block Shift ( BSH )
4
Block Mask ( BLM )
15
Extent Mask ( EXM )
1
Total Blocks ( DSM )
155
Directory Entries ( DRM )
63
Allocation 0 (AL0)
80
Allocation 1 (AL1)
0
Cylinder Offset (OFS)
1

( PCP/M, like most other CP/M systems, uses 128-byte Iogical sectors )
In this version of PCP/M each side of a 5.25″ disk holds 40 ‘Logical Tracks’. A double-sided disk is therefore seen as 80 ‘Logical Tracks’ and the overall capacity of such a disk is
128 * 32 * 80 = 327,680 ( 320K ).

BSH = 4 and BLM = 15 both give a block size of 2K ( 2048 bytes ).

EXM = 1 implies that, in this case, a ‘Physical Extent’ contains TWO ‘Logical Extents’ and is therefore 32K.

DSM = 155 implies that a disk contains 156 CP/M blocks ( i.e. 312K ).

DRM = 63 implies that the Directory can hold 64 entries.

AL0 – AL1 = 1000 0000 implies that the Directory is allocated just the first CP/M blocks ( i.e. Block 00, 2K ).

OFS = 1 implies that Track 0 is reserved for system use, and that the first CP/M block ( Block 00 ) is at the start of Track 1.

Further Information

The total ‘User Area’ is 312K, and FILES.COM comes up with this figure. However, the Directory occupies 2K and PCPM.SYS occupies 16K of the ‘User Area’ so the real ‘Free Space’ available for user files is 18K less i.e. 294K per disk.

Track 0 on any PCP/M Master Disk is in Sharp format. Therefore you cannot access this track with the DISKEDIT program that comes with PCP/M. But if you boot an SUC master of MZ-700 Disk Basic and then run DISKEDIT.S7, you can examine the bootstrap code on Track 0 Sectors 1 – 7. Note, however, that there are two versions – one designed to boot in 40 columns on a standard MZ-700, the other to boot in 80 columns on a modified 80-column MZ-700.

DPB Display for 3.5″ 80-track MZ-700 PCP/M ex Robin Hill

 

Sectors per Track 64
Block Shift ( BSH )  5
Block Mask ( BLM )  31
Extent Mask ( EXM )  3
Total Blocks ( DSM ) 158
Directory Entries ( DRM )  127
Allocation 0 (AL0) 80
Allocation 1 (AL1) 0
Cylinder Offset (OFS) 1

( PCP/M, like most other CP/M systems, uses 128-byte Iogical sectors )
In this version of PCP/M a ‘Logical Track’ extends over BOTH sides of a disk and there are therefore only 80 ‘Logical Tracks’ on the disk as a whole, and the overall disk capacity is
128 * 64 * 80 = 655,360 bytes ( 640K ).

BSH = 5 and BLM = 31 both give a block size of 4K ( 4096 bytes ).

EXM = 3 implies that, in this case, a ‘Physical Extent’ contains FOUR ‘Logical Extents’ and is therefore 64K.

DSM = 158 implies that a disk contains 159 CP/M blocks ( i.e. 636K ).

DRM = 127 implies that the Directory can hold 128 entries.

AL0 – AL1 = 1000 0000 implies that the Directory is allocated just the first CP/M blocks ( i.e. Block 00, 4K ).

OFS = 1 implies that Track 0 is reserved for system use, and that the first CP/M block ( Block 00 ) is at the start of Track 1.

Further Information

The ‘User Area’ is 636K, but 4K of this is allocated to the Directory and the system file PCPM.SYS occupies 16K of the ‘User Area’; so the space available for user files is 616K per disk. FILES.COM confirms this figure.

Track 0 on any PCP/M Master Disk is in Sharp format. Therefore you cannot access this track with the DISKEDIT program that comes with PCP/M. But if you boot an SUC master of MZ-700 Disk Basic and then run DISKEDIT.S7, you can examine the bootstrap code on Track 0 Sectors 1 – 7. Note, however, that there are two versions – one designed to boot in 40 columns on a standard MZ-700, the other to boot in 80 columns on a modified 80-column MZ-700.

DPB Display for 5.25″ and 3.5″ versions of MZ-800 PCP/M

For the reasons given above, the bootstrap code on Track 0 of an MZ-800 PCP/M disk must be viewed under Sharp Disk Basic. Full instructions for doing this appear on the following page, under ‘Further Information’.
The DPB displays are both the same as in the MZ-700 versions above, and the ‘Free Space’ per disk is the same i.e. a 5.25″ disk gives 294K of ‘Free Space’, and a 3.5″ disk gives 616K of ‘Free Space’.

N.B. FILES.COM as supplied in Sharp PCP/M does NOT give the correct ‘Free Space’ figures for these systems. FILES.COM as supplied in SDS PCP/M does give the correct figures and has therefore been added to these MZ-800 systems under the distinguishing name SDSFILES.COM.

DPB Display for 5.25″ 40-track SDS/400 PCP/M

Sectors per Track 80
Block Shift ( BSH ) 4
Block Mask ( BLM ) 15
Extent Mask ( EXM ) 1
Total Blocks ( DSM ) 191
Directory Entries ( DRM ) 127
Allocation 0 (AL0) C0
Allocation 1 (AL1) 0
Cylinder Offset (OFS) 1

( PCP/M, like most other CP/M systems, uses 128-byte Iogical sectors )
In this version of PCP/M a ‘Logical Track’ extends over BOTH sides of a disk and there are therefore only 40 ‘Logical Tracks’ on the disk as a whole, and the overall disk capacity is
128 * 80 * 40 = 409,600 bytes ( 400K ).

BSH = 4 and BLM = 15 both give a block size of 2K ( 2048 bytes ).

EXM = 1 implies that, in this case, a ‘Physical Extent’ contains TWO ‘Logical Extents’ and is therefore 32K.

DSM = 191 implies that a disk contains 192 CP/M blocks ( i.e. 384K ).

DRM = 127 implies that the Directory can hold 128 entries.

AL0 – AL1 = 1100 0000 implies that the Directory is allocated just the first TWO CP/M blocks ( i.e. Blocks 00 & 01, which total 4K ).

OFS = 1 implies that Track 0 is reserved for system use, and that CP/M Block 00 is at the start of Track 1.

Further Information

The ‘User Area’ is 384K, but 4K of this is allocated to the Directory and the system file PCPM.SYS occupies 16K of the ‘User Area’; so the space actually available for user files is only 364K per disk.

The FILES.COM program supplied by SDS ( which has been renamed SDSFILES.COM to avoid confusion with the Sharp version of FILES.COM ) works correctly, and thus confirms that the space available to the user is 364K per disk.

Track 0 on any PCP/M Master Disk is in Sharp format. Therefore you cannot access this track with the DISKEDIT program that comes with PCP/M. But if you put your MZ-800 into MZ-700 mode, boot an SUC master disk of MZ-800 Disk Basic, and then enter the command:

RUN “DISKEDIT.804/80“,R

You can then examine Track 0 of ANY PCP/M master disk ( in every case, the bootstrap code is on Track 0 Sectors 1 – 7 ). As a matter of interest the bootstrap code on an SDS PCP/M disk differs significantly from that on a Sharp PCP/M disk, and although it does not take up any more space it manages to include a very long copyright message referring to Digital Research, SHARP Corporation, and ‘sds Computer Service, Daun’.

DPB Display for 3.5″ 80-track SDS/768 PCP/M ex Robin Hill

 

Sectors per Track 80
Block Shift ( BSH ) 5
Block Mask ( BLM ) 31
Extent Mask ( EXM ) 3
Total Blocks ( DSM ) 196
Directory Entries ( DRM ) 127
Allocation 0 (AL0) 80
Allocation 1 (AL1) 0
Cylinder Offset (OFS) 1

( PCP/M, like most other CP/M systems, uses 128-byte Iogical sectors )
In this version of PCP/M a ‘Logical Track’ extends over BOTH sides of a disk and there are therefore only 80 ‘Logical Tracks’ on the disk as a whole, and the overall disk capacity is
128 * 80 * 80 = 819,200 bytes ( 800K ).

BSH = 5 and BLM = 31 both give a block size of 4K ( 4096 bytes ).

EXM = 3 implies that, in this case, a ‘Physical Extent’ contains FOUR ‘Logical Extents’ and is therefore 64K.

DSM = 196 implies that a disk contains 197 CP/M blocks ( i.e. 788K ).

DRM = 127 implies that the Directory can hold 128 entries.

AL0 – AL1 = 1000 0000 implies that the Directory is allocated just the first CP/M block ( i.e. Block 00, 4K ).

OFS = 1 implies that Track 0 is reserved for system use, and that CP/M Block 00 is at the start of Track 1.

Further Information

The ‘User Area’ is 788K, but 4K of this is allocated to the Directory and the system file PCPM.SYS occupies 16K of the ‘User Area’; so the space actually available for user files is 768K per disk.

The FILES.COM program supplied by SDS ( which has been renamed SDSFILES.COM to distinguish it from the original Sharp PCP/M version of FILES.COM ) gives a slightly different answer ( 764K ). The reason for the 4K error in the ‘Free Space’ returned by SDSFILES.COM is currently unknown, but 764K is much more accurate than the figure given by the Sharp version of FILES.COM, which assumes a block size 2K and comes up with the answer 394K!

Track 0 on any PCP/M Master Disk is in Sharp format. Therefore you cannot access this track with the DISKEDIT program that comes with PCP/M. But if you put your MZ-800 into MZ-700 mode, boot an SUC master disk of MZ-800 Disk Basic, and then enter the command:

RUN “DISKEDIT.804/80“,R

You can then examine Track 0 of ANY PCP/M master disk ( in every case, the bootstrap code is on Track 0 Sectors 1 – 7 ). As a matter of interest the bootstrap code on an SDS PCP/M disk differs significantly from that on a Sharp PCP/M disk, and although it does not take up any more space it manages to include a very long copyright message referring to Digital Research, SHARP Corporation, and ‘sds Computer Service, Daun’.