[comp.sys.atari.st.tech] 68881 for the 1040

keiths@cadence.com (Keith Sabine) (06/19/91)

68881 for the 1040
Status: RO

This describes how you can get a 68881 coprocessor to work with your Atari 
1040 or similar. 

Basically what you have to do is this; in the following I am using '*' for 
the inversion of a signal:


AS* is decode from address 0xFFFA40. Only bits A23-A5 are used though. To do
this I used two 74HC133 13 I/P nand gates, oring the two outputs together
using a 74HC32. Also FC0-FC2 are inputted to the 133's, decode as x01, i.e.
do not use FC2 and invert FC1. A single 74HC04 will provide the inverters for
the address decode and FC1.

DS* is just the AND of UDS* and LDS*.  Other than this, the signals need
to be connected just as shown in the 68881 data sheet (you'll need a copy 
of this, if only for the 68881 pinout). The following shows the connections
I used, with MC68000 pins on the left and MC68881 pins on the right.

I soldered 2 26 way IDC cables with connectors right onto the 68000 pins
(crude but my 68000 was not socketed, so there wasn't much choice). The use
of IDC connectors is recommended as at least you can unplug your atari and
use as normal while you're checking your circuit. I built it on a small
piece of board with plated-thru holes. If you can make PCB's so much the
better, please send me one!

I buffered the clock from the 68000 using a spare AND gate in the 74HC08,
since with ~8 inch leads the signal was a bit flaky, giving me errors at
first.

Here's the complete schematic, there may be one or two 68000 - > 68881
signals that I have forgotten (I'm working from memory here, I'll check
it over the weekend). If I have forgotten anything important I'll remail
you.

I tested it with a simple Laser C program linked with the lib881.a 
library. A test of about 1000 log, exp etc. double precision operations
took 7.00s with the standard lib (libc.a) and 0.53s with lib881.a.

Pretty impressive, huh?

Keith Sabine (keiths@cadence.com)



FC2 ---

FC1 ---|>o----|
              |
FC0 ----------|
              |
A23 ----------|
              |
A22 ----------|
              |
A21 ----------|
              |  74HC133
A20 ----------|
              |)O-------------
A19 ----------|               |
              |               |
A18 ----------|               |
              |               |
A17 ----------|               |
              |               |
A16 ----------|               |
              |               |
Vcc ----------|               |
              |               |
Vcc ----------|               |
              |               |
Vcc ----------|               |
                              |
                              |      74HC32
                               ----|
                                    )------- AS*
                               ----|
                              |
                              |
A15 ----------|               |
              |               |
A14 ----------|               |
              |               |
A13 ----------|               |
              |               |
A12 ----------|               |
              |               |
A11 ----------|               |
              |  74HC133      |
A10 ---|>o----|               |
              |)O-------------
A9  ----------| 
              |
A8  ---|>o----|
              |
A7  ---|>o----|
              |
A6  ----------|
              |
A5  ---|>o----|
              |
Vcc ----------|
              |
Vcc ----------|

                  74HC08
UDS* ---------| 
              |)---------------------------- DS*
LDS* ---------|


D0-D7 ------------------------+------------- D0 - D7
                              |
                              |
D8-D15 -----------------+------------------- D8 - D15
                        |     |
                        |     |
                        |      ------------- D16 - D23
                        |
                        |
                        -------------------- D24 - D31


RESET* ------------------------------------- RESET*

                   74HC08
CLK ------+----|
          |    |)--------------------------- CLK
          -----|

DTACK -------------------------------------- DSACK1*


R/W* --------------------------------------- R/W*


Vdd ---------------------------------------- SIZE


Gnd ---------------------------------------- A0