It's a time of life that I never imagined that I'd get to: döstädning. Translated literally from Swedish, it means "death cleaning". It's not a postmortem activity, but preparatory activity for the benefit of those left behind. I'm reducing the size of my material plane: my Marie Kondo styled exercise in letting things go.
The next target is the grand old lady, a 1955 United Tropicana pinball machine that's been with me since I was twelve years old. It's been in storage in the back room for decades, I need to repurpose that room, so it is time for the old lady to move on. I've sold the machine to a former colleague at Mozilla and it's soon to leave for a new home.
My father rescued this old machine from a private estate sale. The deceased was the widow of a Missoula, Montana bar owner. He died in 1961 and the bar closed immediately, everything left exactly as it was. She died in 1972. Her heirs opened the time capsule of a tavern and sold off the contents. I don't know anything about the bar, but I imagine that it was not likely on the right side of the law. Gambling was outlawed in Montana in 1950, the machine was manufactured in 1955, so at no time in its existence was this machine lawful within the state.
Set up by my father in the garage, the pinball machine was an instant hit with my neighborhood friends. We had street-side lemonade and cookie sales to collect nickels, 5¢ coins, to play the game. We longed to be able to open the machine so we could reuse the coins we collected, but the cash box was locked.
Every openable panel on this machine was secured with locks and no keys came with the purchase. My father was never one to be handy with tools, so efforts to get into the machine were crude. The first effort to open a panel was with a hammer. That left a gaping hole in the wooden frame. Subsequent key locks were drilled. Opening the front panel door revealed a surprise: the cash box held over $200 in nickels. The cache included many old buffalo nickels that were totally fascinating to me.
When we opened the back panel, it revealed an amazing array of moving relays, stepper units and scanning motors worthy of vintage mechanical telephone switching equipment. I happily let my friends play the machine while I sat in the back watching the mechanism work. Eventually, I started to manipulate it, learning how the components worked. This machine taught me Boolean logic and was the genesis of my career as a software engineer.
The premise of the game is simple, a precursor of a modern pinball. It's basically a bingo machine. There are no flippers, it's supposed to be a game of chance. On the back glass, there is a grid of twenty-five numbers. On the ball playfield, there are twenty-five numbered holes scattered between rubber bumpers. The player is given five balls to shoot into the playfield with the objective of capturing the balls in the numbered holes. The corresponding number on the back glass' number grid lights when a ball lands. The objective is to light three, four, or five in a row. There is a payout in game credits based on the number in-line. Those credits can be used to start the next game or exchanged for cash from the bartender's till.
The first nickel gives a base game. Additional coins can win the player advantages and raise the payout odds. Extra features include such alluring things as: Special Cards, Select-A-Lit, Super Selection, Lite-A-Name, Gull, 4 Scores 5, 4 Corners and Return All Balls. It can take a lot of money to light the extra features and increase the payout odds.
The Challenge
As this grand old machine is about to leave my life after 49 years, I still have many questions about how it works. In the time I have left with it, I decided to thoroughly answer one of those questions: "How does it manage to detect a winning score?"
I tried to answer this question when I was sixteen, but I lacked the skills and equipment to make any meaningful progress on an answer. However in 2021, I have the advantage of a lifetime in the tech industry, electrical test equipment, and the Internet. I have managed to find a scan of the original electrical schematic and manual for the machine. Complicating the investigation is the cloth insulated wires: there are 72 different color combinations. Over the years colors have faded: orange, red, brown and yellow now all look pretty much the same. Tracing wires is really difficult through the massive bundles.
I'm going to start my analysis by considering the problem from the perspective of only one row of lights. There are many ways to implement the detection of these of the 3, 4, and 5 WIN states in a single row. The trick is to think in terms of how a 1950s engineer would have solved the problem. Digital circuitry, like stringing together AND gates, OR gates, and FLIP-FLOPS, did not exist yet. All they had to work with were relays.
Any set of switches wired in series act as an AND gate. Further, any set of switches wired in parallel act as an OR gate. A NOT gate is just a switch that is reversed in function: a normally closed switch rather than a standard normally open switch. If a switch is controlled by an electromagnet, it is a relay that can work like any of those three fundamental gate types.
The Row Relays
We have the case of five input lines (labeled A, B, C, D, E) and we need three output lines (labeled WIN3, WIN4, WIN5). In the notation of boolean algebra, this is the desired input and output effect:
WIN3 ≡ (A∧B∧C∧¬D∧¬E)∨(¬A∧B∧C∧D∧¬E)∨(¬A∧¬B∧C∧D∧E) WIN4 ≡ (A∧B∧C∧D∧¬E)∨(¬A∧B∧C∧D∧E) WIN5 ≡ (A∧B∧C∧D∧E)
Each occurance of a letter in the equations above implies a switch on the corresponding lettered relay. That means all five relays must host six switches. However, I can find no relays anywhere in the machine that control that many switches. Perhaps it was a physical or economical limitation.
The solution implemented in the machine is quite different and cleverly optimized. In this case, the inputs are A, B, C, D, E and the relays are A', B', C', D', E'
C' ≡ C B' ≡ C'∧B A' ≡ B'∧A D' ≡ C'∧D E' ≡ D'∧E WIN3 ≡ A'∨E'∨(B'∧D') WIN4 ≡ (A'∧D')∨(B'∧E') WIN5 ≡ A'∧E'
This arrangement requires only three switches per relay. I wonder how they came up with this optimization.
The Scan Motor
Now that we've got a way to detect the WIN for a single row, the machine needs to sequentially offer every possible horizontal, vertical and diagonal row to the ROW relays. This is done with a scan disk: a mechanical equivalent of a programming language "for" loop.
Take a disk of Bakelite and perforate it with brass studs in circular patterns. On one side, connect wires to these studs, one wire for each switch in the numbered holes in the playfield. In other concentric circles on the disk, connect all the studs in a circle to five output wires that go to the ROW relays. A wiper connected to a motor can then sequentially connect a circuit between the holes in the playfield to the five output lines in a pattern mimicking the back glass number grid. As the motor turns, each row, column and diagonal are presented to the five output lines one at time.
Let's see how that works for a theoretical five ball game. Each of the numbered rays through the center of the scan disk in my "Scan Disk Analysis" image represent the rows, columns and diagonals of the number grid.
Follow the number 1 from the upper left down through the number 1 in the lower right. The ray line goes through the numbers in the first column of the number grid. The five colors of those numbers represent the five input lines to the Row Relays. The first number encountered is 2, colored yellow. When the wiper touches this stud on the disk, that stud is shorted to the stud labeled 3R (third Row Relay). That means the electrical switch in hole #2 is connected directly to the C input to the Row Relays. Moving down the ray through the center, all the numbers in the first column are routed to the appropriate Row Relay inputs.
Here's how it works through the entire scan cycle:
We've shot five balls onto the playfield and they've landed.
It looks like we have a 3 in-line WIN ahead.
The SCAN motor advances to the first position, giving playfield numbers 9, 10, 2, 1, 11 to the row relays, E, D, C, B, A respectively.
Since there is no ball in hole #2, no signal makes it to Relay C, so Relay A cannot activate even though a ball rests in #11.
If ROW Relay C is not energized, all other relays are blocked from energizing.
The SCAN motor advances to the second position, giving playfield numbers 4, 19, 18, 22, 7 to the row relays, E, D, C, B, A respectively.
Since there is no ball in hole #18, no signal makes it to Relay C, and ROW Relays B and D are not allowed to respond even though #19 and #22 are occupied.
The SCAN motor advances to the third position, sending numbers 15, 14, 16, 13, 5 to the row relays.
ROW Relay C activates because a ball is in hole #16. None of the rest of the ROW Relays react and no WIN is registered.
The SCAN motor advances to the fourth position, giving numbers 24, 20, 12, 21, 23 to the row relays.
ROW Relay C activates because a ball is in hole #12. None of the rest of the ROW Relays react and no WIN is registered.
The SCAN motor advances to the fifth position, giving numbers 6, 8, 25, 17, 3 to the row relays.
Nothing happens at all.
The SCAN motor advances to the sixth position, giving numbers 9, 4, 15, 24, 6 to the row relays.
Again, nothing happens.
The SCAN motor advances to the seventh position, giving numbers 10, 19, 14, 20, 8 to the row relays, E, D, C, B, A.
Because there is no ball in hole #14, ROW Relay C doesn't energize which stops ROW Relay D from energizing even though hole #19 is occupied.
The SCAN motor advances to the eighth position, giving numbers 2, 18, 16, 12, 25 to the row relays, E, D, C, B, A.
ROW Relays C and B activate because of #16 and #12, but that's not enough for a WIN.
The SCAN motor advances to the ninth position, giving numbers 1, 22, 13, 21, 17 to the row relays, E, D, C, B, A respectively.
Having no ball in hole #13 blocks ROW Relay D from energizing for #22.
The SCAN motor advances to the tenth position, giving numbers 11, 7, 5, 23, 3 to the row relays.
#11 is blocked because both #7 and #5 are empty. No WIN here.
The SCAN motor advances to the eleventh position, giving numbers 11, 22, 16, 20, 6 to the row relays, E, D, C, B, A respectively.
#16 activates ROW Relay C, #22 activates ROW Relay D, #11 activates ROW Relay E. A signal is passed to the 3 NUMBER WIN relay to activate it. The signal is passed on to the scoring module which registers a 3 in-line WIN based on the payout odds.
The payout system is worth a complete analysis of its own.
The SCAN motor advances to the twelfth position, sending numbers 9, 19, 16, 21, 3 to the row relays, E, D, C, B, A respectively.
#16 activates ROW Relay C, #19 activates ROW Relay D, but it is irrelevant as it's not a WIN and WIN has already been registered.
Epilogue
I'm quite proud that I've taken the time to answer a question that had gone without resolution since 1976. The answer has opened new questions about the other subsystems in this extraordinarily clever machine. There is a system called REFLEX and I have no idea what it does. Reading about similarly named systems in other machines, it subtly changes the behavior of the machine based on the history of its use. What that actually means, I do not know. It will likely be a question that I take with me to my grave as my time with the grand old lady is over.
I give a nod of respect to the nameless designers and builders of this fascinating old pinball machine. It literally gave me my career and a lifetime of pleasure and mystery.