Jules Richardson wrote:
That seems sensible - along with the option of no sync
word at all (in
which case you count index pulses and stop after n counts - where n is
also configurable)
So the current must/should/nice-to-have list goes something like:
MUST HAVE
---------
Reading of soft-sector discs, unsynchronised, sync'd to index mark, or sync'd
to MFM SYNC words
READ SOFT TRACK UNSYNC, READ SOFT TRACK INDEXED, READ SOFT TRACK MFMSYNC
Reading of hard-sector discs, sync'd to index marks+track mark
READ HARD TRACK, READ HARD SECTOR operations
Support for multiple drive interfaces:
Shugart SA400/800 style (8")
Tandon TM100 style (5.25")
PC 3.5"
Support for multiple bit rates:
125kbit/sec
250kbit/sec 720KB 3.5" 360KB 5.25"
300kbit/sec
500kbit/sec 1.44MB 3.5" 1.2MB 5.25"
1Mbit/sec 2.88MB 3.5"
SHOULD HAVE
-----------
Writing of soft-sector discs, unsynchronised or sync'd to index mark
WRITE SOFT TRACK UNSYNC, WRITE SOFT TRACK INDEXED
Writing of hard-sector discs, sync'd to index marks+track mark
WRITE HARD TRACK, WRITE HARD SECTOR operations
NICE TO HAVE
------------
Programmable MFM SYNC word -- 16-bit register
"Stop after N index counts" mode with configurable N value
Support for MFM pre-decoding
Any additions or comments?
Yep - the only gotcha is that the sector pulses and
index pulse is on
the same line, but the index pulse has different timing to the sector
pulses to allow differentiation.
Problem is, I don't have any hard-sector discs,
99% of the problems with this project are probably going to boil down to odd
disc format and drive availability - all I've got is a 40/80 switchable Viglen
drive for the BBC, a 1.2MB 5.25" and a couple of DS-HD 3.5" drives. Oh, and
maybe an IBM 2.88MB somewhere too, but with an odd interface connector.
I'd thought the same thing. I wasn't even
going to think about it at
this stage to be honest - my primary goal is to allow archiving of data
onto modern media (and interpretation of that data); being able to
recreate the original on magnetic media is more of a secondary task.
That's my primary goal too - archiving and analysis. Building something with
similar capabilities to a Trace disc duplicator would be kinda cool though.
I think I'd mentioned this privately to Chuck the
other week, but I'm
not sure if "playing back" raw data to a drive will even work, given
that there will be slight differences in drive RPM between drives: a
track buffered on a "slow" drive would run past the end of track on a
"fast" drive by a few bits.
Well, as far as I can tell, the speed variation across drives is about 10%
absolute max. The TEAC FD-05HF-8630 is specified to have no more than 1.5%
long-term speed variation (LSV), and less than 3% instantaneous speed
variation (ISV). The Samsung (SEMA) SFD321B is specced at 1.5% ISV and 1.5% LSV.
Formatting systems take this variation into account anyway - IIRC the IBM
format doesn't use all the (theoretically) usable 200ms zone between the index
pulses. There's probably a good few tens of milliseconds gap between the end
of the track and the next index pulse. My data on the IBM format is a bit
sketchy though - can anyone confirm this?
In any case, if what I've said is true, all you really need to do is activate
/WRITE_GATE with /WR DATA high to erase the data on the track, then write the
data you want on the second pass. That'll ensure that the data you've written
is synchronised properly, and the controller won't be able to see any of the
older data because it's all been zeroed out before the actual track was written.
It makes me wonder if the only way to do a
100% reliable write is to interpret the data that you're writing, lay
down a format (which is guaranteed not to overflow available space),
then lay down the actual data.
It might be worth taking a look at Tim Mann's CW2DMK and DMK2CW tools - they
read an IBM MFM-format floppy and convert it to a DMK image, and can then
write it back to disc using the Catweasel controller. It's certainly possible
to make a near-exact copy of a disc.
At the moment, I'm going to try and do as much as possible with the discs and
drives I've got - thankfully the IBM format uses the same MFM syncword as
Amiga floppies, but in a different way, so I can confirm that my sync detector
and data separator works. Now I need to do the disc read/write stuff, then the
host interface and software.
After that? I start begging for floppies in unusual formats, and drives that
can read them :)
--
Phil. | (\_/) This is Bunny. Copy and paste Bunny
classiccmp at philpem.me.uk | (='.'=) into your signature to help him gain
http://www.philpem.me.uk/ | (")_(") world domination.