
             Build your own DD-HD switch for the Atari ST/STE.
                         1997-1998 Martin Graiter
                      (Very small revisions by Vezz)

So you want to use 1.44Mb floppies? And your old 720Kb floppies as well?
No problem! Here's a one-chip solution that takes care of things for you!
Before you start you should consider the following:

If you don't feel confident with an Ohm-meter and a soldering iron, or if
you're not familiar with schematics, then don't attempt this project. There
is no shame in not being skilled with everything on earth. I also sell
ready-built DD-HD circuits, built and tested to function. Maybe you should
rather buy one and then only solder 5 wires instead of going through all
the moments of measuring, soldering and fault-searching?

This modification is unnecessary for the MegaSTE, TT, and Falcon, because
they can already deal with HD floppies "from factory".
In order to use HD floppies you MUST have a 1.44MB (sometimes referred to
as 2Mb) diskdrive. The old SF314 won't do the job. Teac's FD235HF-drives
are suitable, as is Sony's model MPF520-1. There are other drives too, but
I can't name them all here.

If the diskdrive outputs a High Density Detect (HDD) signal on pin 2 of
it's bus, then it's suitable! This signal has sofar (in my experience)
always been positive logic (active high). Means that when you have a DD
disk in the drive, the output on pin 2 will be LOW (0V). When an HD disk is
inserted the signal will shift to HIGH (+5V).

You also have to have a suitable Floppy Disk Controller (FDC) chip in your
machine. If your chip has the marking "WD1772 02-02" it is OK. Also if the
marking is "Atari XXXXXX (lots of numbers)" it will work.
But if your chip says "VLSI" or "WD1772 00-00" it will most likely NOT
function. In that case I suggest you swap with someone, or buy another FDC.
Additionally you need a program that will change the steprate to 6ms
(milliseconds), Fastcopy, Bootsie, Flopcontrol are such programs, but there
are others too. I patched my TOS 2.06 so that the default steprate is 6ms
instead of 3ms. No program needed after that.

And finally you need HD disks. PLEASE don't use your old 720Kb disks for
this! Some people have drilled holes in their DD disks as to fool the
diskdrive to format them at 1.44Mb. This is an extremely bad idea!!! You'll
be sorry you did it, I promise!
Don't go the other way either! I don't want to go into discussions on why
or what happens, but you'll regret this too! Disks are cheap, just buy a
pack (or loan one from your buddy).

And now some theory:

The WD1772 chip is designed to work at 8MHz, but thanks to the good quality
of the chips produced, this can be greatly overdriven. Most WD1772:s will
happily hop along at 16MHz, and even at 32MHz! In order to run 1.44Mb disks
we will overclock the WD1772 to double speed, 16MHz. Since we're interested
in using the old 720Kb disks as well, we'll want to switch between 8 and 16
MHz alternatively. That can of course be realized by hand switching, but
more elegant is to perform this automatically. Which is precisely what
we'll do here!

If you study and comprehend my schematics you will probably figure out how
to be able to use even 2.88Mb disks? I didn't bother, since 1.44 disks is
the standard nowadays.

A positive effect of this clock doubling is that the data transfer rate
between the DMA and the FDC also doubles!
However, all timings are half as long and so is the steprate. Instead of
getting 3ms we get 1.5ms when running at 16 MHz. To rectify this we set the
steprate to 6ms, which gives 3ms in reality (since everything is halfed at
16MHz). You follow? It doesn't matter that the steprate becomes 6ms when
running at 8MHz, it just makes the drive somewhat noisier.

We also need to break the connection of pin 18 of the FDC, (which is CLK
IN,) from the permanent 8MHz feed and instead feed the pin with the output
from our circuit.

In order to perform an automatic switching between 8MHz (720Kb DD-disks)
and 16MHz (1.44Mb HD-disks), depending on what types od disks we put in our
A and B drives, we will utilize the services of a 74LS151 chip.

---------------------------------------------------------------------------

