Preview
comp.sys.m68k FAQ List
This is the frequently asked questions list (FAQ) for comp.sys.m68k.
It is posted on a periodic basis to comp.sys.m68k. This list is
maintained by gregh@cserver.plexus.com (Greg Hawley).
Errors, corrections, comments are encouraged. Please send them to
Greg Hawley at the email address listed above. When vendor names
or products are listed, it is not a recommendation of one vendor
over another. If you have a product that fits in one of the lists,
feel free to contact the maintainer with information about the
product.
While a good faith effort has been made to cite from where
information has come, some of this document may not have properly
be attributed to its source. Corrections should be sent to the
maintainer.
Revision History:
1.0 15FEB93 Original Release
1.1 28FEB93 Intel Hex ASCII section added, Motorola BBS #
corrected, Some information added to Getting
Started Building Hardware, Location of SIMTEL
cross-assembler/simulator added.
1.1.1 08MAR93 Updated reference to Dr. Dobbs book.
$Id: FAQ,v 1.3 1993/04/05 13:52:26 gregh Exp gregh $
[Index]
The following topics are covered by this FAQ.
Cross Assemblers
C Cross Compilers
Monitors/Debuggers
Data Sheets/Literature
Samples
Motorola BBS Access
Getting Started Building Hardware
Real-time Operating Systems
S-Record Format
Intel Hex ASCII Format
Contributors
[Cross Assemblers]
Several cross assemblers are available for Motorola 680x0
processors. Any experience that you wish to share with
the group about any of these products would be much
appreciated.
o a68k in source from to go with HCC see *C Cross
Compilers* is available from the Fred Fish Amiga
disk collection.
o Another version of a68k in PC executable and in
source form? is available from the Motorola BBS.
o The GNU assembler GAS to go with GCC is available
from GNU sites. See *C Cross Compilers*.
o A simulator/assembler for the IBM-PC compatibles on
Simtel. The file is <msdos.crossasm>68asmsim.zip.
The file description says "68000 cross-assembler/
simulator with C source" See archive (location):
swdsrv.edvz.univie.ac.at
(/pc/dos/crossasm/68asmsim.zip), plaza.aarnet.edu.au
(/micros/pc/oak/crossasm/68asmsim.zip), nic.switch.ch
(/mirror/msdos/crossasm/68asmsim.zip)
(/software/pc/simtel20/crossasm/68asmsim.zip),
sun0.urz.uni-heidelberg.de
(/pub/msdos/simtel/crossasm/68asmsim.zip),
barnacle.erc.clarkson.edu
(/pub/simtel20-cdrom/msdos/crossasm/68asmsim.zip),
rigel.acs.oakland.edu (/pub/msdos/crossasm/68asmsim.zip),
wuarchive.wustl.edu (/mirrors/msdos/crossasm/68asmsim.zip),
isfs.kuis.kyoto-u.ac.jp
(/mirrors/simtel20.msdos/crossasm/68asmsim.zip),
ftp.uu.net
(/systems/ibmpc/msdos/simtel20/crossasm/68asmsim.zip),
gdr.bath.ac.uk (/simtel-cdrom/msdos/crossasm/68asmsim.zip),
src.doc.ic.ac.uk
(/computing/systems/ibmpc/wsmr-simtel20.army.mil/
crossasm/68asmsim.zip)
[C Cross Compilers]
Several cross compilers are available for Motorola 680x0
processors. Below is a list of currently know C cross
compilers. Any comments from readers about the reliability/
portability/pricing/availability is appreciated. What are
people using?
o Microtec Research has tools available for Suns,
Ultrix/VMS, PC and possibly others. Their address
is 2350 Mission College Blvd., Santa Clara CA 95054.
Phone 408-980-1300, 800-950-5554. Fax 408-982-8266.
o Archemedes has unknown availablility.
o GNU C 2.2.2 is available in source from GNU
anonymous FTP sites. Some effort has gone into
porting this code to the PC. The PC port is
called djgpp and is for 386 or better machines
running DOS. The source is free and available
at prep.ai.mit.edu
o HCC available for the Amiga in the Fred Fish Amiga
disk collections. Fred Fish Amiga disk collection
is archived on ux1.cso.uiuc.edu. These archives
are in lhz format. The source for the utility to
uncompress these archives is called lharc. Lharc
is available on comp.sources.misc archives in
volume 11. Try wuarchive.wustl.edu for a comp.
sources.misc archive.
o A freeware C compiler is available on the Motorola
BBS. There is certainly a PC executable available.
Source code, as well as executables for other
platforms may be in the BBS.
A good comparison of supported, commercial Motorola C Cross
Compilers appeared in _Computer Design_ in January 1993 pages
103-109. Vendors listed in this article were: 2500AD Software,
Buena Vista CO; Avocet Systems, Rockport ME; BSO/Tasking, Dedham
MA; Cygnus Support, Mountain View CA; Diab Data, Foster City CA;
Intermetrics Microsystems Software, Cambridge MA; Introl,
Milwaukee WI; Lattice, Downers Grove IL; Microtec Systems,
Santa Clara CA; Microware Systems, Des Moines IA; Oasys,
Lexington MA; Production Languages Corp (PLC), Weatherford TX;
Sierra Systems, Oakland CA; Software Development Systems
Oak Brook IL; UniPress Software, Edison NJ.
Another company that apparently sells 68k based assemblers,
cross-compilers and debuggers is Intermeterics Microsystems
Software, Inc. 733 Concord Ave., Cambridge MA 02138.
[Monitors/Debuggers]
One monitor available is fbug. It is on the Motorola BBS.
The author is currently compiling and assembling it. It
is an unsupported piece of code written by Motorola
engineers in Austin.
[Data Sheets/Literature]
Data sheets can be found by calling your local Motorola
Sales Office or Distributor. Local Sales Offices and
Distributors are listed in the back of any Motorola Master
Selection Guide. If you can not find a local
representative, Motorola Literature Distributions Center
addresses are listed by continent/region.
USA
Motorola Literature Distribution, P.O. Box 20912,
Phoenix AZ 85036
EUROPE
Motorola Ltd., European Literature Center, 88 Tanners Drive,
Blakelands, Milton Keynes, MK14 5BP England
JAPAN
Nippon Motorola Ltd., 4-32-1 Nishi-Gotanda, Shinagawa-ku,
Tokyo 141 Japan
ASIA-PACIFIC
Motorola Semiconductors H.K. Ltd., Silicon Harbour Center,
No. 2 Dai King Street, Tai Po Industrial Estate,
Tai Po, N.T., Hong Kong
Ask for application notes, too. A list with Motorola document
numbers follows is found in Motorola Document BR321/D. This list
includes about 100 different documents. The author would have
typed them in, but he was short of time and space.
Programmers guide is available that describes the instructions
sets of all of the 68000-based microprocessors.
[Samples]
For Microcomputer products try 800-845-MOTO. That is the number
for the sales division that samples microcomputers (up to
and including the 68EC040 and 68340).
[Motorola BBS]
The Motorola BBS number is 512-891-FREE or 512-891-3733.
This is a new number perhaps less than a couple of years old.
The old number for the BBS was 512-440-2725. This number may
still work, but is not recommended. Connection to the BBS is
1200 or 2400? baud 8-N-1. For those with Internet access,
this bulletin board is mirrored on several internet
anonymous FTP sites:
bode.ee.ualberta.ca
calvin.stanford.edu
ee.utal.edu
red.cs.tcu.edu
ernie.uvic.ca (login as ftp)
The location of the Motorola BBS information inside these
BBSs are unknown. You'll have to dig around to find them.
The site ernie.uvic.ca seems to be sanctioned by the
Motorola BBS.
In general, if you are looking for something on the network,
you can use any of a number of anonymous ftp database servers.
One of these servers is quiche.cs.mcgill. Telnet to this
machine and login as archie. From there the directions are
self-explanatory.
An anonymous ftp archive is currently being sought. Any
parties interested in helping set one up should contact
gregh@cserver.plexus.com (Greg Hawley).
[Getting Started Building Hardware]
A percentage of the articles on comp.sys.m68k relate to
building your own hardware based on 68xxx processors. People
seem interested in building their own hardware or modifying
what others have already built. Because this is such a pop-
ular topic, no frequently asked questions list for comp.sys.
m68k would be complete without some mention of hardware hacking.
The author is in the middle of building his own 68010 box
at the writing of this FAQ.
Choosing the Micro
One of the first decisions to be made is which processor is
to be used. Everything else falls around the choice of processors,
so this isn't as trivial a issue as it might appear. By the time
you have come to read this FAQ, you probably have joined the
Motorola 68xxx camp. Several criteria are important in the
decision of which processor to use. They are listed below.
Criteria used to Choose a Microprocessor
o Availability. Where can the micro of your choice be
bought.
o Cost. Can your budget afford it. When I get a
chance I'll post what the Motorola Price List says.
Anybody have any recommendations for sources?
o Package. If you don't have surface mount equipment
in your basement, you should look for a Plastic
Leadless Chip Carrier (PLCC), Dual In-line Package
(DIP) or Pin Grid Array (PGA) package for the micro.
Motorola lists part numbers that include the package
type:
MC68010L8
\/\___/||
| | |+--- Speed (in MHz)
| | +---- Package Type
| | L - Ceramic DIP
| | LC - Ceramic DIP, Gold Lead Finish
| | P - Plastic DIP
| | RC - Pin Grid Array, Gold Lead Finish
| | RL - Pin Grid Array, Solder Lead Finish
| | R - Pin Grid Array, Solder Lead Finish
| | RP - Plastic Pin Grid Array
| | FN - Plastic Quad Pack (PLCC)
| | FG - Plastic Quad Plat Pack (PQFP)
| | FE - Ceramic Quad (Gull Wing)
| | FC - Plastic Quad (Gull Wing)
| |
| +------- Part Number
+----------- Motorola Prefix
o On-Chip Peripherals. Many microprocessors have lots
of on-chip stuff. Commonly available modules include
UARTS, Timers, Chip-select generation circuitry,
Interrupt handling circuitry, etc. Don't immediately
write this more expensive microprocessors with on
chip stuff. Many of the these functions are tricky
to implement in discrete or programmable logic. The
extra cost of having all of this extra functionality
many be well worth your application.
o Manufacturer. Don't forget. Motorola is not the only
company to make 68xxx processors. At least one other
company (and maybe others) make processors with 68xxx
cores. Check Toshiba for information on there products.
In general, the 683xx series of embedded microcontrollers,
especially the 68340 are well suited for hardware hacking.
Byron@cc.gatech.edu (Byron A. Jeff) outlines the features of the
68340:
o 16 bit data bus. 32 bit address bus.
o Quad Flat Pack (QFP) or Pin Grid Array (PGA) package.
o HCMOS process with 90 mA load (60 uA in LPSTOP mode).
o 2 high speed serial ports.
o 2 general purpose timers.
o 2 DMA channels -- max data rate of 33 Mbytes/sec.
o watchdog and interval timers.
o 2 eight bit parallel ports.
o integrated IRQ, IACK and chip select circuitry.
o On-board reset circuitry.
o 16 MHz version available. 25 MHz version planned.
o Background Debugging Mode.
The background debugging mode for the 68340 can be accessed
from a free debugger that runs on IBM-PC compatibles. The
debugger is available somewhere in the Motorola Freeware
BBS.
The pricing guide for Motorola entitled Motorola Semiconductor
Price List with effective date January 9, 1993 (Motorola part
number 22480-18) lists "No new designs" for the 68010. It is
unclear what the future of this part is. Be ware.
Initial Design
The best first step in designing your computer is reading the
application notes.
Glue logic
For hardware hacking perhaps the best discrete logic family to
use is HC. It doesn't use a lot of power and can be purchased
from just about anywhere. 7400, LS, ALS and other bipolar
families require higher currents. The bipolars, however, are
faster. Typically from a HC gate the propagation delay is
around 20 ns. The fast bipolars can run in the 2-3 ns range.
Don't rule out using PLDs. While it is valuable experience to
build you're whole computer out of discrete logic, if you have
access to equipment to blow PLDs, use it. PLDs keeps your board
smaller, reworks easier, and the final product more reliable.
Choosing Other Parts
DRAM controllers are available from National Semiconductors.
A DRAM Management Handbook from National explains in an
application note how to interface their controllers to
68000, 68010, 68020 and others.
Procuring Parts
Section under construction.
Software Development Package
Section under construction.
[Real-time Operating Systems]
A freeware real-time operating system called uCOS was published
in _Embedded Systems Programming_ in May and June 1992.
_Embedded Systems Programming_ is a Miller Freeman
Publication and can be reached at:
Miller Freeman Inc.
600 Harrison St.
San Francisco CA 94107
(415) 905-2200
In general _Embedded Systems Programming_ is a good magazine
for users interested in developing embedded systems. The
magazine covers a lot of things that are relevant to programmers
working with hardware on a more intimate level.
Real-time operating systems are also available from numerous
vendors.
A book published by the publishers of Dr. Dobbs contains source
code for a real-time operating system. This book contains a
cross-assembler in FORTH, a BASIC interpreter and a bunch of
other goodies. The reference is: _Dr. Dobbs Toolbox of 68000
Programming_, ISBN 0-13-216557-0. Unfortunately, this book is
out of print. Does anyone have other appropriate references?
[S-Record Format]
Chaplin@keinstr.uucp (Roger Chaplin) reposted an article written
by mcdchg!motmpl!ron (Ron Widell) that explained how Motorola
S-Records are formatted. This comes from a unix man page. No
mention of which version of Unix is specified. This section
of the FAQ is a bit long. An anonymous ftp archive is currently
being sought. When one is found, the section will be placed in
the archive.
SREC(4) UNIX 5.0 (03/21/84) SREC(4)
An S-record file consists of a sequence of specially formatted
ASCII character strings. An S-record will be less than or equal to
78 bytes in length.
The order of S-records within a file is of no significance and no
particular order may be assumed.
The general format of an S-record follow:
+------------------//-------------------//-----------------------+
| type | count | address | data | checksum |
+------------------//-------------------//-----------------------+
type A char[2] field. These characters describe the
type of record (S0, S1, S2, S3, S5, S7, S8, or
S9).
count A char[2] field. These characters when paired and
interpreted as a hexadecimal value, display the
count of remaining character pairs in the record.
address A char[4,6, or 8] field. These characters grouped
and interpreted as a hexadecimal value, display
the address at which the data field is to be
loaded into memory. The length of the field
depends on the number of bytes necessary to hold
the address. A 2-byte address uses 4 characters,
a 3-byte address uses 6 characters, and a 4-byte
address uses 8 characters.
data A char [0-64] field. These characters when paired
and interpreted as hexadecimal values represent
the memory loadable data or descriptive
information.
checksum A char[2] field. These characters when paired and
interpreted as a hexadecimal value display the
least significant byte of the ones complement of
the sum of the byte values represented by the
pairs of characters making up the count, the
address, and the data fields.
Each record is terminated with a line feed. If any
additional or different record terminator(s) or delay
characters are needed during transmission to the target
system it is the responsibility of the transmitting program
to provide them.
S0 Record The type of record is 'S0' (0x5330). The address
field is unused and will be filled with zeros
(0x0000). The header information within the data
field is divided into the following subfields.
mname is char[20] and is the
module name.
ver is char[2] and is the
version number.
rev is char[2] and is the
revision number.
description is char[0-36] and is a
text comment.
Each of the subfields is composed of ASCII bytes
whose associated characters, when paired,
represent one byte hexadecimal values in the case
of the version and revision numbers, or represent
the hexadecimal values of the ASCII characters
comprising the module name and description.
S1 Record The type of record field is 'S1' (0x5331). The
address field is interpreted as a 2-byte address.
The data field is composed of memory loadable
data.
S2 Record The type of record field is 'S2' (0x5332). The
address field is interpreted as a 3-byte address.
The data field is composed of memory loadable
data.
S3 Record The type of record field is 'S3' (0x5333). The
address field is interpreted as a 4-byte address.
The data field is composed of memory loadable
data.
S5 Record The type of record field is 'S5' (0x5335). The
address field is interpreted as a 2-byte value
and contains the count of S1, S2, and S3 records
previously transmitted. There is no data field.
S7 Record The type of record field is 'S7' (0x5337). The
address field contains the starting execution
address and is interpreted as 4-byte address.
There is no data field.
S8 Record The type of record field is 'S8' (0x5338). The
address field contains the starting execution
address and is interpreted as 3-byte address.
There is no data field.
S9 Record The type of record field is 'S9' (0x5339). The
address field contains the starting execution
address and is interpreted as 2-byte address.
There is no data field.
EXAMPLE
Shown below is a typical S-record format file.
S00600004844521B
S1130000285F245F2212226A000424290008237C2A
S11300100002000800082629001853812341001813
S113002041E900084E42234300182342000824A952
S107003000144ED492
S5030004F8
S9030000FC
The file consists of one S0 record, four S1 records, one S5
record and an S9 record.
The S0 record is comprised as follows:
S0 S-record type S0, indicating it is a header
record.
06 Hexadecimal 06 (decimal 6), indicating that six
character pairs (or ASCII bytes) follow.
00 00 Four character 2-byte address field, zeroes in
this example.
48 ASCII H, D, and R - "HDR".
1B The checksum.
The first S1 record is comprised as follows:
S1 S-record type S1, indicating it is a data record
to be loaded at a 2-byte address.
13 Hexadecimal 13 (decimal 19), indicating that
nineteen character pairs, representing a 2 byte
address, 16 bytes of binary data, and a 1 byte
checksum, follow.
00 00 Four character 2-byte address field; hexidecimal
address 0x0000, where the data which follows is to
be loaded.
28 5F 24 5F 22 12 22 6A 00 04 24 29 00 08 23 7C Sixteen
character pairs representing the actual binary
data.
2A The checksum.
The second and third S1 records each contain 0x13 (19)
character pairs and are ended with checksums of 13 and 52,
respectively. The fourth S1 record contains 07 character
pairs and has a checksum of 92.
The S5 record is comprised as follows:
S5 S-record type S5, indicating it is a count record
indicating the number of S1 records.
03 Hexadecimal 03 (decimal 3), indicating that three
character pairs follow.
00 04 Hexadecimal 0004 (decimal 4), indicating that
there are four data records previous to this
record.
F8 The checksum.
The S9 record is comprised as follows:
S9 S-record type S9, indicating it is a termination
record.
03 Hexadecimal 03 (decimal 3), indicating that three
character pairs follow.
00 00 The address field, hexadecimal 0 (decimal 0)
indicating the starting execution address.
FC The checksum.
[Intel Hex ASCII Format]
Intel HEX-ASCII format takes the form:
+----------------------------------- Start Character
|
| +-------------------------------- Byte Count
| | (# of data bytes)
| |
| | +-------------------------- Address of first data.
| | |
| | | +-------------------- Record Type (00 data,
| | | | 01 end of record)
| | | |
| | | | +------------ Data Bytes
| | | | |
| | | | | +---- Checksum
| | | | | |
| / \ / \ / \ / \ / \
: B C A A A A T T H H ... H H C C
An examples:
:10000000DB00E60F5F1600211100197ED300C3004C
:1000100000000101030307070F0F1F1F3F3F7F7FF2
:01002000FFE0
:00000001FF
This information comes from _Microprocessors and Programmed
Logic_, Second Edition, Kenneth L. Short, 1987, Prentice-Hall,
ISBN 0-13-580606-2.
Provisions have been made for data spaces larger than 64 kBytes.
The above reference does not discuss them. I suspect there is
a start of segment type record, but I do not know how it is
implemented.
[Contributors]
Many people have contributed to this list. Below is a list
of people who have helped by either their direct input or through
their postings to comp.sys.m68k. I can't list everyone, but I
have tried to include many.
walvdrk_r@research.ptt.nl (Kees van der Wal)
byron@cc.gatech.edu (Byron A Jeff)
mcdchg!motmpl!ron (Ron Widell)
rrt@mpd.tandem.com (Bob Teisberg)
benstn@olivetti.nl (Ben Stuyts)
csuley@cs.cornell.edu (Christopher Suley)
idr@mailhost.cs.pdx.edu (Ian D Romanick)
wayne@netcom.com (wayne t. watson)
Happy Computing,
-- Greg
+---------------------------+----------------------------+-----------------+
| __ __ ___ | Greg Hawley | Expressed |
| / \| / \ / | | \ | Technology Group Inc. | Opinions are |
| +--/| +-- X | | \ | 55 Jewelers Park Drive | mine and not |
| | \__\__ / \ \__/ __\ | Neenah WI 54956 | of Technology |
| | gregh@cserver.plexus.com | Group Inc. or |
| Technology Group Inc. | | Plexus Corp. |
+---------------------------+----------------------------+-----------------+