We’re going to look at a Z80-based computer, kind of late-1970s, early-80s style. But it’s been mocked up on a breadboard for a bit of fun. This is probably halfway between the ZX81 and the Spectrum in terms of power and speed, etc. So in theory, you could actually wire this up to Spectrum peripherals, and run the ZX printer or or whatever from it.
– So can we see Manic Miner at some point in the future? – On a screen like this? Not for a little while. Main board is here. There’s the Z80 CPU, there’s an 8K EPROM running Microsoft BASIC, 32K of RAM, the clock clock in the centre there – the crystal for the clock, along with a few logic chips to select the appropriate memory stuff. Reset button on the end. Input/output serial chip that talks down to effectively an Arduino that runs the display and the keyboard, and then we got some input/output chips for the dip switches, little LED, some segment display, and a bar graph display. It’s always made from wires pushed into a breadboard, as you can see. I just wanted to play about with something old-school, All but – almost everything there has been donations to the Nottingham hack space So it’s being the case of vomiting around, see what you can find. It’s – “ooh! It’s a Z80 CPU, in that case, I’ll base this on the Z80.” so yeah donations and spare bits knocking about, that’s pretty much what it is You could run any program which you could write in BASIC. You could write on it as well as reading input switches Setting LED outputs, which in theory, you could then use that to run relays, bigger switches, control motors or whatever. Obviously you’ve got the keyboard-in port and the little display. It’d be nice to have something a bit larger, but that could be next stage. There’s a little programming editor already, Anyone which is familiar with BASIC will understand all of that? So… We run that… All it’s doing is counting up in binary on those two little displays there This one is a lot brighter than that one. I could make this one dimmer. I can’t make that one brighter. It’s a program which will count in binary on the bar graph display on the right, as well as increment numbers on the other one. Either by binary, base 2 – got the 1, 2, 4, 8, 16, 32, 64, and 128 lights. So each one that lights up represents that number. It is actually a 10 digit bar graph, and we’ve only got 8 digits of data, so so ignore the two that aren’t coming on, and they won’t ever come on.
– So once they’re all full the program will end, yeah?
– That’s it. There you go.
– All right, so let’s take a look – how did that look in terms of BASIC, shall we have a look at the code itself?
– There’s the first four lines. Last couple, just a couple of bits at the end. The program of the Arduino controlling the screen is very rough and ready, it could be a lot more efficient, but it’s not. It does the job. The biggest matter was trawling through the internet to try and find enough information to build this. There’s a great website by Grant Searles, which has got some schematics on it, which is a great help. It’s also got the EEPROM with Microsoft BASIC information as well, so the link will be down here somewhere. It was pretty much built up over the Christmas break, a few bits of tinkering, a few bits of adding or tweaking, So there’s a few weeks work, but I’ve learned so much doing it. That’s – that’s the key.
– That, to me, looks like a pretty complicated thing. It’s colour-coded to a reasonable extent. The red wires and the purple wires is basically, you know, positive and ground.
– So that’s power, yeah? Yeah. All of the green wires are the address bus, so the CPU’s address bus goes off to the RAM, off to the ROM. A bit of the address bus goes off to the communication chip. There’s 16 lines of the address bus, which means that the – the CPU could address up to 64 K of memory. So every – every byte of that memory has got a unique address within those 16 lines. You’ve also got the data bus, which is all the orange wires, so the orange wires again go from the CPU to the ROM to the RAM, communication chip, data bus also comes down to the I/O chips as well. So that’s carrying the data either from the CPU to memory, or from the CPU to the I/O chips, or back the other way, So it’s it’s an 8-bit controller, 8-bit micro, As opposed to your modern computers, which are your 32-bit, 64-bit ones. There’s no hard storage on this, so once the power goes your program’s gone. So you gotta – gotta type it all in again from scratch. Yeah, fairly quick to type in as long as it’s a short short program, But I’ve not attempted anything more than about 70, 80 lines yet. Yes, there’s limitations. Yeah, but basically the bits I was able to find, the bar graph display’s very, very dim. Conversely, the 7-segment LED is very, very bright.
– We’ve had to turn out the lights to, uh, to be able to see that. Do you know what all these different bits came from? So for instance the LCD screen at the bottom that you’re using. – The LCD screen is one of the few bits that I bought on eBay. The communications chip I bought as well. Which was the most expensive bit. That was about six pound for the first one, which I then blew up. So the only one which I had to buy, I then had to buy a second one of it. This is the schematic of the computer here. In the middle here, we’ve got the Z80 CPU. That’s connected via the address bus round to the RAM and to the ROM. This line goes round here, which is the green wires, got the Microsoft BASIC on the ROM there. Also connects around to the serial controller. You’ve got the data bus that goes round to the RAM, and the ROM. They’ve got the 8K ROM with Microsoft BASIC on it. I’m using a 32K ram chip, because that’s what I had handy. It goes around to the communication chip up there. The logic chips as well, which select the right addresses on the ROM and RAM, so it knows where it’s talking to and from, and a little tiny circuit over there which runs the clock for it. – What’s the next stage for this?
– The keyboard and display are quite quite modern, by comparison to everything else, so ought to go a bit more old-school, retro on those. I’ve got – I’ve got – I’ve got a bigger display, which I should be able to see it a little bit more on that when that’s hopefully working, and an old-school Sinclair Spectrum +2A keyboard. This is probably halfway between a ZX81 and the Spectrum in terms of power and and speed, etc. If I could get that talking directly to the memory they’ll cut out the Arduino side of things, which is a crutch. – And could anybody do this, do you think?
– If you could use Google, you can find the information and you can build it yourself. And you can – I know you’ve obviously had these, kind of, some of these been donated parts and so, are these things you can still get hold of?
– Oh yes, they aren’t expensive. Old computers are the best source for these bits and pieces. Any old electronics or eBay. Anywhere, yeah?

