CP/M 1.4 disc formats

CP/M 1.4 was designed to work with 8" 250k discs. Thus a CP/M 1.4 disc will be laid out in the following way:

 77 tracks in total;
 26 128-byte sectors per track, software skewed;
  2 reserved tracks;
  2 1k directory blocks, giving 64 directory entries;
240 1k data blocks, numbered 2-241.
The skew table reads:
1,7,13,19,25,5,11,17,23,3,9,15,21,2,8,14,20,26,6,12,18,24,4,10,16,22
The reserved tracks will contain an image of CP/M 1.4, used when the system is rebooted. It can therefore be deduced that CP/M 1.4 fits in 6.5k.

CP/M 1.4 directory

The CP/M 1.4 directory only has one type of entry:

SS F1 F2 F3 F4 F5 F6 F7 F8 T1 T2 T3 EX S1 S2 RC   .FILENAMETYP....
AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL   ................

SS = Status.   0  => File exists 
             0E5h => File deleted
              80h => File exists and is hidden. This feature was undocumented
                    and does not exist in later versions of CP/M. 
Fn - filename
Tn - filetype. The characters used for these are 7-bit ASCII.
EX = Extent counter. If a file grows above 16k, then it will have multiple
    directory entries. The first entry has EX=0, the second has EX=1 etc.
    EX ranges from 0 to 31, thus allowing files up to 512k. CP/M 1.4 only
    allows 256k discs anyway.
S1 - reserved, set to 0.
S2 - reserved, set to 0.
RC - Number of records (1 record=128 bytes) used in this extent. If it is 
    >= 80h, this extent is full and there may be another one on the disc. 
    File lengths are only saved to the nearest 128 bytes.
AL - Allocation. Each AL is the number of a 1k block on the disc. If an AL
    number is zero, that section of the file has no storage allocated to it
    (ie it does not exist). For example, a 3k file might have allocation 
    5,6,8,0,0.... - the first 1k is in block 5, the second in block 6, the 
    third in block 8.

Back to the formats listing

Back to the CP/M archive list