henry@utzoo.uucp (Henry Spencer) (12/29/89)
Archive-name: aaa/how-to-get Original-posting-by: henry@utzoo.uucp (Henry Spencer) Original-subject: Re: retargetable assembler in gawk Archive-site: wuarchive.wustl.edu [128.252.135.4] Archive-directory: usenet/comp.sources.unix/volume04 Archive-files: aaa.Z Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti) [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