Back To Where (For Most Of Us) It Started, The Intel 8080

The early history of microprocessors is a surprisingly complex one, with more than one claimant for the prize of being the first, and multiple competing families. That the first commercially available part was the Intel 4004 is a matter of record, but it’s fair to say that few of us will have ever encountered one. Even its 8-bit sibling the 8008 would not have featured heavily in a 1974 version of Hackaday, such was its exotic nature. If there’s a microprocessor that can be claimed to have started it all for us then, it’s the Intel 8080. It established the 8-bit microporcessor with an 8-bit bus and a 16-bit address space, it had an order of maginitude more performance than its predecessors, and crucially it would become affordable enough for experimenters. It provided the guts of the MITS Altair 8800 microcomputer, and thus kickstarted the progression of home computers which led to the devices you use every day.

The 8080 is in our sights today, thanks to [DeviceGuru], who was sent down memory lane by thoughts of the 6502-based KIM-1 from his master’s thesis project. This led to memories of the 8080 Abie computer that he built for himself in 1979, for which he provides us some details and hand-drawn schematics. By then the 8080’s need for several support chips made it somewhat outdated, but from his perspective the chip could be had from Radio Shack without too much outlay. His tale of hand-assembling 8080 code and sending it to a friend for blowing onto a PROM might be familiar to some readers of a certain age.

Though the 8080 ceased volume production a quarter century ago (surprisingly there are still places you can get a new one though) it hasn’t entirely disappeared from our community’s consciousness. [DeviceGuru] tells us about the 8080 Microprocessor kit from [Wichit Sirichote] in Thailand which is a single board computer in the 1970s vein, hex keypad and all.

As you might expect, the 8080 hasn’t appeared in many projects here due to its rarity. Those that have seem more likely to feature its Eastern Bloc clones, such as this Polish model or this Russian one. It’s worth the reminder that if you fancy exploring some 8080 code of your own that you don’t even need an 8080 to run it on some silicon. The hugely popular Zilog Z80 as found in retrocomputers such as the RC2014 is fully mostly 8080 code compatible, indeed some of us learned about microprocessors that way because 8080 books were discounted in 1983 and Z80 ones weren’t.

Header image: Konstantin Lanzet [CC BY-SA 3.0].

