Difference between revisions of "Sierra 68000 C Compiler"
From Sega Retro
m |
m |
||
Line 12: | Line 12: | ||
}} | }} | ||
}} | }} | ||
− | {{stub}}The '''{{PAGENAME}}'''{{fileref|Dr. Dobb's Journal US 162.pdf|page=88}} is | + | {{stub}}The '''{{PAGENAME}}'''{{fileref|Dr. Dobb's Journal US 162.pdf|page=88}}, is an [[wikipedia:ANSI_C#C89|ANSI]] standard, MS-DOS software-based PC hosted C cross-compiler, developed by [[Sierra Systems]] and released in August 1987, for the [[Motorola 68000]] Family microprocessors{{fileref|MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf|page=132}}{{fileref|MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf|page=133}}{{fileref|MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf|page=136}}, 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''. As one of the fastest C compilers of its time it was largely used in the late 80s and early 90s 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 lists{{fileref|Cross Products Export Price List - May 1995.pdf|page=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 [[wikipedia:Floating-point arithmetic|floating point 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. | 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. |
Revision as of 11:53, 13 December 2021
Sierra 68000 C Compiler | |||||||||
---|---|---|---|---|---|---|---|---|---|
System(s): | |||||||||
Developer: Sierra Systems, Larry Rosenthal | |||||||||
|
This short article is in need of work. You can help Sega Retro by adding to it.
The Sierra 68000 C Compiler[4], is an ANSI standard, MS-DOS software-based PC hosted C cross-compiler, developed by Sierra Systems and released in August 1987, for the Motorola 68000 Family microprocessors[5][6][7], 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. As one of the fastest C compilers of its time it was largely used in the late 80s and early 90s 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 lists[8], 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 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[9] 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 cable[1][10][11] 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[12], 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 68681 module[12] (an EC000 core processor on-chip peripheral module) identical to the MC68681[13] Dual Universal Asynchronous Receiver/Transmitter (DUART) chip, allowing complete verification of DUART initialization and operation software[14]. The board is also equipped[15] with a 16 MHz crystal oscillator without the external capacitor Cext.
In 1999, the Sierra 68000 C Compiler was licensed to and included by Texas Instruments in their TI-89 and TI-92 Plus[16] 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) floating-point numbers and support for other processors and coprocessors was removed. It was also used in 1989, by Magellan Navigation, Inc, an American producer of consumer and professional grade global positioning system receivers, in the development of embedded software for their Magellan NAV 1000[17] GPS receiver (the first handheld GPS receiver ever built).
Contents
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[18]. 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[19][3] 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. |
Photo gallery
Patents
Magazine articles
- Main article: Sierra 68000 C Compiler/Magazine articles.
Promotional material
Downloads
![]() |
Download Sierra 68000 C Compiler
File: Sierra 68000 C Compiler 3.1b.zip (2.66 MB) (info)
Current version: 3.1b (1994) |
- Operating System: MS-DOS
External links
- Interview with Larry Rosenthal (2019-09) by Kevin Butler at www.oldschoolgamermagazine.com[20][21]
- Discussion at gendev.spritesmind.net , concerning the use of the Sierra 68000 C Compiler in the development of the Sega Channel BIOS (Basic Input/Output System)
- Discussion at www.verycomputer.com (archived 2019-08-02 07:42)
- Discussion at compilers.iecc.com (archived)
- Discussion at www.megalextoria.com (archived)
- List of embedding tool manufacturers (letter "S") at www.chipdir.nl (archived)
- "Simulation and Testboard for Embedded System Design" by Michael Kutter, December 1, 1992 at www.drdobbs.com (archived 2019-07-14 18:36)
- Sega Programming FAQ October 18, 1995, Sixth Edition - Final, at fly.hiwaay.net (archived 2005-01-22 09:49)
- "From Fortran to C" Book US 1991 (by James F. Kerrigan) at archive.org (Books to Borrow)[22]
References
- ↑ 1.0 1.1 1.2 68 Micro Journal, "August 1987: Volume 9, Issue 8" (US; 1987-08-xx), page 55
- ↑ Byte, "August 1988: Volume 13, Number 8" (US; 1988-08-xx), page 359
- ↑ 3.0 3.1 Press release: 1993-02-01: Sierra Systems Upgrades Sierra C Compiler
- ↑ File:Dr. Dobb's Journal US 162.pdf, page 88
- ↑ File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 132
- ↑ File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 133
- ↑ File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 136
- ↑ File:Cross Products Export Price List - May 1995.pdf, page 3
- ↑ Press release: 1991-03-01: Source Level Symbolic Debugger
- ↑ Dr. Dobb's Journal, "August 1991" (US; 1991-08-xx), page 73
- ↑ File:Patent US5287455.pdf, page 1
- ↑ 12.0 12.1 Press release: 1993-09-27 : MOTOROLA AND SIERRA SYSTEMS ANNOUNCE AVAILABILITY OF COMPLETE HARDWARE/SOFTWARE SOLUTION FOR 68306 DESIGN
- ↑ File:MC68681 datasheet.pdf, page 1
- ↑ http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1992/9212/9212g/9212g.htm (Wayback Machine: 2014-08-11 02:18)
- ↑ File:M68000 Family FAQs.pdf, page 37
- ↑ File:TI-89 - TI-92 Plus Sierra C Assembler Reference Manual (Texas Instruments).pdf
- ↑ http://retro-gps.info/Magellan/Magellan-NAV-1000/index.html
- ↑ File:M68000 Family Resident Structured Assembler Reference Manual.pdf
- ↑ Press Release: 1992-12-01: "Of interest" by Tami Zemel of Dr. Dobb's Journal
- ↑ https://www.oldschoolgamermagazine.com/the-seventies-space-wars-by-kevin-butler/
- ↑ https://www.oldschoolgamermagazine.com/magazine/
- ↑ https://ia800908.us.archive.org/BookReader/BookReaderPreview.php?id=fromfortrantoc0000kerr&subPrefix=fromfortrantoc0000kerr&itemPath=/13/items/fromfortrantoc0000kerr&server=ia800908.us.archive.org&page=leaf296&fail=preview&&scale=6&rotate=0 (archive.today)