General pinout for the 74LS151:
           74LS151
         +---\_/---+                         D0-D7 are data INPUTS
      D3 |1      16| +5V
      D2 |2      15| D4
      D1 |3      14| D5
      D0 |4      13| D6
DATA OUT |5      12| D7
DATA OUT |6      11| DATA SELECT A
  STROBE |7      10| DATA SELECT B
     GND |8       9| DATA SELECT C
         +---------+

---------------------------------------------------------------------------

This chip has 3 control inputs, A,B,C, that will determine which of eight
input lines will "come out". We feed half of the input lines with 8MHz and
the other half with 16MHz. The control lines will be High Density Detect
from drive A (HDD0) and High Density Detect from drive B (HDD1). We will
also use the signal Drive Select 1 (DS1), which activates drive B. We
needn't use Drive Select 0 (DS0) since we simply assume that DS0 should
count as active if DS1 isn't. Note that this signal is negative logic
(active low).

Next step will be to make a truth table, as to determine which inputs shall
be fed 8MHz and which 16MHz. It looks like this:

A=DS1                     C B A
B=HDD0                    ------+
C=HDD1                    0 0 0 |D0 --> 8
                          0 0 1 |D1 --> 8
                          0 1 0 |D2 --> 8
                          0 1 1 |D3 -->16
                          1 0 0 |D4 -->16
                          1 0 1 |D5 --> 8
                          1 1 0 |D6 -->16
                          1 1 1 |D7 -->16

The only thing left is to tie STROBE to GND (to enable the chip) and we're
done! We substitute the D0-7 markings with 8 and 16MHz respectively, we do
the same with the ABC select lines, only here we put in the names of our
signals as above to the left. That's it!

---------------------------------------------------------------------------

Logical schematic of the DD-HD switching:

                                    74LS151
         +-------+                 +--------+
         | 16MHz |------>1,12,13,15|        |
         +-------+                 |        |
                                   |        |
         +-------+                 |        |
         |  8MHz |-------->2,3,4,14|        |
         +-------+                 |        |
                                   |        |
                  DS1----------->11|        |
HDD0--------+------------------->10|        |
            |     HDD1-----+----> 9|        |
           _|_            _|_      |        |
          | R |          | R | +--7|STROBE  |5-->CLK OUT
          |2K2|          |2K2| |   |        |
          |   |          |   | |   +--------+
          +---+          +---+ |     8    16
            |              |   |     |     |
            +--------------+---+-----+GND  +5V

---------------------------------------------------------------------------

After theory we only need to realize the circuit in real life. You will
find 16 MHz on pin 39 of the SHIFTER (not on the STE!) and 8MHz in the
empty hole where pin 18 of the FDC used to be. DS1 is found on pin 19 of
the PSG (Yamaha YM2149 or General Instruments, GI, AY-3-8910). Ground and
+5V can be found everywhere on the motherboard.

---------------------------------------------------------------------------

Connections in the function as
DD-HD switcher:

          74LS151                            16MHz quartz crystal
        +---\_/---+                             +---------\
  16MHz |1      16| +5V                      NC |1      14| +5V
   8MHz |2      15| 16MHz                       |         |
   8MHz |3      14|  8MHz                       |         |
   8MHz |4      13| 16MHz                       |         |
CLK OUT |5      12| 16MHz                       |         |
     NC |6      11| DS1                         |         |
    GND |7      10| HDD0                    GND |7       8|-->16MHz
    GND |8       9| HDD1                        \---------/
        +---------+

If you have an STE model you will also have to add a quartz crystal, this
because the STE doesn't have a good enough 16MHz signal for our purposes.
Easiest is to use the type with 4 pins, it is defined as above.
The numbering of the legs is correct, even though there are only four of
them!

A good general advice is to keep the connecting lines as short as possible,
also determine exactly where you'll put our little circuit before you start
connecting things Before we get our hands on the actual making of the
switcher, we have to consider the signals HDD0 and HDD1.

