Retrochallenge 2016/10:
Ironic Computer Space Simulator (ICSS)

Skip to the index of episodes.

About this Project

In 1961 Martin Graetz, Stephen Russell, and Wayne Wiitanen conceived Spacewar!, the first digtal realtime video game, as a showpiece application for MIT's new DEC PDP-1, proudly presented to a stunned public in May 1962 at the annual Sience Open House.

Ten years later, in 1971, Nolan Bushnell, presented the very first coin operated arcade video game, Computer Space.
(Note: Galaxy Game by Bill Pitts and Hugh Tuck, essentially Spacewar! running on a PDP-11, was second by just a month, but was available at the Tresidder student union building at Stanford University only.)

Computer Space was heavily influenced by Spacewar!, but Bushnell, who couldn't afford a pricy computer for a machine that was to return the investment by quarters (the cheapest processor chip was still about $10,000), rather teamed up with Ted Dabney (thus Syzygy Engineering) to construct his game in solid state logic (mainly 74xx-chips) and eventually partnered with Nutting Associates to produce the machines. So, Computer Space isn't a program, but a machine (if we want, a very specialized computer), and it is a simpler game than the original Spacewar!. On the other hand, it's entertaining as well, and, most importantly, it's a single-player game. (Spacewar! is for two human players only.)

The project

Computer Space + PDP-1 => Ironic Computer Space Simulator (ICSS)

By an ironic twist in history we'll try to bring Computer Space to the early-1960s machine that served as the platform for the original Spacewar! and started it all, the DEC PDP-1 (Digital Equipment Corporation Programmed Data Processor 1), which may be some fun. The PDP-1 provides one of the most straight-forward instruction sets, and should be fun to program. Still, in the absence of a processor stack and a realtime clock, there are some challenges to be met, especially for realtime programming.

We've already a web-based emulator for the PDP-1 and its characteristic Type 30 Visual CRT Display with its dual blue/green phosphors (written in HTML5/JavaScript) — see here, here, here, and here —, which may come handy. Also, we've entertained some extensive studies on the source code of Spacewar! and may unashamedly steal from it and its concepts. Further, we'll use a C-version of the MIT's Macro assembler to prepare virtual paper tapes from PDP-1 assembler code and import these into the emulator. As a platform we'll target the only working PDP-1, the restored PDP-1 at the Computer History Museum in Mountain View, CA, a PDP-1 with the automatic hardware multiply/divide option (Type 10, standard after the first few machines) installed and at least the standard amount of 4K 18-bit words of core memory. (If all works out well, we may try to persuade some member of the PDP-1 Restoration Team to actually punch a paper tape from our binary code and give it a try …)

Fictional image: Alan Kotok, Steve Russell and Martin “Shag” Graetz (left to right) amusing themselves with Computer Space

Faking history: (left to right) Alan Kotok, Steve Russell and Martin “Shag” Graetz amusing themselves with Computer Space, descendant of their brain-child, Spacewar!. (Fictional image / montage; N.Landsteiner, 2016)

Finally, we may ask, "Why, at all?" — Well, having investigated PDP-1 source code for some time, I'm eager to do some of my own, maybe a game. While the PDP-1 is quite a decent machine, its display is rather slow by modern standards — 50 microseconds to complete the display process for any of the dots on its 1024 × 1024 X/Y-display — and, since it's a point-plotting device without any memory, we'll have to refresh every dot/blip/pixel each frame. This is just good for two lines across the screen at a reasonable frame rate, but not for more, spending allmost all of the time in the display routine. Therefor our choice must be based on the graphics of the games, i.e., the number of dots to be displayed at any given time — a restriction, which leaves us just a few video games to chose from. Computer Space is one of them, and probably as much fun as implementations are rare.

Ingredients

For this project, we'll use

PDP-1 Emulation

Ironic Computer Space Simulator for the PDP-1 (2016)

The Ironic Computer Space Simulator running on the emulated PDP-1.

Experience the program live, running in an in-browser emulation of the DEC PDP-1 and its Type 30 CRT display:

www.masswerk.at/icss/.

Update: As of Nov. 2016, the emulation optionally adds sound effects of the original arcade machine, which are not available on the PDP-1. (This is done by installing traps in the emulation and observing the locations visited by the program.)

Usage note: Chrome may not be able to keep up with the frame rate of the emulated program and may lag and skip frames. Please try Safari (on Mac) or Firefox.

The Episodes

— finis —

… but there might be still more to come, think paper tape @CHM

Update: +++ Paper tape punched +++ First run on real hardware Dec 12, 2016 (see below) +++

Ironic Computer Space Simulator on the DEC PDP-1 at the CHM, Dec. 2016 (youtube.com)


+++ Breaking news: Our humble project was actually picked as one of the winners! :-) +++

Thanks for dropping by, congrats to all winners and mentions, and cheers to all co-participants in Retrochallenge 2016/10!

— This series is part of Retrochallenge 2016/10. —