rec.games.pinball by CLIVE JONES
it's been a few months since I wrote a technical article for the group,
in looking for a suitable subject to cover, and, I haven't yet done
sound generation, we have todays offering - Bally's AS-2518-61 "Squawk
Your probably going to need schematics to follow what I'm about to tell
otherwise you might get a little lost - you have been warned!!! This
assumes that you know something about how microprocessors work.
We're really going to tear the Squawk and Talk board apart with this
article - so
get ready for some heavy "tech-talk".
Before I start, I would like to thank fellow Englishman, pinball partner
RGP'er Pete Clare for providing the data sheets on the TMS5200, TMS6100
ROM and the AY3-8912 PSG which saved me from pulling half my hair out!
This has been the most challenging technical article I have yet written.
The main problem being that both the MPU board game code and the Squawk
and Talk code changed for every game that Bally produced. There are
also a few software "mysteries" to contend with. Without actually
hacking every peice of game/sound ode and having access to every Squawk
and Talk board ever released, it is impossible to conclusively say "this
happens in every game" Therefore, I've tried to base the foundations
of the article on as much reverse engineering as I could possible do.
Few would dispute this speech and sound generating board is the best
generation (early 80's Bally pinball's) - I personally think it's something
masterpeice with it's *very* clean design.
The squawk and talk has 11 major IC's in it's memory map (count 12 if
board has a 6810 installed in the socket at U6). These are;
U1 - Motorola 6802 or 6808 8-bit microprocessor (see note).
U2 - ROM.
U3 - ROM.
U4 - ROM.
U5 - ROM.
U6 - 6810 RAM (only used if a 6808 microprocessor is fitted - otherwise
socket is empty).
U7 - 6821 PIA for controlling the speech IC - TMS5200 VSP and TMS6100
VSM "phrase" ROM.
U8 - TMS 5200 VSP Speech IC (does not occupy address space).
U9 - TMS6100 VSM 16k byte "Phrase" ROM containing speech data
installed) Again, it does not occupy address space.
U10- AD558 DAC for coverting digital wave data in ROM to audio.
U11- 6821 PIA for controlling the AY3-8912 sound IC and the test LED.
U12- General Instruments AY3-8912 PSG (Programmable Sound Generator)
IC, which again, does not occupy address space.
These aren't the only IC's on the board, they're just the most noticable.
others we will come to later.
[Note: As with Williams pinballs of the era, a Bally Sound board could
fitted with either a Motorola 6802 or a 6808 microprocessor. The 6802
contained 128 bytes of NMOS RAM that had to be selected by pulling the
'RE' (RAM Enable) line high , otherwise a 6808 was used, the RE line
grounded (via jumper-"L") , and a 6810 RAM IC (128 bytes)
was located at U6
on the Squawk on Talk board. When a 6802 is used the RE line is strapped
the reset line of the processor (via jumper-"k") which is
held high during
The devices that occupy the 64Kb of address space within Squawk and
mapped out thus;
$0000-$007F - (Page zero RAM) - internal to the uP (6802) or remote
RAM at U6 (6808).
$0080-$0083 - PSG control PIA (the AY3-8912 ) and game MPU
communications at U11.
$0090-$0093 - Speech control PIA at U7 - the TMS5200 speech IC and
TMS6100 phrase ROM.
$1000 - DAC at U10 (Digital to Analog Convertor)
ROM's - I decoded these address's by hand and therefore are showing
maximum size using a 4k byte ROM (32K-bit) instead of the smaller (half
storage - 2k byte) 2516/9316 ROM's.
$8000-$8FFF - ROM at U2 (2532/9332 ROM)
$9000-$9FFF - ROM at U3 (2532/9332 ROM)
$A000-$AFFF - ROM at U4 (2532/9332 ROM)
$B000-$BFFF - ROM at U5 (2532/9332 ROM)
The power requirements for Squawk and Talk are generated thus;
The +5 volts required for the logic and the positive rail for TMS5200/6100
generated by the LM323 5 volt regulator VR1 (lower right corner of the
the larger of the two heatsinks). This regulators input is supplied
from the 12
volt unregulated supply which also supplies the power to the test LED.
same unregulated 12 volts is filtered by the 4700uF/25v capacitor at
remove unwanted AC ripple and supply DC power to the TDA2002 mono power
The 7905 (the "9" indicates negative voltage as opposed to
a 7805 which is a
positive 5 volt regulator) -5 volt regulator at VR2 provides the negative
too the split rail TMS5200/6100 IC's. It is supplied from the 6.3v lamp
and is *doubled* and *inverted* on input to provide -12.6v. The 6.3
supply is too low an input voltage for the regulator as it requires
at least -7.5
volts on it's input to output a steady -5 volts supply. The -5 volt
not require a heatsink as the only devices drawing on it are the TMS5200/6100
The code/sound ROM types/sizes/how many fitted into sockets
U2, U3, U4 and U5 are *game specific*, and need to have the usual Bally
method of wire jumpers correctly set according to the game manuals,
they can be addressed correctly by the microprocessor. Bally made the
board in a more tidy manner as the jumper positions are neatly above
another - unlike the MPU boards were you have to search the PCB for
Squawk and Talk will accept Bally mask programmable ROMs (non-erasable)
and EPROMs (erasable) into any of the 4 ROM sockets (not the 6100 socket
2716 16k-bit (2k byte) EPROM or equivalent Bally 9316 mask ROM.
2532 32k-bit (4k byte) EPROM or equavalent Bally 9332 mask ROM.
It's always a good idea to transfer the data in those mask ROM's to
and keep a binary file of the ROM image stored safely away somewhere
your hard disk for example) if you have access to an EPROM programmer.
Squawk and Talk generates speech by using the Texas Instruments TMS5200
VSP (Voice Synthesis Processor) IC located at U8. Speech data is held
EPROM or the TMS6100 VSM (Voice Synthesis Memory) "phrase"
ROM at U9 which
contains upto 16k bytes (128k bit) of speech data. Note that the 6100
is a custom device and to the best of my knowledge no EPROM equivalent
is or will ever be available. This ROM is adressed over 4 data lines
outputs data serially - a slightly unusual configuration.
The 5200 uses a method of data compression known as "pitch excited
Predictive Coding" or "LPC". It can only process data
compressed with this
algorithm. Speech data held in the 6100 ROM or S+T EPROM(s) is compressed
in this manner. The 6100 is connected directly to the 5200 which
controls the addressing and fetching of speech data from the 6100 for
internal processing after *first* receiving commands from the Squawk
680x uP via the PIA at U7.
When Squawk and Talk is required to generate speech *without* the 6100
VSM in U9, the LPC encoded speech data is held in EPROM and accessed
through the PIA to the 5200 VSP. With this method of data transfer,
the 5200 is instructed to operate in a mode known as "speak external".
other words the uP says "forget about getting data yourself from
VSM ROM ('cause it's not there), - I'll give you the data directly".
I'll make all
references to speech generation using the 6100 VSM from this point as
little more complex and less boring than refering to how the uP transfers
byte-wide compressed data through a PIA to the 5200 VSP (but the 5200
processing description is the same no matter where the VSP gets it's
The Squawk and Talk 680x has access to the 5200's internal address pointer,
which it modifies to point at new phrases in 6100 ROM. The uP then instructs
the 5200 to fetch data from that address and process it for output as
6100 ROM speech data is received into the 5200 in *serial* form (one
another on the same line as opposed to 1 line for every bit) which undergoes
serial to parallel conversion before being stored in the 16 byte internal
buffer/stack. Amazingly, the 6100 is a 28 pin device but only 10 pins
used - the other 18 are *not* internally connected.
The TMS5200 is a microprocessor in it's own right. It handles data and
addressing of the 6100 with minimal external uP interaction. It also
the bus timing for data transfer to the 6100 for synchronous data transfer
The TMS5200 is too slow to place directly on the 680x microprocessor
680x would be waiting for a response/acknowledgement (forcing a uP to
this manner is known as inducing a "wait-state") whilst it
could be off
performing other tasks. Therefore, a 6821 PIA is employed at U7 which
as a parallel interface for the 680x uP to pass command/speech data.
Because the TMS5200 is not directly connected to the 680x address bus
does not occupy address space, instead, only the PIA's
address space (4 bytes) is visable to the uP as it's "in the way"
of the path
between the uP and the VSP. When the uP wants to talk to the VSP it
do it through the PIA (the same thing occurs for the 8912 PSG as we'll
later). The 680x can write parallel (8 bit) command/speech data for
through the PIA (which then controls the hardware side of interfacing/handshaking
with the 5200), and therefore, does not have to wait for a response.
interrupts through pin 17 - "INT" (interrupt) via the edge
sensitive CB1 line of
the PIA when it requires data to be transfered to it's internal stack,
turn interrupts the 680x via the IRQ line.
The 5200 "excites" digitally encoded speech by using an internal
to simulate the vocal tract of the human voice. The exact description
encoding is not a trivial matter to put into easy to understand English
not technically minded. The procedure (as with most speech processing)
complex one, it goes something like this;
LPC synthesizes human speech by recovering from the *original*
recorded/sampled speech enough data to contruct a time-varying digital
which attempts to model the vocal tract of the human voice. This filter
further "excited" with a digital representation of either
glottal air impulses (for
voiced sounds) or the rush of air (for un-voiced sounds). The filter
then passed through the internal digital to analogue converter which
the final speech waveform.
The 5200 VSP *does not* encode speech data "on-chip" (unlike
speech IC's we're used to seeing which can both encode and decode).
seperate program/hardware is required to perform the encoding by analysis
the speech samples.
The LPC analysis program begins with a set of digitized speech samples,
which are usually derived by passing the analogue speech through an
analogue to digital converter (ADC) at a sample rate of 8 or 10KHz.
Consecutive samples are grouped together to form a "frame"
of samples for
analyzing - anywhere between 50 and 400 samples may form 1 frame, but
typically it is 200 samples. The LPC analysis program takes each frame,
then calculates the pitch, energy and spectral coefficient by
*pre-emphasizing* the speech samples. The frames are then stored in
data form within the 6100 VSM for recall or as parallel encoded speech
This LPC method of speech encoding compresses speech data from 100,000
bits/sec (raw speech data) to about 4800 bits/sec. The analyizer program
reduces this figure still further - to 2000 bits per second or less
taking *it's own* 10 bit speech parameters and compressing them to between
3 and 6 bit codes (depending on whether all the parameters were used
- if the
sound is voiced or un-voiced).
Speech encoded data received by the 5200 is then un-packed and tested
internally for validity before having the energy, pitch and spectral
associated with the sample stored in RAM for the modelling/conversion
The internal 128 bit FIFO stack (First In First Out - also know as the
arranged as sixteen 8-bit bytes to hold speech data passed to it/fetched
the 6100/S+T EPROM. As the data is pulled from the stack it is passed
the internal DAC for conversion to speech before being ouput as the
phrase to the amplification circuits. If the 5200 stack decrements to
or less (half empty), it raises an IRQ onto the squawk and talk 680x
via the PIA
to ask for a command to fetch more data (or speech data if in "speak
The 5200 also raises an interrupt when either the 5200 has finished
processing and requires more data to process from the 6100 ROM/S+T
5200 interrupts: The 5200 asserts "INT" on three occasions
but they are
basically the same thing...
Talk Status (TS) - the 5200 has finished processing speech and the buffer
Buffer Low (BL) - The buffer (stack) is down to 8 bytes or less but
Buffer Empty (BE)- The buffer is now completely empty.
The three conditions above are given as flags in the 5200's internal
register which the 680x can read at anytime to establish the current
of the chip.
This means that the 5200 data transfer by the Squawk and Talk 680x is
"interrupt driven" - the uP on receiving an IRQ request from
the PIA at U7
knows that the 5200 has processed data (the interrupt is determined
examining the PIA's internal interrupt flags) and the uP can transfer
command/speech or modify the 5200's speech phrase address pointer and
therefore, indirectly, speech data to it.
The conversion of speech data by the 5200 introduces an unwanted gift
"digital conversion noise", this is a very common problem
digital to analogue conversion of audio or speech data. To overcome
frequency noise which has been superimposed onto the speech phrase,
"Low Pass Filter" (LPF) is used which attenuates speech phrases
at a rate of
12db per octave above 5KHz. One quarter of U13 (one amp) - a LM3900
Operational Transductance Amplifier is used as a second order LPF. The
speech is "cleaned up" and rounded off. I think this matches
bandwidth that Williams had at the time using CVSD technology (Continuous
Variable Slope Delta modulation) - but don't quote me on it! The speech
fed into a "voltage controlled amplifier" (VCA) at U14 (another
op-amp), to be, erm...amplified, before being further fed into the 8
TDA2002 mono power amp (U18) which drives the 8 ohm speaker.
The VCA's output amplitude can be directly controlled by a "control
(CV) at it's input - hence it's name. The VCA control voltage is generated
the another amplifier in the LM3900 OTA at U13 which is acting as a
The DAC's output amplitude is controlled by "weighting" it's
input with 4
resistors in series with the PIA port B output at U7 (pins PB4 through
be exact). The 4 bit code passed to the DAC from the PIA allows for
of amplification which translates to 16 different speech output levels
VCA, and ultimately, the power amp.
Sound generation/special audio effects are handled in two ways;
1 - A General Instruments AY3-8912 PSG IC fitted in U12 under control
PIA at U11 (which is in turn controlled by the S+T 680x) generates basic
wave tones, noise and sound shaping envelopes that control the output
amplitude to the amplifier cicuits. These tones are limited in scope
many different square waves can you have?).
Sound selection for the PSG is *not* made by S+Ts 680x - the "solenoid/*sound*
select" lines (the signal that also selects solenoids on the playfield
to fire via
the driver/power regulator board) of the *MPU* board select the sounds
required. S+T merely writes *command* data to the PSG telling it what
to play etcetera via the 8 lines of port A (PA0-PA7) linked to the bi-directional
bus lines of the PSG (D0-D7). The 680x can at anytime write too or examine
the internal registers of the PSG to find out the current state of the
Sound select triggers from the MPU board arrive at Squawk and Talk via
The PSG contains 3 channels for producing audio - A, B and C. In addition
these channels, the PSG also contains waveform mixers, a noise generator,
and amplitude (loudness) control for each channel through independant
that can have one of ten different amplitude envelopes applied to them.
envelopes are all differing from each other, they simply raise, lower
(hold) the volume, either repeating the nvelope or as a "one-shot"
operation. Adjustment of the envelope frequency is also provided. Repeatedly
modifying of the waves amplitude without affecting the pitch is of course
known as - amplitude modulation (AM).
The 3 audio channels are then summed together by linking the 3 output
The chip also contains a bi-directional 8 bit data port - used in Squawk
Talk to pass the incomming sound select strobes in it's I/O pins (input/output)
to the S+T 680x via the PIA.
[The AY3-8910 used on earlier Bally sound boards have exactly the same
internal sound generating architecture as the 8912, with the exception
the 8910 is a 40 pin device and contains two 8 bit I/O ports.]
The 8912's 16 internal registers and they're permissable values are;
00 - Fine frequency channel A (0-255)
01 - Frequency channel A (0-15)
02 - Fine frequency channel B (0-255)
03 - Frequency channel B (0-15)
04 - Fine frequency channel C (0-255)
05 - Frequency channel C (0-15)
06 - Noise period (0-31)
07 - Mixer (0=enable, 1=disable);
bit 0 - Channel A tone enable
bit 1 - Channel B tone enable
bit 2 - Channel C tone enable
bit 3 - Channel A noise enable
bit 4 - Channel B noise enable
bit 5 - Channel C noise enable
bit 6 - I/O port A mode (0=input, 1=output)
bit 7 - I/O port B mode (0=input, 1=output)
(you'll notice two port enable bits - as previously mentioned the 8912
same architecture as the dual port 8910)
08 - Volume channel A (0-15 or 16=envelope control)
09 - Volume channel B (0-15 or 16=envelope control)
10 - Volume channel C (0-15 or 16=envelope control)
11 - Envelope fine frequency (0-255)
12 - Envelope frequency (0-255)
13 - Envelope shape (0, 4, 8-15 select the desired envelope)
14 - Port A (status of pins on input, byte value/pin status on output)
15 - Port
B (status of pins on input, byte value/pin status on output)
The U11 PIA on the *game* MPU board outputs the sound (solenoid) select
signals. All the incomming signals are inverted on Squawk and Talk by
CMOS 4049 hex inverter at U16 before ending up as a 4 (or 5 bit) bit
code on the AY3-8912's I/O port pins IO0-IO4. (There are eight I/O lines
IO5-IO7 are not used - they are grounded.). Squawk and Talk knows of
incomming sound request as the PIA at U11 interrupts the 680x IRQ line
(Interrupt ReQuest) after receiving an interrupt on it's own CB1 line.
"solenoid/sound select" line of the game MPU (J1/10) which
is connected to
the PIA at U11's CB1 pin is forced high by the game MPU board - this
a *low* IRQ interrupt on Squawk and Talks 680x via the one of the inverters
U16 (pin 2 - inverted output of the "solenoid/sound select"
line from the game MPU
board). The interrupt forces S+T to look at the I/O input port register
the PSG (via port A of the PIA) and read the code presented by the MPU
which is then transfered by the S+T 680x for decoding.
Bally state: "The code number of the sound/speech required is passed
half-bytes (nybbles - 4 bits) over the solenoid select lines which are
select inputs to the Squawk and Talk". So, when a solenoid is required
fire as a result of a valid switch closure detection on the playfield
or in the
cabinet, the game code would pass a "sound code" associated
solenoid to the Squawk and Talk board in binary format.
<Techie timing bit - crash helmets on!>
Data transfer of the two 4-bit "code" nybbles to S+T is synchronous
"data taken" handshake back from S+T indicating it has received
The sound select interrupt that arrives on the CB1 pin of the PIA at
U11 is low
for 40 microseconds, before going high again. Following a 22 microsecond
delay (probably due to the time the S+T uP has to process the interrupt
service routine), the first nybble is presented by the game MPU on port
which S+T must take within 145 microseconds. The second nybble is sent
immediately afterwards but only lasts for 78 microseconds. If S+T does
take the data within the specified time (say, it only gets the first
because S+T the bus is running slow due to failure) - S+T may actually
the wrong sound!
<End of techie timing bit>
Note: The same lines 4/5 lines passed from the game MPU through the
are also used to select *speech*.
Strangely, the schematics that I'm checking against show a *fifth* solenoid
select line wired to PA4 (if the "EE" jumpers are installed,
which, we'll come
to shortly) or IO4 of the PSG. Maybe Bally kept their options open by
keeping this fifth solenoid select line available on S+T?
More probably - bit 5 of this line is present to pass *command* data
*game* MPU 680x to the Squawk and Talk 680x. At power up the game MPU
board passes a basic code too S+T to enable it to initialize the onboard
to a predefined level of amplification - this level is user changeable
audit as part of the coin door tests. Consult your game manual for the
audit parameters. This begs the question "what other command codes
passed from the game MPU uP to the S+T 680x?". 256 command codes
possible using the two 4 bit nybbles in conjunction with the 5th line
- the 5th
line signals "command code" rather than "sound/speech
code". Total number
of codes possible then is 512 - 256 sound/speech and 256 command. This
course is pure speculation on my part, and, only hacking game code or
talking to S+T's hardware/software engineers will provide the answer.
When S+T has the sound/speech select code, it changes the state of the
PIA's port A from input (sound/speech code read) to output so that it
write the command data to the PSG which will then generate tones/noise.
(This isn't done of course if S+T is only required to output speech.).
has internal latches to, err.....latch the tonal data it generates and
sustain the sound without the S+T 680x having to refresh pitch command
data to it
in order to keep the sound playing. S+T will continue in this fashion
either the sound routine ends (it's finished) or it is interrupted and
play another sound. Unlike modern games, S+T (as far as I can tell)
sound *priority* - all sounds are equal and the previous sound will
and a new sound played on receipt of a new sound interrupt.
The AY3-8912's analogue output is filtered with yet another LPF (the
quarter - one amp of the LM3900 at U13) which has a cut-off frequency
3.5KHz and a roll-off of 12db/Octave as with the speech filter design.
is in place not to eliminate conversion noise (that's done "on-chip")
round off/soften the harshness of the square waves being output making
more pleasant to the ear. The filters cut-off frequency is fixed at
the PIA at U11 is able to kick-in a 2n3904 NPN transistor (Q2) which
the frequency to an low cut-off of 200Hz for special audio effects.
It's a shame that Bally's S+T designers did not add programmable resonance
control or low frequency software controlled modulation to the filters.
them 2/4 pole switchable with a 12/24db per octave roll-off could have
extended to tonal capabilities *far* beyond what they are now and would
blown the nearest pinball audio technology at the time clean out of
2 - As the PSG is limited to generating square waves or noise the Sound
ROMs contain additional wave data/wave generating algorithms that the
can shove through a digital to analogue converter for audio processing
the interaction of another PIA. The 680x is able to do this because
the DAC in
question (U10 - AD558) will interface directly with the 680x bus (it
has a "chip
select" pin and 3 state data lines) and sits on the data bus. This
reading wave data from ROM and shoving it through a DAC is similiar
Williams did at the time with it's sound with the exception that Williams
a PIA between the wave data and their 1408 DAC. Note also that the output
of the AD558 DAC is clean enough not to be filtered and enters the amplifier
circuit at the VCA input stage of U14 (between the AY3-8912 LPF output
Five jumpers - "EE" are used to connect the sound/speech select
directly to the PIA A port when the AY3-8912 PSG is *not* installed
With this configuration, the sounds are generated soley by using software
generated waves and effects through the DAC. The PIA at U11 interrupts
680x after receiving a request from the game MPU board as previously
discussed. This forces the 680x to look at the PIA port A lines *directly*
take the four (or 5 bit?) code presented on the pins over two nybbles.
Three sources are available to adjust amplification (gain) control -
under control of the 680x, R69 and R70 on the board for local adjustment
remote 1K ohm pots (substituting R69 and R70).
Bally give you the option of disconnecting the local speech pot (R69)
sound pot (R70) or the VCA's (if connected) with wire jumpers so that
1k pots can vary the speech/sound gain and mix. Remove jumper "m"
jumper "n" for the remote speech pot and remove jumper "cc"
jumper "dd" for the remote sound pot. If you so wish, you
both R69/70 *and* the remote pots in the cabinet/coin door and control
amplification/sound+speech mix by audits alone (VCA control).
As with the AS2518-xx MPU boards, Squawk and Talk's PIA's are wire
OR-ed together. The internal interrupt flags of both the PIA at U7 and
one at U11 need to be examined by the 680x to determine which PIA was
making the request.
The power-up reset circuit comprises of a timing capacitor (C1), a charge
resistor (R1) and a "quick discharge" diode (CR1) being fed
inverters in series at U15 (74LS14) and onto the reset pin of the 680x.
is a schmitt trigger inverter, meaning, it will not switch it's output
the input threshold voltage is reached or exceeded (approx 3.15 volts).
stops the output rising linearily which could start the 680x running
before it has
had time to stabilize correctly (reset timing equal to or greater than
cycles). It also prevents fast glitching due to rapid changes at the
input. The diode quickly discharges the capacitor should the logic 5
collapse - if it was not present, a positive charge may keep the inverters
active and prevent the 680x from going into reset. This may cause the
address lines to drop to a dangerously low level as the supply collapsed,
were, the bus devices would not be able to correctly identify active
active low states. For the 680x this could translate to a wrong intruction
and may result in a write (store) when it should have been a read (load)
instruction (possible memory over-write). Two inverters are used in
series as a tap off is made at the output of the first inverter (pin
2) and fed into
the "power sequencer" circuit for the TMS5200/TMS6100 speech
circuit provides +/-5v to the 5200/6100 via three PNP transistors (Q3-Q5).
circuit does not allow power to the speech ICs until the correct reset
has occured. The second in-series inverter is used to correct the state
reset signal to the 680x reset pin. (The reset line is high to the 680x
operation, but enters the speech "power sequencer" circuit
normal operation to switch on the PNP transistors).
Fortunately Bally got rid of the two phase clock generator and clock
using multivibrators used on previous 680xd based boards and replaced
with a 3.58Mhz crystal oscillator wired between pins 38 and 39 of the
This makes fault finding the clock signals significantly easier (check
clock directly at the 680x pins).
A 74LS155, - a dual 2 of 4 decoder/demultiplexer at U17 is used to generate
chip select signals for all the memory mapped devices (ROM's, PIA's,
on the bus by decoding address lines A11-A15 in conjunction with the
(Valid Memory Address) signal ouput by the 680x (pin 5) on either a
write cycle. The 6810 RAM at U6 ($00-$7F) also uses this address decoder.
It is automatically *deselected* when A7 goes high ($xx8x) and when
address on the bus *exceeds* $0FFF (1st 4 k boundary - start of DAC
address space). The 680x does not need to issue an address onto the
when the internal RAM is selected using a 6802, therefore the address
decoder has no bearing. No bus drivers are used on S+T as only one device
will be active on the bus at any one time, and the 680x has adequate
drive the one TTL load each device will represent (the other devices
"tri-state" - in "standby").
Problems with the onboard electrolytic capacitors have been mentioned
before on RGP. Basically these capacitors dry out and de-polarise with
aggrovated by the fact that some capacitors are close to heatsinks.
and Talk is no spring chicken - it's some 14-15 years old now and it's
probably a good idea to change those capacitors now before they fail
The capacitors are either used in a smoothing role or a stage coupling
the amplifier circuits.
Some well known US pinball repairers have capacitor replacement kits
available (and I'm not sure all the caps I've listed are in the kits).
In the UK,
you can get these common electrolytic caps from RS components, Maplin
and possibly Tandy (I get mine in work!). The 16 *axial* capacitors
C1 - 47uF/16v
C14 - 4700uF/25v
C15 - 10uF/16v
C19/C24/C25/C28/C31/C34/C42 - 1uF/25v
C29 - 470uF/6v
C36/C43 - 2uF/25v
C37/C38 - 330uF/50v
A word of WARNING: Nearly all capacitors today have the *negative* terminal
marked with a black arrow on the capacitor can. On S+T the opposite
I've just looked at two boards and the old capacitors are marked showing
*positive* terminal, the board also has the positive terminal silk screened
it's surface. MAKE SURE YOU GET THE POLARITY CORRECT!
If you insert a capacitor around the wrong way then apply power (give
reverse voltage) the dielectric will be removed from the anode and a
current will flow as oxide builds up on the cathode. This causes a gas
up and that's what makes the cannisters EXPLODE!
As with other Bally 680x boards of the era, the S+T uses a single LED
the status of the board after power up. The self-test is automatically
after boot-strapping in an attempt to verify the onboard hardware will
For some reason better known to Bally, the ROM's do not appear to be
- there is no provision for them in the self-test. Whether they are
tested by checksum for validity, but not displayed as part of the test,
a mystery. In this case, it is probable a board could pass the test
bad audio data or run corrupt operating system code! It could even run
corrupt self test routine!
After power-up and the correct reset timing/voltage regulation, the
flickers (for approx 300 milliseconds) before;
The test program attempts to validate the condition of the 128 bytes
RAM located at page zero - address $0000 through $007F. Note that I
said "the test program attempts to test the RAM at U6" - why?
made an oversite with the test documentation.
If you have a 6802 installed in your S+T then the *internal* 128 bytes
RAM are tested and *not* U6 providing the 680x's RAM Enable line (pin
strapped high (to the reset line) via jumper "k". The software
doesn't care where
the RAM is physically, as long as there is RAM at page ero (it's transparent
to the software). The test program attempts to write a bit pattern to
$0000, starting with $00 and counting upto $FF. If the test program
sucessfully manages to write and then read back (validate) the count,
moves onto the next byte $0001, until all 128 bytes have been checked.
256x128 = 32,768 write cycles with validation. If this is sucessfull,
flashes for the *first* time (the initial flicker is not counted as
If your using a 6802 and the RAM test fails (you don't get the first
flash) - you
might be lucky. Move jumper "k" (the internal RAM enable jumper)
"L" and install a 6810 RAM IC in U6 then run the test again,
else, you'll need
to change the 680x (the internal architecture is damaged).
An interesting point here. Joel and Vickie (the Pinball Liz) listed
a problem in
their tech tips #34 with the self test button on S+T not being debounced
which sometimes causes the board to crash after attempting a test.
Because the switch is not debounced, the switch contacts make and break
number of times translating to a *number* of valid NMI requests to the
The *stack* and *workspace* RAM in S+T is only 128 bytes wide (page
$0000-$007F, the exact stack length is unknown to me). The 680x has
the contents of it's internal registers onto the stack when it encounters
NMI (or IRQ) interrupt. A number of interrupts recieved in this manner
cause "nesting" (interrupts are "queued" to be processed
in last in first out
[LIFO] order) and the most probable cause of the board crashing is the
overflows, wraps around, and starts to overwrite itself wiping out the
previously saved onto the stack. The conclusion? The uP crashes because
pulls data off the stack that didn't match the data it originally saved.
Power-cycling is the only option to clear the problem (there is no reset
on S+T). The problem is further agrovated by the fact that speech data
transfer requires an IRQ interrupt - further stack usage translating
and NMI data colliding caused by the over-write when the 680x "pops"
data off) the stack.
The 680x attempts a bit-pattern write to the internal registers in the
PIA at U7
(the speech control PIA) in the same manner as the RAM test. If the
flashes for the second time, then the test was sucessfull. If the test
check the sockets/swap out the PIA.
Exactly the same test as U7 is carried out on the PIA at U11 (PSG control
PIA). A successfull test causes the LED to flash for the third time.
If the test
fails, then perform diagnostics as for U7.
The 680x attempts to write too the internal registers of the AY3-8912
then read the data back using the PIA at U11 as a parallel interface.
is indicated by the fourth flash of the LED. If the test fails - swap
out the PIA
at U11 for another (the U11 PIA self test cannot test the input/output
the actual pins as there is no data "loop back" - it can only
write to internal
I/O registers of the PIA, and whilst the PIA may test okay, the output
buffers may be faulty). If the fault continues swap-out the PSG and
sockets of both the PIA and the PSG.
The 680x now attempts a 9 byte transfer of data to the TMS5200 speech
the 5200 stack is empty on power-up, it will flag an interrupt stating
"buffer/stack low" for every byte transfered until it has
9 bytes (it only flags an
interrupt if the stack becomes half empty - 8 bytes or less). The 680x
single byte at a time and waits for the buffer low interrupt until it
has fed all 9
bytes. On receipt of the 9th byte the 5200 asserts "Buffer low"
*no more* and
does not assert any further interrupt. If this occurs, S+T assumes to
IC is good.
[Bally state: "Every time a write to the speech chip is performed,
chip responds with an acknowledgement".]
Note that Bally's test documentation is misleading here because it is
vague. The 5200 *does not* acknowledge every byte sent to it except
above case. That is, if the buffer contains more than 8 bytes it will
"INT" and therefore will not acknowledge. If the buffer is
at max (16 bytes) it
changes the state of it's "ready" line (pin 18) connected
to the PIA effectively
telling it not to pass more data until the 5200 asks for it (it's "not
If the test is successful the LED flashes for the fifth and final time
PIA's are initialised to their correct configuration in readiness for
operation (waiting for a sound select interrupt from the MPU board).
If the test
fails then swap out the PIA for the reasons indicated in the 4th flash
above, else, swap out the 5200 and/or check the sockets. Check the state
the 5200 supply pins (pin 4 - [+5v], pin 5 [-5v]) as the power sequencer
may be faulty. It is also possible for a faulty 6100 phrase ROM to "pull-down"
the 5200 and may be worth swapping out if all else fails (that's if
Note, that for S+T to actually test tha PIA's they have to be intially
configured/programmed by the 680x *before* they are tested. PIAs always
default to port A, B, CA2, CB2 as inputs and all interrupts are disabled
power up. This is no good as the self test requires CA2/B2 to be tested
*outputs* by writing to the port output registers for both the PIA at
U11. Therefore, they will require re-configuring after internal intialization
out of reset.
to the learn page
Back to the front
Pinball News 2002