The HDD0 signal has to be connected to the second wire of the floppy ribbon
cable. The first cable is normally coloured red or dotted red. You can
carefully cut free about 2cm (one inch) of wire no 2 from its "neighbours".
Then you can cut it off at the side closest to the motherboard connector.
Peel off the plastic isolator a couple of mm on the end. This naked thread
you'll solder to the HDD0 wire coming from our little board. It is good
practice to isolate the connection with some shrink-tube (I am not sure
this is the correct English word? I'm talking about a small hose made of a
material that shrinks when you heat it.)

          ___________________________________________________
|       4|_________________________________________________4_|        |
|       3|_________________________________________________3_|        |
|       2|_____|_CUT HERE!|________________________________2_|        |
|       1|_________________________________________________1_|        |
+--------+                                                   +--------+
Motherboard                                                   Floppy
connector                                                     connector

Alternatively you can connect to this wire by going to the underside of the
motherboard. There you'll seek up the solder joints for the floppy cable.
It will look something like this:
                                       []()()()()()()()()()()()()()()()()
                               pin 2-->()()()()()()()()()()()()()()()()()

You will recognize pin 1 by the rectangular pad, no 2 is right below no 1.
If you decide on this solution you shall not cut the wire as described
above!

It is important that you lead your wire to the upper (component) side
without using holes that will accomodate screws or plugs when the case is
reassembled!

The HDD1 signal is to be connected to pin 7 of the connector for the
external drive. This pin is grounded and you'll need to disconnect it from
ground. You can do that by either cutting it off and bending up what's
left, as depicted in the drawing below. Or, you can play dentist and pull
it out from it's hole on the underside. This means you'll have to suck the
hole clean from solder and be sure that the pin will move freely! You can
also keep your soldering iron to the hole and then pull the pin out from
the other side. Of course, the rest of the pin must remain in the circular
connector!

      Right side view:                  Outer view:
              ______________||
             |--------------||          11       10
             |--------------||
        +----|              ||       9                8
        ||   |              ||
       _||_  |     CUT!     ||     7     13     12     6
      ||  |  |    /         ||
      ||  |  |   /          ||      5       14        4
      ||  |  |__/___________||
      ||__|___|| |     |    ||         3          2
      ||      ||_|     |____||               1
      ||                    ||

Should you decide that you'll never need to connect an external (B:) 1.44
drive to your machine, well, then there is no need to do this at all! The
HDD1 signal is already defined as LOW through the 2K2 resistor connecting
it to ground. In fact, if you won't connect any 1.44 diskdrive as B: you
can just tie HDD1 to ground, with or without any resistor. You will still
be able to use 720Kb diskdrives on B: if you want to.

Those who have the (good old) 520ST without internal drive will in any
event have to do the above mentioned modification, with the HDD0 connected
to pin 7! Should there be need for an HD drive as B:, then an extra hole
will have to be drilled in the 520ST case and an extra wire drawn from B:s
pin 7 to HDD1.

These are the appropriate connections to make if you want to make your own
cable from the external circular connector to the rectangular Shugart
connector on the floppy itself:

External circular             Shugart
connector                     connector
01.  Read Data-----------------30. RDT
02.  Side 0 Select-------------32. SSL
03.  GND----------------------- 1,3,5,7,9... (all odd wires are GND)
04.  Index Pulse--------------- 8. IDX
05.  Drive 0 Select------------10. DS0
06.  Drive 1 Select------------12. DS1
07.  High Density Detect------- 2. HDD
08.  Motor On------------------16. MON
09.  Direction In--------------18. DIR
10.  Step----------------------20. STP
11.  Write Data----------------22. WDT
12.  Write Gate----------------24. WGT
13.  Track 00------------------26. TR0
14.  Write Protect-------------28. WPT

And now, let's get hands on the very DD-HD switcher! If you plan to build
this on a veroboard, I'd suggest the following approach:

---------------------------------------------------------------------------
           VERSION FOR THE ST RANGE, NOT FOR THE STE!
---------------------------------------------------------------------------

What you need: 1*74LS151 chip
               1*220 ohm resistor
               2*2.2 Kohm resistors
               1*3mm LED
