Chm Blog From the Collection , Guest Blog

Gambling on Whirlwind: How the US Navy Spent $3 Million+ and Got a Computer Game

By Guy Fedorkow | October 22, 2019

There were a lot of important developments in computing during the early 1950s, many on display at CHM. One of these is the Whirlwind computer, designed at MIT under contract from the US Office of Naval Research.

Whirlwind was a one-of-a-kind programmable electronic computer designed for high-speed real-time computing, and was intended initially for research into aircraft simulation, later into air defense. But machines that could do computation quickly were rare, and there were lots of researchers with problems that could only be solved with advanced computation, so there were many demands on Whirlwind’s time.

Whirlwind was big, occupying 2,500 square feet of MIT’s Barta Building. Its video display, real-time interaction and especially its core memory represented significant advances that carried over into the SAGE design.

By the time the machine was running reliably in 1952, most of the daytime hours were allocated to Navy and Air Force projects, primarily development programs for guiding air defense assets against the threatened waves of bombers coming over the pole as the Cold War deepened. The work rapidly evolved into SAGE, the Semi-Automatic Ground Environment.

Maintenance took another block of time on the machine, and with thousands of vacuum tubes, there was a lot of maintenance.  But that still left overnight hours that could be allocated for worthy projects of all sorts, such as process control, material science, a digitally-controlled milling machine, accounting, statistical analysis, and simulation.

That in turn meant that there were a lot of late-night computer hours when use of the machine was less structured, and operators probably had time on their hands waiting for researchers to debug their code. Modern system administrators in that position can play Fortnite or update their Facebook pages on their phones, but such amenities were not available in the 1950s. But not to worry, leave tired and overworked programmers alone with a real-time interactive computer equipped with cutting-edge graphical displays and games will inevitably appear.

We’ve recovered one of those games, patterned off the well-known card game Blackjack, also known as 21. The discovery of the Whirlwind’s Blackjack contributes to the historical record of games being created and implemented on early electronic digital computers from the late 1940s and early 1950s. Some electronic games from this period served the role of demonstrating the computational power of a computer (rather than simply for the sake of game play), while other games came about through tinkering and testing the machine’s functions. We suspect that the Whirlwind’s Blackjack falls into the latter category, because we have found no other documentation that speaks to the creation and use of the game for Whirlwind.

As part of a project to restore Whirlwind software, we’ve recovered the game from original tapes in the CHM archive.

Whirlwind Software Restoration

CHM has many hundreds of paper tapes that were saved when the machine was finally dismantled in the early 1970s.  At MIT, there are hundreds of documents produced by the Whirlwind team, in the form of manuals, memoranda, and biweekly and quarterly reports. We have combined the resources of CHM and the MIT Museum to recover some of the material and to learn something about how software developed, even before anyone knew it was called software.

The Whirlwind Computer

Before looking at the specific program, a brief review of Whirlwind is in order.

The machine was built of digital logic based on vacuum tube circuitry. It was large . . . over 2,000 square feet of floor space, with almost 100 racks of equipment to make up the essential part of the machine. The Whirlwind team started out using electrostatic storage tube memory, but rapidly pioneered the use of magnetic core memory, which resulted in much more reliable operation, and became the mainstay of the computing industry for decades to follow.

The machine offered an architecture not unfamiliar to a modern programmer, with a 16-bit word length and about 30 accumulator-based instructions such as add, subtract, load, and store, plus conditional and unconditional branch instructions.

Due to Whirlwind’s day-job of displaying radar tracking data to assist human operators make real-time decisions about threats and targets, the machine was equipped with large graphical CRT displays, and a pointing device they called a Light Gun for selecting targets on the screen.

That would be everything needed to develop an interactive computer game!

"Hit!" About Blackjack

One more aside . . . Blackjack is a card game played with a standard 52-card deck, between a dealer and a single player. The point of the game is to accumulate cards totaling 21 or less. Whoever is the first to exceed a total of 21 loses a round.

The player and dealer each begin with two cards. The player can take two actions when a card is dealt, face-down, either accepting the card (“Hit”) or rejecting it (“Stand”) in which case the dealer must take a card until the game ends. As cards are dealt, the totals can only go up, so someone will eventually exceed 21 and lose.

The game is well-suited to Whirlwind; it requires only simple graphics and the Light Gun works well for selecting from among the limited range of player responses.

Software Recovery

