Changes

Intel 8080

3,062 bytes added, 2 May
[[File:Intel 8080 open-closed.jpg|thumb|right|Intel 8080]]
[[File:KL Intel C8008-1.jpg|thumb|right|Intel 8008]]
 
The '''Intel 8080''' is a seminal CPU introduced in 1974 that gave rise to the personal computer/home computer/microcomputer revolution.
==History==
The 8080 is often said to be the "first truly usable microprocessor". Its This CPU is 10 times faster than its predecessor, the first 8-bit microprocessor [[Intel 8008]], had a rigid seven-level address call stack instead of a flexible Stack Pointerissued in 1972. The 8008 instruction set was itself based on the CPU board, built out of dozens of TTL chips, of the Datapoint 2200 computer. [https://www.righto.com/2023/08/datapoint-to-8086.html Source]
Despite what its naming suggestsThe 8008 had, the Intel among other limitations, a rigid seven-level address call stack instead of a flexible Stack Pointer. The 8008 instruction set was developed independently itself based on the CPU board, built out of dozens of TTL chips, of the Datapoint 2200 computer. [[Intel 4004]]https://www. They were separate projects with distinct architectures and purposes, not a progression or derivative of one anotherrighto.com/2023/08/datapoint-to-8086.html Source]
See: [https://www.righto.com/2016/12/die-photos-Despite what their naming suggest, the Intel 8008 and-analysis-of_24.html Die photos and analysis] [https://www.righto.com/2017/02/reverse-engineering-surprisingly.html The ALU] [https://wwwIntel 4004]] were separate projects with distinct architectures and purposes.righto.com/2017/03/analyzing-vintage-The 8008-processor-fromwas not an upgrade or evolution of the 4004.html The counters] [https://wwwdie shot of the 4004 reveals the initials FF of the chip designer, Federico Faggin.righto.com/2020/11/reverse-engineering-carry-lookahead.html The carry lookahead circuit] Reverse engineering die shot of the 8008 microprocessorreveals the initials HF of the chip designer, Hal Feeney.
Fun factSee: Before microprocessors were invented, there was already ALU chips, like the 74181 ALU chip, that were used in CPU boards. [https://www.righto.com/20172016/0112/die-photos-and-analysis-of_24.html Die photos and analysis] [https://www.righto.com/2017/02/reverse-engineering-surprisingly.html Source The ALU][https://www.righto.com/2017/03/analyzing-vintage-8008-processor-from.html The counters] [https://www.righto.com/2020/11/reverse-engineering-carry-lookahead.html The carry-lookahead circuit] 8008 microprocessor reverse engineered
Fun fact: Before microprocessors were invented, there was already ALU chips, like the 74181 ALU chip, that were used in CPU boards [https://www.righto.com/2017/01/die-photos-and-reverse-engineering.html Source]. And creating a 16-bit ALU was just a matter of combining four 74181 ALU chips with a 74182 lookahead carry chip. [http://www.6502.org/users/dieter/a7/a7_3.htm Source].
<br>
===Technology===
The 8008 was built with PMOS circuitry, while the 8080 was built with NMOS, which provided much superior performance.
<br>
===Compatibility===
The 8080 is not binary-compatible with the 8008 because almost all the instructions were shifted to different opcodes.
[[CP/M]] required an 8080, 8085 or Z80 CPU and between 1976 and about 1983, microcomputers with a Z80 that ran CP/M were the norm before the market shifted to MS-DOS.
 
<br>
 
== Register File ==
 
{| class="wikitable" style="white-space: nowrap;"
! Register !! Size !! Description !! Notes
|-
| B, C, D, E, H, L || 8-bit || General-purpose registers || Can be used individually or as 16-bit pairs: BC, DE, HL
|-
| A (Accumulator) || 8-bit || Primary register for arithmetic, logic, and data transfer operations || Often the destination or source for operations
|-
| F (Flags) || 8-bit || Status flags reflecting results of operations:
* bit7 - SF - Sign Flag
* bit6 - ZF - Zero Flag
* bit5 - 0 (Fixed)
* bit4 - HF - Auxiliary Carry Flag
* bit3 - 0 (Fixed)
* bit2 - PF - Parity Flag
* bit1 - 1 (Fixed)
* bit0 - CF - Carry Flag
|| HF is used for BCD arithmetic (DAA instruction).
The accumulator and the flags together are called the PSW, or program status word.
 
PSW can be pushed to or popped from the stack.
|-
| SP (Stack Pointer) || 16-bit || Points to the top of the stack || Used for PUSH, POP, CALL, RET instructions
|-
| PC (Program Counter) || 16-bit || Points to the memory address of the next instruction byte to be fetched || Increments automatically after fetching instruction bytes
|}
 
<br>
 
== Instruction Cycle ==
 
Just like the Z80, the 8080 is composed of M-cycles and T-states.
 
Each ctock period marks a state; 3 to 5 states constitute a machine cycle; and 1 to 5 machine cycles comprise an instruction cycle.
 
A full instruction cycle requires anywhere from 4 to 18 states for its completion, depending on the kind of instruction involved.
 
{| class="wikitable"
|+ T-state Definitions
|-
! T-state !! Description
|-
| T1
| A memory address or I/O device number is placed on the Address Bus (A<sub>15-0</sub>); status information is placed on Data Bus (D<sub>7-0</sub>).
|-
| T2
| The CPU samples the READY and HOLD inputs and checks for halt instruction.
|-
| TW (optional)
| Processor enters wait state if READY is low or if HALT instruction has been executed.
|-
| T3
| An instruction byte (FETCH machine cycle), data byte (MEMORY READ, STACK READ) or interrupt instruction (INTERRUPT machine cycle) is input to the CPU from the Data Bus; or a data byte (MEMORY WRITE, STACK WRITE or OUTPUT machine cycle) is output onto the data bus.
|-
| T4, T5 (optional)
| States T4 and T5 are available if the execution of a particular instruction requires them; if not, the CPU may skip one or both of them. T4 and T5 are only used for internal processor operations.
|}
 
See this [[Media:Intel 8080 details.pdf|Intel 8080 document]], containing a detailed breakdown of M-cycles and T-states.
 
<br>
 
== Block Diagram ==
 
[[File:Intel 8080 block diagram.png|800px]]
<br>
==Evolution==
The 8080 ultimately led to the machine code-compatible, but more powerful clone Zilog [[Z80]], which was of course also used in the Amstrad [[CPC]] and Sinclair [[ZX Spectrum]] among others. (Note that 8080  However, because Intel claimed a copyright on their assembly language looks different from Z80 mnemonics; , Zilog had to develop a new assembly syntax for the Z80 (e.g. the Z80 uses <tt>LD</tt> whereas the 8080 has <tt>MOV</tt> and several other commands.). See [https://popolony2k.com.br/xtras/programming/asm/nemesis-lonestar/8080-z80-instruction-set.html Mapping between i8080 and Z80 mnemonics]
Meanwhile Intel produced the 8085, an improved, backward-compatible version of the 8080, with refinements to power consumption and integration.[https://heavydeck.net/post/i8085-compatibility-grid/ i8085 compatibility grid with Z80 & GBZ80]
See: [https://www.righto.com/2013/01/notes-on-pla-on-8085-chip.html Notes on PLA] [https://www.righto.com/2013/01/inside-alu-of-8085-microprocessor.html Inside the ALU] [https://www.righto.com/2013/02/8085-instruction-set-octal-table.html Instruction set: the octal table] [https://www.righto.com/2013/03/register-file-8085.html Register file] [https://www.righto.com/2013/07/reverse-engineering-flag-circuits-in.html Flag circuits] [https://www.righto.com/2013/07/reverse-engineering-8085s-alu-and-its.html The ALU and its hidden registers] [https://www.righto.com/2013/08/reverse-engineering-8085s-decimal.html Decimal adjust circuitry] 8085 CPU reverse engineered
*{{EnWiki|Intel_8080}}
*[[Media:Intel 8080A datasheet.pdf|Intel 8080A datasheet]]
* [[Media:Intel-8080-system-manual.pdf|8080 Systems User's Manual]]
*[[Media:8080 Programmers Manual.pdf|8080 assembly language programming manual]]
*[[Media:Intel-8080-system-manual.pdf|8080 Systems User's Manual]] Contains a detailed breakdown of machine cycles
* [https://popolony2k.com.br/xtras/programming/asm/nemesis-lonestar/8080-z80-instruction-set.html Mapping between i8080 and Z80 mnemonics]
*[https://www.pastraiser.com/cpu/i8080/i8080_opcodes_c8.html 8080 opcode map]
*[https://web.archive.org/web/20151006085348/http://www.idb.me.uk/sunhillow/8080.html 8080 CPU Exerciser]
*[https://www.computerhistory.org/collections/oralhistoriescatalog/ Oral history collection102658187 Intel 4004]: [https://archivewww.computerhistory.org/resourcescollections/textcatalog/Oral_History102657982 Intel 8008] [https:/Intel_8080/102658123www.05.01computerhistory.pdf org/collections/catalog/102658123 Intel 8080]Oral history panels
<br>
13,147
edits