]-------------------------------------------- SCUA: October 1984. Vol 84-139
SHEDDING A BIT OF LIGHT ON DISK FORMATS Andrew Morland.
======================================= ===============
35, Avenue Chevreul, Bois-Colombes, France. Tel (1) 784.89.56
[Ed: The following is part 1 a series of articles on disk formats which are too
long to publish in one go. The tables will be in the November N/L.]
Ever since I started word processing (1980), I've been trying to get some sense
on the subject of disk compatibility from suppliers ond other people who-ought-
to-know. I felt then, and I still feel, that if only the manufacturers hadn't
gone out of their way to make things difficult, floppy disks would be an ideal
medium for communicating large amounts of text over space ond time (eg. to send
my Australian correspondent a machine-readable copy of a patent I'm drafting
now, so that he can amend it easily in response to Australian patent office
objections in, say, three years' time).
For years I was simply fobbed off with remarks like "can't be done" or "too
messy". But a little information did begin to trickle in. Then one or two firms
started selling programs to read several formats on this or that specified
machine.
Mechanical compatibility:
Drives come in various sizes eg. 8" and 5" which con't read disks for another
size. 5" drives come in three different stepper motor pitches: 48, 96, and 100
tracks per inch (tpi). Some drives are switchable between 48 and 96. The number
of tracks actually used is under software control and is not a direct function
of the drive mechanics, but in general: 35 or 40 tracks means 48 tpi, 80 tracks
means 96 tpi and 77 tracks means 100 tpi. Finally, for double sided operation,
the drive must have two heads.
Electrical compatibility:
Data is written onto disks in two stages, in a first stage (track formatting) a
lot of blank data is written onto the disk, together with "sign-posts" marking
the beginnings and ends of sectors. This is true both of hard sectored disks
(the ones with lots of little holes round the hub) and of soft sectored disks.
In a second stage, the operating systems writes and reads useful data in the
places marked in the track formatting stage.
Different disk controller electronics produce (at least) the following mutually
incompatible kinds of track format:
1) Soft sectoring on the lines laid down by IBM in about 1970 and generally
embodied in the Western Digital family of chips;
2) Soft sectoring in any of the various ways devised for CBM, Sirius, or Apple;
3) Hard sector 10 sectors per track (North Star and Vista are similar enough
for software to get round their mutual incompatibilities); and
4) Micropolis 16 sectors per track and either 48 or 100 tpi. The only soft
sectored 100 tpi formats I am aware of are used by the Exidy Sorcerer, which
started in Micropolis hard sector format and then moved on to soft sector
using the same drives, but a different controller card.
A controller card also needs to be able to control selection of one or other
head of a double-headed drive and to be able to cope with single density or
double density or both. For simplicity let's assume that there is only one
kind of single density recording scheme (FM) and only one kind of double
density recording scheme (MFM).
Operating system compatibility:
Each operating system has its own idea of where to store directory information
on a disk, and what kind of information it will use to locate a file, and as a
side issue, it may encode directory data (eg. DEC RT/11 packs a file name at
six bits per letter).
Skew:
The best way to use a disk is to read or write an entire track in one go. This
is what the IBM PC does, for instance. However, an entire track may have 6K
bytes or more of data, and a smaller buffer may be preferred. The buffer must
be at least one host (ie. on-the-disk) sector long. Common sector lengths are
128, 256, 512 and 1024 bytes. In between reading or writing each sector in a
sequence of sectors the computer needs to do various bits at computing, eg.
transferring data from an input buffer to where it's needed in RAM or vice
versa. This takes finite time, during which the disk moves on. Thus the next
sector actually available when the computer is next ready for disk I/O is not
the immediately adjacent sector, but rather the next-sector-but-N. This has
lead to two different schemes for interleaving sectors round a track, both
schemes being called "skewing".
1) The sectors round a track are numbered in sequence, but the cunning operating
system asks the disk controller hardware to work on sectors in a funny order,
eg. 1, 7, 13, 19, 25, 5, 11, 17, 23, 3, 9, 15, 21, 8, 14,
]-------------------------------------------- SCUA: October 1984. Vol 84-140
20, 26, 6, 12, 18, 24, 4, 10, 16, and 22, instead of 1, 2, 3, ... .
2) The sectors are initially numbered in a related higgledy-piggledy order
round a track by the original track formatting operation eg. in the above
example, the sector numbered 2 would be in 7th place, the sector numbered 3
would be in 13th place, and so on. With this second system, skewing is done
"once-and-forever" by the formatting program, and thereafter the operating
system just asks for the sector number it first thought of.
Note that the principle of giving sectors labels that do not make sense at
first glance can be taken to greater lengths: the associated recorded track
number need not match the host track, and sector and/or track numbering can
start at various arbitrary values. Tracks generally start at 0 for the outside
track, but sectors commonly start at 1, with 0 and 81H being alternatives
mentioned in the tables below.
CP/M variants:
The strength of CP/M is that many of its format features are table-driven so
that each manufacturer can do what it thinks best in disk usage. The weakness
is that this gives rise to a lot of not-quite compatible formats. Tables of
relevant information follow, but several words of explanation are needed first.
CP/M provides for a "disk parameter block" (DPB) which defines most of the
features a designer needs to be able to modify in order to fit CP/M to some
specific hardware, eg double sided 48 tpi drives, a double density controller
card, and a Winchester hard disk unit. Although floppy disks are the only kind
of disk of interest in trying to exchange data, the DPB table must also be
capable of coping with hard disks, which means that in giving "likely" ranges
of values below, I have limited myself to the more likely parameters for floppy
disks only.
SPT is a word defining the number of 128-byte CP/M sectors per track. These
CP/M sectors are usuaIly bunched into "host" sectors of 256, 512 or 1024 bytes
per sector. The number of bytes per host sector is an essential item of
information for your BIOS, but does not appear in the DPB, since CP/M "thinks"
in 128 byte sectors at all times.
Likely values of SPT are: 12H for 5" SD 128 bytes/sector (BPS)
14H for 5" SD 256 BPS
20H for 5" DD 256 BPS
22H for 5" DD 256 BPS
24H for 5" DD 256 or 512 BPS
28H for 5" DD 512 or 1024 BPS
1AH for 8" SD 128 BPS
34H for 8" DD 256 BPS
(sorry, no examples of 512 BPS)
40H for 8" DD 1024 BPS
(One of the common double sided schemes "pretends" that the extra sectors on
the "other" side run on from the sectors on "this" side, in which case the SPT
number is doubled).
It should be possible to write a routine for inspecting an "alien" disk,
determining the size and number of the host sectors, and then setting SPT
accordingly. Also, if the sector numbering around the track turns out to be
skewed, there is a very good chance that no further skew data is required.
BSH and BLM are two single byte values defining the SAME quantity, namely the
"block" length. CP/M allocates disk space to files in whole numbers of "blocks"
so half a block length is "wasted" by each file on the disk (on average in the
long run, and assuming that files come in random lengths that are long in
comparison with the block length). Likely values are as follows:
Block length BSH BLM
1K = 8 CP/M sectors: 03 07
2K = 16 sectors : 04 0F
4K = 32 sectors : 05 1F
in other words block length in CP/M sectors is equal to 2 to the power BSH or,
alternatively, it is equal to BLM + 1.
EXM is the extent folding mask. After blocks, CP/M "thinks" in "extents" which
are chunks 16K bytes long, regardless of block size. EXM indicates the number
of 16K byte extents that can be pointed to from a single directory entry.
Likely numbers are: 0 means 1 extent, 1 means 2 extents, and 3 means 4 extents;
ie. there are EXM + 1 extents possible into each directory entry; for example,
by using an EXM of 0, where 1 would have been possible, 8 bytes in each entry
could be "reserved", (or wasted, depending on how you look at it).
]-------------------------------------------- SCUA: October 1984. Vol 84-141
DSM is a word defining the number of blocks on a given disk, with the blocks
being numbered 0 thru DSM, ie. there are DSM + 1 blocks on the disk. This
number includes the blocks used by the directory, but does not include the
tracks reserved for the operating system. This number of tracks is given by the
word OFF. Thus:
1) (BLM + 1)/8 = block size in K bytes
2) (DSM + 1)(block size) = Storage in K bytes
3) OFF + 8 x (Storage in K bytes)/SPT = tracks
DSM has an effect on EXM: if DSM is a one-byte value, then twice as many blocks
can be pointed to in a given 16 byte length of directory than would be possible
if DSM were a two-byte value. Another twist is that each directory entry must
be capable of pointing to at least one entire extent, which means that 1K byte
blocks can only be used with a disk having a DSM of FF or less.
The remaining three entries relate to directory size. The directory always
starts at block 0, and a whole number of blocks must be assigned to the
directory. Each block assigned to the directory is represented by a
corresponding 1 bit in the allocation vectors 0 and 1. Thus likely values of
AL0 are 80 (for one directory block) C0 for 2 blocks, E0 for 3 blocks and F0
for 4 blocks. The rest of AL0 and all of AL1 are all zeros on floppy systems.
DRM is the maximum directory entry number (numbering is 0 thru DRM so there are
DRM + 1 directory entries), and CKS is the number of CP/M directory sectors to
be checked (to make a surreptitiously changed disk R/O) and is thus normally
equal to (DRM + 1)/4. Since there are 4 directory entries to one CP/M sector or
32 entries to 1K bytes, the following values are likely for DRM->CKS:
AL0 80 C0 E0 F0
Block size 1 block 2 blocks 3 blocks 4 blocks
1K 1F->08 3F->10 5F->18 7F->20
2K 3F->10 7F->20 BF->30 FF->40
4K 7F->20 FF->40 17F->60 1FF->80
Warnings:
Given a defined block size and AL0, DRM may be less than the value given in the
table. Some manufacturers appear to have used this as a way of "reserving" some
of the directory space on a disk for a little bit of system that wouldn't
squeeze into the available system track space. For example, Kaypro appears to
get away with a single system track (OFF = 1) by putting some of the system
into space "allocated" to the directory. I call this a "funny". Similary CKS
may be smaller than the value expected from DRM, eg. half the expected value,
in order to speed up directory checking at the expense of confusion if two
disks have identical first directory halves but different second halves, and
are then surreptitiously swapped without doing a control-C. One of the many
reasons for hard disks being foster than floppies is that it is safe do no
directory checking since the medium is fixed.
At first glance that gives an awful lot of possible formats. But the number of
likely formats is only "moderately" large, say a few thousand. Look at it from
a designer's point of view: for a single sided format, the possible variations
in drive diameter (8" or 5") and in sector size (128, 256, 512, or 1024) give
rise in a slightly roundabout way to about 8 different possible values for SPT
(say 3 bits of data); by convention the number of tracks on a disk is 35, 40,
77, or 80 (two more bits, total = 5); block size is "normally" 2K, but
"abnormally" it may be 1K on a small system or 4K on a big system (one more bit
only, total = 6); the number of system tracks is nearly always 2 or 3, but 1
and 4 happen often enough to be watched for (2 more bits total = 8); and the
directory may 1 to 4 blocks long (2 more bits, total = 1024). That leaves out
double sided formats, skew, and "funnies".
Double sided formats:
CP/M "expects" only one side, so all double sided schemes work by "pretending"
that the data on the "other" side of the disk is located in extra sectors or in
extra tracks on "this" side of the disk. With extra sectors, the SPT number is
double the equivalent single density number, and the BIOS has to sort out
whether the extra sectors are from SPT/2 up (the only kind I've seen with CP/M)
or every other host sector (seen on other operating systems). With extra tracks
several schemes are about: odd tracks on one side even tracks on the other is
the most popular; but the first half of the tracks may be on "this" side and
the second half may be on the 'other" side, in which case the tracks on the
"other" side may be numbered from the outside inwardly (just like "this" side)
or from the inside outwardly.
These various conventions are hinted at in the DS column of the tables by sec
for extra sectors, tks for extra tracks, 35+ for tracks 0 to 34 on "this" side
with tracks 35+ on the "other" side counting in the usual direction; 40+ is the
same for a 40 track format, and 79- means counting backwards on the "other" side
of a 40 track system (ie. CP/M's "pretend" track 41 is actually 79-41 = 38,
]-------------------------------------------- SCUA: October 1984. Vol 84-142
but on the "other" side). All the above systems assume that the track
format of both sides is the same and is conventional, ie. track 0 at the
outside to track N near the hub and sector numbering 1 to n on each track.
Other track formats count as "funnies". By convention "this" side is side 0 and
the "other" side is side 1 - jargon can get very confusing!
Skew:
The skew "factor" is quoted as the number of CP/M 128 bvte sectors between the
first CP/M sector number in the first host sector and the first CP/M sector
number in the second host sector. The skew factor must therefore be an integer
multiple of the host sector size in 128 byte units. The skew tables use the
convention that CP/M sectors are numbered 1 to SPT around a track.
If you want to do lots of different skews, it is cheaper on memory to define
any particular skew with a table of 6 or so bytes and then calculate the skew,
rather than solemnly listing all the numbers as in the tables, and then looking
the skew up. Skew can be calculated using the following arbitrary data: skew
factor, host sector size, SPT, flag for double sided scheme, end correction
(ie. where to pick up sector numbers on the second circuit round a track), and
CP/M number of first sector per track (an Exidy funny).
Funnies: I've given special columns to three other "funnies":
1) the lowest sector number used by the track format: HP and Lobo use 0 instead
of 1 while Datavue uses 81H!
2) whether the data needs inverting to make sense (Superbrain seem to use a
different data convention from the rest of us);
3) for a double density system: the number of the track on which double density
starts. I've put "all" instead of "0" to avoid being misleading. It took me
some time to get my BIOS to accept double density track 0, and I'm now
trying to twist its arm to cope with double density starting on track 2.
Remaining "funnies" have a11 been mentioned above with reference to the DPB:
(EXM) maximum extent folding is not essential;
(DRM) more blocks may be allocated to the directory than are actually used by
the directory· and
(CKS) a reduced number of directory sectors may be checked.
THE TABLES
The following tables are derived from numerous sources including magazine
articles, manuals for various items of equipment, and disassembling several
BIOS's and programs for doing lots or formats. The whole point of my doing the
tables in the first place was simply to try to get the data into consistent
form. I hope the resulting explanation is understandable (well, at least on
second reading).
I have used an exclamation mark (!) to flag items I guess are wrong, but there
may be other errors too. Question marks (?) mean that I think I've interpreted
the relevant source correctly - but I might be quite mistaken. Underlined (_)
means I know it's odd, but I'm convinced it's right all the same. Within any
one subdivision, formats are listed in order of increasing DSM.
All the values of your own DPB can be deduced by using the above equations on
the information given to you by STAT when you type: STAT DSK:<CR>.
Unfortunately this only works on "home" disks, STAT is not capable of deducing
the DPB of any old "alien" disk you might slot into one of your drives.
Data about:
skew;
host sector size and numbering;
data inversion;
where double density starts on a double density disk; and
what scheme is used for access to the "other" side
is rather harder to winkle out.
[Ed: to be continued next month.]
]-------------------------------------------- SCUA: November 1984. Vol 84-162
SHEDDING A BIT OF LIGHT ON DISK FORMATS - The Tables. Andrew Marland.
===================================================== ===============
[Ed: This is part 2 of Andrew's huge article, the first part being
published last month. Please refer to Part 1 for explanations of the
various symbols.]
SINGLE SIDED 5.25" FORMAT TABLES FOR CP/M
-----------------------------------------
5" 48 tpi SS SD - Soft Sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
Osborne 1 : 14 00 04 0F 01 2D 00 3F 00 80 00 10 00 03 00 : OSB1 4 : 2K 92K 40 : 256 1 : no : SD SS
TRS-80 1 Omikr.: 12 00 03 07 00 47 00 3F 00 C0 00 10 00 03 00 : TRS1 4 : 1K 72K 35 : 128 1 : no : SD SS
Cromenco : 12 00 03 07 00 52 00 3F 00 C0 00 10 00 03 00 : CDOS1 5 : 1K 83K 40 : 128 1 : no : SD SS
Xerox 820 : 12 00 03 07 00 52 00 1F 00 80 00 08 00 03 00 : CDOS1 5 : 1K 83K 40 : 128 1 : no : SD SS
Sorcerer Dtrio.: 12 00 03 07 00 54 00 3F 00 C0 00 10 00 02 00 : 0 0 : 1K 85K 40 : 128 1 : no : SD SS
5" 48 tpi SS DD - Soft Sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
35 tracks
Aardvark : 28 00 04 0F 01 51 00 3F 00 80 00 10 00 02 00 : Aard 08 : 2K 164K 35 : 512 1 : no : DD SS
Superbrain (JR): 28 00 04 0F 01 51 00 3F 00 80 00 10 00 02 00 : Aard 08 : 2K 164K 35 : 512 1 : yes : DD SS
CCS SS DD : 28 00 03 07 00 9F 00 3F 00 C0 00 10 00 03 00 : CCS 18 : 1K 160K 35 : 1024 1 : no : DD SS
40 tracks
Sorcerer Exidy : 20 00 04 0F 00 4B 00 7F 00 C0 00 20 00 02 00 :Exidy 0A : 2K 152K 40 : 256 1 : no : all SS
Heath Magnolia : 24 00 04 0F 01 52 00 5F 00 C0 O0 18 00 03 00 : 0 0 : 2K 166K 40 : 512 1 : no : DD SS
TRS-80 III (MM): 24 00 04 0F 01 54 00 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 170K 40 : 256 1 : no : all SS
Cromenco+Int1T.: 28 00 04 0F 01 5E 90 7F 00 F0 00 20 00 02 00 :Int1T 0C : 2K 190K 40 : 512 1 : no : DD SS
Morrow : 28 00 04 0F 01 5E 00 7F 00 C0 00 20 00 02 00 : CCS 18 : 2K 190K 40 : 1024 1 : no : all SS
Sorcerer CData.: 28 00 04 0F 00 5E 00 7F 00 C0 00 20 00 02 00 :CData 08 : 2K 190K 40 : 512 1 : no : all SS
Superbrain 40tk: 28 00 04 0F 01 5E 00 3F 00 80 00 10 00 02 00 : Aard 08 : 2K 190K 40 : 512 1 : yes : DD SS
NEC 8001 PC : 20 00 03 07 00 97 00 3F 00 C0 00 10 00 02 00 : 0 0 : 1K 152K 40 : 256 1 : no : DD SS
Zenith Z-100 : 20 00 03 07 00 97 00 7F 00 F0 00 20 00 02 00 : 0 0 : 1K 152K 40 : : no : DD SS
Zenith Z-100(!): 20 00 03 07 00 97 00 7F 00 C0 00 20 00 02 00 : 0 0 : 1K 152K 40 : 512 1 : no : 1? SS
Zenith Z-90 : 20 00 03 07 00 97 00 7F 00 F0 00 20 00 02 00 : 0 0 : 1K 152K 40 : 256 1 : no : DD SS
IBM PC CP/M-86 : 20 00 03 07 00 9B 00 3F 00 C0 00 10 00 01 00 : 0 0 : 1K 156K 40 : 512 1 : no : DD SS
TI Professional: 20 00 03 07 00 9B 00 3F 00 C0 00 10 00 01 00 : 0 0 : 1K 156K 40 : 512 1 : no : DD SS
Xerox 820 DD : 22 00 03 07 00 9C 00 3F 00 C0 00 10 00 03 00 : 0 0 : 1K 157K 40 : 256 1 : no : DD SS
Lobo Max 80 : 24 00 03 07 00 A5 00 3F 00 C0 00 10 00 03 00 : 0 0 : 1K 166K 40 : 256 ? : no : DD SS
Actrix : 24 00 03 07 00 AA 00 3F 00 C0 00 10 00 02 00 :Actrx 0C : 1K 171K 40 : 512 1 : no : DD SS
DEC Robin VT180: 24 00 03 07 00 AA 00 3F 00 C0 00 10 00 02 00 : Aard 08 : 1K 171K 40 : 512 1 : no : DD SS
Olivetti ETV300: 24 00 03 07 00 AA 00 3F 00 C0 00 10 00 02 00 :Olive 04 : 1K 171K 40 : 256 1 : no : 1? SS
Sorcerer Dtrio.: 24 00 03 07 00 AA 00 3F 00 C0 00 10 00 02 00 : 0 0 : 1K 171K 40 : 256 1 : no : 1? SS
Osborne 1 (DD) : 28 00 03 07 00 B8 00 3F 00 C0 00 10 00 03 00 : 0 0 : 1K 185K 40 : 1024 1 : no : DD SS
ATR 8000 : 28 00 03 07 00 BD 00 3F 00 C0 00 10 00 02 00 : 0 0 : 1K 190K 40 : : no : DD SS
Cromenco CBOS : 28 00 03 07 00 BD 00 3F 00 C0 00 10 00 02 00 : 0 0 : 1K 190K 40 : 512 1 : no : DD SS
Kaypro II : 28 00 03 07 00 C2 00 3F 00 F0 00 10 00 01 00 : 0 0 : 1K 195K 40 : : no : DD SS
TRS-80 4 (Aero): 28 00 03 07 00 C2 00 3F 00 F0 00 10 00 01 00 : 0 0 : 1K 195K 40 : : no : DD SS
]-------------------------------------------- SCUA November 1984. Vol 84-163
5" 96 and 100 tpi SS DD - Soft and Hard Sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
71 or 80 tracks & 96 or 100 tpi
Sorc. Exidy HS: 20 00 04 0F 00 95 00 7F 00 C0 00 20 00 02 00 :Exidy 0A : 2K 300K 77 : 256 1 : no :all SS
Sorc. Microp HS: 20 00 04 0F 00 95 00 7F 00 C0 00 10 00 02 00 :Microp0A : 2K 300K 77 : 256 1 : no :all SS
Sorc. Exidy SS: 20 00 04 0F 00 95 00 7F 00 C0 00 20 00 02 00 :Exidy 0A : 2K 300K 77 : 256 1 : no :all SS
Sanyo MBC : 20 00 04 0F 01 9B 00 3F 00 80 00 10 00 02 00 :Sanyo 06 : 2K 312K 80 : 256 : no :all? SS
Sorcerer Dtrio.: 24 00 04 0F 01 AE 00 3F 00 80 00 10 00 02 00 : 0 0 : 2K 350K 80 : 256 1 : no : 1 SS
Sorcerer CData.: 28 00 04 0F 00 C2 00 7F 00 C0 00 20 00 02 00 :CData 08 : 2K 390K 80 : 512 1 : no :all SS
DOUBLE SIDED 5.25" FORMAT LABELS.FOR CP/M
5" 48 tpi DS SD - Soft Sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
Sorcerer Dtrio.: 24 00 03 07 00 AA 00 3F 00 CO 00 10 00 02 00 : 0 0 : 1K 171K 40 : 128 1 : no : SD sec
Cromeco : 12 00 03 07 00 AC 00 3F 00 C0 00 10 00 03 00 : CDOS1 5 : 1K 173K 40 : 128 1 : n0 : SD tks
5" 48 tpi DS DD - Soft Sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
35 tracks
Superbrain QD : 28 00 04 0F 01 A9 00 3F 00 80 00 10 00 02 00 : Aard 08 : 2K 340K 35 : 512 1 : yes : DD 35+
MP-125 : 20 00 03 07 00 FB 00 7F 00 F0 00 20 00 03 00 : 0 0 : 1K 250K 35 : 256 0 : no : DD tks
Toshiba T100 : 40 00 03 07 00 FF 00 3F 00 C0 00 10 00 03 00 : Tosh 08 : 1K 250K 35 : 256 1 : no : DD sec
40 tracks:
Datavue : 50 00 05 1F 03 5E 00 7F 00 80 00 20 00 02 00 : 0 0 : 4K 380K 40 : 512 81 : no : DD sec
IMS 5000 : 40 00 04 0F 01 97 00 3F 00 80 00 10 00 02 00 : INS 10 : 2K 304K 40 : 256 1 : no : DD sec
NEC PC-8801A : 40 00 04 0F 01 97 00 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 304K 40 : 256 1 : no : DD sec
Zenith Z-100 : 20 00 04 0F 00 9A 00 FF 00 F0 00 40 00 02 00 : 0 O : 2K 310K 40 : 512 1 : no : DD tks
Sanyo : 20 00 04 0F 01 9B 00 3F 00 B0 00 10 00 02 00 :Sanyo 6 : 2K 312K 40 : 256 1 : no : DD tks
IBM PC CP/M-86 : 20 00 04 0F 01 9D 00 3F 00 80 00 10 00 01 00 : 0 0 : 2K 316K 40 : 512 1 : no : DD 79-
TeleVideo(?) : 48 00 04 0F 01 A5 00 3F 00 80 00 10 00 02 00 : 0 0 : 2K 332K 39!: 256 1 : no : all? sec
TeleVideo : 24 00 04 0F 00 AA 00 3F 00 80 00 10 00 04 00 : 0 0 : 2K 342K 40 : 256 1 : no : DD tks
Sorcerer Dtrio.: 48 00 04 0F 01 AA 00 3F 00 80 00 10 00 02 00 : 0 0 : 2K 342K 40 : 256 1 : no : 1 sec
Actrix DD : 48 00 04 0F 01 AE 00 3F 00 80 00 10 00 01 00 :Actrx 0C : 2K 350K 40 : 512 1 : no : DD sec
Otrona Attache : 28 00 04 0F 01 B5 00 7F 00 C0 00 20 00 03 00 : 0 0 : 2K 364K 40 : 512 1 : no : DD 40+
Epson QX-10 : 28 00 04 0F 01 BD 00 7F 00 C0 00 20 00 04 00 : 0 0 : 2K 380K 40 : 512 1 : no : DD tks
Cromenco CDOS : 28 00 04 0F 00 C2 00 7F 00 C0 00 20 00 02 00 : CDOS 10 : 2K 390K 40 : 512 1 : no : DD tks
Cromenco+Int1T : 50 00 04 0F 01 C2 00 7F 00 C0 00 20 00 01 00 :Int1T 0C : 2K 390K 40 : 512 1 : no : DD sec
MAGIC Computer : 28 00 04 0F 00 C2 00 3F 00 80 00 10 00 02 00 : 0 0 : 2K 390K 40 : 512 1 : no : DD tks
Morrow : 28 00 04 0F 01 C2 00 BF 00 E0 00 30 00 02 00 : CCS 10 : 2K 390K 40 : 512 1 : no : all? tks
]-------------------------------------------- SCUA: November 1984. Vol 84-164
5" 96 and 100 tpi DS DD - Soft sectored:
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
77 or 80 tracks & 96 or 100 tpi
Sorc. Exidy : 40 00 04 0F 00 2B 01 7F 00 C0 00 20 00 02 00 :Exidy 0A : 2K 600K 77 : 256 1 : no : all sec
Sorcerer Dtrio.: 48 00 04 0F 00 5E 01 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 702K 80 : 256 1 : no : all sec
Sorcerer CData.: 50 00 04 0F 00 85 01 7F 00 C0 00 20 00 02 00 :CData 08 : 2K 780K 80 : 512 1 : no : all sec
8" FORMAT TABLES FOR CP/M
-------------------------
Parameter : Hex dump of CP/M disk parameter block (DPB) : Skew : Capacity : Host sec: data : double
Name : SPT BSH BLM EXM DSM DRM AL0&1 CKS OFF :table F : blk dsk tk : size 1st: Inv? : den sid
_______________.______________________________________________________._________._____________._________.______._____.__
SSSD
STANDARD (!) : 1A 00 03 07 00 F2 00 3F 00 C0 00 10 00 02 00 : 8" 6 : 1K 243k 77 : 128 1 : no : SD SS
SSDD
ADD-X CP/M : 34 00 04 0F 01 F2 00 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 486K 77 : 1 : no : 2 SS
Sorcerer Dtrio.: 34 00 04 0F 61 F2 00 3F 00 80 00 10 00 02 00 : 9 0 : 2K 486K 77 : 256 1 : no : 1 SS
DSSD
ADD-X CP/M : 34 00 04 0F 01 F2 00 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 486K 77 : 1 : no : SD sec
Sorcerer Dtrio.: 34 00 04 0F 00 F2 00 3F 00 80 00 10 00 02 00 : 0 0 : 2K 486K 77 : 128 1 : no : SD sec
DSDD
ADD-X CP/M : 68 00 05 1F 03 F2 00 7F 00 80 00 20 00 02 00 : 0 6 : 4K 972K 77 : 1 : no : 2 sec
TRS-80 II exten: 40 00 04 0F 00 2B 01 7F 00 C0 00 20 00 02 00 : TRS? 18 : 2K 1200K 77 : 1024 1 : no : all? tks
Sorcerer Dtrio.: 68 00 04 0F 00 E6 01 7F 00 C0 00 20 00 02 00 : 0 0 : 2K 974K 77 : 256 1 : no : 1 sec
SKEW TABLES
-----------
128 bytes per sector
TRS1 = TRS-80 :01 05 09 0D 11
SPT = 12, F = 4 03 07 0B 0F
02 06 0A 0E 12
04 08 0C 10 ... 01
CDOS1 = Cromenco & Xerox :01 06 0B 10
SPT = 12, F = 5 03 08 0D 12
05 0A 0F
02 07 0C 11
04 09 0E ... 01
8" STANDARD skew table :01 07 0D 13 19
SPT = 1A, F = 6 05 0B 11 17
03 09 0F 15
02 08 0E 14 1A
06 0C 12 18
04 0A 10 16 ... 01
256 bytes per sector
OSB1 = Osborne SD :01 02 05 06 09 0A 0D 0E 11 12
SPT = 14, F = 4 03 04 07 08 0B 0C 0F 10 13 14 ... 01
Olive = Olivetti ETV 300 :01 02 05 06 09 0A 0D 0E 11 12 15 16 19 1A 1D 1E 21 22
SPT = 24, F = 4 03 04 07 08 0B 0C 0F 10 13 14 17 18 1B 1C 1F 20 23 24 ... 01
]-------------------------------------------- SCUA: November 1984. Vol 84-165
Sanyo = Sanyo MBC :01 02 07 08 0D 0E 13 14 19 1A 1F 20
SPT = 20, F = 6 05 06 0B 0C 11 12 17 18 1D 1E
03 04 09 0A 0F 10 15 16 1B 1C ... 01
Tosh = Toshiba T100 :01 02 09 0A 11 12 19 1A
SPT = 40, F = 8 03 04 0B 0C 13 14 1B 1C
05 06 0D 0E 15 16 1D 1E
07 08 0F 10 17 18 1F 20
21 22 29 2A 31 32 39 3A
23 24 2B 2C 33 34 3B 3C
25 26 2D 2E 35 36 3D 3E
27 28 2F 30 37 38 3F 40 ... 01
Exidy = Exidy Sorcerer :0B 0C 15 16 1F 20
SPT = 20, F = A 09 0A 13 14 1D 1E
07 08 11 12 1B 1C
05 06 0F 10 19 1A
03 04 0D 0E 17 18
01 02 ... 0B
Microp = Micropolis :01 02 0B 0C 15 16
SPT = 20, F = A 09 0A 13 14 1D 1E
07 08 11 12 1B 1C
05 06 0F 10 19 1A
03 04 0D 0E 17 18 ... 01
IMS = IMS 5000 :01 02 11 12 21 22 31 32
SPT = 40, F = 10 03 04 13 14 23 24 33 34
05 06 15 16 25 26 35 36
07 08 17 18 27 28 37 38
09 0A 19 1A 29 2A 39 3A
0B 0C 1B 1C 2B 2C 3B 3C
0D 0E 1D 1E 2D 2E 3D 3E
0F 10 1F 20 2F 30 3F 40 ... 01
512 bytes per sector
DEC = DEC Robin/VT180 :01 02 03 04 09 0A 0B 0C 11 12 13 14 19 1A 1B 1C 21 22 23 24
SPT = 24, F = 8 05 06 07 08 0D 0E 0F 10 15 16 17 18 1D 1E 1F 20 ... 01
Aard = Aardvark & SuperB :01 02 03 04 09 0A 0B 0C 11 12 13 14 19 1A 1B 1C 21 22 23 24
SPT = 28, F = 8 05 06 07 08 0D 0E 0F 10 15 16 17 18 1D 1E 1F 20 25 26 27 28 ... 01
CData = Sorcerer+Compudata :05 06 07 08 0D 0E 0F 10 15 16 17 18 1D 1E 1F 20 25 26 27 28
SPT = 28, F = 8 01 02 03 04 09 0A 0B 0C 11 12 13 14 19 1A 1B 1C 21 22 23 24 ... 05
Actrx = Actrix :01 02 03 04 0D 0E 0F 10 19 1A 1B 1C
SPT = 24, F = C 05 06 07 08 11 12 13 14 1D 1E 1F 20
09 0A 0B 0C 15 16 17 18 21 22 23 24 ... 01 if Single Sided
SPT = 48, F = C :25 26 27 28 31 32 33 34 3D 3E 3F 40
29 2A 2B 2C 35 36 37 38 41 42 43 44
2D 2E 2F 30 39 3A 3B 3C 45 46 47 48 ... 01 if Double Sided
IntiT = Cromenco+IntiTerm :01 02 03 04 0D 0E 0F 10 19 1A 1B 1C
SPT = 28, F = C 09 0A 0B 0C 15 16 17 18 21 22 23 24
05 06 07 08 11 12 13 14 1D 1E 1F 20 ... 01 if Single Sided
SPT = 50, F = C 29 2A 2B 2C 35 36 37 38 41 42 43 44
31 32 33 34 3D 3E 3F 40 49 4A 4B 4C
2D 2E 2F 30 39 3A 3B 3C 45 46 47 48 ... 01 if Double Sided
]-------------------------------------------- SCUA: November 1984. Vol 84-166
CDOS = Cromenco CDOS DD :01 02 03 04 11 12 13 14 21 22 23 24
SPT = 28, F = 10 09 0A 0B 0C 19 1A 1B 1C
05 06 07 08 15 16 17 18 25 26 27 28
0D 0E 0F 10 1D 1E 1F 20 ... 01
1024 bytes per sector
CCS = CCS & Morrow :01 02 03 04 05 06 07 08 19 1A 1B 1C 1D 1E 1F 20
SPT = 28, F = 18 09 0A 0B 0C 0D 0E 0F 10 21 22 23 24 25 26 27 28
11 12 13 14 15 16 17 18 ... 01
TRS = TRS-80 Mod II :01 02 03 04 05 06 07 08 19 1A 1B 1C 1D 1E 1F 20 31 32 33 34 35 36 37 38
SPT = 45, F = 18 09 0A 0B 0C 0D 0E 0F 10 21 22 23 24 25 26 27 28 39 3A 3B 3C 3D 3E 3F 40
11 12 13 14 15 16 17 18 29 2A 2B 2C 2D 2E 2F 30 ... 01