** DDS Micro-C revision history **

1.0  12/88  Initial release of Micro-C compiler.
            Initial release of 6809 code generator & runtime library
            Initial release of 8080 code generator & runtime library

1.1  04/89  Initial release of 8086 code generator & runtime library
            Improved handling of '#define' and substitution
            Added full support for COMMA operator
            Improved pointers and arrays, allows pointer indexing
            Better error checking on all forms of indirection
            Better handling of global, static and external symbols
            Zero uninitialized "static" variables (or array elements)

1.2  07/89  Initial release of Extended Preprocessor
            Initial release of Peephole Optimizer
            Conversion to "standard" octal and hex constant formats
            "io" module modified to function as "filter" in a pipe
1.21 08/89  Support for multi-level pointers. eg: char ***a;
1.22 09/89  Misc code generator improvements
            Modified IO.C to output negative numbers for MASM 5.0

1.3  11/89  Supports both TINY and SMALL memory models (for 8086)
            Added support for argv[0] (program name) (DOS >= 3.0)
            Uninitialized data is no longer saved to disk
1.31 01/90  Added many more library & MS-DOS functions
            Modified library to use "link library" files, so that
            unused functions are not included in the output image
            Added unreferenced local variable detection
            Changed "static" modifier to inhibit "public" access
1.32 02/90  Fix "null character in string" ('\0') bug in compiler
            Fix for mixed int/char with '&&' and '||'
            Added handling for string array initialization
            Fix bugs in MCO scanner which cause incorrect matches
            More optimizations added to MCO
            Initial release of 68HC11 code generator & runtime library
1.33 03/90  Misc fixes to library functions
            Improved GENASM/INTERCG file format
            Improved 8086 runtime library
            More library functions
            Fix bad post-INC/DEC optimizations in MCO

1.4  03/90  Initial release of "Introduction to 'C'" document
            Initial release of Micro-Installer
            Fix incorrect register stacking when handling complicated
            expressions involving partial results in both the
            accumulator and the index register, Such as:
                                    y = *a * *b + *c * *d + *e * *f;
            More library functions
            More example programs
1.41 04/90  Changed operator grouping to be consistent with standard 'C'
            Fix handling of "continue" in "do" loops
            Fix incorrect < > <= >= when left value is a constant
            Fix *rl.asm sources (Accidently "bugged" in release 1.4)
            More library functions
1.42 05/90  Added "typecast" handling to compiler
            Added support for command line defines to MCP
            Fix MCP to resolve macros in parameters to macros
            Added "control" keys to CONSOLE interface library
            Enhanced "TSR" function for full POP-UP support

1.5  06/90  Initial release of "CC" utility
            Initial release of "make" utility
            Initial release of "touch" utility
            Fix bug in MCP command line defines
            Changed MCP to return error count in "error_level"
            More example programs
            More library functions
1.51 07/90  Initial release of "EXE2BIN" utility
            Fix handling of "continue" in "switch" statements
            Misc fixes to library functions
            Documentation updates

2.0  08/90  Re-package MICRO-C distribution to be on two diskettes
            Update presentation ("look & feel") of all commands
            Initial release of source linker/indexer (SLINK/SINDEX)
            Initial release of IBM/PC windowing library
            Misc fixes to compiler & all code generators
            Misc fixes to library functions
            Fix handling of PATH in 'CC.COM'
            Fix handling of blanks in MCP macros
2.01 10/90  Initial release of source converter SCONVERT
            Minor revisions to compiler and utilities
            Additional optimizations added to MCO tables
            More example programs (ASM86 and BASIC)
2.02 11/90  Remove redundant 'GLOBAL' bit from type definitions

2.1  12/90  Modified library to support fully buffered I/O
            Add "sizeof" operator to compiler
2.11 01/91  Fix handling of embedded () and , in MCP macro args
            Enhanced SLINK to support multiple output segments
            Initial release of 8051 code generator & runtime library
2.12 06/91  Fix to retain type of "cast"ed constants
            Fix handling of "jammed" nested comments ("/*/**/*/")
            Clean up handling of #asm/#endasm in compiler
            Added multi-line defines to MCP
            Fix to prevent processing comments in MCP (with -c option)
            Three additional memory models for the 8051
            Misc fix's to 8080 and 8051 implementations
2.13 10/91  Misc fix's to libraries
            Added numeric fields to wgets() and wform()
2.14 12/91  Initial release of source librarian SLIB
            Update SLINK, SINDEX, SCONVERT and MAKE to support '?'
            Modify SINDEX to scan entire symbol for 'C' validity
            Change MCP to allow more macro definitions
            Fix handling of char[] arguments in 6809 and 6811 cg's

2.2  01/92  Removed #asm/#endasm, added more powerful 'asm' statement
            Improve option parsing for Command Coordinator (CC)
            Fix accessing of temporary stack values in 6811cg
            Enhance 6811cg to support internal/external allocation
            Separate code generators for PC and stand-alone 8086
            Enhance MCO to support substitution of logically negated
            jumps etc. Improve all MCO optimization tables
            Initial release of 8096 code generator and library