Cut a piece of veroboard               This is the intended
that is 9 modules high                 component placement:
and 6 modules wide.

                                                             |+5V
  6   5   4   3   2   1                  1   2   3   4   5   |6
+---+---+---+---+---+---+              +---+---+---+---+---+-|-+
| O | O | O | O | O | O |         16MHz| O   O----\_/----O   O |
|   |   |   |   |   |   |              |     |           |  _|_|
| O | O | O | O | O | O |              |     O           O |   |
|   |   |   |   |   |   |              |     |           | | R |
| O | O | O | O | O | O |              |     O           O |220|
|   |   |   |   |   |   |              |     |           | |Ohm|
| O | O | O | O | O | O |          8MHz| O   O           O |___|
|   |   |   |   |   |   |              |     |           |   | |
| O | O | O | O | O | O |              |     O           O   O |
|   |   |   |   |   |   |              |     |           |     | Anode
| O | O | O | O | O | O |              |     O           O   O | (+)
|   |   |   |   |   |   |              |     |           | (LED)
| O | O | O | O | O | O |              |     O           O   O | (-)
|   |   |   |   |   |   |              |     |           |     | Cathode
| O | O | O | O | O | O |              |     O-----------O     |
|   |   |   |   |   |   |              |      /-----\R2K2 ___  |R2K2
| O | O | O | O | O | O |       CLK OUT| O   O   O   O   O___O |
+---+---+---+---+---+---+              +---+---+---+---+-------+
                                             |  DS1 HDD0 HDD1|
                                          GND|               |GND
   UNDERSIDE                                   UPPER SIDE

The two 2K2 resistors will be standing up, the LED and it's 220 resistor
aren't necessary for the function, but will indicate that you've found +5V
and GND (by emitting light) and it will impress your friends!

But, no point in placing out the components yet, first you'll have to
prepare your veroboard! You will start by cutting lanes at appropriate
locations. When all up-down DISconnections are made, we will also need to
make left-right CONnections. We will achieve that without using one single
wire!

                  Preparation of the underside:

Start disconnecting the up-down            Continue by inserting the chip
lanes by cutting traces in them            and making the sideways connec-
as shown in the left figure.               tions by soldering drops of
                                           resin across the dividing lines.

  6   5   4   3   2   1                        6   5   4   3   2   1
+---+---+---+---+---+---+                    +-----------+-----------+
| O | O | O | O | O | O |                    | O   O   O | O   O   O |
+===|===|===|   |===|===|                    +-----------+   +-------|
| O | O | O | O | O | O |                    | O   O   O   O | O   O |
|   |===|===|===|   |   |                    |   +-----------+       |
| O | O | O | O | O | O |                    | O | O   O   O   O   O |
|   |===|===|===|   |   |                    |   +-----------+       |
| O | O | O | O | O | O |                    | O   O   O   O | O   O |
|===|   |   |   |===|===|                    |---+           +-------+
| O | O | O | O | O | O |                    | O | O   O   O | O   O |
|   |===|===|===|===|   |                    |   +-----------+---+   |
| O | O | O | O | O | O |                    | O | O   O   O | O | O |
|===|===|===|   |===|   |                    +---+-------+   +---+   |
| O | O | O | O | O | O |                    | O | O   O | O | O | O |
|   |===|   |   |   |   |                    |   +---+   |   |   |   |
| O | O | O | O | O | O |                    | O | O | O | O | O | O |
|   |   |   |   |   |   |                    |   |   |   |   |   |   |
| O | O | O | O | O | O |                    | O | O | O | O | O | O |
+---+---+---+---+---+---+                    +---+---+---+---+---+---+

Insert also the other components and make sure you're not cutting off the
long wires on the ends of the resistors which will go to GND and +5V on the
motherboard. See the figure with the component placement.
You will now need to determine where on your motherboard you'll be placing
the DD-HD switcher. Best is a location close to the FDC. The signals CLK
OUT, 16MHz and 8MHz should be as close as possible, as to keep wires short.

