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