Subject: Re: Darwin SWIM3 Floppy Driver v0.95
To: Nyef <nyef@softhome.net>
From: David A. Gatwood <dgatwood@gatwood.net>
List: port-mac68k
Date: 06/02/2002 22:46:15
On Sun, 2 Jun 2002, Nyef wrote:

> Allow me to save you some of that work:
> 
> At http://www.dridus.com/~nyef/documents/ you will find a set of notes on
> how to control some parts of the SWIM chip.

That's really fairly good reverse-engineering work.  Let me help you out a
little.

1.  The two modes of SWIM are IWM and ISM, not IWM and SWIM.

2.  Yes, HDSEL can be set in either place.  You should probably control it
on the chip where possible, despite what classic Mac OS does.

3.  Be careful when using the phase line trick to determine mode.  Not
all phase settings are safe.  It's safer to just set the mode to whichever
mode you want, then just keep a variable that tells what mode it's in.
:-)

4.  Need delays between accesses to the ISM cell.  Mental note: check
and probably fix this in the MkLinux/Darwin source.  :-)

5.  Register glitches:

-ALL- registers are read/write (at least on SWIM and I think SWIM II). 
Some have different values when reading.  The first few registers are
identical to SWIM III except the addition of the CRC functionality when
you write to the rError register.

0x1000 and up do not exist except on the SWIM III.  You might be seeing
mirrors caused by non-connected address lines....


Later,
David

---------------------------------------------------------------------
David A. Gatwood                                dgatwood@gatwood.net
Developer Docs Writer                             dgatwood@apple.com
Apple Computer                                  dgatwood@mklinux.org

                    Check out my weekly web comic:
                     http://www.techmagazine.org