Here is a suggestion for the placement in the Mega ST models:

       ============
        |   ||   |  External floppy connector
        |   ||   |
        |___||___|= <--bent out pin 7
         |||  |||      HDD1
         --------                              J4         ____ R28
                                                O     ---(____)---
                                             GND \        O O O
                                                  \         |GND
                                                   \        |
                                                    |       |
                                                    | | |DS1|
                                                  +-------------+
                                                  | O O O O O  O|CLK OUT
                  CLK                             | _ +-----+   |
+--------------------||------+                 LED|(_)| 74  |   |
|28                  18    15|                    |   | LS  |   |
|   O                        |                    |_|_| 151 |   |
\  8MHz  WD1772 02-02        |                    || ||     |  O|8MHz
/(under)   (FDC)             |   +--------------+ ||R||     |   |
|                            |   \    7406      | ||_||     |   |
| 1                        14|   /              | | | |     |  O|16MHz
+----------------------------+   +--------------+ +-|-+--^--+---+
                                                  _ /  +---+    _
                                                 (_)---|L46|---(_)
+----------------------------------------+       +5V   +---+
|40                                    21|            +--39---------------
|                                        |            |40  16MHz
\              DMA                       |            |
/                                        |            \          Shifter
|                                        |            /
| 1                                    20|            |
+----------------------------------------+            | 1
                                                      +--------------------

---------------------------------------------------------------------------
                     VERSION FOR THE STE RANGE!
                 (can also be used on ST machines!)
---------------------------------------------------------------------------

This version has simply been "stretched" in order to accomodate an added
component, the quartz crystal. On most STE:s you can't utilize the 16MHz
signal present on the motherboard. Nothing prevents this design from
working on an ordinary ST as well. It's just a matter of economy, the
crystal is an extra cost.

What you need: 1*74LS151 chip
               1*220 ohm resistor
               2*2.2 Kohm resistors
               1*3mm LED
               1*16MHz quartz crystal

Component side:
                             |+5V
                             |
       +---------------------|---------------------+
       |     O----\_/----O   O                     |
       |     |           |  _|_                    |
       |     O           O |   |   +---------------\
       |     |           | | R |   | o           o |
       |     O           O |220|   |NC          +5v|
       |     |           | |Ohm|   |               |
   8MHz| O   o  74LS151  O |___|   |               |
       |     |           |   |     |     16MHz     |
       |     O           O   O     |               |
       |     |           |         |               |
       |     O           O   O     |               |
       |     |           | (LED)   |               |
       |     O           O   O     | GND      16MHz|
       |     |           |         | o           o |
       |     O-----------O         \---------------/
       |      /-----\R2K2 ___                      |
CLK OUT| O   O   O   O   O___O                     |
       +---------|---|---|-------------------------+
             |  DS1 HDD0 HDD1|
          GND|               |GND

For this version of the DD-HD switcher we need a somewhat bigger veroboard,
9*11 modules (holes). We will prepare it in similar manner to the previous
design, by cutting DISconnections on the vertical lanes:

        11  10   9   8   7   6   5   4   3   2   1
       +---+---+---+---+---+---+---+---+---+---+---+
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |===|   |===|===|===|   |===|===|
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |===|   |   |===|===|===|   |   |
       | O | O | O | O | O | O | O | O | O | O | O |
       |===|===|===|===|===|   |===|===|===|   |   |
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |===|===|===|===|===|   |   |   |===|===|
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |   |   |   |===|===|===|===|   |
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |   |   |===|===|===|   |===|   |
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |   |   |   |===|   |   |   |   |
       | O | O | O | O | O | O | O | O | O | O | O |
       |   |   |   |   |   |   |   |   |   |   |   |
       | O | O | O | O | O | O | O | O | O | O | O |
       +---+---+---+---+---+---+---+---+---+---+---+

