When I read my
known good DSDD Kaypro boot disk, I set tracks to 80,
stepping to double, and sides to 2. But, IMD tries to read all the way
up to track 80, when I thought it would stop at 40 (80 tracks, double
stepped).
WHOA!
You asked for 80, and it tried to do 80. You seem to be assuming that it
would divide by the double-stepping and do 40. (Actually, it is prob'ly
planning to stop at #79, V #39)
1) When IMD asks "tracks", is it asking
A. Cylinders of the disk format (AKA "tracks [per side]")
B. number of cylinders TIMES number of heads
C. cylinders of the DRIVE
The setting is "Cylinders" in the main settings menu, and it indicates the
maximum
number of cylinders that IMD will attempt to read from the disk (when writing IMD
uses the cylinders occuring in the image - unless you use the track exclusion
feature to avoid writing certain ones).
But, are you sure that IMD is counting both sides of a
cylinder as
separate tracks?
When dealing with hardware, it is not uncommon [albeit inaccurate] to
treat "track" and "cylinder" identically.
"1.2M drives are 80 track" V "360K drives are 80 track (40*2)"
"Directory is on track 4" usually does NOT mean cylinder#2, side B
IMD uses "Cylinder" to refer to the actual cylinders - ie: actual steps
of the head(s) - it uses the "Singe/Double sided" setting to determine
how many tracks occur in each cylinder ("as read" means it will try to
read both sides for the first few tracks to determine.
But, when I
set retry to 0, and it goes all the way up there, I still
don't have a good copy.
If retry is set to 0, then it won't even try again when it hits an error,
which is VERY common with floppy drives.
NOT GOOD for getting usable disks. A good default is 5 - 10
In SOME programs, NO RETRIES is useful for TESTING, as ANY error, no
matter how soft will be reported.
In SOME programs, 1 - x are the normal values, and 0 is treated as a
special case, either as '0' means "never stop trying until you
succeed",
which is useful for desperate recovery, or
in SOME programs, '0' is a special case, and just means 256, 65536, or
4294967296 (DEC CX JNZ...)
In IMD 0 is a special case, but it means to quickly scan the disk getting
what it can on one read and NOT to re-analyze the disk if it cannot read
data from a track - in doing so it also prevents the automatic stop when
data runs out ... it's just a quick way to scan the whole disk to check a
particular format. Agreed is it not recommended as a way to get reliable
disks.
BTW, Kaypro puts an INCORRECT value in the "Head
Number" field of the
sector headers of all of the sectors on side B. Fortunately, like the
extraneous SD track that Dave encountered on the 41st cylinder (#40), it
is ignored in use. Both are irrelevant to the current project, but quite
important if you want to use INT13h to read, write, or format Kaypro
diskettes.
They also use different sector numbers on side 1 - in fact, they logically
number both sides as if it were a single side (head 0) with ascending
sector numbers through the sectors on both sides.
IMD simply records the cylinder, head and sector numbers found in the
sector headers of any given physical track and recreates them as it
writes the disk - it does not expect them to contain any particular value,
so it reads/writes kaypro disks with no problems.
Dave
--
dave13 (at) Dave Dunfield
dunfield System/Firmware development services:
www.dunfield.com
(dot) com Classic computers:
http://www.classiccmp.org/dunfield