The 6800 is an 8-bit microprocessor produced by Motorola and released shortly after the Intel 8080 in late 1974. It had 78 instructions, including the (in)famous, undocumented Halt and Catch Fire (HCF) bus test instruction. It may have been the first microprocessor with an index register.
It was usually packaged in a 40 pin DIP (dual-inline package).
Several first-generation microcomputers of the 1970s, available by mail order as kits or in assembled form, used the 6800 as their CPU; examples are the MEK6800D2 development board, the SWTPC 6800 (the first computer to use the 6800), the MITS Altair 680 range (MITS offered these as alternatives to its Altair 8800 which used the Intel 8080), several of the Ohio Scientific designs, Gimix, Smoke Signal Broadcasting, Midwest Scientific, and the Newbear 77/68.
The 4051, a professional grade desktop graphical system intended for user programming in BASIC, was manufactured and sold by Tektronix. This integrated a 6800 processor, memory card, storage display tube, keyboard, and magnetic tape cassette in a single unit and employed an external thermal imaging printer for hard copy.
The 6800 'fathered' several descendants, the pinnacle being the greatly extended and semi-compatible 6809, which was used in the Vectrex video game console and the TRS-80 Color Computer, among several others. There are also many microcontrollers descended from the 6800 architecture, such as the Motorola 6801/6803, 6805, RS08, 68HC08, 68HC11 and 68HC12.
Hitachi, Ltd. acted as a second source for many of Motorola's CPUs, and also produced its own derivatives including the 6301 and 6303, which could run 6800 code. These microprocessors also had a couple of extra instructions added to their instruction sets.
Competitor MOS Technology came up with an architectural relative of the 6800, with its 6502 ('lawsuit compatible' MPU) and its successors. The 6502 did not have the 16 bit registers of the 6800, but had more addressing modes and was substantially cheaper. The 6502 was used in many computers and game consoles during the late 1970s and early-to-mid-1980s (most notably the Atari 2600, Apple II, the Commodore PET, VIC-20 and Commodore 64, the Acorn Electron/BBC Microcomputer, and the Nintendo Entertainment System/NES).
The 6800 was supplanted by the Motorola 68000, used in large numbers in the Apple Macintosh family before the introduction of the PowerPC, a RISC technology developed by IBM and produced jointly with Motorola.
A - Accumulator A
B - Accumulator B
X - Index register
PC - Program Counter
SP - Stack Pointer
CCR - Conditional Code Register: Half carry, Interrupt mask, Negative, Zero, oVerflow and Carry
The 6800 is a standard "8-bit" 2's complement microprocessor, like the Intel 8080. It supports 8-bit bytes, 16-bit addresses and 64KB of memory. Like the 8080, code can be placed in ROM. This is an important feature compared to some of the minicomputers of the time, especially the PDP-8, which used a linked-list embedded in the code for subroutine linkage.
The 6800 had a 16-bit stack pointer, so the stack can be located anywhere and can grow to any length up to the size of the memory. Compare this with the 6502 which had only an 8-bit stack pointer and which mapped the stack into the second page (addresses 256 - 511).
Like the 8080, the 6800 supports multi-precision arithmetic using a carry flag and the ADC (add with carry) and SBC (subtract with carry) instructions. Decimal arithmetic is supported in a fashion similar to the 8080: there is a DAA (decimal adjust accumulator) instruction, which corrects the result of the 2's complement ADD on two packed decimal digits. Unlike the 6502, the 6800 also provided add and subtract without carry (ADD and SUB instructions).
Arithmetic instructions set the usual 2's complement flags: Sign, Zero, oVerflow and Carry. Unlike the 8080 and the 6502, the 6800 had a complete set of branch instructions, basically identical to those provided on the PDP-11, for comparing both signed and unsigned quantities. For example, if you want to compare i with j, then load i into an accumulator (LDAA i), compare or subtract with j (CMPA j or SUBA j) and then branch:
Unlike the 8080, the 6800 had indexing, which allowed it to directly support data structures. The base address of a data structure is loaded into the index register, and then an 8-bit unsigned offset from the second byte of indexing instructions is added to it to read different items from the structure.
The 6800 had four addressing modes: immediate, indexed, extended and direct (or zero-page). The zero-page mode allows faster direct access to the first 256 bytes of memory and is similar to the zero-page mode of the PDP-8. The zero-page can be thought of as an extension of the register set, an idea taken much further with the zero-page indirect modes of the 6502.
The instruction set mnemonics owe a great deal to the PDP-11, and are burned into the brains of many assembly language programmers and computer architects. Many CPUs, including the ARM remained close to the form of the 6800 mnemonics.
Like the 8080, the 6800 defines a bus and was the center of a family of peripheral ICs, see the table below.
The bus was particularly simple: peripherals generally needed just three control signals in addition to the address and data lines:
The bus was clocked: setup and hold times are relative to falling edge of clock E. The 8080 bus was strobe signal based: setup and hold times are specified relative to the rising edges of MEM_RD, MEM_WR, IO_RD and IO_WR, which are signals generated by the 8228 system controller chip.
Like the 4004, 4040, 8008, and 8080, the 6800 required two non-overlapping clock inputs: Φ1 and Φ2. The clocks must not overlap to prevent races in transparent latch-based designs: latches which feed each other must not both be transparent at the same time. The 6800 used dynamic logic: the maximum high time for Φ1 and Φ2 was 9.5 μs. Several companion chips were available to generate these clocks: the MC6870 (built-in crystal), MC6871 (built-in crystal with clock stretching logic for slow devices) and MC6875 (external crystal, clock stretching and reset synchronizer).
The MC6802 was a 6800 with a built-in clock generator. A crystal could be directly connected to the chip. The MC6802 also had 128 bytes of RAM built-in and was intended to be used with an MC6846 for a complete two-chip microcomputer.
The 6800 required just a single 5V supply. This made it more appealing than the 8080, which required +12V, +5V and -5V.
Bill Mensch designed the MC6820.
Silicon Legends; Many Processors Have Changed the World, but Which Ones Have Been Most Influential? Mike Bedford Investigates. .
Nov 17, 2010; Almost 40 years ago, Intel announced "a new era of integrated electronics" with the advent of the 4004 processor. While this...