Page 1 of 1
from 1983: 6502 assembler with Lisp syntax
Posted: Sun Apr 24, 2011 6:35 pm
by BigEd
For interest, from
a post on Hacker News:
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
Re: from 1983: 6502 assembler with Lisp syntax
Posted: Fri Oct 07, 2011 8:23 pm
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
Posted: Mon Dec 05, 2011 3:23 pm
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:
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:
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.
Posted: Mon Dec 05, 2011 8:28 pm
by rwiker
Henry Baker also had an interesting 6502 assembler, written in Lisp:
http://www.pipeline.com/~hbaker1/sigpla ... gcol04.pdf
Posted: Mon Dec 05, 2011 9:00 pm
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.