* The DDS MICRO-C Compiler * Dunfield Development Systems (DDS) MICRO-C is a compact, portable compiler suitable for code development targeting small 8 or 16 bit systems. At the time of this writing, versions of the compiler are available which produce code for the 68HC08, 6809, 68HC11, 68HC12, 68HC16, 8051/52, 8080/85/Z80, 8086 and 8096 processor families. This version of MICRO-C, runs on, and produces code for the IBM PC family of desktop computers. Included in the package is a complete implementation of MICRO-C, with a comprehensive library suitable for the PC. This implementation of the compiler requires a Microsoft (MASM) compatible assembler and linker. Commercial versions of the compiler are designed for "embedded" systems. This means that the code produced by the compiler is ROMable, and does not require that it be run under any particular operating system. These compilers are completely configurable so that you can run the compiled code in almost any hardware/software environment imaginable. The commercial packages also include their own assembler, linker and debugger. No other software is required to develop code for the target cpu. See the included CATALOG file for ordering information. This MICRO-C/PC package is FREE. You may use it as long as you like without payment. If however, you would like to support me in my efforts to develop MICRO-C for the PC, a $25 "registration" fee would be appreciated. In return, I will send you a diskette containing: - The latest version of MICRO-C/PC - A "non-DEMO" version of the Integrated Environment (DDSIDE) - The MAKE and TOUCH utility programs for automated builds - A nice SPRITE EDITOR for use with the LRG library - The full compliment of example programs (**LOTS** of source) - The source code to the entire MICRO-C/PC library - Third party libraries and utilities - A compatible Public Domain Assembler and Linker - More product demos and other free software This MICRO-C "package" (software and documentation) is copyrighted, and all rights to it are reserved. Permission is granted to distribute ORIGINAL UNMODIFIED copies ONLY of the MC???PC.ZIP archive via BBS and disk copying services. MICRO-C is provided on an "as is" basis, with no warranty of any kind. In no event shall the author be liable for any damages arising from its use or distribution. For more information on the compiler, see the file MC.DOC. If you print it, be warned that the file is quite large. The table of contents pages are printed last, and should be inserted between the title page and page 1. The "Browse" function of the included DDSIDE editor can be used to view the documentation online. * 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 told otherwise. Note that the archive contains subdirectories (with PKUNZIP be sure to specify the '-d' option to enable subdirectory creation). [Example: Installing MICRO-C to drive C from archive on drive A] C:\> md mc C:\> cd mc C:\MC> pkunzip -d a:mc???pc To use MICRO-C, you must have a Microsoft (MASM) compatible assembler and linker available on your system. The exact commands and options used with the assembler/linker differ with different versions of these tools. Run the program MCSETUP to select your particular assembler and linker. For those users who do not already have a suitable assembler and linker, I have located a freeware assembler and linker that appear to work quite well with MICRO-C. I take no responsibility for these programs, however they are available on my BBS (in the "Assemblers" file area) under the filenames: ARROWASM.ZIP and VAL.ZIP. These archives should be unpacked into the MICRO-C home directory AFTER the MICRO-C package, but BEFORE the MCSETUP program is run. [Example: Installing PD assembler and linker for MICRO-C] C:\MC> pkunzip a:arrowasm C:\MC> pkunzip a:val C:\MC> mcsetup Refer to the following document files for more information: MC.DOC - General information about the compiler DDSIDE.DOC - Information on the Integrated Development Editor LIBRARY.DOC - MICRO-C/PC library function reference CINTRO.DOC - Beginners introduction to 'C' The MCDIR and TEMP environment variables should be set up as described in the documents before attempting to use the compiler. * MICRO-C under MS-DOS * * Implementation notes * This 8086 MS-DOS implementation of the compiler produces code for the Microsoft MASM (or compatible) assembler in either the TINY or SMALL models. The LINK utility is required to create an 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 PC86RL_T.OBJ file distributed with MICRO-C is configured for the TINY model, and the PC86RL_S.OBJ file is configured for the SMALL model. The startup code for the PC defines the following external variables which can be used within your 'C' programs: 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 */ The usual argc and argv parameters are provided to the main() function, however the ARGC and ARGV variables make it easy for other functions to access the programs command line arguments. If you are using a DOS version prior to 3.0, the argv[0] (program name) argument will not work correctly. * Files in this package * READ.ME - This file CATALOG - Catalog of available software MC.DOC - MICRO-C/PC Technical Documentation LIBRARY.DOC - MICRO-C/PC Library Reference DDSIDE.DOC - Integrated Editor Documentation CINTRO.DOC - Introduction to 'C' MCSETUP.COM - Assembler/Linker setup utility MCP.EXE - Preprocessor MCC.EXE - PC/80x86 Compiler MCO.COM - PC/80x86 Optimizer EXE2BIN.COM - Executable to Binary convertor DDSIDE.EXE - Integrated Development Editor (Demo) DDSIDE.HLP - Help file for DDSIDE PC86RL_T.OBJ - Tiny model runtime library PC86RL_S.OBJ - Small model runtime library MCLIB.LIB - MICRO-C/PC Function Library *.H - Header files as described in the documentation EXAMPLES\*.* - Source code to LOTS of example programs (optional) All of the source and header files 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. The included DDSIDE editor has default tab stops at 4 space intervals. Also, source for a program called "type4.c" is provided in the EXAMPLES\DOSUTIL directory, which reads a file and displays it using spaces to simulate the tabs at 4 character intervals. To compile this program, use: cc type4 -fp The resulting "type4.com" file may be used to view/print the source files with proper spacing. * 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 be presented in its original form, without modification. - The archive may not be distributed as part of or in assocation with any other product. - Only one version of this archive may be offered at any given time, IE: when you post a new version of one of my archives, any older versions of that archive must no longer be 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).