[net.micro.cbm] C compilers for 8 bit machines

mark@cbosgd.UUCP (Mark Horton) (09/03/86)

I would appreciate any references to C compilers for popular 8 bit
machines, such as the Apple II, Commodore 64, Atari 800, and CP/M machines.
I'd prefer products, but public domain offerings are OK too, especially
if a source can be given.

This info is for a book about C portability, so you probably don't want
to offer to send a copy of Tiny C personally.  Also, any comments about
the compiler you mention (if you like it, what it's limits are, etc)
would be appreciated.

Thanks in advance,

	Mark Horton
	cbosgd!mark

cbbrowne@watnot.UUCP (Christopher Browne) (09/04/86)

In article <2503@cbosgd.UUCP> mark@cbosgd.UUCP (Mark Horton) writes:
>I would appreciate any references to C compilers for popular 8 bit
>machines, such as the Apple II, Commodore 64, Atari 800, and CP/M machines.
>I'd prefer products, but public domain offerings are OK too, especially
>if a source can be given.
>
>	Mark Horton
>	cbosgd!mark

For the Atari 8 bit series, there are two C compilers worthy of note:

	1)  C/65: formerly sold by OSS (I can obtain the address, if it is
	desired).  This is an assembling compiler, that is, it produces 6502
    assembly language which must be assembled using their assembler.  It
	is no longer available from them, but is available from some dealers
	who have had it in stock for several years.  I cannot comment further,
	since I have not used it.

	2) Deep Blue C (the package I would recommend) is an extensively 
	modified version of Ron Cain's Small C compiler.  It is available from
	Antic Magazine (see your local newsstand for a catalog) and there is a
	floating point library available.  Information on the original C
	compiler on which this one is based can be obtained from Dr. Dobbs 
	Journal.  This is a fairly decent compiler, with calls for i/o routines,
	the 'standard' C stuff (slightly modified so as to be appropriate for the
	Atari operating system), and calls for graphics routines which are better
	than the commands provided in Atari Basic.  I'm not sure how much support
	this product has, but it has been available for a LONG time, so the bugs
	should be worked out of it.

Hope this is an aid to you.


-- 
            Christopher Browne
            University of Waterloo
            Faculty of Mathematics

	        "To do is to be."  -- Aristotle
         	"To be is to do."  -- Socrates
         	"Do be do be do."  -- Sinatra
         	"Do be a do bee."  -- Miss Sally of Romper Room fame.
        	"Yabba dabba do."  -- Fred Flintstone

ranger@ecsvax.UUCP (Rick N. Fincher) (09/05/86)

> I would appreciate any references to C compilers for popular 8 bit
> machines, such as the Apple II, Commodore 64, Atari 800, and CP/M machines.
> I'd prefer products, but public domain offerings are OK too, especially
> if a source can be given.

Aztec C runs on the Apple, CP/M systems and the C64.  Its different
versions seem to be very compatible at the source code level and a 
Unix-style user interface makes the various versions very similar in
operation.
 
> 
> This info is for a book about C portability, so you probably don't want
> to offer to send a copy of Tiny C personally.  Also, any comments about
> the compiler you mention (if you like it, what it's limits are, etc)
> would be appreciated.
> 
The Aztec compiler for the Apple has very slow screen handling because
it uses a console driver that emulates a terminal.  Terminal screen
control codes are decoded into control codes for the particular hardware
being used.  This is great for portability but is very slow.
The other gripe I have with Aztec C on the Apple concerns float and d 
double data types.  The Aztec systems comes with two compilers, one
that compiles into compact pseudo code (nice for 8 bit machines) and 
one that compiles into fast but long native code.  The problem is that the fast         
the fast native code compiler does not support float or double.  This
makes operations using these types fairly slow.  Fortunately, the 
linker that comes with the system will link modules compiled with either
compiler, so you are not forced to compile everything in pseudo code.