Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!udel!princeton!njin!uupsi!sunic!news.funet.fi!funic!santra!news From: gson@niksula.hut.fi (Andreas Gustafsson) Newsgroups: comp.sys.handhelds Subject: Re: Sass vs ASAP Keywords: ASAP Sass CHIP-48 Message-ID: <1990Nov16.105051.20653@santra.uucp> Date: 16 Nov 90 10:50:51 GMT References: <1442@fs1.ee.ubc.ca> Sender: news@santra.uucp (Cnews - USENET news system) Reply-To: gson@niksula.hut.fi (Andreas Gustafsson) Organization: Helsinki University of Technology, FINLAND Lines: 47 In article <1442@fs1.ee.ubc.ca> jmorriso@snickers.ee.ubc.ca writes: > As far as I know, there are two assemblers for the Saturn processor: > Sass which I believe was the first, and ASAP which was written later. Actually they were written roughly at the same time, but Sass was published a bit before ASAP. > Most people seem to be posting code in ASAP form. Although the mnemonics > are the same, there might be differences in assembler directives. > Could someone mention why they are using ASAP instead of Sass? Is it better? > As far as I know it is written in PERL, and runs on Unix workstations only. > Sass however is self contained. It is written in yacc and lex, and the c > source code generated compiles on anything . I know that it runs on unix > and the ibm pc. I wrote ASAP as a quick hack just to get CHIP-48 assembled somehow, because there was no other Saturn assembler available at the time. Sass is certainly smaller, faster and more elegant, but the main reason I haven't switched over to it is that when I last looked, it lacked a crucial feature: it doesn't let you calculate an assembly-time constant by subtracting two labels. The CHIP-48 source relies heavily on this construct to calculate the addresses of fixed tables within a relocateable Code object. Consider the following example: move.a pc,a ; get address of next instruction ref17: move.p5 hexfont-ref17,c ; Sass can't do this add.a a,c ; calculate address of "hexfont" move.a c,d1 ; now d1 points to the hex patterns ... hexfont: data.5 #F999F data.5 #72262 ... I think with Sass you need to either do the subtraction at runtime (making the program bigger and slower) or keep the Code object load address in a register (which could probably be put to better use). If some later version of Sass supports this construct, I will probably switch over to Sass. -- Andreas Gustafsson Internet: gson@niksula.hut.fi Voice: +358 0 563 5592