[net.micro.atari] C compiler info wanted

tim (01/24/83)

I am looking for a reasonably complete C compiler for my Atari 800.
I would like to hear from anybody that has bought such a thing and
what they thought of it (what was missing from it? how fast was it?
what assembler was required for it? efficiency of generated code?...)
Please mail your replies to...

				...decvax!utzoo!dciem!tim

					Tim Pointing

bernie (01/25/83)

The problem is that the Atari (like the Pet, Apple and far too many others)
uses the 6502, by far the most primitive of the widely-used microprocessors
in terms of architecture and instruction set.  It *cannot* support a native
C compiler, and the code density coming out of even the best cross-compilers
is bound to be poor.  There are NO 16-bit registers, the stack is 8 bits wide
and is fixed-size (256 bytes) and at a fixed location (page 1 in memory).
The only effective way of implementing a high-level language is to write an
intermediate-code interpreter (the approach taken by the USCD p-system) or
put in a supplementary processor (such as the Z-80 or (better yet, from a
high-level language implementer's point of view) a 6809).  To the best of
my knowledge, none of the above are available for anything except the Apple.
There are alternatives, however; Forth is almost certainly available, if only
because it's so easy to port; Atari Basic is supposed to be reasonable for
really simple applications; 6502 Assembler sucks, but the 6502 is a fast
processor and writing in assembler lets you take advantage of that speed.
My suggestion : buy a second system, like the IBM PC, with a decent processor
and tons of good software.  If you're in no rush for quality software, anything
based on the 68000 is going to be more powerful that the IBM PC with its 8088.
However, if you're really patient the 16000's will be out soon, and should be
strong contenders.
                                     --Bernie Roehl
                                     ...decvax!utzoo!watmath!watarts!bernie
P.S.  There is a Tiny-C *interpreter* for the 6502, but it is extremely slow
and provides a truly tiny subset of a subset of the language.  Good for
playing with, useless as a serious software development tool.