System information

The DISKS macro generates n DPHS, starting at the DPH table address DPBASE generated by
the macro. Each disk header block contains sixteen bytes, as described above, and correspond
one-for-one to each of the defined drives. In the four-drive standard system, for example, the
DISKS macro generates a table of the form:
DPBASE EQU $
DPEO: DW XLT0,0000H,0000H,0000H,DIRBUF,DPB0,CSV0,ALV0
DPE1: DW XLT0,0000H,0000H,0000H,DIRBUF,DPB0,CSV1,ALV1
DPE2: DW XLT0,0000H,0000H,0000H,DIRBUF,DPB0,CSV2,ALV2
DPE3: DW XLT0,0000H,0000H,0000H,DIRBUF,DPB0,CSV3,ALV3
where the DPH labels are included for reference purposes to show the beginning table addresses
for each drive 0 through 3. The values contained within the DPH are described in detail in the
previous section. The check and allocation vector addresses are generated by the ENDEF macro
in the RAM area following the BIOS code and tables.
Note that if the skf (skew factor) parameter is omitted, or equal to 0, the translation table is
omitted and a 0000H value is inserted in the XLT position of the DPH for the disk. In a
subsequent call to perform the logical-to-physical translation, SECTRAN receives a translation
table address of DE = 0000H and simply returns the original logical sector from BC in the HL
register pair.
A translate table is constructed when the skf parameter is present, and the (nonzero) table address
is placed into the corresponding DPHS. The following, for example, is constructed when the
standard skew factor skf = 6 is specified in the DISKDEF macro call:
XLT0: DB 1,7,13,19,25,5,11,17,23,3,9,15,21
DB 2,8,14,20,26,6,12,18,24,4,10,16,22
6.11 The DISKDEF Macro Library CP/M Operating System Manual
6-37