Sierra 68000 C Compiler

From Sega Retro


Sierra 68000 C Compiler Graphical User Interface(Alt).png
Sierra 68000 C Compiler
Release Date RRP Code
IBM PC compatibles
$2,000[1] CC010 (Cross Products ref Nº)

This short article is in need of work. You can help Sega Retro by adding to it.

The Sierra 68000 C Compiler[2] is a MS-DOS software-based PC hosted C cross-compiler, developed by Sierra Systems and released in 1987, for the Motorola 68000 Family microprocessors, composed by a 68000 C compiler (com68), assembler and macro assembler (asm68/asm68K), linker (link68), librarian (lib68), up/down loader (both serial and parallel), symbol table name utility (nm68), object file size utility (size68) and a high end C source level debugger called QuickFix. It was largely used in the early 90's in 68000-based applications ranging from navigational systems to printer applications and video games (the Sega Channel BIOS and the Western Technologies Genesis Development Card firmware, were both programmed with the Sierra 68000 C Compiler) and was licensed to and included by Sega in their Sega Mega Drive Development Kit sold to Third-Party video game development companies (listed in old Cross Products Price listsMedia:Cross Products Export Price List - May 1995.pdf[3], which was, at the time, part of Sega). It contains several key features such as highly optimized code, rapid compilation times, ROMable code, position independent and reentrant code generation and support for resident libraries, fragmented address space and IEEE floating point[4] format.

The Sierra 68000 C Compiler comes with several compiler drivers which intelligently examine the command line, sort the input files by suffix, and then call the various tools (compiler, assembler, linker, etc) as needed to create a linked executable. The drivers accept certain switches and translate them into comparable switches needed for each tool.

QuickFix[5] debugger key features includes a window-based user interface, continuously updated windows, full C expression evaluation and versatile stepping capabilities including source and machine-level stepping. The debugger retains descriptions of all symbols and types defined in the source code, including templates for aggregate types, typedefs and all variables. These symbols can be combined into arbitrarily complex C expressions accepted by a wide range of QuickFix commands. As a result, QuickFix is extremely intuitive for C language programmers. In most development environments, QuickFix eliminates the need for in-circuit emulators, thus reducing development costs.

A special parallel download/upload capability is possible through the use of an optional proprietary ROM communication cableMedia:Patent US5287455.pdf[6] provided with the QuickFix debugger, which once connected to the printer port of the host computer and plugged under a EPROM on the target board allows for "blazing fast" downloads.

In a collaborative venture with Motorola, Sierra Systems released in 1993 the Sierra 68306 Development Board[7], a complete PC-based development system which included a 68306 cpu card , a 68306 configuration utility , the Sierra 68000 C Compiler and the QuickFix debugger. The 68306 microprocessor includes many of the features common to 68000 and 68EC000 ( a low-cost version of the M68000 used in the Sega Saturn as the Sound CPU) based designs and is comprised of the EC000 core processor. An additional feature of the Sierra 68306 Development Board is a fully functional MC68681[7][8] Dual Universal Asynchronous Receiver/Transmitter (DUART) chip, allowing complete verification of DUART initialization and operation software[9].

In 1999, the Sierra 68000 C Compiler was licensed to and included by Texas Instruments in their TI-89 and TI-92 Plus[10] graphing calculators Software Development Kit. This version was modified by Texas Instruments under Sierra Systems license to support, only, the 68000 processor and TI BCD (Binary-coded decimal[11]) floating-point numbers and support for other processors and coprocessors was removed. It was also used in 1989, by Magellan Navigation, Inc[12], an American producer of consumer and professional grade global positioning system receivers, in the development of embedded software for their Magellan NAV 1000[13] GPS receiver (the first handheld GPS receiver ever built).

Sierra C Tools Functions

Tool Description
com68 Converts C language statements into 68000 assembly code. It generates highly efficient code and supports ROMable and position-independent code generation for the 68000.The C compiler, com68, was developed by Sierra Systems to support certain Motorola processors and coprocessors and IEEE format floating-point numbers.
asm68/asm68k The assembler asm68 was designed to assemble source files generated by the Sierra 68000 C compiler, com68. The second assembler asm68k was designed to assemble code written for the M68000 Resident Structured Assembler[14]. Its directive set has been extended to offer many of the features provided by asm68, while remaining compatible with code written for the Motorola assembler. Either assembler can be used to develop assembly language programs and assemble source files generated by the Sierra 68000 C compiler. They both support the entire Motorola 68000 instructions and modes. The main difference between the two assemblers, other than syntax, is that asm68k provides macro support and structured control facilities whereas asm68 does not.
link68 Combines object files to create an executable output file. Loads standard library files searching for the specified library in the directories specified by the environment. If the environment variable lib68 is defined, each of the directories it specifies is added to the search path. In conjunction with asm68 provides an option called relocation hole compression[1] which can be used to shrink oversized holes thus reducing the size of a program.
nm68 The nm68 utility displays the symbol table embedded in a 68000 COFF object file, as well as information on the file header, section headers, relocation entries, and line number entries.
size68 The size68 utility takes Sierra Systems object files as arguments and prints size and address information on each file and its sections.


Promotional material

Embedded Systems Programming 01.pdf

Print advert in Embedded Systems Programming magazine, Volume 1 issue 01, November 1988

Circuit Cellar INK US 046.pdf

Print advert for the Sierra 68306 Development Board in Circuit Cellar INK Magazine issue 46, May 1994

External references