When Developers Resurrect Code They Wrote 40 Years Ago
Back in 2004, I found a roll of punch-tape code from the 1970s in an abandoned building. I deciphered it, character by character, and found out it said: “Left one, right two … ” It was the instructions that controlled a metal-tooling lathe at a machine shop.
There’s something thrilling about reviving old code, bringing it back to life so it can see the light of another era. In September, a story was shared by Ned Utzig, a self-described “lifelong computer gamer, hacker, maker and engineer,” about resurrecting a vintage program with a very personal twist.
The story’s subhead? “When you find a weird program from four decades ago and realize that it’s yours.”
Back to the Future
Here in 2021, Utzig’s Substack now promises “nerdy tales and discussions of computing technology — past, present, and future.” For nearly 24 years Utzig’s also been a senior member of the consulting staff at chip-design corporation Cadence Design Systems, according to his LinkedIn profile — after 11 years as a principal hardware engineer at Digital Equipment Corporation.
But he’s had his share of experiences with old-school hardware. “In the 1980s when I worked for Digital Equipment Corporation, my first job was to design memories for a mainframe computer,” Utzig recalled in an August Substack post.
“The system we were building could theoretically have up to 1GB of memory, but we laughed at this idea at the time, because it would require multiple refrigerator-sized cabinets and millions of dollars to build it, and who needs a gigabyte of memory, anyway?”
Utzig’s newest experience looking across the ages began when he’d rediscovered a 1982 issue of Popular Computing magazine. Tucked inside were two pages from an old printer — specifically, a 1980s-era dot-matrix printer — with the text of an old computer program, written (in all capital letters) in the early programming language BASIC.
Its first line identified the program as “Breaker Ball” — and its author as Ned Utzig. “The mystery program was my own, and I had no specific memory of writing it.”
But that first-line comment also specified that it had been written for the TRS-80 computer (manufactured by Tandy and sold through their Radio Shack stores). And Utzig remembered that when he was a teenager, a neighbor had let him use their TRS-80 — and he had used it to write some games.
“[P]retty much all real work then stopped, while I tried to figure out this program of mine,” Utzig wrote.
21st-Century Tools, 20th-Century Code
He quickly tracked down an online TRS-80 emulator, at which point he could’ve just re-typed the program by hand.
“But I was sitting now on top of computing power I could not even imagine in 1981, and it seemed wrong to not go the modern way,” Utzig wrote. “So I took some photos of the code and tried running it through the optical character recognition (OCR) built into Google Photos.
“I had fairly high expectations for Google since it seemed fine at finding picnic tables in my photo collection, and I had been training it for years to find busses and crosswalks. But with simple text, it struggled.”
After improving the lighting for the photos (and then carefully proofreading the resulting copy), Utzig rendered the program “mostly there.” But when a few random errors caused problems with running it, he was forced to turn to the TRS-80 debugger.
“For some reason, the nostalgic fondness wears away faster when you are trying to get something done, but you are used to using tools that were significantly more evolved than 1981 development software had to offer,” he wrote.
At the same time, while the programmer he is today might write better code — better organized and more compact — Utzig has some sympathy for his teenaged code’s sparing use of comments. “The PC days of the ’80s punished verbose commenters because comments took up valuable characters, which could add up given available memory was measured in kilobytes.”
So what did the program do? It was a home-brewed videogame, Utzig discovered, basically a confusing combination of Space Invaders and Breakout. (Like in Breakout, there was a ball bouncing off the walls of a square — but like in Space Invaders, that ball is shooting at your bottom-of-the-screen home base, which has to move horizontally to evade the shots while positioning itself to fire back.
“I will give my 17-year-old self a little credit for coming up with a kind-of-new idea,” Utzig wrote fondly in 2021, “rather than just trying to clone an existing game.”
I also had the experience of fixing a few of those bugs in this program, that had been there for four decades,” he wrote — pausing for a moment to consider its cultural implications. “Something about that is almost weirder than getting the program running in the first place. I guess perhaps it is the suggestion that no program can be truly said to be complete.”
Utzig also captures that moment of looking back in time, across a distance of 40 years, at the teenager he used to be. “The thing I guess that surprised me the most about the program was what happened when you died. There was a top text banner of sorts that proclaimed ‘HA HA HA!’ and then the program would go into the self-playing, ‘demo mode’ that was a staple of the arcade games of the day.”
And, of course, he smiled at his youthful self-promotion, consciously including in the demo’s top-of-screen messages, “GRAPHIC BY NED.”
“It seems I was really interested in getting my name into the credits of this game, which was probably wholly unnecessary given the likely players of this game were my parents, or at least people who knew I wrote it.”
In grad school I wrote an ill-advised mash-up of Tetris and Dance Dance Revolution. Thankfully this abomination was in Flash so nobody can use it anymore.
— Kevin Fox is hopeful 🦊😷 (@kfury) August 28, 2021
But when he looks back at the 40-year-old code and asks himself what might be the same today, Utzig concedes that it’s probably that same fondness for self-promotion.
“I still like creating things, and crave being able to create things others also enjoy, whether it is an arcade game or newsletter article,” he writes. There’s also the desire to create something original (plus a fondness for the “arcade aesthetic,” which Utzig says he’s still retained even four decades later).
More Coders Collaborating with Their Teenaged Selves
But Utzig isn’t the only programmer restoring their work as a 1980s teenager. Harry McCracken, now a tech editor at Fast Company magazine, recently resurrected the game Arctic Adventure, a program he wrote when he was 17 years old.
“I may have worked on the game partly at home and partly at my school’s computer lab,” McCracken recalled on his website adding that, “I set it in the Arctic despite the fact that I knew nothing about the area.”
The text appeared in the “Captain 80 Book of Basic Adventures,” and decades later McCracken tracked down a copy, typed out all of its code for his game — and discovered it had an error that made it impossible to even play the game.
“If you typed ARCTIC ADVENTURE into your TRS-80 back then and couldn’t get it to work, I hereby apologize,” he wrote.
But it was just a missing 0, and McCracken is now sharing the game on a newly-registered domain at Arctic81.com.
And the site now also features two more games — McCracken’s even earlier game Slot Machine, and another resurrected 1980 game called Lost Ship Adventure that was written by McCracken’s friend and high school classmate, Charles Forsythe — at the age of 14. (“Computer whiz invents game, collects royalties,” read the headline in the Boston Globe on December 17, 1980.)
Meanwhile, Slot Machine survived because McCracken uploaded it to a BBS circa 1979, and he was so delighted to rediscover it here in the 21st century that he added a way to play the game in Arctic Adventure. McCracken wrote on his site that he’s gratified to since hear that “numerous people” have now finally, after 40 years, played all the way through to Arctic Adventures’ finish.
“I felt like I was collaborating with another programmer — teenaged me — and I found myself sometimes dismayed by his programming skills but also occasionally impressed.”
Coincidentally, I JUST got some data which I paid to have recovered from TRS-80 floppies, and it includes a few programs my father wrote.
— Harry McCracken (@harrymccracken) August 28, 2021
- CoRecursive podcast interviews “the original remote worker” — Paul Lutus, who remotely wrote software for the Apple II back in 1976.
- Remembering the life of pioneering PC maker Clive Sinclair.
- NASA releases First Woman, an augmented-reality graphic novel exploring moon landings of the future.
- Columbia University lab engineers a machine that can 3D-print shaped chicken that’s precision-cooked by lasers.
- April Fool’s joke becomes real as Stack Overflow starts selling a special three-key, copy-and-pasting keyboard.
- Samsung engineers propose a shortcut for AI semiconductors: copying and pasting the brain’s neuron-connection map onto a brain-mimicking chip.
- How Google’s DeepMind team used AI to improve the ability to forecast rain.
- Twitch’s newest star is a cryptocurrency-buying hamster who’s outperforming Warren Buffett.