This is the original circuit used by Nick Kennedy (the developer of the SIO2PC software). It uses a ICL-232 (MAX232) RS232 to TTL level converter and a 74LS368 Tri-State Hex Buffer. I have built this circuit and there is little or no performance difference between it and any of it's variants in normal operation. Thanks Rhett for the information.
Please note that this circuit is presented for reference
only.
The 1 chip SIO2PC interface replaces it and is easier to construct.
BACKGROUND ON HARDWARE REQUIREMENTS:
The RS-232 serial port on your PC and the SIO serial port on your Atari 8 bitter are quite similar. There are some differences, however and the SIO2PC interface is designed to accommodate these:
1) The Atari puts out (and expects as inputs), TTL level signals. In general it's +5 volts for logic 1 and 0 volts for logic 0.
The RS-232 standard is bipolar: roughly +5 to +15 for logic 0 and -5 to -15 for logic 1. Note that this is also inverted from TTL, that is, the more positive signal is logic 0 here. So, the first hardware requirement is to convert TTL to RS-232 levels for signals from the Atari to the PC, and RS-232 to TTL levels for the reverse direction.
2) The RS-232 standard is designed for one to one communications. The "data out" line of one device goes to the "data in" line of another, and vice-versa. The Atari SIO system is a data BUSS. The Atari computer's data out line can connect to several peripherals, and their data out lines all connect to the one data in line on the Atari computer. This means there is a potential for interference if more than one peripheral tries to talk at the same time. This is solved by having the peripheral devices keep their data out lines in Tri-State (disconnected) mode when they aren't being spoken to. This is the next hardware requirement; the data line from the interface to the Atari must have Tri-State capability, which can be enabled/disabled as necessary by the PC.
3) Handshaking: The Atari uses only one handshaking line on its SIO bus. This is called the COMMAND line. The Atari computer uses it to tell all peripherals to "listen up" because a command to one of you will follow. The PC's serial port has several handshaking lines, so the interface will just convert the COMMAND line's TTL level to RS-232 and send it to the PC's "RI" handshaking line. Also, another PC handshaking line (RTS) which is an output, will be used to enable / disable the Tri-State data out line discussed above.
4) Baud, Word Size, Start/Stop bits, etc: The philosophy of SIO2PC is to require no software patches on the Atari. This is so you can BOOT the Atari from the PC, you can use any DOS, there will be no software conflicts, etc. Fortunately, we got lucky here. The Atari serial bus runs at 19,200 bits per second. The PC's BIOS doesn't allow speeds this high, but the hardware does, so the SIO2PC software just programs the chip directly without DOS or BIOS. The other parameters listed are also easily programmed into the serial chip (UART) on the PC by software. So, if we just handle 1 through 3 above, we are set to go with regard to hardware.
CIRCUIT DETAILS:
I wish I had a program with which I could create a schematic diagram on any
PC screen, but I don't. However, the circuit is simple and I think I can describe
it in words so you can sketch it on paper if you wish. Alternately, write me
(with SASE) and I'll send you a schematic. Also, I've included two .GEM files
on the disk. If you have access to GEMDRAW, you can print out a functional schematic
and a board layout.
Note: The schematic is at the to of the page.
Chips used:
1) The Harris ICL232 (or MAXIM MAX232) is a single chip RS-232 to TTL and TTL to RS-232 converter. It includes two gates to convert TTL to RS-232 and two to do the reverse. The beauty of this chip is the internal 5-volt to bipolar power supply converter. Normally, you would need a separate plus and minus 12 volt or so supply for the RS-232 levels, but this chip takes the 5 volt supply (from the Atari) and generates all the voltages needed.
2) The 74LS368 hex tri-state inverter. This chip has six TTL inverters, in two sets. Each set has it's own Tri-State enable line.
"CIRCUIT DIAGRAM" NARRATIVE:
1) Data from Atari to PC:
Pin 5 of SIO connector to pin 11 of '232.
Pin 14 of '232 to pin 2 of PC port connector.
2) Data from PC to Atari:
Pin 3 of PC port connector to pin 13 of '232.
Pin 12 of '232 to pin 2 of '368.
Pin 3 of '368 to pin 12 of '368.
Pin 11 of '368 to pin 3 of SIO connector.
3) COMMAND line, Atari to PC:
Pin 7 of SIO connector to pin 4 of '368.
Pin 5 of '368 to pin 10 of '232.
Pin 7 of '232 to pin 9 of PC port connector.
4) GROUND connections:
Pin 6 of SIO connector to pins 8 and 1 of '368 and
to pin 15 of '232 and to pin 5 of PC port connector.
See also: (7) & (8) for other ground connections.
5) +5 Volt connections:
Pin 10 of SIO connector to pins 16 and 14 of '368
and to pin 16 of '232.
See also: (7) & (8) for other +5 V connections.
6) Tri-State enable control:
Pin 7 of PC port connector to pin 8 of '232.
Pin 9 of '232 to pin 10 of '368.
Pin 9 of '368 to pin 15 of '368.
7) Four 22 microfarad, 25 volt electrolytic capacitors:
(Needed for the +5 V to +/- 12 V converter)
a) (+) to '232, pin 1; (-) to '232, pin 3.
b) (+) to '232, pin 4; (-) to '232, pin 5.
c) (+) to ground, (-) to '232, pin 6.
d) (+) to '232, pin 2, (-) to +5 Volt line.
8) 0.1 microfarad 25 volt disk capacitor:
(For noise suppression/de-spiking)
+5V line to Ground, near '368 chip.
9) I connect the drain or shield (bare) wire in the Atari I/O cable to the drain wire in the PC cable, but I don't connect it to a DB-9 connector pin.
If you wish, you can use this information to draw a schematic using gate symbols (a triangle on its side). The pins for the gates of the two chips are:
IC-232:
TTL in, RS-232 out RS-232 in, TTL out
INPUT
|
OUTPUT
|
INPUT
|
OUTPUT
|
11
|
14
|
13
|
12
|
10
|
7
|
8
|
9
|
SUPPLY: +5 VOLTS: pin 16, Ground: pin 15
Capacitors for converter: See (7) above.
74LS368:
ENABLE SECTION 1: Pin 1 Note: LOW enables, HIGH for Tri-State SUPPLY: +5 VOLTS: pin 16 |
I know this is a bad scan of the 74LS368. I will redo it later.
CONNECTOR INFORMATION:
Most PC serial ports use a 9 pin connector known as a DB-9. The connector has male pins. Therefore, the connector you put on your interface connector should be a DB-9F, with sockets. This is the view of the connector on the computer. It is also the view of the rear of the DB-9F connector (the end you solder the wires to):
1 2 3 4 5 6 7 8 9
The Atari serial port uses a specialized connector which I haven't found anywhere else. Looking into the jack on the computer, it looks like this:
2 4 6 8 10 12 1 3 5 7 9 11 13
You can get the connector itself from Atari parts suppliers. However, I prefer to buy an I/O cord with connectors on both ends and cut it in half. Then you can use an ohmmeter to find out which wire is wired to which pin.
25 Pin Serial Port Connector:
Many PC serial cards use a 25-pin connector instead of a 9 pin. Here are the equivalent pins if you have the 25 pin:
DB-9 | DB-25 |
2 | 3 |
3 | 2 |
5 | 7 |
7 | 4 |
9 | 22 |
PARTS LIST FOR SIO2PC KIT
_____ 1 - BOX, /w LID, SCREWS (R.S. 270-220, 4 X 2 X 7/8)
_____ 4 - 22 uF ELECTROLYTIC CAPACITORS, 25 volt
_____ 1 - 0.1 uF DISK CAPACITOR, 25 volt or more.
_____ 1 - INTEGRATED CIRCUIT, I.C # 1 (74LS368)
_____ 1 - INTEGRATED CIRCUIT, I.C. # 2 (ICL-232 or MAX232)
_____ 1 - SIO CABLE & CONNECTOR (Atari I/O cable cut in 1/2)
_____ 1 - 5 CONDUCTOR CABLE
_____ 1 - DB9F OR DB 25F CONNECTOR (as req'd for your PC)
_____ 1 - CONNECTOR HOOD
_____ 1 - CIRCUIT BOARD (R.S. 276-150)
_____ 6" BARE WIRE
_____ 6" INSULATED WIRE
_____ 2 - 16 PIN IC SOCKETS
R.S. means Radio Shack. You can get most of the common stuff from there. I drill a hole in each end of the box and install grommets (from Radio Shack) in them. Then I feed both cables through the grommets before connecting them to the board. I put the board in the box component side down. Note: this board is almost a perfect fit in this box, but actually is a bit snug. I take a file and trim 1/16" or so off the long side before working on the board. Or, you can use the next larger size box.
OTHER COMPONENT SUPPLIERS:
The only slightly difficult to find part is the ICL-232.
The MAX232 is a more common part and can be purchased from:
www.jdr.com
JDR Microdevices
2850 South 10th Street
San Jose, CA 95112-4108
1-800-538-5000
www.jameco.com
Jameco Electronics
1355 Shoreway Road
Belmont, CA 94002-4100
1-800-831-4242
DIGI-KEY
701 Brooks Ave. South
P.O. Box 677
Thief River Falls, MN 56701-0667
800-344-4539 or 218-681-6674
The above suppliers will also have the 74LS368 and capacitors & connectors.
For the Atari I/O connector or cable I use:
AMERICAN TECHNA-VISION
2098 Pike Avenue
San Leandro, Calif. 94577
415-352-3787
For Atari parts, also see:
B & C Computer Visions
3257 Kifer Road
Santa Clara, CA 95051
408-749-1003
If you want, you can contact me about parts. I'll currently supply a kit of all the parts listed plus drawings and instructions for $30 plus $5 P & H. I'll build and test it for another $20. If you go this way, I don't expect additional "shareware" payment for the software.
Note: I don't know if Nick is still offering a parts kit for this circuit. You will have to email him and see.
DISCLAIMER/WARNING!!!
As of this writing there are around 20 to 25 users of this software and interface, all having satisfactory results. However, unless you feel comfortable with building circuits and interfacing computers, I don't recommend trying it without help. Likewise, errors are possible in my above circuit description. I recommend getting the data sheets for the chips and seeing for yourself that the pin numbers I give match up with the mrgr's description.
In general, the inputs and outputs of both the Atari and the PC serial port are fairly resistant to damage from inadvertent grounding, connecting two outputs together, etc. However, your system may turn out to be the delicate one. Note: the negative going output of the RS-232 port stands a good chance of DAMAGING any TTL input it is connected to.
In other words, the RS-232 to TTL conversion performed by the ICL-232 (MAX232) chip is absolutely necessary.
On the software side, I have taken pains to ensure against damaging your files. For instance, I only use DOS calls, I don't do any direct disk sector writes. But the PC is a complex beast, file outputs can be redirected, resident programs can clash in strange ways with TSRs, etc. So, please use this program at your own risk.
If you're building it yourself, also see the KITINSTR.DOC file for a detailed, wire by wire checklist of instructions.
Also, the standard Atari disk image (which was around long before SIO2PC or the Atari 8-bit emulators) is ".DCM" - "DiskCommunicator". This can of course make boot disks. To boot your Atari with a DOS, you'll need a DOS disk.
Some DOSes available include:
Atari DOS 2.0
Atari DOS 2.5
MyDOS 4.5x
SpartaDOS 3.2x
(where "x" is some number or letter).
You can download MyDOS
4.5x or SpartaDos
3.2x here.
(Note: This is the latest version of MyDOS and corrects a bug when doing
a MEMSAV)
Pin-outs for the DB9 and DB25 connectors. Signal Name DB9 DB25 --------------------------------------------- DCD (Data Carrier Detect) 1 8 RX (Receive Data) 2 3 TX (Transmit Data) 3 2 DTR (Data Terminal Ready) 4 20 GND (Ground) 5 7 DSR (Data Set Ready) 6 6 RTS (Request to Send) 7 4 CTS (Clear to Send) 8 5 RI (Ring Indicator) 9 22