Contents of the READ.ME file
* The MICRO-C Compiler *
MICRO-C is a tiny compiler for the 'C' language. It has been designed
to be VERY portable, and can be moved between different processors and
operating systems with little difficulty.
MICRO-C should not be compared to MICROSOFT, TURBO, or any of the
other P.C. compilers, because it it intended for en entirely different
purpose. These are very good compilers, but they are large, expensive,
and dedicated to specific computer environments. MICRO-C is tiny (it can
be made to run in less that 32K), and allows you to take it anywhere you
The complete MICRO-C package includes all source code and support
files you need to port the compiler to any environment. It also includes
code generators for the 6809, 68HC11, 8051/31, 8080/8085/Z80 and 80x86
processors. With this package you can turn out an "instant" compiler for
any machine using one of those processors. The documentation also
contains detailed information on writing new code generators for other
MICRO-C is also an excellent learning tool. Not only does the
complete, well documented source code for the compiler and utilities
give you the opportunity to explore and understand those programs, the
source code for the library gives you information on all kinds of system
programming, such as:
- DOS and BIOS services
- Video screen and windowing functions
- Interrupt driven serial communications
- Terminate and Stay Resident (TSR)
- Lots MORE (Over 130 functions)
For more information on the compiler, see the file MC.DOC. This file
is quite large, make sure you are in no hurry before printing it on a
slow printer. The table of contents pages are printed last, and should
be inserted between the title page and page 1.
MICRO-C is no longer "User supported Software" (shareware). This
archive contains a "DEMO" package, consisting of the IBM PC executables
and support files. If you like what you see, and wish to obtain the
complete package with source code for the compiler, libraries and
utilities, Fill out the order form at the end of this document, and send
it along with the required payment to:
Dunfield Development Systems
P.O. Box 31044
Nepean, Ontario (Canada)
Please make your cheque or money order payable to "David or Sharleen
Dunfield". If you choose not to order the complete MICRO-C package,
please discontinue using MICRO-C within thirty days.
* Getting Started *
To install MICRO-C on a hard drive, simply create a directory and
unpack this archive into it. The directory "\MC" is preferred, since
some of the utilities assume this is the MICRO-C home directory unless
Once you have installed the system, refer to the section entitled
"THE COMMAND CO-ORDINATOR" in the MC.DOC file for information on how to
compile programs using the 'CC' command. You should either include the
MICRO-C directory "\MC" in your PATH, or copy the CC.COM file to a
directory which is already in your PATH. Also, make sure that the MASM
and LINK commands are available on your system. The MCDIR and MCTMP
environment variables should be set up as described in the document
before attempting to use CC.
Once you have everything set up, you may wish to try compiling some
of the example programs which are included in this archive.
* MICRO-C under MS-DOS *
* Implementation notes *
The 8086/MS-DOS implementation of the compiler produces code for the
Microsoft MASM (or compatible) assembler in either the TINY or SMALL
models. It has been tested with MASM 4.0, MASM 5.1 and TASM 1.0. The
LINK utility is required to create a ".EXE" file. NOTE that programs
produced for the TINY model will execute as ".EXE" files, however, due
to PSP being outside of the data/code segment, command line parameters
are only available when the program is converted to ".COM" format with
the supplied EXE2BIN utility.
The memory model to use is selected by the runtime library, which
MUST BE FIRST in the list of object files passed to the linker. The
8086RL_T.OBJ file distributed with MICRO-C is configured for the TINY
model, and the 8086RL_S.OBJ file is configured for the SMALL model.
The variables ARGC and ARGV (Note capitals) are available in the
runtime library module for use as EXTERNAL references from your
programs. This makes it easy for a function other than 'main()' to
access the programs arguments. The variables PSP and ENV are also
available to determine the PROGRAM SEGMENT PREFIX and ENVIRONMENT
ie: extern int ARGC; /* Count of arguments */
extern char *ARGV; /* Array of ptrs to args */
extern int PSP; /* PSP segment */
extern int ENV; /* Environment segment */
If you are using a DOS version prior to 3.0, the argv (program
name) argument will not work correctly.
All of the source and header files ('.c', and '.h') were written
using tab stops every 4 characters, which is much more convenient for
'C' development than the usual MS-DOS tab stops of every 8 characters.
Source for a program called "type4.c" is provided, which reads a file
and displays it using spaces to simulate the tabs at 4 character
intervals. To compile this program, use:
The resulting "type4.com" file may be used to view/print the source
files with proper spacing.
* Files in this archive *
READ.ME - This file
CATALOG - Catalog of available software
FEATURES.DOC - A summary of MICRO-C features
MC.DOC - MICRO-C Technical Documentation
LIBRARY.DOC - MICRO-C Library Reference
MC-VS-SC.DOC - Comparison of MICRO-C and SMALL-C
CINTRO.DOC - Introduction to 'C'
CC.COM - Command Co-ordinator
MCC.COM - Compiler
MCP.COM - Preprocessor
MCO.COM - Optimizer
EXE2BIN.COM - Executable to Binary convertor
WINDEMO.COM - Window package demonstration
LC.BAT - Batch file to link multiple objects
8086RL_T.OBJ - Tiny model runtime library
8086RL_S.OBJ - Small model runtime library
MCLIB.LIB - MICRO-C Function Library
*.h - Header files as described in the documentation
*.c - Various example programs
*** Ordering MICRO-C ***
MICRO-C IS NOT FREE SOFTWARE, if you like MICRO-C, and wish to
continue using it, you MUST order a complete copy of the program, this
gets you many things not included in the demo archive, including:
- More utilities, such as MAKE, TOUCH, SLINK, SINDEX.
- Complete source code for compiler, libraries and utilities.
- Code generators for 6809, 68HC11, 8051/31, 8080/85/Z80, 8086
(all with source code).
- An nice set of windowing library functions (with source).
Run the WINDEMO.COM program for a taste.
- Many more (and useful) example programs (with source), see
the summary at the end of the MC-VS-SC.DOC file.
Once you purchase a copy of MICRO-C, you may at any time, obtain an
update to the current revision of the product by filling out the order
form below, and sending it and the required update fee to the address
mentioned above. Don't forget to check the 'Update' box, and to fill in
your MICRO-C serial number.
* Limited Distribution License *
Permission is granted to copy and distribute this "demo" archive via
electronic "Bulletin Board Systems" (BBS), and disk copying services,
subject to the following restrictions:
- The archive must not presented in its original form, without modification.
- Only one version of this archive may be offered at any given time, IE: if
you post a new version of one of my shareware products, any older versions
of that product, which were previously available must be removed and no
longer offered for distribution.
- I reserve the right to request of anyone distributing this archive that
they upgrade to the current release (which I will provide). If you receive
such notification, and desire NOT to upgrade, you may also meet the
requirements of this license by ceasing to distribute this archive.
* MICRO-C Product Order Form *
Street address: ___________________________________________
City: ___________________ State/Prov: _____________________
Zip/Postal Code: ______________ Country: __________________
For the purposes of this document, the term "MICRO-C" shall be used
to refer to the licensed MICRO-C package, including all documentation,
source code, executable and support files, for the compiler, libraries,
utilities and example programs.
By signing this order form, you indicate your acceptance of the
1) You may make a backup copy of MICRO-C, and you may install MICRO-C
on your computer systems hard disk, but only one copy of MICRO-C may
be in use at one time.
2) You may modify MICRO-C in any way you like, but the modified code
shall, regardless of the extent of modification, remain the property
of the original author, Dave Dunfield. You may not remove or alter
the copyright notices contained in the source files, or displayed
by the executables.
3) You are granted permission to distribute any programs you develop
with MICRO-C. You may also distribute executable code for MICRO-C
library functions that is incorporated into such programs.
4) With the exception of embedded code mentioned above, You may not
re-distribute any part of MICRO-C in any way. Any and all copies
of MICRO-C must be retained in your possession at all times.
5) You may transfer the license and complete MICRO-C package, provided
that you retain no copies of any portion of MICRO-C, and that the
transferee completes and sends in a signed copy of this order form,
indicating the serial number of the MICRO-C package being transferred.
Please check one:
[ ] New order, $49.95 enclosed.
[ ] Update, $20 enclosed, Serial No. _____________
[ ] Transfer of MICRO-C license, Serial No. _____________
I have read and agree to be bound by the above conditions.
Date: ___________ Signed: _________________