41 thoughts on “Back To Where (For Most Of Us) It Started, The Intel 8080

  1. Yep, fond memories of manually coding each byte of the EPROM in a wire-wrapped Z80 system, that used peripheral chips from Intel’s 8080 line.

    Haven’t we come such a very long way?!?!

  2. The 8080’s a surprisingly elegant architecture, once you get your head around it — not particularly dense but very easy to learn and work with. Horrible to compile C into, of course, but all the early 8-bit architectures were. (Incidentally, I think I have the only 8080 ANSI C compiler around! https://github.com/davidgiven/ack)

    But I need to correct the article: the Z80 is _not_ fully 8080 compatible. There are a number of small but significant differences; see https://retrocomputing.stackexchange.com/questions/1610/how-did-the-z80-instruction-set-differ-from-the-8080. The one you’re most likely to run into is that the Z80 overloads the 8080’s P flag to report overflow in arithmetic operations. This means that you need rather different logic in the 8080 vs the Z80 to do signed comparisons.

    Incidentally, I just livecoded an 8080 assembler. (In C, but for CP/M.) https://youtube.com/watch?v=Y7crnbHhnZY

    1. I remember the 8080 as really horrible. Like maybe a PDP without memory mapped I/O. When I got a 6502, its RISC-like architecture was really efficient with speed and memory space. The first 256 bytes of RAM have fast access and are like having 128 16-bit registers. And memory Mapped I/O was so easy to use for interfacing anything of any width or speed. I very rarely used 8080/Z80 after that. However, 8080 was the focus of the CP/M community and all the magazines.

    1. Yes! Used them a lot, mostly to run Microsoft’s M80/L80 assembler/linker to write code for other z80 systems! Just goes to show how good the IBM PC hardware was at the time – it was worth buying an IBM PC (and they were not cheap) plus a z80 processor card rather than buy a cp/m system. They were built like a tank!

      1. Even earlier than that was a Z80 card for the Apple II. Together only 25% of the cost of an Intel MDS.
        When the IBM PC came along we used them with Z80 cards – it seems wired to ‘downgrade’ the 8088 based system to run 8080 development.

  3. > The hugely popular Zilog Z80 … is fully 8080 code compatible

    I have to point out that the Z80 isn’t a strict superset of the 8080. The most most obvious difference is that the “P”arity bit on the 8080 is set for all the 8b logical and arithmetic operations. On the Z80, the same is true for logical operations, but for arithmetic the “P” bit is repurposed to mean signed overflow.

    There are also some differences in the flags. The half carry is set differently so that DAA works after SUB instructions, and I believe there is one other flag bit which is always zero whereas on the 8080 it could be set. There are probably some other differences (in addition to timing) that I’m forgetting.

    Certainly it was possible to write programs that worked on both if you were aware of the differences, or if your 8080 program didn’t do anything too unusual (which was most of them).

    1. Parity is really useful when you add 2 numbers together :) Intel designed the 8080 as a microcontroller not for use in a PC. It needed 2 other chips just to work, wheras the Z80 just needed a crystal. The Z80 was also faster.

    1. Don’t be silly dear boy.

      There are no rules when it comes to a bunch of cause fascists fighting over which ‘Architecture / Operating System / Left-Handed Widget Fiddler’** is the One True ‘Architecture / Operating System / Left-Handed Widget Fiddler’**

      ** Delete as appropriate.

    2. Sadly, you are mistaken. The 6502 is thouroughly blown out of the water by the Motorola MC14500B.

      (tongue firmly in cheek, as my preference was actually the LSI-11 family, or, if one insists on sticking to 8 bits, the Z80)

      1. Clock rates on the Z80/8080 and 6502 don’t mean the same thing. Historically, when clock speed X was available on the 6502, clock speed 2X was available on the Z80, but they both were processing instructions at the same rate.

  4. There’s also the 8085, which is an 8080 with two single extra pins, one for in and one for out, and instructions for them.

    Otherwise, a simpler deal, no fancy clock needed. Easier to use, and maybe more available now.

    Michael

    1. The three big things with the 8085 are that it:

      a) Integrated the 3-chip 8080 into one chip, i.e. no need for a separate 2-phase clock driver chip, and no need for a bus interface chip.

      b) Ran on 5v, so no need for the +12v and -5v supplies.

      c) Ran at 6 MHz (6.144 MHz on the board I had), whereas the original 8080 only clocked at 2 MHz, for some hundreds of kHz instruction rate.

      When I programmed it in an embedded system, back in ’82, the development system was the “Intel Blue Box”, with 8080 host processor, clunky keyboard, B/W CRT screen, and two 8″ floppy disk drives. You could hear it assemble each of the assembler macros I used to synthesise a simple language – about three seconds of “Niiiick nick nick nick” as the big fat stepper on one drive did one long seek and three short. Them wuz the days.

  5. The old 8080 is what they taught us during my college years in the 80s. I actually loved those microprocessor classes. Had much enjoyment getting hands on experience using the MMD1 and MMD2 trainers.

  6. The Z80 had two –among many others– very admirable characteristics unmatched by other microprocessors of the time: the ability to automatically refresh then-current DRAM via a memory-refresh register, R (made very good use of by Sir Clive Sinclair); and a blindingly fast interrupt capability by virtue of having TWO complete sets of the context registers AF, BC, DE, and HL, and being able to switch between the two immediately. The Z80’s “normal” interrupt mechanism’s extreme versatility and configurability was unmatched as well, and has not been duplicated since.

  7. No one mentioned the RCA 1802? The one that had mutiple program counters so co text switching was fast. And went to space with the shuttles because it could handle the Van Allen belt…I guess I really am getting old. 🙄

    1. Aged like fine wine there are plenty of (cosmac) ELF users still hanging around. Worse still many can remember when CPU /MPU was a PCB board of discrete logics sometimes having hand wired modifications. Single chip bratz. Turn that noise down! That aint music. Mmm silicon on saphire.

        1. Have to be now. Fun to tease but had to give up slide rule and pocket charts too. Dont really miss but they gonna have to pry my pocket calculator from my dead cold carpal tunnel syndrome arthritic hands. Is called a cellphone now but cant remember last time i actually talked on it..Decades later and still using tty terminal. Sends pictures better tho.

  8. The CDP1802 processor had an easy to learn instruction set and could be run without a ROM by entering in the instructions one by one using a special mode, and the processor had a fully static design allowing the clock rate to drop all the way down to zero hz allowing the CPU to be single stepped.

    I remember writing machine language programs for it in hexadecimal by memorizing the instruction set, or at least a good subset of it. The instruction set was RISC-like and had separate load/store instructions.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.