[comp.os.cpm] BDS C, C/80, and C/NIX

brengle@hpcltjb.HP.COM (Tim Brengle) (10/28/88)

OK, you asked.

I have done a LOT of C programming under CP/M 2.2 on my Heathkit H-89.  I have
used both BDS C and Toolworks C.  I use C/NIX as my "shell of choice".

I wanted to write a compiler (ADL -- see rec.games.programmer) in C, so I
fished around a bit trying to find something that worked well.  Aztec C seemed
too expensive at the time, so ...

I bought C/80 and C/NIX from Software Toolworks.  C/80 at $49.95 it was a real
bargain, as is C/NIX at $59.95.  Walt Bilofsky, founder of Software Toolworks,
is/was a heavy H-89 user, so I could get their products in the correct format
for my machine without having to wait for conversion.

The c/80 compiler is derived from Small C, but made MUCH more K&R compatible.
The version I have (not the latest) generates 8080 assembly and comes with a
specialized assembler that includes some of the necessary support for C
operations.  I used it until compiling my compiler generated assembly text
files that were too big to fit on my 90K disks.

I had an older version of BDS C that I think I got when I bought the H-89.
Since it generated its own form of .REL files (.CRL files) and didn't have to
go through assembly code as an intermediate, it helped a lot with my disk
limitations.  Not only that, it is blazingly fast!  However, it is not
completely K&R compatible.  I bit the bullet and converted.  Haven't used C/80
since.

Then I got bigger disks.  Then I got a 4Mz upgrade.  Then I got SuperRam-89
from CDR in San Diego.  How nice to have nearly a megabyte of ramdisk...

I decided to upgrade my BDS C, so I bought version 1.50a from Workman and
Associates in Pasadena sometime in February of last year (if I remember right).
If you want, I can probably dig up their address and post it.  The whole thing
cost me about $150 and took some extra time because of the weird hard-sectored
format that the H-89 uses.

Version 1.50 is much more K&R compatible, and faster, and has more USEFUL
library routines.  (Incidentally, all of the source for the libraries is
included -- some in C and some in assembler).  Definitely worth the price and
the wait.

All of the benchmarks I have seen indicate that BDS both compiles faster and
generates faster code than all other C compilers for CP/M.  I believe them.  I
have seen indications that version 1.60 has gone a long way toward solving the
incompatibility problems, but I haven't upgraded yet so I don't know from
personal observation.  Regardless, I most heartily recommend BDS C!

Now, about C/NIX:

It would have been nearly useless on my 90K disks -- too slow and no great
benefit.  Once I got beyond that, I started using it and never stopped.  For a
while I experimented with ZCPR3, but my addiction to UNIX won out.  C/NIX
provides a very useful subset of UNIX -- and uses the same kind of command line
syntax.  It replaces the CCP in memory and uses your pre-existing BIOS.  If
your disks are slow, it can be really painful having it reload from disk every
time that you execute a non-trivial command.  But, I run it out of RAM disk and
have absolutely no complaints about speed.

It is not complete.  Scripts (batch files) can't conveniently do conditionals
or branching.  Not a major issue to me because I used something a lot like UNIX
make(1).  It has some other warts that don't come to mind immediately because I
worked around them some time ago and use those solutions without thinking.

In all, if you like *real* UNIX, you will probably find C/NIX more to your
liking than ZCPR3.  At least, I do.

			Tim Brengle
			co-designer of ADL
			brengle%hpda@hplabs.hp.com