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