2.3  04/92  Added '-l' option to pass line #'s between MCP and MCC
            Added '-c' option to include C code as comments in ASM output
            Added '-m' to CCxx to allow MACRO before ASM
            Fix to allow reserved words followed by numbers as names
            Updates and improvements to library
            Initial release of 68HC16 code generator and library

2.4  12/92  Added '-f' option to "fold" identical string constants
            Updated compiler and all code generators to properly handle
            "static" locals and globals in ALL cpu implementations
            Updated SLINK & utils to recognize '$DD' convertible symbols
            More updates and improvements to all libraries
            Increase size of compiler symbol table
            Fixes to CCxx commands to accept longer PATH's
2.41 04/93  Initial release of SRENUM.COM
            Initial release of 68HC08 code generator & library
            Update CC commands to accept full pathname
            Updated MCP to support multi-line strings
            Fix MCP so multi-line #defines don't upset line numbers
            Fix indirect-call bug in 8051 code generator
            Fix bad double access stack optimization in 6809.MCO

3.0  06/93  Significant rewriting of declaration handlers, and parser
            Added "struct" and "union" types
            Update MCC and MCP to include filename in error messages
            Increase size of compiler symbol table
            Increase size of SLINK and SLIB symbol tables
            Modify startup code to zero uninitialized variables
3.01 08/93  Implement separate structure/member name space
            Add support for '&' (address of) static initializations
            Fix small-model startup code in PC/demo version
            Fix "reference" bit clearing on external declarations
            Fix indirect calls with parameters to access stack correctly
            Modified PC comm functions to support com3-4
3.02 01/94  Modify CC commands to support MCP command line defines
            Change return codes to prevent double execution by CC
            Enhance SLINK to support multiple input files
            Add "longnum" functions to libraries

3.1  04/94  Add support for "modern" style function definitions
            Add '-L' option to CCxx commands to generate .LST file
            Add constant conditional recognition & improve output code
            Initial release of MAPGEN utility + Add support in libraries
            Additions and enhancements to PC library
3.11 07/94  Add '-z' option to CC51 to force '-a' (2K) option to ASM51
            Add '$RL,$RS,$FS' commands, '-c' and 'c=' options to SLINK
            Modify SLINK to output MCP comments in seg0 (for MAPGEN)
            Enhance string init. to determine type based on byte/word
3.12 09/94  Initial release of DDSIDE Integrated Development Environment
            Fix blank-line in asm{} causing ':' in column one
3.13 02/95  Add support for "void" type
            Add support for C++ style '//' comments
            Fix MCP to allow symbol redefinition (no self reference)
            Fix bad optimization in PC86 MCO
            Change internal type promotions to be more standard
            Additional error checking on pointer operations
            Added 'F=' option to SLINK
            Extensive rework to standardize PC library
3.14 10/95  Switch from .COM to .EXE: Much larger tables
            Add #if and #error directives to MCP
            Add S= option to CCxx and SLINK to select startup file
            Modify CC/DDSIDE to use TEMP if MCTMP undefined
            Additions/Updates PC libraries & header files
            Fix to allow sizeof() in array declaration
            Fix to detect redeclarations differing in dimension
            Fix to prevent index being promoted with type of array
            Fix PYSH generated by PC86 MCO (Should be PUSH)
    a05/96  Initial release of C-FLEA code generator & library
    b11/96  Initial release of 68HC12 code generator & library
3.15 05/98  Modify handling of static symbols to retain symbol name
            Improve handling of array declarations and null dimensions
            Add -s options to CC, MCC and SLINK to output symbolic
            information in the form of special assembly comments
            Modify SLINK to always pass special comments
            Updated MAPGEN to handle symbolic information
            Initial release of LRG and SPRITED for MICRO-C/PC
3.16 11/98  Add support for "const" type
            Modify SLINK to allow path override on library files
            Initial release of AVR code generator & library

3.2  08/99  Constants >32767 are given "unsigned" type
            Fixed compile-time compares (num<>num) to be signed
            Fixed bad offset for struct members declared in func args
            Fixed bad load when cast indirect to different storage class
            Added "#elif", "#message", -d option and string concat to MCP
            Added __DATE__/__FILE__/__LINE__/__TIME__ to MCP.
            Added automatic _CPU_ and _MDL_ defines.
            Added ASSERT.H, DEBUG.H, LIMITS.H, STDARG.H, STDDEF.H
            Enhance CTYPE.H and SETJMP.H to apply to all CPUs.
            Fixed MCP #if nesting problems
            Added "PREFIX feature", IF and ESET to MACRO
3.21 12/99  Implemented delayed DEC/INC for post++/-- optimization.
            Fixed minor bugs in delayed ! processing
            Updated SLINK to enhance S= option, added @file, remove F=
            Provide access to environment variables from within MAKE
            Improved AVR optimizations
3.22 05/01  Update 8051 compiler to support constant data in code memory
            Including string in code memory ... updated library
            Add $RF: and $RN: directives to SLINK
            Misc optimizations
            Fixes to 68HC08 code generator
            Update embedded examples with DEMOLIB.H

3.23 01/03  Change 'ASM' to value element & allow operands
            Fix parser failing to detect some global declarations.
            Initial release of HRG for Micro-C/PC

Back to "How I got here".
Back tp "About Dave".
Back to DDS main page.