HOME

TheInfoList




The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit
complex instruction set computer A complex instruction set computer (CISC ) is a computer in which single instruction set architecture, instructions can execute several low-level operations (such as a load from Memory (computers), memory, an arithmetic operator (programming), ope ...
(CISC)
microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit An integrated circuit or monolithic integrated circuit (also referred to as an IC, a chip, or a microchip ...

microprocessor
, introduced in 1979 by
Motorola Motorola, Inc. () was an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational sta ...

Motorola
Semiconductor Products Sector. The design implements a
32-bit 32-bit microcomputer A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit (CPU). It includes a microprocessor, Computer memory, memory and minimal input/output (I/O) circuitry mount ...
instruction set In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of co ...
, with 32-bit registers and a 16-bit internal
data bus In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer A computer is a machine that can be programmed to carry ...
. The
address bus In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. The architecture of a system refers to its structur ...
is 24 bits and does not use
memory segmentation Memory segmentation is an operating system memory management (operating systems), memory management technique of division of a computer's primary memory into segments or sections. In a Computer architecture, computer system using segmentation, a r ...
, which made it easier to program for. Internally, it uses a
16-bit 16-bit microcomputers are computers in which 16-bit microprocessors were the norm. A 16-bit register can store 216 different values. The range (computer programming), range of integer values that can be stored in 16 bits depends on the Integer ( ...
data
arithmetic logic unit In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and sof ...
(ALU) and two more 16-bit ALUs used mostly for addresses, and has a 16-bit external
data bus In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer A computer is a machine that can be programmed to carry ...
. For this reason, Motorola termed it a 16/32-bit processor. As one of the first widely available processors with a 32-bit instruction set, and running at relatively high speeds for the era, the 68k was a popular design through the 1980s. It was widely used in a new generation of
personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or technician ...
s with
graphical user interface The graphical user interface (GUI "UI" by itself is still usually pronounced . or ) is a form of user interface In the industrial design Industrial design is a process of design A design is a plan or specification for the construction ...
s, including the
Macintosh The Macintosh (mainly Mac since 1998) is a family of personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be op ...

Macintosh
,
Amiga The Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of computers with 16 or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly im ...

Amiga
,
Atari ST The Atari ST is a line of home computer Home computers were a class of s that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, we ...
, and
X68000 The is a home computer created by Sharp Corporation, first released in 1987 and sold only in Japan. The first model features a 10 Megahertz, MHz Motorola 68000 Central processing unit, CPU (hence the name), 1 Megabytes, MB of Random Access ...
. The 1988
Mega Drive The Sega Genesis, known as the outside North America, is a 16-bit 16-bit microcomputer A microcomputer is a small, relatively inexpensive computer A computer is a machine that can be programmed to carry out sequences of arithmetic ...

Mega Drive
console is also powered by a 68000. The 68k was soon expanded with more family members, implementing full 32-bit ALUs as part of the growing
Motorola 68000 series The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and w ...
. The original 68k is generally software forward-compatible with the rest of the line despite being limited to a 16-bit wide external bus. After in
production Production may refer to: Economics and business * Production (economics) Production is the process of combining various material inputs and immaterial inputs (plans, know-how) in order to make something for consumption (output). It is the act of ...
, the 68000
architecture upright=1.45, alt=Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gallica 2011 (adjusted), Plan of the second floor (attic storey) of the Hôtel de Brionne in Paris – 1734. Architecture (Latin ''archi ...
is still in use.


History

Motorola's first widely-produced CPU was the
Motorola 6800 The 6800 ("''sixty-eight hundred''") is an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface integrated c ...

Motorola 6800
. Although a capable design, it was eclipsed by more powerful designs, such as the
Zilog Z80 The Z80 is an 8-bit In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. Some definitions of archite ...

Zilog Z80
, and less expensive designs, such as the
MOS Technology 6502 The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit In computer architecture In computer ...
(MOS 6502). As the sales prospects of the 6800 dimmed, Motorola began a new design to replace it. This became the Motorola Advanced Computer System on Silicon project, or MACSS, begun in 1976. The MACSS aimed to develop an entirely new architecture without
backward compatibility Backward or Backwards is a relative direction Body relative directions (also known as egocentric coordinates) are orientation (geometry), geometrical orientations relative to a body such as a human person's. The most common ones are: left ...
with the 6800. It ultimately does retain a bus protocol compatibility mode for existing 6800 peripheral devices, and a version with an 8-bit data bus was produced. However, the designers mainly focused on the future, or
forward compatibility Forward compatibility or upward compatibility is a design characteristic that allows a system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, s ...
, which gives the 68000 design a head start against later 32-bit
instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
s (ISAs). For instance, the CPU registers are 32 bits wide, though few self-contained structures in the processor itself operate on 32 bits at a time. The MACSS team drew heavily on the influence of
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold for much less than Mainframe computer, mainframe and mid-size computers from IBM and BUNCH, its direct competitors. In ...
processor design, such as the
PDP-11 The PDP-11 is a series of 16-bit 16-bit microcomputer A microcomputer is a small, relatively inexpensive computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically ...
and
VAX VAX is a series of computers featuring a 32-bit 32-bit microcomputers are computers in which 32-bit microprocessors are the norm. Range for storing integers A 32-bit register can store 232 different values. The range (computer programming) ...
systems, which are similarly
microcode In processor design Processor design is a subfield of computer engineering and electronics engineering (fabrication) that deals with creating a processor (computing), processor, a key component of computer hardware. The design process involves c ...
-based. In the mid 1970s, the 8-bit microprocessor manufacturers raced to introduce the 16-bit generation.
National Semiconductor National Semiconductor was an American American(s) may refer to: * American, something of, from, or related to the United States of America, commonly known as the United States The United States of America (USA), commonly known as the U ...
had been first with its
IMP-16 The IMP-16, by National Semiconductor National Semiconductor was an American American(s) may refer to: * American, something of, from, or related to the United States of America, commonly known as the United States The United States of A ...
and PACE processors in 1973–1975, but these had issues with speed. Intel had worked on their advanced 16/32-bit
Intel iAPX 432 The iAPX 432 (''Intel Advanced Performance Architecture'') is a discontinued computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation o ...
(alias 8800) since 1975 and their
Intel 8086 The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit Bus (computing), ...
since 1976 (it was introduced in 1978 but became widespread in the form of the almost identical 8088 in the
IBM PC The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first computer released in the IBM PC model line and the basis for the IBM PC compatible IBM PC compatible computers are similar to the original IBM PC The IBM ...

IBM PC
a few years later). Arriving late to the 16-bit arena affords the new processor more transistors (roughly 40,000 active versus 20,000 active in the 8086), 32-bit macroinstructions, and acclaimed general ease of use. The original MC68000 was fabricated using an
HMOS In integrated circuits, depletion-load NMOS is a form of digital logic family that uses only a single power supply voltage, unlike earlier NMOS logic, nMOS (n-type metal-oxide semiconductor) logic families that needed more than one different pow ...
process with a 3.5  µm feature size. Formally introduced in September 1979, initial samples were released in February 1980, with production chips available over the counter in November.. Initial speed grades are 4, 6, and 8 
MHz The hertz (symbol: Hz) is the unit Unit may refer to: Arts and entertainment * UNIT Unit may refer to: Arts and entertainment * UNIT, a fictional military organization in the science fiction television series ''Doctor Who'' * Unit of action ...

MHz
. 10 MHz chips became available during 1981, and 12.5 MHz chips by June 1982. The 16.67 MHz "12F" version of the MC68000, the fastest version of the original HMOS chip, was not produced until the late 1980s. IBM considered the 68000 for the IBM PC but chose the
Intel 8088 The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit An integrated circuit or ...
because the 68000 was not ready; Walden C. Rhines wrote that thus "Motorola, with its superior technology, lost the single most important design contest of the last 50 years". (IBM Instruments briefly sold the 68000-based
IBM System 9000 The System 9000 (S9000) is a family of microcomputer A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit (CPU). It includes a microprocessor, Computer memory, memory and minimal inp ...
laboratory computer systems.) The 68k instruction set is particularly well suited to implement Unix, and the 68000 and its successors became the dominant CPUs for Unix-based
workstation A workstation is a special computer designed for technical or scientific Science () is a systematic enterprise that Scientific method, builds and organizes knowledge in the form of Testability, testable explanations and predictions about ...

workstation
s including
Sun workstation The SUN workstation was a modular computer system designed at Stanford University Stanford University, officially Leland Stanford Junior University, is a private Private or privates may refer to: Music * "In Private "In Private" was the ...
s and Apollo/Domain workstations. The 68000 also is used for mass-market computers such as the
Apple Lisa Lisa is a desktop computer A desktop computer is a personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be o ...

Apple Lisa
,
Macintosh The Macintosh (mainly Mac since 1998) is a family of personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be op ...
,
Amiga The Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of computers with 16 or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly im ...

Amiga
, and
Atari ST The Atari ST is a line of home computer Home computers were a class of s that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, we ...
. The 68000 is used in Microsoft
Xenix Xenix is a discontinued version of the Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser Multi-user software is computer software Software is a collection of Instruction (computer science), instructions that tel ...

Xenix
systems, as well as an early
NetWare NetWare is a discontinued computer network operating system A network operating system (NOS) is a specialized operating system An operating system (OS) is system software that manages computer hardware, computer software, software resources, ...
Unix-based Server. The 68000 is used in the first generation of desktop
laser printer Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics (and moderate-quality photographs) by repeatedly passing a laser beam back and forth over a negatively Electric charge, charged cylinder call ...

laser printer
s, including the original
Apple Inc. Apple Inc. is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, ...
LaserWriter The LaserWriter is a laser printer Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics (and moderate-quality photographs) by repeatedly passing a laser beam back and forth over a negatively ...
and the
HP LaserJet LaserJet as a brand name A brand is a name, term, design, symbol or any other feature that identifies one seller's good or service as distinct from those of other sellers. Brands are used in business Business is the activity of making o ...
. In 1981, Motorola introduced the Motorola 68000 Educational Computer Board, a single-board computer for educational and training purposes which in addition to the 68000 itself contained memory, I/O devices, programmable timer and wire-wrap area for custom circuitry. The board remained in use in US colleges as a tool for learning assembly programming until the early 1990s. In 1982, the 68000 received a minor update to its
instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
(ISA) to support
virtual memory In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "cre ...

virtual memory
and to conform to the
Popek and Goldberg virtualization requirements #REDIRECT Popek and Goldberg virtualization requirements #REDIRECT Popek and Goldberg virtualization requirements#REDIRECT Popek and Goldberg virtualization requirementsThe Popek and Goldberg virtualization requirements are a set of conditions suffi ...
. The updated chip is called the
68010 The Motorola MC68010 processor is a 16/32-bit microprocessor from Motorola, released in 1982 as the successor to the Motorola 68000. It fixes several small flaws in the 68000, and adds a few features. The 68010 is pin-compatible with the 68000, ...
. It also adds a new "loop mode" which speeds up small loops, and increases overall performance by about 10% at the same clock speeds. A further extended version, which exposes 31 bits of the address bus, was also produced in small quantities as the
68012 The Motorola MC68012 processor is a 16/32-bit microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The micro ...
. To support lower-cost systems and control applications with smaller memory sizes, Motorola introduced the 8-bit compatible , also in 1982. This is a 68000 with an 8-bit data bus and a smaller (20-bit) address bus. After 1982, Motorola devoted more attention to the
68020 The Motorola 68020 ("''sixty-eight-oh-twenty''", "''sixty-eight-oh-two-oh''" or "''six-eight-oh-two-oh''") is a 32-bit 32-bit microcomputers are computers in which 32-bit microprocessors are the norm. Range for storing integers A 32-bit reg ...
and
88000 The 88000 (m88k for short) is a RISC In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other ite ...
projects.


Second-sourcing

Several other companies were second-source manufacturers of the HMOS 68000. These included
Hitachi () is a Japanese multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, a sovereign ...

Hitachi
(HD68000), who shrank the feature size to 2.7 µm for their 12.5 MHz version,
Mostek Mostek was an integrated circuit manufacturer, founded in 1969 by L. J. Sevin, Louay E. Sharif, Richard L. Petritz and other ex-employees of Texas Instruments. Initially their products were manufactured in Worcester, Massachusetts, however by 1 ...
(MK68000), Rockwell (R68000),
Signetics Signetics was an American electronics manufacturer specifically established to make integrated circuit An integrated circuit or monolithic integrated circuit (also referred to as an IC, a chip, or a microchip) is a set of electronic circui ...
(SCN68000), Thomson/
SGS-Thomson STMicroelectronics is a French-Italian multinational electronics The field of electronics is a branch of physics and electrical engineering that deals with the emission, behaviour and effects of electrons The electron is a subatomic pa ...

SGS-Thomson
(originally EF68000 and later TS68000), and
Toshiba is a Japanese multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, a sovereign st ...
(TMP68000). Toshiba was also a second-source maker of the CMOS 68HC000 (TMP68HC000). Encrypted variants of the 68000, being the Hitachi FD1089 and FD1094, store decryption keys for opcodes and opcode data in battery-backed memory and were used in certain Sega arcade systems including
System 16 Sega is a Japanese multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, a so ...
to prevent piracy and illegal bootleg games.


CMOS versions

The 68HC000, the first
CMOS Complementary metal–oxide–semiconductor (CMOS, pronounced "see-moss"), also known as complementary-symmetry metal–oxide–semiconductor (COS-MOS), is a type of metal–oxide–semiconductor field-effect transistor The metal–oxide–se ...
version of the 68000, was designed by Hitachi and jointly introduced in 1985. Motorola's version is called the MC68HC000, while Hitachi's is the HD68HC000. The 68HC000 offers speeds of 8–20 MHz. Except for using CMOS circuitry, it behaved identically to the HMOS MC68000, but the change to CMOS greatly reduced its power consumption. The original HMOS MC68000 consumed around 1.35 
watt The watt (symbol: W) is a unit of power Power typically refers to: * Power (physics) In physics, power is the amount of energy transferred or converted per unit time. In the International System of Units, the unit of power is the watt, equa ...

watt
s at an ambient temperature of 25 , regardless of clock speed, while the MC68HC000 consumed only 0.13 watts at 8 MHz and 0.38 watts at 20 MHz. (Unlike CMOS circuits, HMOS still draws power when idle, so power consumption varies little with clock rate.) Apple selected the 68HC000 for use in the
Macintosh Portable Macintosh Portable is a portable computer , one of the first portable IBM PC compatible systems Image:MIT Suitcase Computer 1975.jpg, The MIT Suitcase Computer, MIT Digital Systems Laboratory, 1975 A portable computer is a computer designed ...

Macintosh Portable
. Motorola replaced the MC68008 with the MC68HC001 in 1990. This chip resembles the 68HC000 in most respects, but its data bus can operate in either 16-bit or 8-bit mode, depending on the value of an input pin at reset. Thus, like the 68008, it can be used in systems with cheaper 8-bit memories. The later evolution of the 68000 focused on more modern embedded control applications and on-chip peripherals. The 68EC000 chip and SCM68000 core remove the M6800 peripheral bus, and exclude the MOVE from SR instruction from user mode programs, making the 68EC000 and 68SEC000 the only 68000 CPUs not 100% object code compatible with previous 68000 CPUs when run in User Mode. When run in Supervisor Mode, there is no difference. In 1996, Motorola updated the standalone core with fully static circuitry, drawing only 2  µW in low-power mode, calling it the MC68SEC000. Motorola ceased production of the HMOS MC68000 and MC68008 in 1996, but its spin-off company
Freescale Semiconductor Freescale Semiconductor, Inc. was an American semiconductor A semiconductor material has an value falling between that of a , such as metallic copper, and an , such as glass. Its falls as its temperature rises; metals behave in the oppos ...
was still producing the MC68HC000, MC68HC001, MC68EC000, and MC68SEC000, as well as the MC68302 and MC68306 microcontrollers and later versions of the DragonBall family. The 68000's architectural descendants, the
680x0 The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and w ...
,
CPU32 The Freescale 683xx (formerly Motorola 683xx) is a family of compatible microcontroller A microcontroller (MCU for ''microcontroller unit'') is a small computer A computer is a machine that can be programmed to carry out sequences of a ...
, and
Coldfire The NXP ColdFire is a microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit An integrated circuit or monolithic integrated circuit (also refer ...
families, were also still in production. More recently, with the Sendai fab closure, all 68HC000, 68020, 68030, and 68882 parts have been discontinued, leaving only the 68SEC000 in production.


As a microcontroller core

Since being succeeded by "true" 32-bit microprocessors, the 68000 is used as the core of many
microcontroller A microcontroller (MCU for ''microcontroller unit'') is a small computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets o ...

microcontroller
s. In 1989, Motorola introduced the MC68302 communications processor.


Applications

At its introduction, the 68000 was first used in high-priced systems, including multiuser
microcomputer A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit (CPU). It includes a microprocessor, Computer memory, memory and minimal input/output (I/O) circuitry mounted on a single printed ci ...
s like the WICAT 150, early
Alpha Microsystems Alpha Microsystems is a computer company founded in 1977 by John French, Dick Wilcox and Bob Hitchcock. Products The first Alpha Micro computer was the S-100 AM-100, based upon the WD16 microprocessor chipset from Western Digital West ...
computers, Sage II / IV, Tandy 6000 /
TRS-80 Model 16 The TRS-80 Model II is a computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as ...
, and Fortune 32:16; single-user
workstation A workstation is a special computer designed for technical or scientific Science () is a systematic enterprise that Scientific method, builds and organizes knowledge in the form of Testability, testable explanations and predictions about ...

workstation
s such as
Hewlett-Packard The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company headquartered in Palo Alto, California Palo Alto (; Spanish language, Spanish for "tall stick" ...

Hewlett-Packard
's
HP 9000 HP 9000 is a line of workstation A workstation is a special computer designed for technical or computational science, scientific applications. Intended primarily to be used by one person at a time, they are commonly connected to a local area ...
Series 200 systems, the first Apollo/Domain systems,
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations automatically. M ...
'
Sun-1 Sun-1 was the first generation of UNIX Unix (; trademarked as UNIX) is a family of multitasking, multiuser Multi-user software is computer software Software is a collection of Instruction (computer science), instructions and data (compu ...
, and the Corvus Concept; and graphics terminals like
Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the trademark A trademark (also written trade mark or trade-mark) is a type of intellectual property Intellectual property (IP) is a category of property Property is a system of rights ...
's
VAXstation The VAXstation is a discontinued family of workstation A workstation is a special computer designed for technical or computational science, scientific applications. Intended primarily to be used by one person at a time, they are commonly conn ...
100 and
Silicon Graphics Silicon Graphics, Inc. (stylized as ''SiliconGraphics'' before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing A supercomputer is a computer with a hig ...
' IRIS 1000 and 1200.
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser Multi-user software is computer software Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is in contrast t ...

Unix
systems rapidly moved to the more capable later generations of the 68k line, which remained popular in that market throughout the 1980s. By the mid-1980s, falling production cost made the 68000 viable for use in personal and
home computer Home computers were a class of microcomputers that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a s ...

home computer
s, starting with the
Apple Lisa Lisa is a desktop computer A desktop computer is a personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be o ...

Apple Lisa
and
Macintosh The Macintosh (mainly Mac since 1998) is a family of personal computer A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be op ...

Macintosh
, and followed by the
Commodore Commodore may refer to: Ranks * Commodore (rank) Commodore is a senior naval rank used in many navies which is equivalent to brigadier and air commodore that is superior to a navy captain, but below a rear admiral. It is either regarded as ...
Amiga The Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of computers with 16 or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly im ...

Amiga
,
Atari ST The Atari ST is a line of home computer Home computers were a class of s that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, we ...
, and X68000, Sharp X68000. On the other hand, the Sinclair QL microcomputer was the most commercially important utilisation of the 68008, along with its derivatives, such as the ICL One Per Desk business terminal. Helix Systems (in Missouri, United States) designed an extension to the SWTPC SS-50 bus, the SS-64, and produced systems built around the 68008 processor. While the adoption of RISC and x86 displaced the 68000 series as desktop/workstation CPU, the processor found substantial use in Embedded system, embedded applications. By the early 1990s, quantities of 68000 CPUs could be purchased for less than 30 United States dollar, USD per part. Video game manufacturers used the 68000 as the backbone of many arcade games and home Video game console, game consoles: Atari's ''Food Fight (video game), Food Fight'', from 1982, was one of the first 68000-based arcade games. Others included Sega's Sega System 16, System 16, Capcom's CP System and CP System II, CPS-2, and SNK's Neo Geo (system), Neo Geo. By the late 1980s, the 68000 was inexpensive enough to power home game consoles, such as Sega's Sega Genesis, Mega Drive/Genesis console and also the Mega CD attachment for it (A Mega CD system has three CPUs, two of them 68000s). The 1993 multi-processor Atari Jaguar console used a 68000 as a support chip, although some developers used it as the primary processor due to familiarity. The 1994 multi-processor Sega Saturn console used the 68000 as a sound co-processor (much as the Mega Drive/Genesis uses the Zilog Z80, Z80 as a co-processor for sound and/or other purposes). By 1995 the 68000 had made it into a handheld game console, Sega's Genesis Nomad, as its main CPU. Certain arcade games (such as ''Steel Gunner'' and others based on Namco System 2) use a dual 68000 CPU configuration, and systems with a triple 68000 CPU configuration also exist (such as ''Galaxy Force (video game), Galaxy Force'' and others based on the Sega Y Board), along with a quad 68000 CPU configuration, which has been used by Jaleco (one 68000 for sound has a lower clock rate compared to the other 68000 CPUs) for games such as ''Big Run (arcade game), Big Run'' and ''Cisco Heat''; another, fifth 68000 (at a different clock rate than the other 68000 CPUs) was used in the Jaleco arcade game ''Wild Pilot'' for input/output (I/O) processing. The 68000 also saw great success as an embedded controller. As early as 1981,
laser printer Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics (and moderate-quality photographs) by repeatedly passing a laser beam back and forth over a negatively Electric charge, charged cylinder call ...

laser printer
s such as the Imagen Imprint-10 were controlled by external boards equipped with the 68000. The first
HP LaserJet LaserJet as a brand name A brand is a name, term, design, symbol or any other feature that identifies one seller's good or service as distinct from those of other sellers. Brands are used in business Business is the activity of making o ...
, introduced in 1984, came with a built-in 8 MHz 68000. Other printer manufacturers adopted the 68000, including Apple with its introduction of the
LaserWriter The LaserWriter is a laser printer Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics (and moderate-quality photographs) by repeatedly passing a laser beam back and forth over a negatively ...
in 1985, the first PostScript laser printer. The 68000 continued to be widely used in printers throughout the rest of the 1980s, persisting well into the 1990s in low-end printers. The 68000 also saw success in the field of industrial control systems. Among the systems benefited from having a 68000 or derivative as their microprocessor were families of programmable logic controllers (PLCs) manufactured by Allen-Bradley, Texas Instruments and subsequently, following the acquisition of that division of TI, by Siemens. Users of such systems do not accept product obsolescence at the same rate as domestic users, and it is entirely likely that despite having been installed over 20 years ago, many 68000-based controllers will continue in reliable service well into the 21st century. In a number of Digital storage oscilloscope, digital oscilloscopes from the 80s, the 68000 has been used as a waveform display processor; some models including the LeCroy Corporation, LeCroy 9400/9400A also use the 68000 as a waveform math processor (including addition, subtraction, multiplication, and division of two waveforms/references/waveform memories), and some digital oscilloscopes using the 68000 (including the 9400/9400A) can also perform fast Fourier transform functions on a waveform. The Freescale 683XX, 683XX microcontrollers, based on the 68000 architecture, are used in networking and telecom equipment, television set-top boxes, laboratory and medical instruments, and even handheld calculators. The MC68302 and its derivatives have been used in many telecom products from Cisco, 3com, Ascend, Marconi, Cyclades and others. Past models of the Palm (PDA), Palm PDAs and the Handspring Visor used the DragonBall, a derivative of the 68000. AlphaSmart used the DragonBall family in later versions of its portable word processors. Texas Instruments used the 68000 in its high-end graphing calculators, the TI-89 and TI-92 series and TI-92#Voyage 200, Voyage 200. A modified version of the 68000 formed the basis of the PC-based IBM-compatible mainframes, IBM XT/370 hardware emulator of the System 370 processor.


Architecture


Address bus

The 68000 has a 24-bit external address bus and two byte-select signals "replaced" A0. These 24 lines can therefore address 16 MB of physical memory with byte resolution. Address storage and computation uses 32 bits internally; however, the 8 high-order address bits are ignored due to the physical lack of device pins. This allows it to run software written for a logically flat 32-bit address space, while accessing only a 24-bit physical address space. Motorola's intent with the internal 32-bit address space was forward compatibility, making it feasible to write 68000 software that would take full advantage of later 32-bit implementations of the 68000 instruction set. However, this did not prevent programmers from writing forward incompatible software. "24-bit" software that discarded the upper address byte, or used it for purposes other than addressing, could fail on 32-bit 68000 implementations. For example, early (pre-7.0) versions of Apple's Classic Mac OS, Mac OS used the high byte of memory-block master pointers to hold flags such as ''locked'' and ''purgeable''. Later versions of the OS moved the flags to a nearby location, and Apple began shipping computers which had "32-bit clean" ROMs beginning with the release of the 1989 Mac IIci. The 68000 family stores multi-byte integers in memory in endianness, big-endian order.


Internal registers

The Central processing unit, CPU has eight 32-bit general-purpose data processor register, registers (D0-D7), and eight address registers (A0-A7). The last address register is the stack (data structure), stack pointer, and assemblers accept the label SP as equivalent to A7. This was a good number of registers at the time in many ways. It was small enough to allow the 68000 to respond quickly to interrupts (even in the worst case where all 8 data registers D0–D7 and 7 address registers A0–A6 needed to be saved, 15 registers in total), and yet large enough to make most calculations fast, because they could be done entirely within the processor without keeping any partial results in memory. (Note that an exception routine in supervisor mode can also save the user stack pointer A7, which would total 8 address registers. However, the dual stack pointer (A7 and supervisor-mode A7') design of the 68000 makes this normally unnecessary, except when a task switch is performed in a multitasking system.) Having the two types of registers allows one 32-bit address and one 16-bit data calculation to take place at the one time. This results in reduced instruction execution time as addresses and data can be processed in parallel.


Status register

The 68000 has a 16-bit status register. The upper 8 bits is the system byte, and modification of it is privileged. The lower 8 bits is the user byte, also known as the condition code register (CCR), and modification of it is not privileged. The 68000 comparison, arithmetic, and logic operations modify condition codes to record their results for use by later conditional jumps. The condition code bits are "zero" (Z), "carry" (C), "overflow" (V), "extend" (X), and "negative" (N). The "extend" (X) flag deserves special mention, because it is separate from the carry flag. This permits the extra bit from arithmetic, logic, and shift operations to be separated from the carry for flow-of-control and linkage.


Instruction set

The designers attempted to make the assembly language Orthogonal instruction set, orthogonal. That is, instructions are divided into operations and Addressing mode, address modes, and almost all address modes are available for almost all instructions. There are 56 instructions and a minimum instruction size of 16 bits. Many instructions and addressing modes are longer to include more address or mode bits.


Privilege levels

The CPU, and later the whole family, implements two levels of privilege. User mode gives access to everything except privileged instructions such as interrupt level controls. Supervisor privilege gives access to everything. An interrupt always becomes supervisory. The supervisor bit is stored in the status register, and is visible to user programs. An advantage of this system is that the supervisor level has a separate stack pointer. This permits a computer multitasking, multitasking system to use very small stacks for tasks, because the designers do not have to allocate the memory required to hold the stack frames of a maximum stack-up of interrupts.


Interrupts

The CPU recognizes seven interrupt levels. Levels 1 through 5 are strictly prioritized. That is, a higher-numbered interrupt can always interrupt a lower-numbered interrupt. In the status register, a privileged instruction allows setting the current minimum interrupt level, blocking lower or equal priority interrupts. For example, if the interrupt level in the status register is set to 3, higher levels from 4 to 7 can cause an exception. Level 7 is a level triggered non-maskable interrupt (NMI). Level 1 can be interrupted by any higher level. Level 0 means no interrupt. The level is stored in the status register, and is visible to user-level programs. Hardware interrupts are signalled to the CPU using three inputs that encode the highest pending interrupt priority. A separate encoder is usually required to encode the interrupts, though for systems that do not require more than three hardware interrupts it is possible to connect the interrupt signals directly to the encoded inputs at the cost of more software complexity. The interrupt controller can be as simple as a 7400-series integrated circuits, 74LS148 priority encoder, or may be part of a Very Large Scale Integration, very large-scale integration (VLSI) peripheral chip such as the MC68901 Multi-Function Peripheral (used in the
Atari ST The Atari ST is a line of home computer Home computers were a class of s that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, we ...
range of computers and Sharp X68000), which also provides a UART, timer, and parallel I/O. The "exception table" (interrupt vector table interrupt vector addresses) is fixed at addresses 0 through 1023, permitting 256 32-bit vectors. The first vector (RESET) consists of two vectors, namely the starting stack address, and the starting code address. Vectors 3 through 15 are used to report various errors: bus error, address error, illegal instruction, zero division, CHK and CHK2 vector, privilege violation (to block privilege escalation), and some reserved vectors that became line 1010 emulator, line 1111 emulator, and hardware breakpoint. Vector 24 starts the real interrupts: spurious interrupt (no hardware acknowledgement), and level 1 through level 7 autovectors, then the 16 TRAP vectors, then some more reserved vectors, then the user defined vectors. Since the starting code address vector must always be valid on reset, systems commonly included some nonvolatile memory (e.g. Read-only memory, ROM) starting at address zero to contain the vectors and booting, bootstrap code. However, for a general purpose system it is desirable for the operating system to be able to change the vectors at runtime. This was often accomplished by either pointing the vectors in ROM to a Branch table, jump table in Random Access Memory, RAM, or through use of bank switching to allow the ROM to be replaced by RAM at runtime. The 68000 does not meet the
Popek and Goldberg virtualization requirements #REDIRECT Popek and Goldberg virtualization requirements #REDIRECT Popek and Goldberg virtualization requirements#REDIRECT Popek and Goldberg virtualization requirementsThe Popek and Goldberg virtualization requirements are a set of conditions suffi ...
for full processor virtualization because it has a single unprivileged instruction, "MOVE from SR", which allows user-mode software read-only access to a small amount of privileged state. The 68EC000 and 68SEC000, which are later derivatives of the 68000, do meet the requirements as the "MOVE from SR" instruction is privileged. The same change was introduced on the 68010 and later CPUs. The 68000 is also unable to easily support
virtual memory In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "cre ...

virtual memory
, which requires the ability to trap and recover from a failed memory access. The 68000 does provide a bus error exception which can be used to trap, but it does not save enough processor state to resume the faulted instruction once the operating system has handled the exception. Several companies did succeed in making 68000-based Unix workstations with virtual memory that worked by using two 68000 chips running in parallel on different phased clocks. When the "leading" 68000 encountered a bad memory access, extra hardware would interrupt the "main" 68000 to prevent it from also encountering the bad memory access. This interrupt routine would handle the virtual memory functions and restart the "leading" 68000 in the correct state to continue properly synchronized operation when the "main" 68000 returned from the interrupt. These problems were fixed in the next major revision of the 68k architecture with the release of the MC68010. The Bus Error and Address Error exceptions push a large amount of internal state onto the supervisor stack in order to facilitate recovery, and the "MOVE from SR" instruction was made privileged. A new unprivileged "MOVE from CCR" instruction is provided for use in its place by user mode software; an operating system can trap and emulate user mode "MOVE from SR" instructions if desired.


Instruction set details

The standard addressing modes are: *Register direct **data register, e.g. "D0" **address register, e.g. "A0" *Register indirect **Simple address, e.g. (A0) **Address with post-increment, e.g. (A0)+ **Address with pre-decrement, e.g. −(A0) **Address with a 16-bit signed offset, e.g. 16(A0) **Register indirect with index register & 8-bit signed offset e.g. 8(A0,D0) or 8(A0,A1) *:Note that for (A0)+ and −(A0), the actual increment or decrement value is dependent on the operand size: a byte access adjusts the address register by 1, a word by 2, and a long by 4. *PC (program counter) relative with displacement **Relative 16-bit signed offset, e.g. 16(PC). This mode was very useful for position-independent code. **Relative with 8-bit signed offset with index, e.g. 8(PC,D2) *Absolute memory location **Either a number, e.g. "$4000", or a symbolic name translated by the assembler **Most 68000 assemblers used the "$" symbol for hexadecimal, instead of "0x" or a trailing H. **There were 16 and 32-bit versions of this addressing mode *Immediate mode **Data stored in the instruction, e.g. "#400" *Quick immediate mode **3-bit unsigned (or 8-bit signed with moveq) with value stored in opcode **In addq and subq, 0 is the equivalent to 8 **e.g. moveq #0,d0 was quicker than clr.l d0 (though both made D0 equal to 0) Plus: access to the status register, and, in later models, other special registers. Most instructions have dot-letter suffixes, permitting operations to occur on 8-bit bytes (".b"), 16-bit words (".w"), and 32-bit longs (".l"). Like many CPUs of its era the cycle timing of some instructions varied depending on the source operand(s). For example, the unsigned multiply instruction takes (38+2n) clock cycles to complete where 'n' is equal to the number of bits set in the operand. To create a function that took a fixed cycle count required the addition of extra code after the multiply instruction. This would typically consume extra cycles for each bit that wasn't set in the original multiplication operand. Most instructions are wikt:dyadic, dyadic, that is, the operation has a source, and a destination, and the destination is changed. Notable instructions were: *Arithmetic: ADD, SUB, MULU (unsigned multiply), MULS (signed multiply), DIVU, DIVS, NEG (additive negation), and CMP (a sort of comparison done by subtracting the arguments and setting the status bits, but did not store the result) *Binary-coded decimal arithmetic: ABCD, NBCD, and SBCD *Logic: EOR (exclusive or), AND, NOT (logical not), OR (inclusive or) *Shifting: (logical, i.e. right shifts put zero in the most-significant bit) LSL, LSR, (arithmetic shifts, i.e. sign-extend the most-significant bit) ASR, ASL, (rotates through eXtend and not) ROXL, ROXR, ROL, ROR *Bit test and manipulation in memory or data register: BSET (set to 1), BCLR (clear to 0), BCHG (invert) and BTST (no change). All of these instructions first test the destination bit and set (clear) the CCR Z bit if the destination bit is 0 (1), respectively. *Multiprocessing control: TAS, test-and-set, performed an indivisible bus operation, permitting semaphore (programming), semaphores to be used to synchronize several processors sharing a single memory *Flow of control: JMP (jump), JSR (jump to subroutine), BSR (relative address jump to subroutine), RTS (return from subroutine), RTE (return from Interrupt, exception, i.e. an interrupt), TRAP (trigger a software exception similar to software interrupt), CHK (a conditional software exception) *Branch: Bcc (where the "cc" specified one of 14 tests of the condition codes in the status register: equal, greater than, less-than, carry, and most combinations and logical inversions, available from the status register). The remaining two possible conditions (always true and always false) have separate instruction mnemonics, BRA (branch always), and BSR (branch to subroutine). *Decrement-and-branch: DBcc (where "cc" was as for the branch instructions), which, provided the condition was false, decremented the low word of a D-register and, if the result was not -1 ($FFFF), branched to a destination. This use of −1 instead of 0 as the terminating value allowed the easy coding of loops that had to do nothing if the count was 0 to start with, with no need for another check before entering the loop. This also facilitated nesting of DBcc.


68EC000

The 68EC000 is a low-cost version of the 68000 with a slightly different pinout, designed for embedded controller applications. The 68EC000 can have either a 8-bit or 16-bit Bus (computing), data bus, switchable at reset. The processors are available in a variety of speeds including 8 and 16 MHz configurations, producing 2,100 and 4,376 Dhrystones each. These processors have no floating-point unit, and it is difficult to implement an FPU coprocessor (Motorola 68881, MC68881/2) with one because the EC series lacks necessary coprocessor instructions. The 68EC000 was used as a controller in many audio applications, including Ensoniq musical instruments and sound cards, where it was part of the Musical Instrument Digital Interface, MIDI synthesizer.Soundscape Elite Specs. from Fax Sheet
Google Groups, April 25, 1995.
On Ensoniq sound boards, the controller provided several advantages compared to competitors without a CPU on board. The processor allowed the board to be configured to perform various audio tasks, such as MPU-401 MIDI synthesis or Roland MT-32, MT-32 emulation, without the use of a terminate-and-stay-resident program. This improved software compatibility, lowered CPU usage, and eliminated host system memory usage. The Motorola 68EC000 core was later used in the m68k-based DragonBall processors from Motorola/Freescale. It also was used as a sound controller in the Sega Saturn game console and as a controller for the Hewlett-Packard, HP JetDirect Ethernet controller boards for the mid-1990s
HP LaserJet LaserJet as a brand name A brand is a name, term, design, symbol or any other feature that identifies one seller's good or service as distinct from those of other sellers. Brands are used in business Business is the activity of making o ...
printers.


Example code

The 68000 assembly language, assembly code below is for a subroutine named , which copies a null-terminated string of 8-bit characters to a destination string, converting all alphabetic characters to lower case. The subroutine establishes a call frame using register A6 as the frame pointer. This kind of calling convention supports reentrancy (computing), reentrant and recursion (computer science), recursive code and is typically used by languages like C (programming language), C and C++. The subroutine then retrieves the parameters passed to it ( and ) from the stack. It then loops, reading an ASCII character (one byte) from the string, checking whether it is a capital alphabetic character, and if so, converting it into a lower-case character, otherwise leaving it as it is, then writing the character into the string. Finally, it checks whether the character was a null character; if not, it repeats the loop, otherwise it restores the previous stack frame (and A6 register) and returns. Note that the string pointers (registers A0 and A1) are auto-incremented in each iteration of the loop. In contrast, the code below is for a stand-alone function, even on the most restrictive version of AMS for the TI-89 series of calculators, being kernel-independent, with no values looked up in tables, files or libraries when executing, no system calls, no exception processing, minimal registers to be used, nor the need to save any. It is valid for historical Julian calendar, Julian dates from 1 March 1 AD, or for Gregorian calendar, Gregorian ones. In less than two dozen operations it calculates a day number compatible with ISO 8601#Week dates, ISO 8601 when called with three inputs stored at their corresponding LOCATIONS: ; ; WDN, an address - for storing result d0 ; FLAG, 0 or 2 - to choose between Julian or Gregorian, respectively ; DATE, year0mda - date stamp as binary word&byte&byte in basic ISO-format ;(YEAR, year ~ YEAR=DATE due to big-Endianness#Current_architectures, endianness) ; move.l DATE,d0 move.l d0,d1 ; ; Apply step 1 - SuperBASIC#Example, Lachman's congruence andi.l #$f00,d0 divu #100,d0 addi.w #193,d0 andi.l #$ff,d0 divu #100,d0 ; d0 has the month index i in the upper word (mod 100) ; ; Apply step 2 - Using spqr as the Julian year of the leap day preceding DATE swap d0 andi.l #$ffff,d0 add.b d1,d0 add.w YEAR,d0 subi.l #$300,d1 lsr #2,d1 swap d1 add.w d1,d0 ; spqr/4 + year + i + da ; ; (Apply step 0 - Gregorian adjustment) mulu FLAG,d1 divu #50,d1 mulu #25,d1 lsr #2,d1 add.w d1,d0 add.w FLAG,d0 ; (sp32div16) + spqr/4 + year + i + da ; divu #7,d0 swap d0 ; d0.w becomes the day number ; move.w d0,WDN ; returns the day number to address WDN rts ; ; Days of the week correspond to day numbers of the week as: ; Sun=0 Mon=1 Tue=2 Wed=3 Thu=4 Fri=5 Sat=6 ;


See also

*
Motorola 68000 series The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and w ...
*
Motorola 6800 The 6800 ("''sixty-eight hundred''") is an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface integrated c ...

Motorola 6800
– an 8-bit predecessor * DTACK Grounded – an early 68000 newsletter


References


Further reading

;Datasheets and manuals
''M68000 Microprocessor Users Manual (9th Edition)''
Motorola (Freescale); 224 pages; 1996.
''Addendum to M68000 User Manual (Rev 0)''
Motorola (Freescale); 26 pages; 1997.
''M68000 Family Programmer's Reference Manual''
Motorola (Freescale); 646 pages; 1991; . ;Books * ''68000, 68010, 68020 Primer''; 1st Ed; Stan Kelly-Bootle and Bob Fowler; Howard Sams & Co; 370 pages; 1985; . (archive)
/small> * ''Mastering The 68000 Microprocessor''; 1st Ed; Phillip Robinson; Tab Books; 244 pages; 1985; . (archive)
/small> * ''Pocket Guide Assembly Language for the 68000 Series''; 1st Ed; Robert Erskine; Pitman Publishing; 70 pages; 1984; . (archive)
/small> * ''Motorola M68000 die schematics'

*''68000 Machine Code Programming (68000, 68008, 68010, & 68020 Processors);'' 1st Ed; David Barrow; Collins Professional and Technical Books; 234 pages; 1985; .


External links


comp.sys.m68k FAQ

Descriptions of assembler instructions

68000 images and descriptions at cpu-collection.de

EASy68K
an open-source 68k assembler for Windows
the 68k and m88k resource
– with information on Motorola's VME based 68k boards {{Authority control 68k microprocessors Instruction set architectures Computer-related introductions in 1979 32-bit microprocessors