 #
 # 68K/386 32-bit C compiler.
 #
 # copyright (c) 1996, David Lindauer
 # 
 # This compiler is intended for educational use.  It may not be used
 # for profit without the express written consent of the author.
 #
 # It may be freely redistributed, as long as this notice remains intact
 # and sources are distributed along with any executables derived from them.
 #
 # The author is not responsible for damages, either direct or consequential,
 # that may arise from use of this software.
 #
 # v1.5 August 1996
 # David Lindauer, gclind01@starbase.spd.louisville.edu
 #
 # Credits to Mathew Brandt for original K&R C compiler
 #
 #
This compiler is presented on an 'as-is' basis without any guarantee of
usability or fitness for any given application.  Risks associated with
using it, including financial loss or loss of life are not the 
responsibility of the authors.  However, this compiler is intended as 
an educational tool, and is not to be used commercially in any case 
without the express written consent of the authors.

The original author is Matthew Brandt.  As he left it it was a K&R 
style compiler with no floating point and minimal preprocessor support, 
targeted only for the m68k.  Much of the work was done on a Unix 
machine and later ported to DOS.  You can find his version on one of 
the Motorola file sites if you wish to compare.  The current version 
has been updated extensively to support a variety of ANSI constructs as 
well as i386 support and a better preprocessor.  However, parts of
the program still reflect Mathew's work.

I have done my part of the coding with 16 and 32 bit MSDOS assemblers.
This version of the code has NO dos-specific features in it and should
be portable to any 16 or 32 bit ANSI compiler.

This is an optimizing, retargetable 32-bit C compiler.  Current support 
is for the m68k and the i386.  Most ANSI keywords are supported; 
although the compiler is definitely NOT ansi-compatible when it comes 
to evaluating expressions.

A built-in preprocessor has been added. Note that due to a requirement 
to use an extended character set most of the preprocessor considers
characters as shorts.  Symbols are translated to an 
asCII-with-escape-sequences format so that the rest of the compiler can 
use char fields for symbols.

There is also a minix varient of Mathew's compiler; search for the file
c386.* using archie.  feature-wise it is roughly compatabile with
this cmpiler, except it is fully ANSI compatabile whereas this compiler
is not, and it has no buit-in preprocessor.

This is an optimizing compiler.  See the file optimize.doc for a
descriiption of the optimizations currently done.

The compiler generates ASM code at this time.  For the m68k, the
compiler generates a .SRC file and the syntax of the CrossCode 
assembler is utilized.  68K code is position-independent. For the i386, 
the compiler generates a .ASM file and the masm/tasm or nasm syntax is 
utilized.

Read the files in the DOCS directory for information on 
implementation-dependent features.  the feature.* files are a list of
the bug fixes done in different versions

In the clibs directory you will find C and assembly sources for
an ansi C library.  This is not guarateed to be complete or accurate,
however its functions are designned to work similarly to the ansi
functions.  There are startup files that completely initialize the
run-time environment of the compiler.

David Lindauer