
DDS Questions & Answers
Q: Is MICRO-C a full ANSI compiler?
No, MICRO-C is a "near ANSI" subset compiler. It does however, support
more of the 'C' language than most other subset compilers, including:
- All 'C' statements:
if/else while do/while for break continue
return goto switch/case/default {} ; asm
- All 'C' operators:
+ - * / % & | ^ << >> > < == ++ -- ?: , . ->
+= -= *= /= %= &= |= ^= <<= >>= >= <= != ! () [] sizeof
- The following data types:
int char unsigned (including: unsigned char)
struct union extern static register const void
*(pointer to any type, incl. pointers and structs)
- Arrays of any type (incl. multi-dimension, pointers & structs)
- Function can return any type
- Typecast of values to other types
- Decimal, Octal and Hex constants. eg: 127, 0177, 0x7f
- Full support for strings and character constants: ('' "")
Including: \n \r \t \b \f \177(Octal) \x7F(Hex)
(16 bit character constants are supported. eg: 'ab')
- Inline assembly code (single or multi statement).
- Preprocessor commands:
#define (fully parameterized & multi-line)
#undef
#forget (multi undef -similar to FORTH forget)
#error
#message (Output informational message - no error)
#include
#if/#ifdef/#ifndef/#else/#elif/#endif (fully nested)
#file (sets filename displayed in error messages)
Predefined symbols: __DATE__ __FILE__ __LINE__ __TIME__
- It DOES NOT support:
Typedef, Long* / Double / Float / Enumerated data types, Bit fields.
* 32 bit "long" number math functions are provided in the library.
These can be adjusted to manipulate larger numbers up to 256 bits.
(8051 Compiler also includes a floating point library)
Q: Does MICRO-C support the (insert favorite processor)?
See the CATALOG for a list of processor families which I directly
support. The compiler is configurable to support variants within a
family (extra registers/peripherals, different memory maps etc.).
If you need support for a different processor, please check with me.
Q: Does MICRO-C run on a (Macintosh, UNIX box, etc...)?
At the present time, my products run under DVM or any DOS compatible
operating system/emulator, including: MS-DOS, DR-DOS, Win3x, Win9x,
WinNT, Win2k, WinXP, Win7-32, OS/2, DosEMU(Linux), SoftPC(Mac) and
DOSBOX (which is available for many platforms).
DVM is my Virtual Machine, which can be ported to pretty much any
environment, I currently offer a Win64 edition for free, which
enables most of my products to run under Win7-64 and Win10.
Q: I heard that you sell source code, why is it not in the catalog ?
Due to many legal and support problems, I no longer sell the source
code to any of my products in my catalog.
Contact me and we can discuss your needs.
Q: Does MICRO-C output assembly code? Do I need an assembler?
MICRO-C generates assembly code. All developers kits include my XASM
cross assembler, which my IDE and CC commands automatically run for you,
giving you a "one step" compile. A command option allows you to include
the 'C' source code as comments in the ASM listing.
Q: How much code can I fit in (nK) of memory?
That depends on so many factors that its impossible to give you a general
answer. It is usually more that you would think, because MICRO-C produces
fairly compact code. This is especially true with my "Developers Kits",
because their libraries are hand-coded in assembly language, using very
tight code. Here are some examples of appications:
MICRO-C Compiler (compiled itself!) 23K
ANSI terminal with built in XMODEM file transfer 10K
Combination lock (rotary encoder, led indicator) 2K
Telephone "distinctive ring" switcher (1 - 3 lines) 1K
Q: What are the "extras" included in the developers kits?
LOTS of good stuff! Application notes. Utilities: Editors, File/Directory
manupulation, TSR browser, listing and symbol table utilities, MAP file
generator, ASCII encoder/archiver, Complete COMM/TTY package... more.
Tiny MS-DOS compatible file system in C. Files for "embedding" PC's,
and more good stuff.
Q: Is your EMILY52 simulator really that fast?
EMILY's speed is dependant on your PC (>150,000 inst/sec on 386/25,
>500,000 inst/sec on 486/33).
My tests have shown EMILY on the 386/25 to be roughly equivalent to a
4Mhz 8052. For example, a customer reported that an algorithm that
should take about 1 second on a 12Mhz 8052 took 3 seconds under EMILY.
The same program took over 20 MINUTES under another popular simulator.
Q: Is MICRO-C really as good as you say it is?
Sturgeons Rule has it that 90% of science fiction is junk. A similar
rule applies to PC software, but I'd say that 90% is a lower bound.
Once in a while, though, you find a product that makes up for the rest..
If price has kept you out of the microcontroller C market, you have no
further excuses. Micro-C is as good as it gets!
- Circuit Celler INK Dec91/Jan92
I just obtained Micro C, and I'm very impressed!...
The portability of Micro C is second-to-none, as is it's professionally
written code and overall usability... I need to emphasize here that
Micro C is by far the best coded compiler I've ever seen. This excellent
code quality extends throughout all associated modules.
- FIDOnet 'C' programmers echo
Micro-C is a beautique compiler produced by Dunfield Development Systems
in Ontario, Canada. It is a small C designed for programming low-end,
usually 8-bit, embedded controllers. Dunfield sells a number of these
versions targeted at such chips. Dave Dunfield has also produced an x86
DOS version which is available as freeware.
Micro-C is *not* related in any way to the Small C described in the
Hendrix book and is, IMHO, an infinitely better compiler both in design,
implementation and performance. Micro-C is an optimizing compiler which
consistently beats Small C in both executable speed and size (by a wide
margin, BTW) while supporting features not included in Small C. ...
I have it and use it as a secret weapon for small footprint DOS utilities.
Included in its standard library are packages for text windowing, writing
TSR's, and interrupt-driven serial I/O. Want a quick and dirty sub-1K TSR?
Use Micro-C. Want a 300-byte "hello world" in C? Use Micro-C. Want an 800
byte terminal program with fully buffered interrupt-driven serial I/O? Use
Micro-C. The make utility he includes with the compiler is written in
Micro-C and is under 6K. ... I could go on, but you get the idea.
- Usenet posting
In my opinion, the C-Flea is a genious invention. ...
An AVR native VM exists, and Mr Dunfield has sent it to me by email
after purchasing C-Flea. Get in touch with him, he's very responsive.
- Usenet posting
I'm using the Dunfield package on an 8051-based walking robot. I choose
it over the more expensive packages because I need something that my
customers can afford to do development with. The Dunfield package does
99% of what I need at a price that is hundreds of $ less than others
(more than a $1000 less than the Kiel package). I've seen the Kiel
package and it looks very good - just a little out of my price range
for my uses.
I've had only a few technical questions and Dave Dunfield has always
responded promptly. Many times it was my own fault for not reading the
manual completely.
I know this much for sure: If more companies were run like Dave runs
his, we'd all be better off.
- Usenet posting
Dave Dunfield, who has posted above, has a released a lot of great small
little programs for DOS. He is an impressively talented developer and his
work covers plenty of DOS areas. I have even witnessed some of his software
on an embedded DOS SBC. - VOGONS (classic gameing/system forum)
-The preceeding are from public sources and can (or at least at one time
-could) be confirmed. I have also had MANY private emails from happy
-customers. Instead of posting hundreds of messages you could not verify,
-I have chosen a small one to sum them up:
Dave, Thanks for responding to the minor problem I had with your
wonderful little compiler.
- A satisifed customer
Back to DDS main page.