To recover the Blackjack tape, or any other Whirlwind program, we carried out the following steps:

  • Read the physical tapes. Fortunately, Whirlwind used the same paper tape format that was popular with Teletype machines and many other computers in the following decade, so readers are not so hard to find.
  • Decode the code on the tapes. This is step is not so easy, as the basic tape format is described in various documents, but the way that characters are assembled and loaded into memory is not. There are still tapes with coding features we don’t understand, but the Blackjack tape was not so complicated.
  • Simulate the instruction set. Fortunately, carefully reviewed assembly-language programming guides for the machine have survived, so accurate reconstruction of the logical function of the machine is possible (if not complete as of yet!).
  • Simulate the numerous I/O devices attached to Whirlwind. Blackjack uses the radar display and the Light Gun, plus a magnetic drum storage unit. Other programs use tape drives, a printer, a “Flexowriter” (a machine with a keyboard and printer, like a Teletype machine), and a higher-speed printer. There’s much more work to do to get these devices simulated fully and accurately.

Given all these prerequisites, we read and ran the Blackjack tape.  The program put up the display shown below.

 

This display reveals a few interesting details about programming for Whirlwind, as well as how the game worked.

  • The hardware has a character generator, which the Blackjack programmer used. Unfortunately, the character generator only generates seven-segment symbols. Digits are easy, but there are many letters that can’t be shown clearly on the seven-segment grid. So  WI II5 spells WINS, etc.
  • The Light Gun can only detect spots on the screen that are lit, so each possible point that an operator should be able to designate must have an illuminated dot. There are six “hot spots” on this display.
  • Memory space and processor time to refresh the screen were both precious commodities. Don’t waste either on labels for the hot spots. Players will learn which is which readily enough.

When Did You Say This Happened?

Affixing a date to the development of the Whirlwind Blackjack program is a bit of a challenge. Given the skunkworks nature of a game project embedded in a high-profile and heavily scrutinized research activity, perhaps it’s no surprise that we have yet to find so much as a mention of Blackjack in the copious reports, memos, and other documents produced by the team.

Whirlwind was a one-of-a-kind machine, but it was used in two distinctly different settings over its operating life of almost two decades. The machine was built and used at MIT at 211 Massachusetts Avenue, in what is still called the Barta Building, coming online late in 1949 and achieving reliable, routine operation in the early 1950s. The machine stayed in continuous use there for about a decade, running Navy and Air Force problems, plus a wide array of research programs, with a formal decommissioning on May 27, 1959.

Whirlwind Blackjack

Following its decommissioning at MIT, the machine went unused for a few years and then was reassembled at a consulting company, Wolf Engineering in Concord, Massachusetts, with the final disassembly of the machine in about 1970.

The Blackjack software came to CHM as part of a cache of over 800 paper tapes, most of which are connected to Whirlwind’s principal tasks at MIT, including development of programming tools, air defense research, and support of numerous kinds of scientific research. None of the tapes show any sign of being related to Wolf Engineering consulting work. Although only circumstantial, the Blackjack tape was just one of many in this collection, with the same physical tape paper material, conventional Whirlwind numbering, and a handwritten leader.

Given Whirlwind’s long but singular life, the Blackjack program could have been developed any time between the early 1950s and about 1969—quite a long span for a research computer. However, given that the tape collection all appears to be MIT material, not Wolf Engineering projects, it’s hard to avoid hypothesizing that the game was developed at MIT, after the machine entered a period of stable operation in about 1954, before it was decommissioned in 1959—placing it quite early in the development of interactive computer game technology. More clues may emerge as we dig into the other tapes and archive material.

Try It Yourself!

A subset of the Python simulator was ported to JavaScript (Thanks, Ken!). You can go to this site, to start a Javascript simulator running the actual Whirlwind Blackjack binary. Click a hot spot with the mouse to play. For those pressed for time, the decoder chart is shown below. Just as a hint, the program doesn’t shuffle the deck unless told to, so you can play without using Shuffle, but the result is rather predictable.

This simulation is not without quirks. The routine that shuffles still has a bug and will crash after the fourth shuffle. That may be a real bug, but it’s more likely an inaccuracy in the simulation of the multiply instruction, coupled with a guess at a critical parameter that “everyone” must have known, but was not written down.

What's Next?

There is a long list of more serious Whirlwind programs to decode and run, but there are a few more games as well. Games are good candidates for this kind of work, as it’s easy to see if the program is working. A program that claims to process radar data to extract and predict the path of an aircraft is a more significant milestone in computing history, but it’s also a lot harder to tell whether it’s doing what the designers intended.

And anyway, who’d turn down a chance to play games against a seminal computer?

Notes

For book reference on early video games, see Tristan Donovan, Replay: The History of Video Games, UK: Yellow Ant, (2010): p 3−7.

About The Author

Guy C. Fedorkow received his BASc and MASc in Engineering Sciences at University of Toronto, and went on to develop both communications and high-throughput parallel computer architectures at Bolt, Berank and Newman in Cambridge, MA, Cisco Systems and Juniper Networks, where he has served as system architect for a number of communications products.

Join the Discussion

Share

FacebookTwitterCopy Link