Difference between revisions of "Sierra 68000 C Compiler"

From Sega Retro

m (Text replacement - "| imgwidth= |" to "|")
 
(95 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{AccessoryBob
+
{{Bob
| bobscreen=
+
| bobscreen=Sierra 68000 C Compiler Graphical User Interface(Alt).png
 
| icon=
 
| icon=
| imgwidth=
 
 
| title=
 
| title=
| maker=[[Sierra Systems]], Larry Rosenthal
+
| system={{DOS}}
| releases={{releasesHC
+
| developer=[[Sierra Systems]], Larry Rosenthal
| dos_date_us=1987
+
| releases={{releasesMisc
| dos_rrp_us=2.000
+
| misc_date_us=1986{{ref|1=https://books.google.com/books?id=9CRMAAAAYAAJ&q=%22sierra+sys%22&dq=%22sierra+sys%22&hl=}}{{magref|osgm|12|16}}
| dos_code_us=CC010 ([[Cross Products]] ref Nº)
+
| misc_rrp_us=2,000{{magref|68mj|0908|55}}{{magref|byte|1308|359}}{{intref|Press release: 1993-02-01: Sierra Systems Upgrades Sierra C Compiler}}{{ref|https://web.archive.org/web/20020828043343/http://www.embedded.com/97/sr9702.htm}}
 +
| misc_code_us=CC010 ([[Cross Products]] ref Nº)
 
}}
 
}}
 
}}
 
}}
{{stub}}The '''''{{PAGENAME}}''''' is a MS-DOS 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, assembler and linker. It was largely used in the early 90's in 68000-based applications ranging from navigational systems to printer applications and video games and was licensed and included in the [[Sega Mega Drive]] Development Kit issued by [[Sega]] to Third-Party software developers (listed in old [https://segaretro.org/images/e/e6/Cross_Products_Export_Price_List_-_May_1995.pdf Cross Products] Price lists, which was, at that 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.
+
{{stub}}The '''{{PAGENAME}}'''{{magref|ddj|162|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 1986, 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.
 +
 
 +
''QuickFix''{{intref|Press release: 1991-03-01: Source Level Symbolic Debugger}} 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{{magref|68mj|0908|55}}{{fileref|ElectronicNews US 1990-12-10; Page 24.png}}{{magref|ddj|179|73}}{{fileref|Patent US5287455.pdf|page=1}} 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{{intref|Press release: 1993-09-27 : MOTOROLA AND SIERRA SYSTEMS ANNOUNCE AVAILABILITY OF COMPLETE HARDWARE/SOFTWARE SOLUTION FOR 68306 DESIGN}}{{fileref|ElectronicNews US 1993-10-04; Page 16.png}}, 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{{intref|Press release: 1993-09-27 : MOTOROLA AND SIERRA SYSTEMS ANNOUNCE AVAILABILITY OF COMPLETE HARDWARE/SOFTWARE SOLUTION FOR 68306 DESIGN}} (an ''EC000'' core processor on-chip peripheral module) identical to the  ''MC68681''{{fileref|MC68681 datasheet.pdf|page=1}} Dual Universal Asynchronous Receiver/Transmitter ([[wikipedia:Universal asynchronous receiver-transmitter|DUART]]) chip, allowing complete verification of DUART initialization and operation software{{ref|https://web.archive.org/web/20140811021807/http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1992/9212/9212g/9212g.htm}}. The board is also equipped{{fileref|M68000 Family FAQs.pdf|page=37}} with a 16 MHz [[wikipedia:Crystal oscillator|crystal oscillator]] without the external capacitor ''Cext''.
 +
 
 +
In 1999, the Sierra 68000 C Compiler was licensed to and included by [[Texas Instruments]] in their [[wikipedia:TI-89 series|TI-89]] and [[wikipedia:TI-92 series|TI-92 Plus]]{{fileref|TI-89 - TI-92 Plus Sierra C Assembler Reference Manual (Texas Instruments).pdf}} graphing calculators [https://web.archive.org/web/20080727180142/http://education.ti.com/educationportal/downloadcenter/SoftwareDetail.do?website=US&appId=178 Software Development Kit]. This version was modified by Texas Instruments under Sierra Systems license to support, only, the 68000 processor and [[wikipedia:Texas Instruments|TI]] BCD ([[wikipedia:Binary-coded decimal|Binary-coded decimal]]) [[wikipedia:Floating-point arithmetic|floating-point]] numbers and support for other processors and coprocessors was removed. It was also used in 1989, by [[wikipedia:Magellan Navigation|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''{{ref|http://retro-gps.info/Magellan/Magellan-NAV-1000/index.html}} GPS receiver (the first handheld GPS receiver ever built).
 +
 
 +
==Sierra C Tools Functions==
 +
{|class="prettytable"
 +
!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{{fileref|M68000 Family Resident Structured Assembler Reference Manual.pdf}}. 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''{{intref|Press Release: 1992-12-01: "Of interest" by Tami Zemel of Dr. Dobb's Journal}}{{intref|Press release: 1993-02-01: Sierra Systems Upgrades Sierra C Compiler}} 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 [[wikipedia:COFF|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==
 +
<gallery>
 +
SierraSystems68306EmbeddedControllerCard.jpg|Sierra Systems 68306 development board
 +
SierraSystems68306EmbeddedControllerCard Back.jpg
 +
</gallery>
 +
 
 +
==Patents==
 +
<gallery>
 +
Patent US5287455.pdf|US5287455
 +
</gallery>
 +
 
 +
==Magazine articles==
 +
{{mainArticle|{{PAGENAME}}/Magazine articles}}
 +
 
 +
==Promotional material==
 +
{{gallery
 +
|{{galleryPrintAd|esp|1|71|
 +
}}
 +
|{{galleryPrintAd|ddj|179|73
 +
}}
 +
|{{galleryPrintAd|ccink|46|6|text=Print advert for the Sierra 68306 development board
 +
}}
 +
}}
 +
 
 +
==Downloads==
 +
{{Download|file=Sierra 68000 C Compiler 3.1b.zip|version='''3.1b (1994)'''|filesize=2,66 MB}}
 +
 +
*'''Operating System:''' MS-DOS
 +
 
 +
==External links==
 +
*[https://www.oldschoolgamermagazine.com/magazineosg/osg12/html5/index.html?page=14&noflash Interview with Larry Rosenthal (2019-09) by Kevin Butler at www.oldschoolgamermagazine.com]{{ref|https://www.oldschoolgamermagazine.com/the-seventies-space-wars-by-kevin-butler/}}{{ref|https://www.oldschoolgamermagazine.com/magazine/}}
 +
*[http://gendev.spritesmind.net/forum/viewtopic.php?f=2&t=2669 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)]
 +
*[https://archive.fo/A8NkF Discussion at www.verycomputer.com (archived 2019-08-02 07:42)]
 +
*[https://web.archive.org/web/20150906072622/https://compilers.iecc.com/comparch/article/93-12-071 Discussion at compilers.iecc.com (archived)]
 +
*[https://archive.vn/xPM5C Discussion at www.megalextoria.com (archived)]
 +
*[https://archive.vn/0eQwv List of embedding tool manufacturers (letter "S") at www.chipdir.nl (archived)]
 +
*[https://archive.fo/VLJtv "Simulation and Testboard for Embedded System Design" by Michael Kutter, December 1, 1992 at www.drdobbs.com (archived 2019-07-14 18:36)]
 +
*[https://web.archive.org/web/20050122094914/http://fly.hiwaay.net/~jfrohwei/sega/genesis.html Sega Programming FAQ October 18, 1995, Sixth Edition - Final, at fly.hiwaay.net (archived 2005-01-22 09:49)]
 +
*[https://archive.org/details/fromfortrantoc0000kerr/mode/1up?q=sierra+systems+-+6728+evergreen+ave%2C+oakland+hills%2C+oakland "From Fortran to C" Book US 1991 (by James F. Kerrigan) at archive.org (Books to Borrow)]{{ref|https://archive.vn/nR9jL/5124eda6ecdfbec35ca149936efc3e4e544407ca.jpg|2=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}}
  
 
==References==
 
==References==

Latest revision as of 04:56, 12 September 2023

n/a

Sierra 68000 C Compiler Graphical User Interface(Alt).png

Sierra 68000 C Compiler
System(s):
IBM PC compatibles
Developer:
Release Date RRP Code
{{}} US $2,000[1][2][3][4] 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[7], is an ANSI standard, MS-DOS software-based PC hosted C cross-compiler, developed by Sierra Systems and released in 1986, for the Motorola 68000 Family microprocessors[8][9][10], 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[11], 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[12] 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][13][14][15] 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[16][17], 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[16] (an EC000 core processor on-chip peripheral module) identical to the MC68681[18] Dual Universal Asynchronous Receiver/Transmitter (DUART) chip, allowing complete verification of DUART initialization and operation software[19]. The board is also equipped[20] 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[21] 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[22] 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[23]. 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[24][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

Logo-pdf.svg
Print advert in Embedded Systems Programming (US) #1: "November 1988" (1988-11-xx)
Logo-pdf.svg
Logo-pdf.svg
Print advert in Dr. Dobb's Journal (US) #179: "August 1991" (1991-08-xx)
Logo-pdf.svg
Logo-pdf.svg
Print advert for the Sierra 68306 development board in Circuit Cellar INK (US) #46: "May 1994" (1994-05-xx)
Logo-pdf.svg

Downloads

Download.svg 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

References

  1. 1.0 1.1 68 Micro Journal, "August 1987: Volume 9, Issue 8" (US; 1987-08-xx), page 55
  2. Byte, "August 1988: Volume 13, Number 8" (US; 1988-08-xx), page 359
  3. 3.0 3.1 Press release: 1993-02-01: Sierra Systems Upgrades Sierra C Compiler
  4. http://www.embedded.com/97/sr9702.htm (Wayback Machine: 2002-08-28 04:33)
  5. https://books.google.com/books?id=9CRMAAAAYAAJ&q=%22sierra+sys%22&dq=%22sierra+sys%22&hl=
  6. Old School Gamer Magazine, "September 2018" (US; 2018-09-xx), page 16
  7. Dr. Dobb's Journal, "March 1990" (US; 1990-03-xx), page 88
  8. File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 132
  9. File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 133
  10. File:MotorolaSemiconductorMasterSelectionGuide Rev. 13 (1997).pdf, page 136
  11. File:Cross Products Export Price List - May 1995.pdf, page 3
  12. Press release: 1991-03-01: Source Level Symbolic Debugger
  13. File:ElectronicNews US 1990-12-10; Page 24.png
  14. Dr. Dobb's Journal, "August 1991" (US; 1991-08-xx), page 73
  15. File:Patent US5287455.pdf, page 1
  16. 16.0 16.1 Press release: 1993-09-27 : MOTOROLA AND SIERRA SYSTEMS ANNOUNCE AVAILABILITY OF COMPLETE HARDWARE/SOFTWARE SOLUTION FOR 68306 DESIGN
  17. File:ElectronicNews US 1993-10-04; Page 16.png
  18. File:MC68681 datasheet.pdf, page 1
  19. 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)
  20. File:M68000 Family FAQs.pdf, page 37
  21. File:TI-89 - TI-92 Plus Sierra C Assembler Reference Manual (Texas Instruments).pdf
  22. http://retro-gps.info/Magellan/Magellan-NAV-1000/index.html
  23. File:M68000 Family Resident Structured Assembler Reference Manual.pdf
  24. Press Release: 1992-12-01: "Of interest" by Tami Zemel of Dr. Dobb's Journal
  25. https://www.oldschoolgamermagazine.com/the-seventies-space-wars-by-kevin-butler/
  26. https://www.oldschoolgamermagazine.com/magazine/
  27. 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)