Dual Pokey 2.0

I was not very satisfied with the Gumby upgrade as many programs and games were written for mono (single Pokey). However as Pokey generates sound pseudo randomly, I made a “spatial” stereo mode of operation.

Little background:
Pokey chip has 16 address registers, and original Ataris have it wired to $d200 address with “clones” on $d210, $d220 etc… to save some money on circuitry there is a decoder chip 74LS138) that watches only three bits of the atari data bus. And based whether you adress $d0xx or $d7xx it gives 8 outputs for activating Pokey, Gtia, Antic, cardtridge port etc., so only one chip is active at time. 3 bits gives 8 possible combinations, and this chip decodes them to 8 output wires. This is 3 line to 8 line demultiplexer. The ram/rom is disconnected when accessing locations $d000-$d7ff.

Pokey has 16 addresses thus it has only 4 lowest address bus inputs.

Basically, Pokey does not care about other address bus bits.
When it is necessary to “talk” to Pokey, it gets it’s CS (CHIP SELECT) signal from U2 chip – the 74LS138 demultiplexer.

In fact Pokey has two CS inputs (CS0 and CS1), and originally CS1 is hardwired to Vcc. Pokey needs both chip selects to be active in order to be activated.

GUMBY stereo upgrade makes distinction and uses this CS1 pin to switch pokey 1 or pokey 2. There is another decoder for that, reading bit 5 of address bus. Based on this, FIRST pokey is on $d200, $d220, $d240…
and SECOND pokey is on $d210, $d230, $d250…

I used the improved “piggy back” method and second pokey is plugged into precision socket soldered on top of the original pokey, with some socket pins removed, so you don’t need to bent up the pins.

Original modes of operation

  • In stereo position, left Pokey is active at $D20x and right Pokey is active at $D21x
  • In mono position all is stock and both audio outputs use the original Pokey at $D2xx

Of course all shadows addresses are valid too.

My small improvement – spatial stereo

  • In stereo position, left Pokey is active at $D20x and right Pokey is active at $D21x
  • In pseudo stereo, left Pokey is always active at $D20x, $D21x,…. and right Pokey receives just all writes that left Pokey gets

The pseudo-stereo effect can be heard on many mono games, mostly on headphones.  Additionally, You don’t need to switch the analog output routing, as they are always connected the same way now.

Schematic and Truth table

You need just two 74LS00 (74HC00) chips. Stereo/pseudo stereo mode is controlled by logical 1 on the STE input. You can use mechanical switch for that, or connect to pin M0 of the ultimate1MB as I did.

 

Result