Start now →

40 Years Ago, I Was Transpiling Source Code — Commercially

By David · Published May 4, 2026 · 6 min read · Source: Level Up Coding
Blockchain
40 Years Ago, I Was Transpiling Source Code — Commercially

Software History

In 1985, I wrote a program that translated 6502 assembly code into 68000 assembly to help port a commercial game to the Macintosh. We didn’t call it a transpiler then — but that’s essentially what it was.

Bridging architectures: Porting “Seven Cities of Gold” from the Commodore 64 to the Macintosh using SNOBOL on an IBM PC XT in 1985. (Image generated with AI).

The Context

In 1985, Electronic Arts was still a struggling startup. Most of the game industry was dominated by consoles, while EA focused on home computer games. For the first couple of years EA did not actually develop any games of their own. Instead EA acted as a value added publisher by providing not only marketing and distribution but also development tools and consulting to independent development groups. Eventually we learned that tools are best honed by developing products in house. One of these tools, Deluxe Paint, by Dan Silva, was so great that we HAD to publish it.

The games business is a “hits” business, meaning you lose money on most projects even if they finish on time and on budget. Therefore, one of the most reliable ways to generate profit was to port successful titles to new platforms. Ports were cheaper than building new games from scratch — but they still required real engineering, testing, and marketing effort. Seven Cities of Gold had been a hit on the Commodore 64, an 8-bit machine with 64KB of memory and a 1 MHz 6502 processor. However, EA had not yet committed to developing games for the Macintosh. The installed base was small, and in some ways the Mac’s graphics and sound capabilities were less appealing than contemporary 8-bit home computers. Steve Jobs also never positioned the Mac as a gaming platform, focusing instead on its role as a tool for creative and intellectual work. As a result, the idea of doing a Mac port of Seven Cities of Gold was initially rejected.

The Idea

At the time, I was familiar with SNOBOL, as well as both 6502 and 68000 assembly language. Since SNOBOL was designed to manipulate text strings it occurred to me that it should be possible to write a program to translate the 6502 assembly source code of Seven Cities of Gold into 68000 assembly for the Macintosh.

I proposed this approach to management, and they agreed — with the condition that it would not interfere with my other engineering responsibilities.

So I did it.

Building the Translator

We at EA had already developed what we called the “Artist’s Work Station” or the AWS. Yes, we should have trademarked this term. The AWS was a combination of software tools and hardware that helped artists develop games. The AWS machine at that time was an IBM PC XT with a 4.77 Mhz Intel 8088 cpu running MS-DOS 3.1. It included graphics tools, animation tools, and software development tools like cross assemblers and target downloading and debugging. Ozark SoftScape had used the AWS to develop the original 8-bit version of Seven Cities of Gold. A DOS version of the SNOBOL 4 interpreter was available from catspaw for the IBM PC. I used an interpreter running on an 8088 cpu to translate 6502 assembly source code into 68000 assembly source code.

My main goal was to change the game as little as possible. Because the 68000 was a more capable processor than the 6502, much of the translation was straightforward. Still, there were important details to handle.

I had to recognize zero-page operations and generate equivalent behavior on the 68000. One small but memorable challenge was handling the carry bit correctly.

I also chose to preserve the original rendering model. Rather than rewriting the display logic, I simulated the Commodore 64 display buffer so the game produced the same memory image as the original. Then, on the Macintosh, I wrote a post-processing step that translated that buffer into a Mac display, using dithering to approximate the C-64’s color output, and compensating for the differing screen resolutions and orientations. C-64 was landscape and the Mac was a portrait mono-chrome display.

It wasn’t a totally automatic process. There was still a fair amount of manual work and debugging involved. However I was able to complete the port without ever really understanding the 6502 assembly source code.

A screen shot from the Mac version showing a monochrome dithered image

Did It Work?

Did it work? Yes.

Was it worth it? Probably not.

I had a blast doing it, but I don’t think the eventual sales of Seven Cities of Gold on the Macintosh made the effort profitable. As far as I know, no other games were ported from the Commodore 64 to the Mac using this approach.

What I Learned

I came away from the project with a few lasting lessons.

Learning a new language just out of curiosity can sometimes pay off in unexpected ways. SNOBOL proved to be a powerful tool for translating source code between languages. Using the right tool for the job made it relatively easy to translate the assembly code from one assembly language to another. It helped that the 68000 was considerably more powerful than the 6502. I took this approach instead of emulating the 6502 hardware on the 68000 both for performance, and because I thought it would be easier. I am lazy.

At the same time, the experience made clear that the Macintosh was not yet a viable game platform in 1986. More broadly, it reinforced a harder truth: cutting-edge technology does not guarantee profitability in the games industry.

And yet, I believe that commitment to advanced technology did help Electronic Arts achieve long-term success. The real insight came from Trip Hawkins and Tim Mott, who built a team that blended computer scientists from Xerox PARC with self-taught, highly creative developers like Ozark Softscape and many others.

Looking Back

At the time, it just felt like a practical way to get the job done.

Looking back, it was an early form of what we now call transpiling — translating one system’s source code into another’s.

If anyone else ever used SNOBOL to translate assembly code across architectures, I’d love to hear about it.

Further Watching

A wonderful tribute to Danielle Bunten Berry, Ozark Softscape, and “Seven Cities of Gold”.

https://www.youtube.com/watch?v=K880qNEwVGM

About the Author

I’m a software engineer who has worked across several eras of computing, including at the Augmentation Research Center at SRI, Xerox PARC, Electronic Arts, Silicon Graphics, and Google. My work has spanned everything from early interactive systems and computer graphics to large-scale software infrastructure. I remain particularly interested in tools that augment human intellect and the intersection of visual arts and computing.


40 Years Ago, I Was Transpiling Source Code — Commercially was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.

This article was originally published on Level Up Coding and is republished here under RSS syndication for informational purposes. All rights and intellectual property remain with the original author. If you are the author and wish to have this article removed, please contact us at [email protected].

NexaPay — Accept Card Payments, Receive Crypto

No KYC · Instant Settlement · Visa, Mastercard, Apple Pay, Google Pay

Get Started →