POKEY STEREO UPGRADE by C. Steinman (GEnie User: DataQue.1)
Presented 12/16/1989
Information file for adding stereo to an Atari 8-bit computer
using two pokey chips. Note: Installation of this modification will
void any warrenty you may have on your computer. Chuck Steinman,
DataQue Software, or GEnie telecommunication service cannot be
held responsible for the installation of this upgrade or any incidental
or concequential damage to any equipment or persons using this
upgrade or any variation of it. In other words.... you are on your own.
This is upgrade version #1. It will only provide stereo output for
software written specifically for this upgrade. It will not produce
stereo output for existing software. Also, the keyclick will NOT
be fed into the stereo outputs, as it does not originate from POKEY.
A) Parts Needed:
1) Second Atari POKEY Audio Chip
a) BEST CO12294 $5.00
b) B&C ComputerVisions C2294 $3.50
2) 74LS14/74HCT14 Inverter
a) BEST (74LS14) CO16541 $0.30
b) Jameco (74HCT14) 74HCT14 $0.29
3) 1000 Ohm, 1/4 Watt Metal Film 2-5% Tolerance
a) Jameco (10 lot) R1.0K $0.50 for 10
b) Radio Shack (2 lot) Dont know P# or $
4) Two RCA style phono jacks
a) Radio Shack, Jameco or other electronics outlet
b)
5) Two 0.01 (or close) 16V (or more) bypass capacitors.
Jameco DC.01 $0.10 each
6) Two short (6-12" each) sections of shielded audio cable.
7) A standard dual RCA to RCA patch cable.
8) Optionally two 50k single turn trimmer pots.
Jameco 63P50K $0.89 each
B) Hardware
1) Inverter Information
a) Bend up all pins of the inverter except for pins 7 and 14.
b) Cut off the narrow part of the pins which were bent up.
c) Install the inverter over top of the existing 74LS14
(or another 74LS part if more convenient) on the motherboard.
Make sure that the new chip has its locator notch/dot on the
same end as the chip below it.
d) Solder pins 7 and 14 of the inverter to the same pins of the
lower IC.
e) Run a small wire (wire wrap type works best) from pin-1 of the
inverter to pin-13 of the CPU. The CPU is part number CO14806
on the XL/XE series.
f) On the old POKEY there is a 3k pullup resistor connected between
pin-31 and Vcc. You will need to unsolder this resistor and
remove it.
g) Run a small wire from pin-2 of the inverter to pin-3 of the
inverter, and then on to POKEY pin-31. Note, you can use the
pad where the resistor was just removed. Be sure to get the
correct one.
2) POKEY Information
a) Bend up all pins on the new POKEY which are marked with a
minus on the diagram. This includes POKEY pins: 8,9,10,
11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28, and 29.
b) Cut off the narrow part of each pin bent up.
c) Tin each lead which was NOT bent up. This includes pins
1,2,3,4,5,6,7,17,30,31,32,33,34,35,36,37,38,39 and 40.
These pins are marked in the diagram as *,>>, or <<.
d) Now, bend up the pins indicated by the >> and << symbols.
Do NOT cut these pins short.
e) Place the new POKEY on top of the old POKEY in a piggy-back style.
f) Solder the unbent pins of the new POKEY to the old POKEY.
If your original POKEY was in a socket, then it is easier
to connect the two if it is removed. Make sure no excess
solder flows down the pins to the narrow part of the OLD POKEY.
Reinsert both POKEYs into the original socket.
g) Solder the 1k resistor from pin 37 to Vcc. The most convenient
location to pick up Vcc is where the 3k resistor was removed
earlier.
h) Solder a wire from pin-31 of the new POKEY to pin-4 of the
inverter.
i) Mount the two RCA jacks on the rear of the case, preferably
in an area close to the POKEYs.
j) Solder a bypass capacitor to each of the center conductors
of the RCA jacks.
* k) With the trim-pot knob facing you, pin 1 should be to the
left side. Solder a wire from this pin on each trimmer, to a
ground trace on the motherboard.
* l) Connect the free end of the bypass capacitor to the center
pin of the trimmer (one capacitor to each trimmer).
* m) Connect the shields of the audio cables to the provided solder
lugs on each RCA connector, and the center conductor of the free
terminal of each trimmer.
n) Connect the center conductor of the free end of the audio cable
which is connected to the left RCA jack/trimmer/cap to pin-37 of
the OLD POKEY.
p) Connect the center conductor of the free end of the audio cable
which is connected to the right RCA jack/trimmer/cap to pin-37 of
the NEW POKEY.
q) The shield of the audio cable on the POKEY end, should be cut and
taped (or heat shrinked) so that it does not touch anything.
r) Run a 18-20 AWG wire from the ground lug of the RCA jacks
to the wide ground area on the motherboard. This normally
makes contact with the shield box that covers the motherboard.
s) You will now be able to connect the two RCA cables to an
AUX (or Tape) level input of a stereo or boom box.
* t) I would suggest centering the trimmers in their travel, and
adjusting them as needed to get the best clarity. You may
want to glue the trimmers to the back of the cabinet to keep
them from moving around.
* NOTE: On my system the POKEY outputs worked fine without the trimmers.
So I just connected the bypass capacitor on each RCA jack to
the apropriate audio cable center conductor. This was driving
an AUX 350mV input of a Pioneer SPEC-1 preamplifier.
POKEY Pinout
____ ____
| \/ |
Vss *| 01 40 |* D2
D3 *| 02 39 |* D1
D4 *| 03 38 |* D0
D5 *| 04 37 |>> Audio Out
D6 *| 05 36 |* A0
D7 *| 06 35 |* A1
02 *| 07 34 |* A2
Pot-6 -| 08 33 |* A3
Pot-7 -| 09 32 |* R/W
Pot-4 <<| 10 31 |<< CS1
Pot-5 -| 11 30 |* /CS0
Pot-2 -| 12 29 |- /IRQ
Pot-3 -| 13 28 |- Serial Data Out
Pot-0 -| 14 27 |- A Clock
Pot-1 -| 15 26 |- B Clock
Key Strobe 2 -| 16 25 |- Key Strobe 1
Vcc *| 17 24 |- Serial Data In
Keyboard-5 -| 18 23 |- Keyboard-0
Keyboard-4 -| 19 22 |- Keyboard-1
Keyboard-3 -| 20 21 |- Keyboard-2
|__________|
C) POKEY Registers:
I will only elaborate on registers used to produce sound
in the stereo upgrade. All registers which were in the
original POKEY will appear in the second POKEY 16 bytes
higher in memory. The extra UART, key scanner, and pot scanner
could be used for all kinds of neat projects.
Location Name R/W Function
-------- ------ --- ----------------------------------------------
$D200 AUDF1 W Audio Channel #1 Frequency (Divide F/n)
$D201 AUDC1 W Audio Channel #1 Control (Vol/Distort)
$D202 AUDF2 W Audio Channel #2 Frequency (Divide F/n)
$D203 AUDC2 W Audio Channel #2 Control (Vol/Distort)
$D204 AUDF3 W Audio Channel #3 Frequency (Divide F/n)
$D205 AUDC3 W Audio Channel #3 Control (Vol/Distort)
$D206 AUDF4 W Audio Channel #4 Frequency (Divide F/n)
$D207 AUDC4 W Audio Channel #4 Control (Vol/Distort)
$D208 AUDCT1 W Audio control for channels 1-4
$D20F SKCTL1 W Serial Port Control
$D210 AUDF5 W Audio Channel #5 Frequency (Divide F/n)
$D211 AUDC5 W Audio Channel #5 Control (Vol/Distort)
$D212 AUDF6 W Audio Channel #6 Frequency (Divide F/n)
$D213 AUDC6 W Audio Channel #6 Control (Vol/Distort)
$D214 AUDF7 W Audio Channel #7 Frequency (Divide F/n)
$D215 AUDC7 W Audio Channel #7 Control (Vol/Distort)
$D216 AUDF8 W Audio Channel #8 Frequency (Divide F/n)
$D217 AUDC8 W Audio Channel #8 Control (Vol/Distort)
$D218 AUDCT2 W Audio control for channels 5-8
$D21F SKCTL2 W Serial Port Control
Each Audio Channel Frequency Register is an 8-bit value which is
a divisor of the primary frequency.
Each Audio Channel Control Register Controls the Volume and
Distortion of each channel. The bits are assigned as follows:
76543210
----vvvv Volume control bits. Range controls volume as follows:
0000 lowest volume level
\/
1111 highest volume level
---s---- Volume only bit. Directly controls audio output:
0 Speaker output is off
1 Speaker output is on
ddd----- Distortion code. Code "Pending_relink" tppabs="http://dhor.zakopane.top.pl/html'e/is.class" assigned as follows:
000 5-bit/17-bit poly noise
001 5-bit poly noise
010 5-bit/4-bit poly noise
011 5-bit poly noise
100 17-bit poly noise
101 pure tone
110 4-bit poly noise
111 pure tone
The AUDCTn register controls all channels. There are several
functions assigned to this register as follows:
bit-7 Makes 17-bit poly into 9-bit poly counter
bit-6 Clock Channel-1 with 1.79 MHz (CPU rate)
bit-5 Clock Channel-3 with 1.79 MHz (CPU rate)
Bit-4 Join channel 1 and 2 to form 16-bit range
Bit-3 Join channel 3 and 4 to form 16-bit range
Bit-2 Insert filter in channel-1, clocked by channel-2
Bit-1 Insert filter in channel-2, clocked by channel-4
Bit-0 Switch clock base from 64kHz to 15kHz
The SKCTLn register controls various functions of the POKEY
device, and only has to be initialized to a value of three
to assure all four channels of POKEY are active.
Note: To detect if the upgrade is installed, look at the
8 extra pots, they will be all zero. Also the key
code register will be also zero. If you compare
the keycode at $D209 with that of $D219, and $D219
is zero, the upgrade is installed. You may want
to mask IRQ's during the test for safety.
Let me know what wild things you all come up with for this
upgrade... and in a few days I will try to have the version
2 upgrade, if it is possible.
thanks,
Chuck