Changes

Intel 8080

3,647 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]
Despite what their naming suggest, the Intel 8008 and [[Intel 4004]] were separate projects with distinct architectures and purposes. The 8008 was not an upgrade or evolution of the 4004. The die shot of the 4004 reveals the initials FF of the chip designer, Federico Faggin. The die shot of the 8008 reveals the initials HF of the chip designer, Hal Feeney. See: [https://www.righto.com/2016/12/die-photos-and-analysis-of_24.html Die photos and analysis] [https://www.righto.com/2017/02/reverse-engineering-surprisingly.html 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