UPGRADE: XF551->3.5"

From: Michael Current (aa700@cleveland.Freenet.Edu)
Date: 07/01/98-11:41:12 AM Z

From: aa700@cleveland.Freenet.Edu (Michael Current)
Subject: UPGRADE: XF551->3.5"
Date: Wed Jul  1 11:41:12 1998

From: lenspencer@aol.com (Lenspencer)
Date: 09 May 1998 13:03:40 GMT

Here is the text of the article by Bob Woolley on upgrading the XF551
to a 3.5" drive.  This text is also available at

NOTICE: This article originally appeared in the January, 1989 issue of
Atari Interface Magazine and may be freely distributed or reprinted in
non-profit User Group publications as long as the article's author and
Atari Interface Magazine are credited AND this notice is reprinted with
the article.  All other publications must obtain written permission from
Unicorn Publications, 3487 Braeburn Circle, Ann Arbor, MI 48108,
Phone: (313) 973-8825 before using this article.

Inside the XF551 Disk Drive}by Bob Woolley (SLCC)

[Editorial notes by Len spencer]

It has been almost a year since I first got my hands on an XF551.  Busy
little hands... Of course, the first thing I did was to tear the thing
apart to see how it was put together.  And, maybe do a little "put"ing
myself.  As a result, I have made a few modifications that may be of
interest to other XF551 owners.  You will not be able to successfully
make these changes unless you have reasonably decent electronic skills,
so don't gamble with your new XF551 unless you know what you are doing.
Most User Groups have skilled members that will be happy to guide you if
you need help.


But, before I get caught up in details of the drive, I would like to
clarify some points on the XF551.  The drive IS double sided and can
read and write in single, enhanced or double density.  The "book" that
comes with the drive is incorrect.  MyDOS, SuperDOS and SpartaDOS can
all format the drive as double sided and double density.  Previous Atari
drives did not use the INDEX hole on the diskette, which allowed us to
flip the disk over and format the back of the media.  The XF551 uses a
standard, bone stock, IBM-style drive.  It uses INDEX.  It will not
FORMAT the back of a diskette unless the disk jacket has two index holes.
It WILL read and write to the back of any disk.  Guaranteed!  On side
one, the tracks on the disk are written from the outer edge in, from 0
to 39. On side two, the tracks are written from the inner edge out. This
allows us to read the first 40 tracks of a DSDD diskette on a SSDD drive.
The second side is not backwards nor could it be read on a SS drive even
if you changed it.  The speed of the drive is NOT 288 RPM, the speed you
are used to seeing, but 300 RPM, the industry standard.  The XF551
compensates for the difference by using a clock frequency 4% (.33mhz)
higher than it should be. This will read and write the data in exactly
the same place on the diskette as your 288 RPM drive, although programs
that measure the speed of the drive will read 300 RPM.

Talking To The Drive

The XF551, as it comes from Atari, has the ability to format a diskette
in any of three configurations: single density (SSSD-88K), 1050 density
(SSED-127K) and double-sided, double density (DSDD-360K).  The DSDD
format has a standard skew (skew is the physical sequence of the sectors
on the disk) and a high speed skew option available to the user.  This
extra skew layout allows faster data transfers on the SIO buss, much
like the ICD Doubler upgrade on the 1050. For those of you interested in
programming, the DSDD format SIO command is $23.  For a high speed skew
format in DSDD, you just need to turn on bit 7 for a value of $A3 (the
SSSD and SSED formats do not have a high speed skew, although the drive
will transfer data at high speed in those densities).  To transmit data
at high speed to and from the XF551, just set bit 7 of the command to "1"
again (a get sector ($52) with bit 7 on is $D2).  You must still send the
command frame at the normal SIO rate ($28 in $D204) and then set $D204 to
$10 for high speed operation during the data frame.  The drive will also
recognize the Put (and Get) Option Table command ($4F and $4E), which are
similar to the Percom configuration table operations.  Only bytes 4-8 are
changed by the Put command, however, and only the three supported formats
will be recognized.  Even if you sent the Option Table a 512 byte sector
size, you would only get 256 byte sectors.  A number of the newest DOS
versions (SpartaDOSX, SuperDOS 5.0, DOSXE...)now have XF551 support built
in. Also, a file is available in Atari8 on CompuServe that will modify
SpartaDOS 3.2D for the XF551 features (in DL3 - XF32D.BAS).  Using any of
these methods will transfer data almost twice as fast as DOS 2.0.

