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].
“microporcessor”? :P
The predecessor of tiny pigs.
Ford EEC-IV computer was run on a Intel 8061 and they are still running today! Pretty good for a old piece of tech!
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?!?!
“microporcessor” .. I can almost smell the bacon ..
What does bacon have to do with electronics? How are they at all connected?
Electronics? They’re talking about minute porc…
The connection is probably the attention to detail required to properly read a datasheet.
Because of the well-known Push Button Get Bacon device.
Why, through the DIP pins of course. You just push them into the bacon for a one-step 40-hole tenderisation. You can even do it whilst it’s in the pan.
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
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.
Anyone remember Baby Blue? That was a daughter card that was providing a Z80 to the original IBM PC/XT.
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!
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.
I had a clone that I sold on Ebay a number of year ago. I ended having to downsize my PC collection as my basement was getting out of hand.
> 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).
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.
Fair enough, it was sold to a spotty teenage me that the Z80 in my Sinclair could run 8080 code. And it did, at least that which I wrote for it.
So Jenny, when you say Sinclair, do you mean ZX80, ZX81 or ZX Spectrum ;-) ? Not MK14 obviously since that was an SC/MP machine :-) !
6502 rules! Someone had to say it :-)
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.
Ah, obviously a 6809 user…
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)
The 6502 is a better CPU but lacks the 16-bit instructions that the 8080/8085/Z8 has.
But generaly faster at the same clock.
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.
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
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.
As luck would have it, I still have a dozen 8087 co-processors sitting on the shelf awaiting a purchase order from NASA.
(New In Box)
Suitable for 8086 and 8088
I still have one somewhere, plus a few BIOS chips. Not sure why I’m keep them, but I regretting selling off most of my other hardware.
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.
Prof. Sirichote has a whole bunch of trainers for all kinds of different CPUs, including Z80, 6502, 8086, etc,
I own a couple of these, and they are great value for money:
http://www.kswichit.com/
His Z80 kit is compatible with the Microprofessor (same monitor and OS / firmware functions).
I have an original one of those from about 1981. I also built / used Transam Tritons which had 8080s.
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.
Z80 has also ex af,af’ which works like a native mutex making it perfect for multitasking/concurrent programming
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. 🙄
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.
“Single-chip brats”! Brilliant. Even though I am one.
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.
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.
I have one of these, still waiting for me to finish populating it…
https://en.wikipedia.org/wiki/Intel_System_Development_Kit#/media/File:MYSSTE_80.jpg
and one of these, which I could never get working, even though I changed every chip (IIRC) on it…
https://en.wikipedia.org/wiki/Intel_System_Development_Kit#/media/File:MYSSTEM_85.jpg
And 3 386? SDKs I bought from Don Lancaster a couple of decades ago…
Nope, it was 3 8086 SDKs I bought from DL…
https://en.wikipedia.org/wiki/Intel_System_Development_Kit#/media/File:MYSTEM_86.JPG