Writing 8" floppies with SuperCard Pro

Chuck Guzis cclist at sydex.com
Tue Aug 11 21:24:46 CDT 2015

On 08/11/2015 05:53 PM, Josh Dersch wrote:

> Absolutely no idea -- the  manual isn't particularly technical and
> the SDK mentions nothing.  I'll see if there's anything to be dug up
> in this regard.  (Thanks also to Eric for suggesting this
> problem...)

There should certainly be enough horsepower there to do just about 
anything.  The cheap Chinese emulators use a little STM32F0 ARM Cortex 
M0 family MCU--dirt-cheap.  There's a bit of logic to perform level 
shifting and OC interface, but that's about it.  If you encode/decode 
MFM data on the fly, 32K is more than enough for track storage at 500Khz 
and a little buffering.  Some years back, I did an emulator using a 
ATMega162 DIP and some external SRAMm running at 8MHz.  Still more than 
enough, but a little tighter in coding.  The Chinese ones get away cheap 
because the format and encoding is predetermined.

But back to write precompensation.  The general theory is this.

Outer tracks have lower linear bit densities than inner ones because 
they're longer from index to index.  (Would you rather run a race on the 
inside or the outside track?)  Thus, bits (or rather changes in 
direction of magnetization) are closer together.  Depending on head 
construction and track width, adjacent bits can be shifted via 
interference from the nominal bit timing window (yes, that means a bit 
already written can be shifted away from its nominal window timing 
center even though you put it there originally).

So, the scheme is to "write with history".  That is, a shift register is 
used to remember what was last written, what you're currently writing 
and then what's about to be written--and the write signal shifted a few 
hundred nanoseconds "early" or "late" (or not at all) according to 
current, past and future data, which produces a train that's closer to 

All of which explains why the results with no precompensation get worse 
the shorter the track gets.

Another approach is to use "zoned" recording, where the disk is divided 
into zones of varying bit density, according to how close to the hub 
they are.  You may be familiar with this with the Victor 9000 or early 
Mac floppy drives, but the technique is much older than floppies.

Hope this helps,

More information about the cctech mailing list