[net.micro.cpm] CP/M disk format information.

mjg@ecsvax.UUCP (12/07/83)

Help wanted on compiling CPM disk format data !
-----------------------------------------------

This is a follow-up to a previous message I sent out requesting
help on cp/m disk formats. While I got several replies nobody
was actually able to give me any hard information. In the mean
time I have been analyzing what information I have been able to
get hold of from other sources. So far I have partial information
on the following formats:
Note: for those formats marked with a * I have actual sample
disks and need no further information.


5 inch formats:

TRS80 Model 1 (Omicron Mapper 1)  SD,SS
TRS80 Model 3 (MM Shuffle Board)  DD,SS
              (Holmes Vid 80 )    DD,SS
              (Hurricane I & II)  DD,SS *
TRS80 Model 4 (Montezuma Micro)   DD,SS DD,DS *
IBM PC CPM-86                     DD,SS *
ATR      8000                     DD,SS
CCS                               DD,SS
Xerox 820-1                       SD,SS
      820-2                       DD,SS
Osborne  1                        SD,SS
   "     Executive                DD,SS
Kaypro 2                          DD,SS *
Zenith   H-89                     SD,SS
   "     Z-100                    DD,SS
NEC      PC-8001A                 SD,SS
Cromemco Z-2                      SD,SS
   "                              DD,SS
Eagle    80 track                 DD,SS
Lobo     Max-80                   DD,SS
LNW      LNW80                    DD,SS
Morrow   Micro Decision           DD,SS
Access   Matrix                   DD,SS
DEC      VT180                    DD,SS  *
SD                                SD,SS  *
SD                                DD,DS  *

Apple* II Softcard                Apple  *

8 inch formats:
Standard 77 track 26 sector       SD,SS  *

If anyone is willing to help me I will gladly give them
a copy of the information I have to date. I need help in one
of the following forms:

1) A freshly formatted disk with a single reasonably sized text
   file on it. The file must be large enough to span at least 2
   tracks. This is sufficient to extract all the parameters below.
   After analyzing I will return the original untarnished!.

2) The alternative, if you can provide it is to provide me with
   the following data:

Computer Make and Model No.
Disk Size, 5 or 8 (or 3 1/4 or 3 1/2!) inch
Is the format one or two side
Single or Double Density?
No of tracks, e.g. 35,40,77,80 etc.
Sector Size in Bytes.
Physical sector sequence on the disk. This is needed for
    optimum formatting. 8 inch SS,SD for instance has the
    sectors numbered 1,2,3,4,5........26.
Sector translate table. This tells the bios when you ask
    for a given sector number what actual sector to give.
    8 inch SS,SD has a table that starts 1,7,13,.....
Directory offset. This tells CPM what track the directory is on.
Directory size in sectors, bytes and number of files.
Sectors per track.

Some of the above information is contained in a standard CP/M
table in your BIOS in the following format, ( I will give the
numbers for standard SS,SD 8 inch as an example):

SPT 1A00  (no of equivalent 128 byte sectors/track)
BSH 03    (Block Shift = Log base 2 of block size in sectors)
BLM 07    (Block mask = no of 128 bytes in block - 1)
EXM 00    (Extent mask, relates disk size and block size)
DSM F200  (Highest block number on disk - 1 )
DRM 3F00  (No of entries in directory -1 )
ALO C000  (Each bit set in ALO represents 1 block in the directory)
CKS 1000  (No of 128 byte sectors in directory )
OFF 0200  (Directory offset in tracks)

>From the above the block size is 8 128 byte sectors or 1k, the directory
2 and occupies 16 sectors or 2 blocks with 64 entries max.
Note that 2 byte values are expressed least significant byte first.

Please reply to me here at ecsvax!mjg by computer mail, or
Mike Gingell, PO Box 51155, Raleigh, NC 27609 or by phone (out of
work hours 919 847 4779). Eventually I will publish the entire
data base on net.cpm but not for some considerable time until
I have acumulated and verified as much as possible. The only sure
way is to get disk produced on the original machines and see if
my program can read them.

Regards to all CPM users out there wherever you are,

               Mike Gingell,
                   PO Box 51155
                      Raleigh NC 27609

                       ....ecsvax!mjg