Into The Hardware.

The first thing you notice about the ICs in the drive is the one in a
nice socket, the ROM.  Makes it a lot easier to burn an EPROM (use a 2764)
to make code change if you can just plug and unplug your devices.  I
didn't see the ROM source code printed anywhere, so I wrote a simple
disassembler for the 8050 MPU used as the brains of the drive.  [Some
were manufactured with an 8040.  It has the same 256 bytes working RAM
as the 8050, but no built-in ROM.  Apparently the internal ROM was never
used, as the drive OS is on its own ROM elsewhere on the board. - L.S.]
It was very nice when Atari used a 6507 (which uses 6502 OPCodes) in
their drives but, no more.  Everything Atari comes out with now seems to
use a different chip and this 8050 stuff was a bear.  Finally, I got most
of the program logic worked out and designed some changes:

One upgrade that was available for the 1050 is a ROM change that will
re-address the drive as D5: through D8:.  This can be done on the XF551
ROM by altering location $0095 from $31 to $35 ($33 gives you a range of
D3: to D6:, etc.).  Having 360K is nice.  Having 720K is even nicer.
Putting a 720K, 3.5 inch drive in place of the stock drive is not too
hard, so let's start with the ROM.  There is a little bug in the code
that allows the drive to start writing the track before it has reached
operating speed.  To remedy that, change $528 from $90 to $00, $C1D from
$88 to $80 and $E25 from $88 to $80.  [I have heard reports that this may
be unnecessary, so you may or may not want to make the aforementined
changes.  I have had the problem, so better safe than sorry. - L.S.]
The 720K drive has 80 tracks per side which requires you to change $680
from $28 to $50, $80F from $30 to $60 and $811 from $FD to $FA.  A 3.5
inch drive uses a 3ms seek time -- change $53D from $00 to $03, $57B
from $18 to $13, $9D1 from $08 to $03, and $B15 from $18 to $13. Finally,
the 3.5s use write pre-compensation -- change $61D from $F6 to $F4, $621
from $F6 to $F4 and $D0D from $A2 to $A0.  For a drive, I used a unit
from JDR Microdevices (MF353B Mitsubishi) that plugs right into the 5.25
connectors and uses the same mountings as the larger drive.  This
simplifies the installation quite a bit.  When you go to plug in the
3.5, you may notice that the 34 pin cable is too short. I de-soldered the
connector and added a longer cable, but one hacker, Joe Wyks, managed to
pry the top off of the board connector and crimp his new cable into place
without soldering.  [The latter was the method I used, as it is a little
easier on the circuit board.  L.S.]  The power connector can be adapted
with cables made for that purpose, if necessary.  That's about all that's
needed to run a 720K 3.5.  Format a disk using SpartaDOS XINIT, option 7
(DS 80 tracks) and start filling it up!  You now have 2880 DD sectors.

* * * * * * * OUT OF DATE INFORMATION * * * * * * *

Bob Woolley can be reached on CompuServe at [75126,3446] and is the
editor of the SLCC Journal.  We wish to warmly thank him for contributing
this article and sharing his knowledge of the 8bit and the XF551 disk
drive with us.

* * * * * * * * * * * * * * * * * * * * * * * * * *
Michael Current, mailto:mcurrent@carleton.edu
8-bit Atari FAQ and Vendor Lists, http://www.faqs.org/faqs/atari-8-bit/
Cleveland Free-Net Atari SIG, telnet://freenet-in-c.cwru.edu (go atari)
St. Paul Atari Computer Enthusiasts, http://www.library.carleton.edu/space/

Return to message index