from 1983: 6502 assembler with Lisp syntax

Topics related to older 6502-based hardware and systems including (but not limited to) the MOS Technology KIM-1, Synertek SYM-1, and Rockwell AIM-65.
Post Reply
User avatar
BigEd
Posts: 11467
Joined: 11 Dec 2008
Location: England
Contact:

from 1983: 6502 assembler with Lisp syntax

Post by BigEd »

For interest, from a post on Hacker News:
Quote:
In 1983, Rescue on Fractalus and Ballblazer, the first releases from Lucasfilm Games, were built with a system written in Lisp. It was a 6502 assembler with Lisp syntax and a Lisp-style macro facility, written in Portable Standard Lisp, running in Berkeley Unix on a 4MB VAX 11/750. Unfortunately it was eventually abandoned because the developer had left and it was a bit of a strain on the VAX that was shared by the whole development team.
See also The Influence of the UNIX® 1 Operating System on the Development of Two Video Games(pdf) by Peter S. Langston
TMorita
Posts: 217
Joined: 15 Sep 2002

Re: from 1983: 6502 assembler with Lisp syntax

Post by TMorita »

I know a few of the guys mentioned in that article.

I worked at Lucasfilm Games (which became LucasArts Entertainment) from about July 1990 to Sept 1993. There were a few old Sun-1s in closets gathering dust when I first got there, but most development was done on PCs by that time.

Toshi
User avatar
BigEd
Posts: 11467
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Looks like the assembler was MACROSS, written by Chip Morningstar (possibly in only a few weeks).

Ron Gilbert comments that he was using emacs (and within it, Lisp) as part of his workflow. As a consequence he started out basing SCUMM (the scripting language used for Maniac Mansion) on Lisp, but switched to C (Lex and Yacc)

In an interview, Chip says:
Quote:
I wrote the programming tools, such as Macross, the universe’s second most powerful 6502 macro assembler - long story - that were used for essentially every 6502-based title we did.
Cheers
Ed

From that pdf:
Quote:
The cross assembler and its macro library were written in Lisp. The Atari end of the download programs and the drum machine program were written in our Lisplike cross assembler. The rest of the tool software was written in C.

Lisp was chosen for the cross assembler because it only took two weeks to implement a cross assembler that allowed both assembler macro definitions and arbitrary Lisp expressions to be included in the assembly task. This allowed us to extend or reconfigure the assembler as we discovered unforeseen needs and deficiencies.

The macro library had two important effects. First, it allowed us to write in a pseudo-structured assembler that included ‘‘if-then-else’’, ‘‘for’’, ‘‘while’’, and other familiar constructs. Second, it acted as a first step toward a subroutine library of commonly used routines. We found that many of the routines we included in the initial set never were used at all, while others that we added as we went along were used frequently.
The download programs made it easy to maintain the source on larger machines running UNIX where we could assemble the code and debug syntactic problems using many different tools before sending executables to the small Atari machines for debugging. Unfortunately, debugging on the Atari was not always convenient, so we designed a dual-ported memory card that would allow us to debug the running Atari program using software running on the larger machines. We discarded the idea of simulating the Atari on the larger machines after discovering an incredible number of important undocumented eccentricities in the Atari hardware.
rwiker
Posts: 294
Joined: 03 Mar 2011

Post by rwiker »

Henry Baker also had an interesting 6502 assembler, written in Lisp:

http://www.pipeline.com/~hbaker1/sigpla ... gcol04.pdf
User avatar
BigEd
Posts: 11467
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Ah, COMFY-65 - we did mention that before, but thanks for bringing it in. I wonder if that's the more wonderful macro assembler which Chip alludes to? (It dates from 1976)

Cheers
Ed

Edit: I see Joseph Oswald has ported to Common Lisp (3.3k lines including testsuite) and put it on github.
Post Reply