Next step is to make horizontal CONnections between the lanes. You will
insert the components from the other side before you go about it. The
modules should have connections as in the drawing below:

         11  10  9   8   7   6   5   4   3   2   1
       +-------------------------------+-----------+
       | O   O   O   O   O   O   O   O | O   O   O |
       |           +---+   +-----------+   +-------|
       | O   O   O | O | O | O   O   O   O | O   O |
       |           +---+   |   +-----------+       |
       | O   O   O   O   O | O | O   O   O   O   O |
       +-------------------+   +-----------+       |
       | O   O   O   O   O   O   O   O   O | O   O |
       |   +---------------+---+           +-------+
       | O | O   O   O   O | O | O   O   O | O   O |
       |   |               |   +-----------+---+   |
       | O | O   O   O   O | O | O   O   O | O | O |
       |   |               +---+-------+   +---+   |
       | O | O   O   O   O   O | O   O | O | O | O |
       |   |                   +---+   |   |   |   |
       | O | O   O   O   O   O | O | O | O | O | O |
       |   |                   |   |   |   |   |   |
       | O | O   O   O   O   O | O | O | O | O | O |
       +---+-------------------+---+---+---+---+---+

It is advisable to measure between the "fields" with a resistance meter, to
make sure that there are no connections where there shouldn't be! Here you
won't have to connect a 16MHz wire to the motherboard, since that signal is
generated "on board".

After you've assembled the veroboard, you'll have to make connections to
the motherboard too.

                          Placement in an STE:

If you place your switcher just above the FDC chip, you'll have easy access
to all relevant solder points on the motherboard. You will find a nice hole
for your DS1 wire on the rightmost (no 1) hole of W300. There will also be
a convenient via just to the right of C305 where you can take your 8MHz
signal. GND and +5V can be taken from the proper sides of the capacitors
C303 and C304. GND is also found on pin 14 of the FDC.

============
|   ||   | External floppy connector
|   ||   |
|___||___|= <-- bent out pin 7
  |||  |||       (HDD1)
  --------
                                    |
                            +-+-u-+-|-------+
                            | |   |   +----\|
                            | |   ||| |    ||                GND|C303
                            |o|   ||| |    ||                   |
                            | |   | _ |    ||                  +-+ +-------
                            | |   |(_)|    ||                  | | |74LS244
                            | +---+   \----/|                  +-+ |  U307
                            |oooooo         |                   |  +-------
               GND _ +5V    +---------------+                +5V|
          C304 ---(_)---
               +--------------+ +14--------------------------+
               |  7406        / |GND                        1|
               |  U305        \ |                            |
               +--------------+ |        WD1772 02-02        /
                                |          (FDC)             \
      |                         |                            |
      |                         |15    18                  28|
      |                         +------||\-------------------+
     2|= HDD0    DS1               _     |<--Cut this track,
______|           |            ---(_)--- /   or bend out pin 18!
^       W300 O O O            C305     o<--8MHz
|       W301 O O O
|
|
The floppy ribbon base
on the motherboard.

You will also need to configure your Teac drive so that it appears
correctly to your switcher. Here are some of the jumpers on various
revisions of the FD235-HF:

1)   DS0 DS1
    +---+
    | O | O
    |   |
    | O | O
    +---+

2)
    +-------+
    |O     O| HH0
    +-------+
    +-------+
    |O     O| OP
    +-------+
     O     O  LH1
     O     O  HH1
     O     O  D1
    +-------+
    |O     O| D0
    +-------+

3)  +-------+
    |O     O|
    +-------+
    +---+
    | O |  O
    |   |
    | O |  O
    +---+
    +---+
    | O |  O
    |   |
    | O |  O
    +---+

---------------------------------------------------------------------------
This project is Bed & Breakfast ware. I expect you to accomodate me for one
night and one breakfast should I decide to visit your town. (I like to
travel) Send me a postcard with your name and adress if you use it in your
computer! Email is nice too, but postcards are preferred! Commercial use is
granted as long as a licencing fee is payed to me.
---------------------------------------------------------------------------

Martin Graiter
Majstngsgatan 9E
SE-414 72 Gteborg
Sweden, Europe

graiter@starmail.com

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
This was included on
ST Hardware Hacks Page
http://come.to/atarihacks.com
Maintained by Vezz
vezz@geocities.com