Newsgroups: gnu.gcc
Path: utzoo!henry
From: henry@utzoo.uucp (Henry Spencer)
Subject: Re: retargetable assembler in gawk
Message-ID: <1989Dec29.041900.19863@utzoo.uucp>
Organization: U of Toronto Zoology
References: <8912290059.AA16370@LOM1.MATH.YALE.EDU>
Date: Fri, 29 Dec 89 04:19:00 GMT

[I don't normally read this group, but a friend pointed this out...]

In article <8912290059.AA16370@LOM1.MATH.YALE.EDU> ara@LOM1.MATH.YALE.EDU (Allan Adler) writes:
>According to the gawk manual, p.145, Henry Spencer of the University of
>Toronto wrote an assembler in gawk which is several thousand lines long,
>which contains many machine descriptions, which it is claimed should
>have been written in some other language...

This isn't quite right.  It's the Amazing Awk Assembler.  I wrote it in
ordinary pre-GNU awk (with some sed and other Unix programs mixed in),
not gawk (although the gawk folks did use it as one of their test cases,
since it's a moderately substantial body of awk code with regression tests).
As shipped by me, it is about 2500 lines, 41KB, including the (skimpy)
documentation.  Roughly 2/3 of that is two sample machine descriptions
in a somewhat redundant form.  As shipped, it can assemble 6801 or 6809
assembler (its own syntax, not a standard one) to Intel hex load modules.
Within the general family of machines it can cope with (8-bit micros,
although it could be stretched to others with work), retargeting it
basically amounts to typing in the opcode list and writing a few lines
of awk for each notation invented for a funny addressing mode.

AAA is slow, its input syntax is limited and eccentric, its response to
errors is poor, its retargetability is limited, and if a retargetable
assembler had been the objective, C would certainly have been a better
choice of implementation language.  I did it because I wanted to see
if it could be done, and because I had some uses for a simple assembler
that didn't justify building a production-quality product.  It can be
done, and it is of some use.  For those purposes, awk was the right language.

>... And if it is no longer part of the distribution, can someone
>tell me where one finds this program ?

I can't tell you whether it's shipped with gawk, but the comp.sources.unix
archive has my original distribution.
-- 
1972: Saturn V #15 flight-ready|     Henry Spencer at U of Toronto Zoology
1989: birds nesting in engines | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
