home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
ST_PLUS
/
STP18.MSA
/
STP_FPU68881.STP
< prev
next >
Wrap
Text File
|
1997-06-30
|
5KB
|
145 lines
68881 for the 1040
Keith Sabine
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.
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
Pretty impressive, huh?
Keith Sabine (keiths@cadence.com)