I was much impressed.
In early 1977, I took an assembly-language programming class at Oregon State University, taught by Ted Lewis. This class used a PDP-12, which sported analog-input knobs, an oscilloscope-like video screen, a pair of tape drives, and lots of switches and lights -- but only 4K words of memory, with 12 bits per word. The class required a project, so another student (Bryan Miller) and I decided to try our hand at a “SpaceWar” knockoff. We might have stolen the name “SpaceWar” given that we were stealing much else from that project, but were prevented from doing so by the operating system's seven-character filename limit. After some discussions with fellow students, we settled on the name "SKYLARK". We might have named it "Skylark" or even "skylark", but were prevented from doing so due to the PDP-12's 6-bit character set, which was completely free of modern conveniences such as lower-case characters.
After much discussion and perusal of the PDP-12's documentation, we decided to code most of the program in PDP-8 assembly language, but to do a few critical operations in LINK-8 assembly language. (Yes, this otherwise unassuming system had two different instruction sets, and you could switch back and forth between them quite cheaply and easily.) This decision was driven by the fact that the class had covered PDP-8 assembly language but not LINK-8 assembly language on the one hand, and the fact that LINK-8 assembly language had access to a hardware integer multiplier and better access to the display on the other. Little did we realize that this simple decision would create significant extra work for one of our lab instructors (Keith Spitz) more than four decades later.
After many long nights producing punched tape and playing (ummm... debugging) the game, we had a reasonable implementation, with a pair of spaceships, missiles, mines, and a sun with gravity -- but without the fabled MIT razor-edged hyperspace button. We were of course closely supervised by our two lab assistants, Jack Sarvela and Keith Spitz. Bryan and I were excused from actually handing our project in, as the teaching assistant (Dave Cautley) not only had some familiarity with our game, but also had a strange aversion to having a refrigerator-sized PDP-12 placed on his desk, flatly refusing any and all offers to do so.
We played with the game for some months after class was over, extending it and making it more robust and playable. But the press of life soon crowded it out of our minds. The last listing I printed out was dated January 15, 1978, less than a year after we completed the first version. I graduated from college, did several consulting jobs, got married, took a "real" job at SRI in the Bay Area, completed a Masters in Computer Science, had children, moved back to Oregon to take a job at Sequent (and to get a house in which to raise the children), joined IBM when it purchased Sequent in 1999, and moved to Facebook (now Meta Platforms, Inc.) in 2019.
It was not until the year 2000 that I gave any real thought to SKYLARK. I was taking an object-oriented programming class, taught by Andrew Black, that covered Smalltalk and Java, the first class in my doctoral coursework. This class happened to require a team project, so why not see what 23 years of hardware and software progress had done for SKYLARK? I had long since lost contact with Bryan, but I was able to convince a fellow student named Venu Karumuru to join me in this effort. The project was just as much fun as the earlier one had been, though advancing age had slowed my reflexes, forcing me to enlist my children's aid in debugging. They didn't seem to mind much.
Each team turned in their project by posting it on the web (this was the year 2000, after all), and that was that.
At least, that was that until about six months later, when Dr. Black received an email from the Retro-Computing Society of Rhode Island asking for two things:
Now, I had long since lost track of the PDP-12, but, packrat that I am, I had kept the old DECtapes from the class. I mailed the 23-year-old tapes to Rhode Island, fully expecting them to be completely useless. To my astonishment, SKYLARK still ran.
The two players are operating the game via the switch registers. The sun is visible in the center of the screen, and the two ships can be barely made out, one to the left and slightly below the sun, and the other directly opposite.
Ships fire missiles at each other, which must be manually detonated. Each ship can lay "mines", which do not accelerate (so that the ship laying a mine must accelerate away from it), but which explode on contact. With anything, including the ship that released it. Anything that touches the sun explodes. (Yes, yes, other than the sun itself, smarty pants!!!)
The players use the left and right "switch registers" to control their ship. The left switch register (and thus the leftmost player) controls the white ship, and the right switch register controls the black ship. Six of the twelve switch-register bits in each of the two switch registers functioned as follows, from right to left:
Three of the "sense switches" acted as follows:
Objects bounce off of the edge of the screen. Earlier versions would wrap objects around, but bouncing was more fun.
The large white circle is the sun, while the two smaller circles are the ships. The photo to the left shows the "black" ship to the lower left, and the "white" ship to the right. The "white" ship is firing its engines, accelerating away from the sun. The photo to the right is less distinct, but the "white" ship is at the upper left and the "black" ship is towards the bottom.
You may notice that this program has no Y2K issues, as it has no idea what the date or time is. Sometimes ignorance is bliss.
And just to prove that lightning really can strike the same place twice, I received a request from O. Sharp for the source to SKYLARK. The PDP-12 in question still needs to be restored, so it may be some time before there is a second site running this software. But one never knows!
And lightning can even strike a third time. Shortly after his retirement, Keith decided to write a PDP-12 emulator that included the fading-pixel properties of the PDP-12's oscilloscope display.
Which is how Bryan's and my 1977 decision to use LINK-8 assembly code managed to create significant extra work for one of our lab instructors in the year 2021!