Floppy stepping problem

dwight elvey dkelvey at hotmail.com
Sat Jun 17 17:20:48 CDT 2006


Hi
Here is a typical read cycle for getting a track from the M20 disk:

FOR sector 1 to 11
      setup DMA
      write clock rate to 3F7h   ( may be FM or MFM )
      BEGIN
        set drive motor timeout to nice long number for DOS so it doesn't
              turn the motor off while I'm using it.
        If the motor isn't already on, turn it on and add a little delay 
time
              to get it up to speed.
        Do a SEEK to the track ( I do this every time even if I'm already on 
that track )
        Clear Interrupt status bit in DOS
        Write all the stuff to the controller to read a sector ( including 
if it is FM or MFM )
        Wait until there is an interrupt 6 and then read all the returned 
status
      WHILE the status fails
        if second try, do a READID
        if third try, do a RECAL
        if more tries then Error out
      REPEAT
   NEXT Sector
   Use DOS call to write track to a file and
   repeat it all for the next track.

I can break down things like SEEK, READID and RECAL if you think they are
needed. The actual code is a little messy since it has been a growing
project.
I don't seem to have any issues with the clock rate since it has problems
during the MFM time and not the FM time. If it had clock problems
I'd suspect it would show while switching between FM and MFM.
I used to reset the step rate after each DOS call but I'm using
the INT 1E and INT 13 AH=0 method and the step rates for the
360K and the 1.44M seem to be OK now. It is just that the 360K
seems to get lost after the 1.44M steps tracks. The ReadID on
the 360K doesn't seem to help.
Dwight





More information about the cctech mailing list