[net.micro.apple] C compiler for apple ][ ???

novack@hope.UUCP (Steve Novack) (05/06/86)

I'm looking for information about C compilers for the apple ][.  Any
information would be GREATLY appreciated.

Thanks in advance,
Steve Novack

dr@ski.UUCP (David Robins) (05/11/86)

> I'm looking for information about C compilers for the apple ][.  Any
> information would be GREATLY appreciated.
> 
> Thanks in advance,
> Steve Novack

Funny you should ask!

I just recently received a MANX Aztec-C compiler for the Apple.
It turns out, MANX has several packages, as seen in some of their ads.

DOS 3.3 systems:

	Aztec-C Apprentice system- for learning C
		generates a pseudo-code, which is interpreted at runtime
		has separate runtime system for graphics programs,
			which eliminates use of some trig functions,
			scanf, etc.
		Fast one-pass compiler
		Must have SHELL present
		Uses a runtime package of ~70 sectors length
		Code is small for this reason
		Price ~ $30.00 (quite a bargain!)

	Aztec-C Personal System- no longer made

	Aztec-C C-Prime
		has a real compiler and native code assembler
		linker for standard library, as well as floating point
			and graphics
		much faster than Apprentice-C
		code longer, of course.
		No runtime code, but must have SHELL present
		Price ~99.00 (includes Apprentice-C) - takes place of
		Personal C package.

Both of of these come with a UNIX-like "shell", which uses many of the
familiar UNIX commands.  All programs must run under the shell.  Cannot
link apprentice-c code and c-prime code.

	Aztec-C Developer's package
		has both a pseudo-code and native code compiler
		can link program modules of any mixture of these types
			to get a compact program with fast (but larger) parts
			for the time-consuming loops, etc.
		    (but I don't know if a runtime package is needed for
		    the pseudo-code in this mixture)
		CAN PRODUCE stand-alone code- additional 2-4K runtime code
		Price ~199.00

	Aztec-C Commercial package (supports PRODOS and DOS 3.3)
		in beta-test now (not available)
		will support some RAM addition (/RAM like PRODOS ???)
		Price ~299.00


Size of program allowed (including data storage, etc):		
	
	Apprentice-C:  no graphics: ~8k space
		       with graphics: ~ 5600 bytes, or ~14k if using
		       HGR2 instead of HGR page1.

The company doesn't mention size in the C-Prime part; they told me it's
the same as Apprentice-C.  They have not split the code to allow jumps
around the graphics pages, so graphics programs are bound by that upper
limit.  They may support auxiliary RAM cards in the future to store
data, or maybe even store swapable code, but nothing definite yet.
bytes in the Apprentice-C

The Developer's version allows overlay code, so programs can be any
size, and parts can be swapped in from disc.  I don't know about support
for hard drives.  

These packages require unmodified DOS in the standard location, so
pseudo-RAM drives and DOS-movers cannot be used.

Throrough manual included with the C-prime package and Apprentice system
I have.

The company tech I spoke to recommended the PC systems, rather than the
Apple systems, because of the larger space available in the PC, and the
lack of interference with the graphics pages.
(systems available for MS-DOS, PC-DOS,CP/M-86, MacIntosh, Amiga,
CP/M-68K,Apple II, Commodore C128, Radio Shack)

FURTHER READING:

	Call-A.P.P.L.E. December 1983, and January 1984
		"C" What I Mean, Parts I & II, Jim Hockenhull
		(Pt I explains C; Pt II reviews the Aztec-C $200 system)

Anecdotal "benchmark": using the standard published Sieve programs from
Byte in C and BASIC:

(All times include the Titan Accelerator //e card, running unless noted)
for a sieve of size 7000 (yielding 1651 primes)

	Applesoft                     = 240 seconds  (few hundred bytes)
	Applesoft                     = 73 seconds
	Microsoft Applesoft Compiler  = 18 seconds
	Apprentice-C                  = 12.5 seconds(file size 5 sectors)
	C-Prime C                     ~ 1.5 seconds (file size 50 sectors)


BTW:  I have no connection with MANX or APPLE.
-- 
====================================================================
David Robins, M.D. 
Smith-Kettlewell Institute of Visual Sciences
2232 Webster St; San Francisco CA 94115
415/561-1705
			{ihnp4,qantel,dual}!ptsfa!ski!dr

The opinions expressed herein do not reflect the opinion of the Institute!

nazgul@apollo.uucp (Kee Hinckley) (05/13/86)

In article <249@ski.UUCP> dr@ski.UUCP (David Robins) writes:
> > I'm looking for information about C compilers for the apple ][.  Any
> > information would be GREATLY appreciated.
> 
> 	Aztec-C Developer's package
> 		has both a pseudo-code and native code compiler
> 		can link program modules of any mixture of these types
> 			to get a compact program with fast (but larger) parts
> 			for the time-consuming loops, etc.
> 		    (but I don't know if a runtime package is needed for
> 		    the pseudo-code in this mixture)
> 		CAN PRODUCE stand-alone code- additional 2-4K runtime code
> 		Price ~199.00

You don't really have to worry about the difference between psuedo-code
and real-code stuff.  Everything links together and the interpreter is
linked in automatically.  You can use both interpreted and compiled code
in standalone compiled modules as well as ones that run under the shell.
Generally you do all of the development work under the shell, and then
just bind in the standalone library instead when you are ready to test
the final product.

> 
> 	Aztec-C Commercial package (supports PRODOS and DOS 3.3)
> 		in beta-test now (not available)
> 		will support some RAM addition (/RAM like PRODOS ???)
> 		Price ~299.00
> 

Currently the only ram support in this version is the /ram ramdisk.
The shell in this is also much more powerful, it supports both
wildcards and environment variables.  In particular you can use
special environment variables like CCTEMP and INCLUDE to specify
where to put temporary files (on the ram disk usually) and where
to look for include files (INCLUDE has the same format as PATH,
which is also supported).

> The Developer's version allows overlay code, so programs can be any
> size, and parts can be swapped in from disc.  I don't know about support
> for hard drives.  

I've tried using the DOS3.3 stuff on my hard drive (CMC with the PROFIX
software support for DOS volumes on the drive) but PROFIX modifies DOS
too much for Aztec to deal with it.  I don't know if there are any work
arounds.  The PRODOS stuff works like a charm on a hard drive though.

> 
> These packages require unmodified DOS in the standard location, so
> pseudo-RAM drives and DOS-movers cannot be used.

Yes and no.  As I mentioned above, a very modified DOS won't work, but
I've been using a RAM disk I typed in from a NYBBLE article several 
years ago and it works fine, in fact I'd hate to have to work without
it.  Generally I put the C compiler and editor (with a few tools) on
one drive, the source/binary disk on a second, and the files I am currently
working on on the ram drive.  Then I set working directory to the ram
drive.  My compile scripts tell the compiler to always look for the
file on the ram drive, but to put the final binaries on the source drive.
All of the temporaries (where most of the reading/writing occurs) are on
the ram.  You can't fit both the linker and the compiler on one disk though,
so you still have to do some disk swapping.

> The company tech I spoke to recommended the PC systems, rather than the
> Apple systems, because of the larger space available in the PC, and the
> lack of interference with the graphics pages.

The PRODOS version has a linker option to leave holes in the linked text.
This should allow you to easily use the graphics areas.  If the program
is small you can either link it under the graphics page, or over it.  If
you're to large do that there is one more hack you can do.  If you just
want to use the graphics screen occasionally you can copy the code out
of the way, show your pictures, and then copy it back.  This actually
works pretty well so long as you make sure that the code to do the copy
sits somewhere else.  In any case these problems all should go away with
the PRODOS version (I haven't actually tested that feature yet).

----------------

There are a couple other C compilers on the market now, all in the $50
price range.  I don't know too much about them but I suspect that they
have nowhere near the library/shell support that Manx provides.  One of
them had a product announcement in the latest A+ (they called it a C++
compiler, but that was before they realized there was already a langauage
called C++).  The other compiler is the Small-C compiler.  It's really
not a development language, it doesn't support anywhere near the full
language, but it's available with source from the people who put out
the ORCA/M assembler.  You'll need to buy the assembler as well.

If you're going to do any development, particularly for more than one
machine, I definitely recommend the Aztec compilers.  They run on a
wide variety of machines.  The benchmarks generally show them around
the top in compile/run speed, and they support just about every UNIX
system call (generally circa SysIII) that you might want.  I've found 
some bugs in using them, but nothing I couldn't work around, and they 
have a bulletin board you can leave bug reports on and talk to other users.

                                                -kee

Disclaimer:  I don't work for Manx, Apollo doesn't use their compilers,
             and all these distorted views are my own.
--

                     ...{yale,uw-beaver,decvax!wanginst}!apollo!nazgul

This is the Button to Start the Machine
To make with the Cybernetics and Stuff
To cover Chaotic Confusion and Bluff
That hung on the Turn of a Plausible Phrase
And thickened the Erudite Verbal Haze
Cloaking Constant K
That saved the Summary
Based on the Mummery
Hiding the Flaw
That lay in the Theory Jack built.

                    A Space Child's Mother Goose
                    (1 more message to finish this poem!)