Grantronics: Micro/C Compilers |
This is a large page so that all the MICRO-C
information may be downloaded or printed in one go.
If you would prefer a cluster of smaller pages, please leave a message.
MICRO-C is a low cost PC based C language compiler optimised for the restricted and specialised environment of embedded microcontrollers. It is produced by Dunfield Development Systems (DDS) in Canada. MICRO-C is portable: currently, there are versions for the 68HC08, 6809, 68HC11, 68HC12, 68HC16, 8051/52, 8080/85, 8086, 8096 families. MICRO-C is supplied as a Developer's Kit with everything you need to develop C and Assembly Language software for a particular CPU.
The MICRO-C compiler is a subset of the ANSI C standard . It does however, support much more of the C language than most other subset compilers, including:
The following data types: int, char, unsigned
(including unsigned char), struct, union, extern, static,
register, *(pointer to any type, including pointers and
structs), arrays of any type (including multi-dimension,
pointers & structs), functions can return any type
and typecast of values to other types
Decimal, Octal and Hex constants. e.g.: 127, 0177,
0x7f
Full support for strings and character constants:
(hello, 'A'). Includes: \n \r \t \b \f
\177(Octal) \x7F(Hex). 16 bit character constants are
supported (ab).
Inline assembly code (single or multi statement).
Preprocessor commands:
#define
(fully
parameterized & multi-line)
#undef
#forget
(multi undef
- similar to FORTH forget)
#include
#ifdef/#ifndef/#else/#endif
(fully
nested)
#file
(sets filename
displayed in error messages)
MICRO-C does NOT support: Typedef, Long / Double / Float / Enumerated data types or Bit fields. 32 bit long number math functions are provided in the library. These may be easily adjusted to manipulate numbers up to 256 bits. The 8051 Compiler includes a floating point library.
The standard libraries include the following functions (there are minor differences between CPUs):
abort(), abs(), atoi(), chkch(), chkchr(),
concat(), disable(), delay(), enable(), free(), getch(),
getchr(), getstr(), isalnum(), isalpha(), isascii(),
iscntrl(), isdigit(), isgraph(), islower(), isprint(),
ispunct(), isspace(), isupper(), isxdigit(), longjmp(),
malloc(), max(), memset(), move(), min(), nargs(),
peek(), peekw(), poke(), pokew(), printf(), putch(),
putchr(), putstr(), rand(), setjmp(), sprintf(), sqrt(),
strcat(), strchr(), strcmp(), strcpy(), strlen(),
tolower(), toupper().
The "long" number math functions include:
longadd(), longsub(), longmul(), longdiv(),
longshr(), longshl(), longset(), longcpy(), longsts(),
longcmp().
These are complete PC based cross development systems which include EVERYTHING you need to develop C and ASM software for one CPU.
Order Code | Description | Price (no GST) | Price inc GST |
DDSDK08 | 68HC08 Developers Kit | $170.00 | $187.00 |
DDSDK09 | 6809 Developers Kit | $170.00 | $187.00 |
DDSDK11 | 68HC11 Developers Kit | $170.00 | $187.00 |
DDSDK12 | 68HC12 Developers Kit | $170.00 | $187.00 |
DDSDK16 | 68HC16 Developers Kit | $170.00 | $187.00 |
DDSDK51 | 8051/52 Developers Kit | $170.00 | $187.00 |
DDSDK80 | 8080/85 Developers Kit | $170.00 | $187.00 |
DDSDK86 | 8086 Developers Kit | $170.00 | $187.00 |
DDSDK96 | 8096/196 Developers Kit | $170.00 | $187.00 |
DDSDKAVR | Atmel AVR Developers Kit | $170.00 | $187.00 |
DDSSDK | Super Developers Kit | $600.00 | $660.00 |
NOTES
MICRO-C Companion Products
C-FLEA: A complete C virtual machine development and runtime environment
C-FLEA is a "virtual machine", which was designed from the "ground up" to run 'C'. It provides an easy way to implement 'C' on CPU's that are not supported with standard 'C' compilers, are too small/weird for efficent native implemention of C, or use a system design requiring memory that is not directly executable (eg: serial). The C-FLEA can also be used to implement 'C' application languages embedded within other programs, and has many other useful purposes.
Order Code | Description | Price (no GST) | Price inc GST |
DDSFLEA | C-FLEA Developers Kit | $170.00 | $187.00 |
You can download a demo version of C-FLEA (234k). Note that this is the Micro/C compiler demo.
Check out our GMC75X Microcontroller module designed for running C-FLEA.
MICRO-C/PC: MICRO-C for the PC/DOS
A complete and fully functional version of the MICRO-C compiler for DOS and IBM-PC compatible systems. This has an extensive library with over 240 functions including TSR support, Windowing, Serial Comms and lots more (library source code is included). Over 80 example programs:
This package was reviewed in the C/C++ User's Journal of January 1995. (3.5" 1.44MB diskette only)
Order Code | Description | Price(no GST) | Price inc GST |
DDSMCPC | Micro-C/PC | $43.00 | $47.30 |
XASM/DASM: A set of Cross Assemblers, Disassemblers and related Utility programs
Assemblers
Includes cross assemblers for the 6800, 6801/6803, 6805, 6502, 68HC08, 6809, 68HC11, 68HC12, 68HC16, 8051/52 8080/85, 8086, 8096 and Atmel AVR families.
Disassemblers
These are "smart" disassemblers with many features to assist in the generation of complete symbolic, commented ASM source from binary machine code.
Utility Programs
Utility programs included:
Plus: Utilities for converting to/from other popular assembler formats.
Order Code | Description | Price(no GST) | Price inc GST |
DDSXDASM | DDS Cross assemblers and Disassemblers | $85.00 | $93.50 |
You can download a demo version of XASM (47k) or DASM (28k). Remember, you get both in the one package!
MONITORS: Powerful software debugger and monitor programs.
NOTE: Some features may differ slightly in some monitors.
Price includes all six monitors.
Order Code | Description | Price (no GST) | Price inc GST |
DDSMON | DDS Debugger/Monitors | $85.00 | $93.50 |
EMILY52: A PC based 8051/52 simulator. Now includes Emily320 for the Dallas 80C320.
A software simulator/emulator for the Intel 8051/8052 series of microcontrollers. EMILY features an easy to use windowed user interface, and is capable of simulating at better than 500,000 instructions per second on a 486/33MHz PC.
Order Code | Description | Price (no GST) | Price inc GST |
DDSEM52 | DDS 8051/52 + 80C320 Simulator | $85.00 | $93.50 |
You can download a demo version of Emily52 (80k).
This package include all of the necessary schematics, software and documentation to construct the six described devices.
EPROM: Stand-Alone EPROM programmer.
D-BOX: Computer Control of VCRs etc.
IR232: Serial (RS-232) controlled "learning" Infared Remote
RINGSWITCH: Automatic telephone line switch.
8031 DESIGNS: Several 8031/8051 core system designs
8051 ICE: In-circuit emulator for 8051 microcontroller.
* NEW *
CUBIX: Complete 6809 computer system with floppy disk interface
DARC: General purpose Amateur Radio/Repeater Controller.
ICOM: CI-V Computer control interface for ICOM Amateur radios.
HTX242: Computer control of the RS HTX242 radio via microphone data signals.
Order Code | Description | Price (no GST) | Price inc GST |
DDSPROJ | Project Plans | $50.00 | $55.00 |
NOTE: Price includes all listed project plans
DLM: Data Line Monitor.
Turns your PC into a DATASCOPE.
This program monitors both sides of an asynchronous data
communications line using a passive Y cable which
connects to the monitored devices and BOTH com ports of your PC
(COM1 and COM2). This tool is invaluable for debugging ANY
asynchronous connection, such as TERMINALS, MODEMS, SERIAL
PRINTERS and PROTOCOL debugging. It allows you to actually SEE
the data and signals being passed between the devices.
Order Code | Description | Price | Price inc GST |
DDSDLM | DDS Data Line Monitor | $50.00 | $55.00 |
You can download a demo version of DLM (29k).
High density diskette (1.2 or 1.4Mb) containing freeware and demo versions of DDS software. This diskette includes many example programs, and LOTS of source code (C and ASM) including DLM, EMILY52, code to run on a PC without DOS (embedded PC), a simple VGA drawing system, DOS-based Help system, MICRO-C demos, DOS file and directory utilities and XASM/DASM.
Order Code | Description | Price (no GST) | Price inc GST |
DDSDEMO | DDS Demo Disk | $5.00 | $5.50 |
Demo is free with any other item |
If you can't wait for a full demo disk, you can download the Micro-C Embedded Controller Compiler demo now (about 236k). Remember to use the -d switch with pkunzip when you expand the demo archive.
Here is a complete list of the demo files on the demo disk (updated 19 Dec 1998).
DDS Product demos | ||
MC321PC.ZIP | 303k | MICRO-C native PC C compiler * |
MC321EMB.ZIP | 236k | MICRO-C embedded C compiler - Test Drive * |
EMILY52.ZIP | 80k | 8051/52 Simulator/Emulator/Debugger |
DASM110.ZIP | 28k | Cross Disassembler |
XASM250.ZIP | 47k | Cross-Assemblers |
DLM160.ZIP | 29k | Data Line Monitor - Turn PC into a datascope |
DDS Add-on/Support files | ||
APPNOTES.ZIP | 24k | Product application notes |
AVRLOAD.ZIP | 14k | InCircuit Device Programmer for AVR family (Kanda & Dunfield). |
EMBEDRAW.ZIP | 56k | Tools for Drawing/Printing/Emailing schematic drawings |
EMBEDPC.ZIP | 59k | Functions for DOS-LESS use of PC hardware |
LAPTALK.ZIP | 45k | A full-featured small terminal emulator |
DDSUTILS.ZIP | 263k | Misc. programmer's utilities |
Useful third Party (non-DDS) files | ||
ARROWASM.ZIP | 24k | PD Intel/Microsoft compatible assembler |
VAL.ZIP | 33k | PD Intel/Microsoft compatible linker |
FLOAT51.ZIP | 11k | Micro-C callable 8051 floating point library |
UNZIP.EXE | 27k | Program to unpack .ZIP archives |
* = Remember to use the -d switch with pkunzip when you expand the demo archive.
For more demo files, have a look at the Dunfield Development Systems download page.
Q: Is MICRO-C just another version of SMALL-C?
A: No, MICRO-C is a completely new design, with several advantages:
Q: Does MICRO-C run on a Macintosh or UNIX
box?
A: At the present time, all of our official products run on the IBM PC under DOS or a DOS compatible operating system. We may be able to provide unofficial ports to other platforms, however technical support will be minimal. Contact us for more information.
Q: Does MICRO-C output assembly code? Do I
need an assembler?
A: MICRO-C generates assembly code. All developers kits include our XASM cross assembler, which our 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: Does MICRO-C support the .... (insert your
favourite processor)?
A: See the earlier sections of this Information Sheet
for a list of processors which are directly supported. We have
application notes on adapting the compiler to use with CPU
variants (such as extra registers/ports or differing memory
maps).
If you need support for a different processor, please check with
us. Dunfield Development Systems may be planning a release for
the processor you want (or perhaps you can convince
us/them that it would be a good idea).
Or, consider the C-FLEA system - it may
already have been ported to your CPU.
Q: How much code can I fit in (nK) of memory?
A: That depends on so many factors that it's impossible to give you a general answer. It is usually more than you would think, because MICRO-C produces fairly compact code. This is especially true with our Developers Kits, because their libraries are hand-coded in assembly language, using very tight code. Here are some example applications:
Q: Is MICRO-C really as good as you say it
is?
A: "Sturgeons Rule has it that 90% of
science fiction is junk. A similar rule applies to PC software,
but Id 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 Cellar INK Dec91/Jan92
"I just obtained Micro C, and Im very
impressed!... The portability of Micro C is second-to-none, as is
its professionally written code and overall usability... I
need to emphasize here that Micro C is by far the best coded
compiler Ive ever seen. This excellent code quality extends
throughout all associated modules."
- FIDOnet C programmers echo
"In generating code for this column, I turn my
attention to Dunfield's Micro-C 8051 products. The developer's
package provides everything you need to develop embedded programs
for 8051 family processors and includes a C compiler, assembler,
optimizer, linker, librarian, a bunch of useful utilities, and a
full library source of a variety of memory models, examples, and
documentation. What amazes me most about this product is that the
full package goes for about a third of what I paid for my first
8051 cross-assembler alone! Dunfield's package is a reminder to
not let a price tag fool you. I've used a lot of the market's
big-buck packages and Dunfield's compares favourably in
efficiency and code size. As for the price, there is no
comparison."
- John Dybowski, Circuit Cellar Ink, Issue #58 May 1995.
Q: Is the EMILY52 simulator really that fast?
A: EMILYs speed is dependant on your PC (>150,000 inst/sec on 386/25, >500,000 inst/sec on 486/33). Tests have shown EMILY on the 386/25 to be roughly equivalent to a 4MHz 8052. For example, a customer reported that an algorithm he had calculated would take about 1 second on a 12MHz 8052 took 3 seconds under EMILY. In contrast, the same program took over 20 MINUTES when run with another popular simulator.
Q: How does EMILY52 compare with a hardware
in-circuit emulator?
A: Emily, with its hardware emulation option, permits
access to the timers and I/O ports of the hardware, however
external memory on the target system cannot be accessed (EMILY
provides its own code and data areas using the PCs memory).
This is usually only important if you have hardware which is
accessed through the external memory address space.
At present, EMILY does not act on interrupts from the target
system, but allows you to simulate them from the PC keyboard.
When an interrupt is simulated, EMILY sets any hardware bits
which would normally be set by that interrupt, and then vectors
to the interrupt handler. Although this prevents using real
time interrupts, I have found it to be a very effective
approach when debugging interrupt handlers. You can stop the
simulation at any point, inject an interrupt, and then step
through the interrupt handler etc. EMILY has a 4095 instruction
traceback buffer, which operates in all execution modes, however
it only records the instructions executed. In other words, you
can scroll/search through the last 4095 instructions which were
executed in order to see how it got here. More
expensive ICEs often have traceback buffers which record
both the address and data bus activity.
EMILY now includes MONICA, a PC hosted debugger, that debugs
ON-CHIP, by downloading your code, and controlling it through a
tiny on-board kernel program. MONICAs user interface is
virtually identical to EMILYs, and the kernel is upward
compatible with EMILY.
This means that you can easily switch back and forth between
EMILY and MONICA, and use whichever is best suited to the
debugging at hand. MONICA can use the on-chip memory of a DALLAS
DS5000 processor, making it a true single-chip in-circuit
emulator when used with this device.
EMILY/MONICA is much less expensive than any ICE!
All Dunfield Development Systems software upgrades are priced at 50% of the new product price rounded up to the nearest dollar plus the standard shipping and packaging charge. You must be able to supply your existing serial number before we can accept your upgrade order.
Programmer's Editor
If you are looking for something better than the Dunfield IDE editor, we recommend (and use) ED for Windows. It is a great Australian product at a very reasonable price and leaves all the IDE editors I have seen in the dust... ;-). |
|
|
Credit cards accepted |
Last updated: 26 March 2004
Copyright © 2003, Grantronics Pty Ltd. All rights reserved.