Home-Made Z80 Retro Computer – Computerphile
Tagged on:                                                 

100 thoughts on “Home-Made Z80 Retro Computer – Computerphile

  • March 26, 2014 at 4:32 pm
    Permalink

    The interesting video thank you!

    Reply
  • March 26, 2014 at 4:35 pm
    Permalink

    Had z80 as microcontroller for my abitur. It was nice!

    Reply
  • March 26, 2014 at 4:44 pm
    Permalink

    Wasn't Amiga sold in UK ? I do not see it is being mentioned by fellow British geeks much. 

    Reply
  • March 26, 2014 at 4:45 pm
    Permalink

    I dont understand a single thing,                …but I like it.

    Reply
  • March 26, 2014 at 4:55 pm
    Permalink

    Absolutely beautiful breadboarding! I was disappointed when Zilog's Z80 series lost out to Intel. It had a better instruction set and a lot of us thought it had more potential than Intel's 8080. It's a shame they never had another product as big as the Z80.

    Reply
  • March 26, 2014 at 5:05 pm
    Permalink

    this video was edited by a ninja!

    Reply
  • March 26, 2014 at 5:20 pm
    Permalink

    Wonderful !

    Reply
  • March 26, 2014 at 5:27 pm
    Permalink

    But will it run Skyrim?

    Reply
  • March 26, 2014 at 5:29 pm
    Permalink

    The original gameboy had a z80 CPU in it.

    Reply
  • March 26, 2014 at 5:29 pm
    Permalink

    I'd like to make a 16-bit  RISC minicomputer from 4000-series logic.

    Reply
  • March 26, 2014 at 5:36 pm
    Permalink

    I did this in 1996,  I was working for a company that designed an unreleased and cancelled game console, part of which was based on the z80 as a coprocessor.  Anybody interested and I'll try to upload some videos of it, still got some bare circuits and partialy assmebled boards.

    Reply
  • March 26, 2014 at 5:40 pm
    Permalink

    Cheated a little with the Arduino. But it's ok. Also. You could use a different chip to address alot. But I know you're going for replica.

    Reply
  • March 26, 2014 at 5:41 pm
    Permalink

    i love it!!!

    Reply
  • March 26, 2014 at 5:46 pm
    Permalink

    i so would love to make some thing like this by myself :()

    Reply
  • March 26, 2014 at 5:46 pm
    Permalink

    Feeding it longer, more complex programs would be possible through the Arduino board, which would only need to feed it the contents of a text file through the keyboard input…

    Reply
  • March 26, 2014 at 5:48 pm
    Permalink

    Nice. Good to finally see the legendary Z80 get an appearance. Now for the 6502!  

    Reply
  • March 26, 2014 at 5:48 pm
    Permalink

    you're going to want to wipe the cocaine snot from your nose before you do youtube videos.

    Reply
  • March 26, 2014 at 6:12 pm
    Permalink

    Where do I get that 90s polo shirt?!

    Reply
  • March 26, 2014 at 6:21 pm
    Permalink

    The Grant Searle's Z80 Webpage gives me this message:
    CPU Limit Reached
    You are seeing this page because website has reached CPU usage limit of the server, and it was temporarily disabled.

    Reply
  • March 26, 2014 at 6:25 pm
    Permalink

    I learned assembly language on a Zilog z80 in an electronics course at college, just a couple years ago… I was glad they had 8-inch floppy drives to store students' work.

    Reply
  • March 26, 2014 at 6:30 pm
    Permalink

    No Amstrad CPC 464?! NERDRAGE!

    Reply
  • March 26, 2014 at 6:43 pm
    Permalink

    Love it 🙂 The Z80 was always my favourite CPU back in the 80s and 90s for building up from scratch on breadboards 🙂
    I believe from memory (from own experiences), that the z80 was preferred over the 6502 due to it's single phase CLK line and in built DRAM refresh. Although 6502 Assembly was easier to do for beginner (3 registers etc..)

    Reply
  • March 26, 2014 at 7:05 pm
    Permalink

    My first computer was a ZX Spectrum 48K.  Had a microdrive & expansion 2 unit for it too, unfortunately it didn't work so I had to use the dreaded tape drive.

    Reply
  • March 26, 2014 at 7:24 pm
    Permalink

    that's actually pretty cool!

    Reply
  • March 26, 2014 at 7:31 pm
    Permalink

    He has such blue eyes….

    Reply
  • March 26, 2014 at 7:43 pm
    Permalink

    I have to build such a thing at the end of my current semester. Currently we are "programming" a FPGA.

    Reply
  • March 26, 2014 at 7:55 pm
    Permalink

    Well hidden septum retainer.

    Reply
  • March 26, 2014 at 8:14 pm
    Permalink

    I learnt assembler on a spectrum as a kid – Hand coding via basic data statements and poking in the bytes – first pgm ripped through the spectrums color overlay area and swapped one paper or ink color for another in a shockingly quick time – hooked for life after that – the Z80 was beautiful – loads of registers and easy addressing modes (compared to 6502 and 6809) and wonderful ideas last ex de,hl , inc (hl) and djnz. Then bought Hisoft's wonderful assembler, diasassembler and monitor which even allowed you to single step through rom, and Dr (Frank?) O'hara's book disassembly of the speccy rom – ah sweet sweet nerdy memories …

    Reply
  • March 26, 2014 at 8:16 pm
    Permalink

    whole time I was hearing web and won until I sow the schematics that says RAM and ROM

    Reply
  • March 26, 2014 at 8:57 pm
    Permalink

    Building a computer from scratch is a huge task and requires a ton of knowledge and dedication – props for that!
    I hope that someday I can build one too, as it gives you a deep insight on how these tiny machines work that we use everyday.

    Reply
  • March 26, 2014 at 9:00 pm
    Permalink

    louis ck?

    Reply
  • March 26, 2014 at 9:13 pm
    Permalink

    Wow this brings back memories. I used to write in assembly for the ZX Spectrum +2 long time ago. 

    Reply
  • March 26, 2014 at 9:19 pm
    Permalink

    Don't forget to install a WC where the bits can go if they really need to.

    Reply
  • March 26, 2014 at 9:23 pm
    Permalink

    Thanks to DadCubed I can understand most of the British accents . Also Spencer is really great! I really like this video. 

    Reply
  • March 26, 2014 at 9:51 pm
    Permalink

    why is it that when you see a title with a picture of someone under it
    you go
    oh yeah no he does look like a person who would do that

    completely unrelated to the video and perhaps a bit silly of me but that was the first thing i thought when i saw the thumbnail

    oh yeah he does look like someone who would be able to put all kinds of old pcs together

    Reply
  • March 26, 2014 at 10:42 pm
    Permalink

    /z80computer = "CPU Limit Reached" =)

    Reply
  • March 26, 2014 at 11:05 pm
    Permalink

    How old is this fella?  He sounds 50+ but looks in his 30s.

    Reply
  • March 26, 2014 at 11:07 pm
    Permalink

    Is that his tongue piercing or harsh English accent? American ears over here. I've always been fascinated by incomprehensible English accents.

    Can someone post a youtube link about English accents?

    Reply
  • March 27, 2014 at 12:18 am
    Permalink

    How did you make those schematics? They look good.

    Reply
  • March 27, 2014 at 1:00 am
    Permalink

    Damn, that's impressive. Next step: home made 8086 machine running PC-DOS 1.0.

    Reply
  • March 27, 2014 at 2:00 am
    Permalink

    My buddy and I got our hands on a Sinclair ZX80 in the 80s and had a bunch of fun. 

    Reply
  • March 27, 2014 at 2:58 am
    Permalink

    My first computer was the ZX-80, and what a cute machine it was. It's much smaller than one expects, with a membrane keyboard that during BASIC input changes modes as you type, anticipating the next sort of data that it will accept. It has to blank the screen while it computes, an annoying feature that was remedied with an upgrade to the ZX-81.

    Reply
  • March 27, 2014 at 3:02 am
    Permalink

    this is the reason i never felt comfortable saying i know how to "build" a computer. well done

    Reply
  • March 27, 2014 at 4:01 am
    Permalink

    I don't wanna be mean.. But I can't understand a word that this man is saying. 

    Reply
  • March 27, 2014 at 5:39 am
    Permalink

    That dude needs to blow his nose.

    Reply
  • March 27, 2014 at 9:07 am
    Permalink

    Brilliant work!

    Reply
  • March 27, 2014 at 9:37 am
    Permalink

    Finally, hardware.

    Reply
  • March 27, 2014 at 9:39 am
    Permalink

    Great Video!

    Reply
  • March 27, 2014 at 10:09 am
    Permalink

    Cool, I bought a Z80 cpu some time ago. Haven't played with it yet

    Reply
  • March 27, 2014 at 10:48 am
    Permalink

    Why not store the program in EEPROM?

    Reply
  • March 27, 2014 at 10:52 am
    Permalink

    Fun fact for all you youngsters out there: the reason the line numbers in the video were 10, 20, 30, … instead of just 1, 2, 3, … is that when you later needed to insert code in between existing code, you had nine lines before you were fucked. Renumbering was next to impossible, especially since the many GOTOs you had to use at the time pointed to line numbers as well, not labels. And in any case, if you went in, changed the line number and hit return, you only doubled that line.

    For my C64 I had a hardware extension module that among other things provided a RENUMBER command. What a life saver! It also enabled you to scroll in your code instead of just interrupting the LIST command at the right time. Yep, those were the days and now stop whining about your crappy Python IDE 😉

    Reply
  • March 27, 2014 at 12:58 pm
    Permalink

    My first computer was Z80 based. It ran at 2Mhz.

    Reply
  • March 27, 2014 at 3:03 pm
    Permalink

    You forget 8255 IC for kempston joystick 😉 and most important AY-38912 as well known melodic.

    Reply
  • March 27, 2014 at 3:06 pm
    Permalink

    Was that a Model M?

    Reply
  • March 27, 2014 at 3:59 pm
    Permalink

    After reading the book "Code" I really wanted to build an 8-bit machine from scratch, but I didn't feel comfortable ordering a bunch of parts online. It's much easier nowadays to just buy an arduino kit or a raspberry pi.

    Reply
  • March 27, 2014 at 8:40 pm
    Permalink

    I still actively write Z80 code for the ZX Spectrum. I think it is a great processor and still in popular demand today (albiet clocking at 20MHz nowadays instrad of 4MHz back in the 80s)

    Reply
  • March 27, 2014 at 9:06 pm
    Permalink

    I don't like those breadboards, they always get bad contact, and sequential logic, as microcontrollers is, are allergic to bad contacts. Better use wire-wrap.

    Reply
  • March 28, 2014 at 7:54 am
    Permalink

    Awesome! It would be great to add possibility to hook up any VGA-compatible monitor.

    Reply
  • March 28, 2014 at 9:21 am
    Permalink

    GZ m8 !!! Oh, old memories ! I designed HW projects like this on Orcad, programming for 8085. I remember coming home and testing the code on my Spectrum, since the binary was actually the same, only the mnemonics had different names. You didn't show a state diagram for the logic blocks (don't remember the exact name for it), but I'm sure there is one 😉 . Very good job with the interfaces !!!

    Reply
  • March 28, 2014 at 11:30 am
    Permalink

    What a champ! I would've loved to do something like this as late as 2000, but computer technology since has kinda ruined that awesomeness of the old days. Computers and gaming were the best in their earlier days. Good times.

    Reply
  • March 28, 2014 at 12:58 pm
    Permalink

    z80 assembly is a lot of fun! tricking with the registers and stack is just crazy stuff. 🙂

    Reply
  • March 29, 2014 at 12:27 am
    Permalink

    I've gotta build me one of these!

    Reply
  • March 29, 2014 at 12:58 pm
    Permalink

    MSX ran on an Z80A.

    Reply
  • March 30, 2014 at 12:32 am
    Permalink

    Could i run crysis 3 on this?

    Reply
  • March 30, 2014 at 12:32 am
    Permalink

    Could i run crysis 3 on this?

    Reply
  • March 30, 2014 at 8:38 pm
    Permalink

    arduino is for babies

    Reply
  • March 31, 2014 at 9:41 pm
    Permalink

    How cool is that!!!!!! I still have my beloved ZX81 🙂

    Reply
  • March 31, 2014 at 11:32 pm
    Permalink

    Nice! I still have my zx spectrum BASIC manual.

    Reply
  • April 1, 2014 at 11:56 pm
    Permalink

    Such a cool project!
    btw, I use the same keyboard 🙂

    Reply
  • April 2, 2014 at 10:43 pm
    Permalink

    Right out of the beer money.

    Reply
  • April 3, 2014 at 9:26 pm
    Permalink

    Did you use EEPROM, EPROM or some kind of built in ROM?

    Reply
  • April 4, 2014 at 11:50 am
    Permalink

    How cool is this?

    Reply
  • April 10, 2014 at 8:51 pm
    Permalink

    I want to do something like that one day. I was always more focused on the software side, I have coded assembly for Z80, 6502 and X86, it's just that I never started learning electronics and making a hobby project on the hardware aspect. I wish I was more into hardware too, maybe soon is coming, Z80 will be my choice too.

    Reply
  • May 15, 2014 at 6:04 am
    Permalink

    Woah. Printing out the labels and attaching them to the chips? Why did I never think of that?! In all of the EE classes I've taken, I was constantly shuffling between data sheets to check my connections, but I could have quickly and easily taped on a label! Augh!

    Reply
  • June 18, 2014 at 8:24 am
    Permalink

    so awesome!

    Reply
  • June 24, 2014 at 2:10 pm
    Permalink

    Very cool

    Reply
  • August 11, 2014 at 12:02 pm
    Permalink

    fantastic video …!

    Great to see people building 'Real' hardware !

    Are you planning on making more DIY / Homebrew microcomputers?

    Reply
  • August 21, 2014 at 4:55 pm
    Permalink

    you know you can put the display directly on the data bus? because it's made for that ?

    Reply
  • September 18, 2014 at 12:04 am
    Permalink

    Very hard to understand his accent… where in GB is he from?  Very cool project by the way

    Reply
  • January 18, 2015 at 5:53 am
    Permalink

    Funny thing… he could have written it all on the Arduino and done away with the rest of it… more transistors on it than on the rest of the board combined.  But… old school!  I cut my teeth on the Z80, in the Trash 80 Model 1.  Cassette assembler… Edtasm, baby!  My fellow students muddled along with their 6502 trainer computers, I had CRT, keyboard, and that crazy cassette.

    Reply
  • January 25, 2015 at 10:10 am
    Permalink

    Hello frieds. Are you intresting program calculating 8-bit Z80 prosessor, my project calc 64bit floating point operation and how is it 8bit exponent. Go visit my channel frontpage and go clik my homepage link, sorry but my homepage read finnish. If you intresting more call me skype and i show more my old z80 project and new eZ80 work.

    Reply
  • February 21, 2015 at 5:43 pm
    Permalink

    This computer seems a lot simpler to build than what I expected!

    Reply
  • March 30, 2015 at 12:40 pm
    Permalink

    I'd love to build one myself. Microcontrollers are boring and takes away much of the challenge. I'm currently working on my own ARM-machine running linux, the hardcore way is the way to go =)

    Reply
  • April 18, 2015 at 12:35 pm
    Permalink

    Now that it's working, overclock it to within an inch of its life!

    Reply
  • May 3, 2015 at 3:12 pm
    Permalink

    Yes, nice, but will it blend?

    Reply
  • May 4, 2015 at 7:25 pm
    Permalink

    I imagine the Z80 as a information processing computer

    Reply
  • June 21, 2015 at 5:36 pm
    Permalink

    great !!! i had the zx81 when i was 8….

    Reply
  • July 9, 2015 at 3:18 pm
    Permalink

    I wish we could go back to the early 80s. I understood computers back then.

    Reply
  • July 20, 2015 at 10:18 pm
    Permalink

    I wonder if that bigger LCD was ever added and how was it made to work using atmega chip? I have one old 320×240 pixel LCD display from a photocopier that looks like just that one.

    Reply
  • August 20, 2015 at 11:34 am
    Permalink

    Ahhhh  the Sinclair ZX80.  My first computer. Followed by the ZX81 all the spectrum range up to the 128.   I still remember paying $490 Aud for a 16K ram expansion unit for the ZX81  lol..

    Reply
  • August 31, 2015 at 2:44 am
    Permalink

    How far away is support for the Oculus? 😉

    Reply
  • December 27, 2015 at 7:56 am
    Permalink

    The irony of the easiest way to connect peripherals being using a much more powerful processor (AVR) to take care of it. 🙂

    Reply
  • September 5, 2016 at 2:20 am
    Permalink

    Sweet! This is my next personal project. Very inspired 🙂

    Reply
  • February 3, 2017 at 12:16 am
    Permalink

    First thing I programmed was a Z80. Great memories

    Reply
  • March 6, 2018 at 10:12 am
    Permalink

    I got sidetracked watching this, reading the Assembly code of BASIC…. Still think Z80 is the nicest looking assembly language (although the 6502 is a better processor)

    Reply
  • December 17, 2018 at 12:25 am
    Permalink

    I noticed on the website for the z80 computer there was a slightly more complicated version that runs CP/M. If you could do a video on that it would be greatly appreciated! 😁

    Reply
  • April 8, 2019 at 9:38 pm
    Permalink

    well done dude. am reverse engineering an 80C188 board: first fixing an 80C188 hardware emulator that had been orphaned on Ebay (microtek….old skool). will cast about for z80 version now..

    Reply
  • April 23, 2019 at 4:29 pm
    Permalink

    It blows my mind that people today are slowly learning things that people back then seemed to known instinctively. I have no clue how anyone learned assembly back then becasue all the documentation from the time is incredibly vague and context free. You either get examples with no explanations or explanations with no examples. Plus it wasn't as readily available as it is today. I guess you need to have a certain type of mind and learning ability.

    Reply
  • July 1, 2019 at 6:54 pm
    Permalink

    Bet it was fun building that

    Reply
  • September 27, 2019 at 5:10 pm
    Permalink

    I built my first Z80 computer in 1990. Im currently building my 7th Z80 computer in 2019 to be finished by the end of the year.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *