From: dmwick@napier.uwaterloo.ca (Dale Wick)
Subject: The Compilers list (was: Re: Urgent info/suggestions for CP/M 3+ (Z80)???)
Followup-To: comp.os.cpm
Summary: CPM specific information.
Originator: dmwick@napier.waterloo.edu
Keywords: compilers languages helpful
Organization: University of Waterloo
Date: Thu, 16 Apr 1992 21:05:25 GMT

Thanks to: Impedantzer (EMP) <mds@id.dth.dk> for sending me this version of
hte list.

Send corrections/additions to me or "the keeper" who may still be
laverman@cs.rug.nl
			Dale
---- cut here ----

[ 1st Version: 29 July 1991 ]
[ 2nd Version: 13 August 1991 ]
[ Last edited: 28 October 1991, by laverman@cs.rug.nl (Bert Laverman) ]

                  C P / M - 8 0   C O M P I L E R   L I S T
                  =========================================

  This list is an attempt at answering most of the `Can anyone tell me what
the best CP/M compiler for language "foo" is?' questions. Please do not
expect this list to be definitive. I am very much dependent on the information
sent to me, and if nobody mentioned a certain compiler, chances are you won't
find it here. If you know of a compiler that should be in the list, send me
a description.

  Compiler categories:
    I've split up the list into two parts, based on how much info I have on
the compiler concerned. The first list is a list of compilers with some kind
of description, the second list contains compiler only known to me by name.
Please note that 1 (one) line of descriptive comment is enough to make it a
category 1 compiler. ;-)

  Compiler availability:
    Many compilers are still sold, others can only be obtained as an illegal
copy. Also some compilers are public domain, but alas that group is rather
small. I think that, even though many companies are no longer actively
engaged in maintaining their CP/M packages, they will _not_ look kindly on
publicly announced copying. Since I received _no_ communications from
persons working for companies like Borland, Microsoft, and Digital Research,
I wonder if any of them monitor this list. Perhaps we as collective CP/M
users can draw some goodwill, and persuade them to remove some of the copying
restrictions on e.g. binaries.
  I mention the copyright holder when known. "?? PD ??" means that I don't
know, but that they are for sale at such a low rate that I suspect them to
be at least shareware.
  Many Bulletin Boards have interesting software, and Ed Grey not only
runs a BBS, but also sells MIX C and Turbo PASCAL v3. RS components in
England also sells originals materials. I mention these two as example,
undoubtebly there are others with remnants of a large stock. JRT PASCAL,
Prolog-80, Micro-COBOL, Forth-83, Small-C and others are appearently
PD, and can be had from BBSes. PCW world seems to have MBASIC on one of
their disks, but I'm doubtful about their right to do this.

  References:
    I include the names of all those that sent me information on the
compilers, since they are likely to know more if you have questions about
a specific product.

  The rumors:
    Hah! many! I'm forced to reject rumors that Microsoft is no longer
interested: RS components still sells compilers for CP/M+ - including
Macro-80! - for three figure amounts.

1. Known compilers:
-------------------

	Ada:
	====
	- Janus/Ada				???
	  PASCAL subset of Ada. Teeny bit of parallelism.
	  Refs: dcb

	Algol 60:
	=========
	- Valgol v1.				*Public Domain*
	  Variant of Algol-60. Generates Z80 code. Needs "E Prolog".
	  Is actually an example of how to write a compiler in Prolog.
	  Refs: u895217, rickc
	  FTP-archive: wsmr-simtel20.army.mil

	Assembly:
	=========
	- ZMAC v1.07D				*Public Domain*
	  Z80 macro assembler
	  Refs: wittig
	  Add-ons:
	  - ZLINK v1.07D Linkage editor
	
	- ZMAC + ZML				A.E. Hawley
	  Macro assembler for Z80. Linker can produce many different
	  binary file types. Has Z-system support
	  Refs: sage

	- Macro-80				Microsoft
	  Magnificent Macro assembler & linking loader. Link
	  files are relocatable and used by all Microsoft compilers,
	  as well as many others.
	  Refs: laverman, henryb

	- MAC & RMAC				Digital Research
	  Standard assembler for CP/M 3 (aka CP/M+). RMAC produces .REL
	  files. Linker can produce .PRL executables (Page ReLocatable).
	  Refs: laverman

	- Maxam 2				Arnor Ltd.
	  MAcro assembler for Amstrad/Schneider Z80 machines.
	  Refs: ewen

	- SLR systems assemblers		SLR systems
	  Assemblers for 808[05], Z80, & Hitachi. Very fast.
	  Special version of assembler&linker swap to disk to
	  handle _huge_ programs.
	  Refs: sage

	- ZAS					Mitek/Echelon
	  Was 'The official assembler for ZCPR3'. Current status unkown.
	  Refs: ianj
	
	- ZSM					David Goodenough
	  Used o.a. for David's QTERM & UUCP packages.
	  Refs: ianj

	BASIC:
	======
	- MBASIC compiler			Microsoft
	  The MBASIC interpreter is _the_ standard. This is the compiler.
	  Refs: laverman

	- CBASIC				Microsoft
	  (Integer ?) BASIC compiler.
	  Refs: laverman

	- Hisoft Z Basic			Hisoft
	  Supposedly produces slow code.
	  Refs: u895217

	- SBASIC				Non-Linear systems
	  Comes with Kaypro II
	  Refs: Steve.Graham

	C:
	==
	- Small-C v1.2				*Public Domain*
	  No floating point, less than K&R ed. 1. Generates Z80 code.
	  Refs: wittig
	  Add-ons:
	  - Peephole optimizer
	  - Preprocessor (K&R)
	  - Assembly optimizer for Small-C

	- Small-C v2.1				*Public Domain*
	  No floating point. More than v1.2, but still less than
	  full K&R. Generates 8080 code.
	  Refs: rickc
	  FTP-archive: wsmr-simtel20.army.mil

	- MIX C v2.1.0				MIX Software
	  Full K&R, including float and long.
	  Refs: ewen, ac959

	- HiSoft C				Hisoft
	  K&R, but no floats.
	  Refgs: u895217

	- HiTech C v. 3.09			Hi-Tech Software
	  Full ANSI C compiler. Requires Z80.
	  Package includes compiler, assembler, linker, librarian,
	  crossreferencer and debugger.
	  Full source for library included, compiler can produce
	  assembly.
	  Refs: mds, clyde

	- Avocet C
	  Alias for HiTech C.
	  Refs: clyde

	- Arnor C				Arnor Ltd
	  Full K&R. Amstrad/Scheider Z80 machines only.
	  Refs: u895217, ewen

	- C/80					Software Toolworks
	  Mathpac also available.
	  Refs: henryb

	- BDS-C 1.60c				BD Software
	  Almost K&R C, no floats, but fake-float support is in the
	  package.
	  Refs: sage
	
	- BDS Z 2.0				BD Software
	  BDS C adapted for Zsystem 
	  Refs: sage

	- Aztec C				Aztec
	  K&R C. Practically the same as for MS-DoS, Atari, etc.
	  Three packages available: apprentice, commercial, professional.
	  Good overlay manager.
	  Refs: harry

	- Ecosoft C 3.00			Ecosoft
	  Strict K&R C (1st ed, my guess)
	  Refs: doctor

	- Lattice C				Lattice inc.
	  Family of the MSDOS/ST/Amiga/... compilers???
	  Refs: doctor

	- C dev. Pack				Digital Research
	  The standard CP/M-68k C compiler from DRI.
	  No Floats, externals must be unique in 8 chars.
	  No initialization of automatic vars.
	  Refs: doctor

	COBOL:
	======
	- Micro COBOL				?? PD ??
	  Cut down COBOL, no indexed files, no sort.
	  Refs: u895217
	
	- Nevada COBOL				????
	  Based on 1974 standard. No indexed files.
	  Refs: u895217

	- RM Cobol				Ryan McFarland
	  Cut down Cobol

	- CIS Cobol v4.5 Rev 1.			Micro Focus
	  Apparently sold with the Superbrain.

	Draco
	=====
	- Draco					Chris Gray
	  This gem is not PD, but the compiler is free.
	  The Draco language looks like C, but isn't. It has a feature
	  I can rarely found with CP/M compilers: You can declare a
	  new data type, and then let the compiler know how to handle
	  the standard operators (+,-,*,/,<,>,<=,>=, etc.)
	  Chris made the compiler free because it wasn't a success
	  commercially.
	  Refs: laverman
	  FTP-Archive: wsmr-simtel20.army.mil

	Forth:
	======
	- F-83					*Public Domain*
	  Forth system. Available for different CP/M's
	  Refs: mikc

	- Hisoft Forth				Hisoft
	  From the Hisoft company.

	Fortran:
	========
	- Fortran-80				Microsoft
	  Almost complete Fortran IV implementation. Claims to have
	  the fastest mathematical library for 8080/Z80. Works (maybe)
	  with a RATFOR preprocessor.
	  Refs: agr-rss

	Modula-2:
	=========
	- Hisoft FTL Modula-2			Hisoft
	  Good, fast, and extensive. Comes with editor. Lib source included.
	  Compiler is one-pass, so FORWARD declarations are needed.
	  Implements Modula-2 2nd edition(!)
	  Refs: u895217, cummings

	- Turbo Modula-2			Borland Intl.
	  Editor, compiler, linker & librarian in one. Fast & good.
	  Can interface to .REL files (Macro-80).
	  Implements Modula-2 3rd edition(!)
	  Refs: svh, cummings
	  
	- Hochstrasser Z80-Modula-2		Hochstrasser Computing AG
	  Implements 2nd edition Modula-2. Troubles with large programs.
	  Refs: cummings

	PASCAL:
	=======
	- Turbo PASCAL v3.01A			Borland Intl.
	  Editor & compiler in one. Fast. No separate modules, but
	  include files are supported.
	  Refs: ac959
	  
	- Nevada PASCAL				????
	  Needs >=60K RAM.
	  Refs: u895217

	- JRT PASCAL				*Public Domain*
	  P-code system.
	  Refs: se
	  FTP-archive: wsmr-simtel20.army.mil

	- PASCAL/MT+				Digital Research
	  Full PASCAL, including modules with interfaces. Uses an
	  object file format that is derived from Microsoft's .REL
	  files. Ideal for large projects.
	  Refs: svh

	- Pro PASCAL				Prospero Software
	  BSI (British Standards Institute) compatible, so
	  probably ISO standard. Can use ".REL" files.
	  Refs: THRA004

	PL/I:
	=====
	- PL/I-80				Digital Research
	  Refs: svh

	PL/M
	====
	- PL/M-80				*Public Domain*
	  This compiler is written in ... Fortran. The comments
	  in the source indicate that you need a _large_ system
	  to get it running.
	  FTP-archive: wsmr-simtel20.army.mil

	Prolog:
	=======
	- E Prolog				*Public Domain*
	  Refs: rickc
	  FTP-archive: wsmr-simtel20.army.mil

	- Prolog-1 2.2				????
	  From the cambridge lab. that invented Prolog. for Z80.
	  Refs: slsw2

2. Known by name:
-----------------

Mu-LISP
iLISP 2.0
Toolworks LISP/80
Mi-C
Pro Fortran 1.25
Prolog 80
micro-Prolog 3.1


3. References:
--------------
  ac959:	ac959@cwns2.ins.cwru.edu (Ed Grey)
  agr-rss:	agr-rss@brl.mil (Richard S. Sandmeyer)
  cummings:	cummings@primerd.prime.com (Kevin J. Cummings)
  dcb:		dcb%grgzfla.UUCP@vax.cs.pitt.edu (Daniel C. Becker)
  clyde:	clyde@hitech.com.au (Clyde Smith-Stubbs)
  doctor:	doctor@tc.fluke.com (Doug Klopfenstein)
  ewen:		ewen@actrix.gen.nz (Ewen McNeill)
  harry:	harry@stack.urc.tue.nl (Harry Stox)
  henryb:	henryb@usage.csd.unsw.oz.au (Henry Brancik)
  ianj:		ijpc!ianj@PacBell.com (??)
  laverman:	laverman@cs.rug.nl (Bert Laverman)
  mds:		mds@id.dth.dk (Michael Dantzer-Sorensen)
  mikc:		mikc@gnu.ai.mit.edu (??)
  rickc:	rickc@pogo.wv.tek.com (Rick Clements)
  sage:		sage@ll.mit.edu (Rick Sage)
  Steve.Graham:	Steve.Graham@ub.cc.umich.edu (Steve Graham)
  se:		se@ikp.uni-koeln.de (Stefan Esser)
  slsw2:	slsw2@cc.usu.edu (Roger Ivie)
  svh:		svh@shell.com (Steven V. Hovater)
  THRA004:	THRA004@mvs.ulcc.ac.uk (Christopher Curri)
  u895217:	u895217@bruny.cc.utas.edu.au (Scott Marshall)
  wittig:	wittig@gmdzi.gmd.de (Georg Wittig)
-- 
#include <std/disclaimer>

  Bert Laverman,  Dept. of Computing Science, Groningen University
  laverman@cs.rug.nl			bert@arrakis.nl.mugnet.org