I have quite a soft spot for the Z80 myself. This is a great way to introduce the Z80 in a way that is easily understandable so you can work up to a more complex setup with a real ROM etc. Great to see the timing signals at a speed that can be comprehended too.
You are a genius! This was awesome! I love Z80, but in my ~20 years with it, I never thought of something so simple like this. I never ever imagined connecting LEDs directly to its pins! I thought it'd blew up immediately.
And now all my computer architecture classes from 1986 suddenly make sense. Cheers for an really lovely walk down memory lane while at the same time connecting the dots between software and hardware. Really enjoyed that! Oh Happy new year to you too.
This turned out to be a handy video for me. I was troubleshooting an RC2014 Z80 Board I had just built but something wasn't right. M1 was constantly low. I remembered watching this video some time ago and decided to breadboard this just like you did. Guess what?!? Turns out I had a bum Z80. Out of a tube of six, I pulled the one bad one. I know this because, yes, while I had the breadboard built, I swapped out all the other chips and confirmed they work. My RC2014 Z80 Board appears to be working correctly too! One other thing that helped, if you don't get activity on M1 after applying power, you can momentarily connect the reset pin to ground (remember, it already has a pullup resistor). This is occasionally necessary since we don't have a power-on-reset circuit yet. Next up, building an EPROM programmer. I already have an Arduino EEPROM programmer and I've seen some projects to add the voltages needed to turn this into an EPROM programmer. I haven't decided if I'll use the 2764s (8K) I have or get some 27256s (32K) and save on some wiring. I also have some 8K SRAM chips but 32K chips would be nice.
This was a great video. Everything from "faking" an instruction to using LEDs to watch the chip request addresses sequentially. Just excellent. Thanks!
I loved the Z80. Zilog had created a far better CPU than Intel's 8080. However it does have to be said that it wasn't cheap to use; especially if one used all of the Z80 family of support chips. These included DMA controller, clock, usart and an interrupt controller. I am sure I have missed a few vital ones. It was the i7 of its day. It was very easy to write assembly for. Later I went on to work with 6502s. Then I came to realise that architecture was almost like the "philosophy" of the way it was programmed. The superiority of one architecture over another was not so simple as one might assume. Thank you for this presentation. I confess to dampened eyes when you brought out the Zilog manual. Happy new year.
Well Julian, You made my evening ! What a blast from the past- getting that 35+ year old Z80 chip up and running again. Remembering my Timex Sinclair ZX80, my first personal computer with that old chip and 8kb ram. Those were some fun long evenings learning to program in Basic with it. Amazing to see that old chip performing again- magic I say. Thank you very much ! Going to bookmark this video to watch again.
@ 1:55 - that Z80 CPU is a 4Mhz part not 2.5Mhz. It's a newer one, made in the 27th week of 1987 and uses a different numbering scheme than the older ones. Z0840004PSC - the ''04'' in that specifies the max speed it runs at, in this case 4Mhz. The Z80 is awesome to code for. The wildest trick I ever saw was massive abuse of the DRAM refresh register 'r' to store something in the 7th bit (which is apparently unused), and using the rest of it as a seed for a pseudo random number generator!
Not only that, but a Z80 on a tiny breadboard? Who would have "thunk" it! I would have killed for this circuit some 30 years ago when I was a teen and just learning electronics. I had a CPU DIP chip and had no idea what to do with it.
+Dog Rox me too, although that was a few upgrades in lol, my schools BRAND NEW computer room had (the state of the Art) BBC micro using bbc basic 10 this is boring 20 even more than that 30 when is break time 40 in 20 min oh no ;) when my older brother got an 88 I was so jealous
I took computer science in school. I was the only student in the class. No one else was interested in it. It was an old Tandy computer and not the beloved Coco's which didn't exist back then , hehe! yes I was learning basic but I didn't think it was boring at all because I was learning how to make games like pong and a alternate version of tic-tac-toe. Which I found quite interesting.
Julian I must admit that most of your videos go over my head but I love watching them your presentation is brilliant and subject matter very interesting. Keep up the great videos.
Wonderful video Julian! My first computer was Technical Design Labs (TDL) Z-80 kit. Your video brought back wonderful memories of Z-80 machine code. I always enjoy your videos.
Many years ago in high school ( I'm 42 now), I found a book at the library called 'how to build your own robot pet'. It was written in the 70's (I think), but was about building a robot 'dog', that used sonar eyes, and voice recognition. All based on the Z80. I read it cover to cover. Couldn't put it down. Fast forward several years, I recently found that book at a thrift shop for a buck. I later found at another thrift shop a black box with some cool switches and LEDs called a pack rat. I took it home and found a goldmine of Z80s and EEPROMs and RAMs. Very cool stuff. I love these videos. Thanks and keep it up.
Well I feel stupid. I went back and looked at the book again, it used the Intel 8085A. It did say you could use a Z80 instead though. And it's called 'how to build your own working robot pet' by Frank DaCosta.
Congratulations ! this video is just awesome. I just made my first NOP computer with an old Z80 I had in my basement. Thanks for a such illuminating lesson of how computers work !!
I went ahead and built this project from this video with spare parts I had. A couple of notes, as Julian noted, use 220 ohm resistors on your LEDs and your CPU won't heat up. Also instead of just setting the RESET flag high, hook it up to a switch so you can momentarily set the flag to LOW. Connecting power to the CPU doesn't always guarantee a good start. I have to hit reset before proper operation occurs. Finally, I don't know how he did it but I had no potentiometers that fit nicely across pin 6 and 7 of the 555 timer or one that fit nicely in the holes of the bread board even though I have ones that look like his. I used a couple of 100k resistors along with a 1uF cap and got 4.7Hz. Whiz-Bang idea of the day: Soldering resistors to your LEDs. Saves space on the breadboard. Kudos to Julian and thanks!
You're quite right - reset needs a switch - I used a piece of wire, but it never made it into the video (must have lost it in the edit). Cheers Edward :)
Absolutely fascinating video!! I learnt more in 20 minutes than I managed as a 10y old child writing basic and trying (and failing) to use a ZX Spectrum Assembler software compiler my father had rather ambitiously bought me one Christmas in the 80's :) More Z80 videos. I love the nostalgia!!
There seems to be a revival in the Z80 scene. There are now multiple Z80 "homebrew" type systems with a few of them even running CP/M, and the odd few even ported onto an FPGA. The RC-14 seems to be the easiest to get and it's made in the UK.
You don't need to UV erase that EPROM every time you program it if you use a bit of trickery. You could use code at the start to determine where your new code begins or simply use dip switches (or wires) on the high bits of the address bus. Both have their own advantages/disadvantages but either way it saves a lot of time (and wear on the EPROM) if your code is small. A 32kB EPROM could last a long time before you need to erase it. Works with EEPROMs too of course but the savings are less.
And it shouldn't be too hard to make a programmer using an Arduino so you don't even need to buy one. And of course we know you have a 12V PS somewhere! ;-)
Now that, I like. I've got some Z80 based units I often have to repair, I'll get busy with the VERO board in the next few days and get myself a little CPU tester built. Fabulously creative idea of using the resistors on the data bus to load an instruction. Many thanks.
Nice video, Julian. It brings back memories of my first foray into computing: a two day intro to the 8080 on a tutor board (all LEDs and toggle switches) back in 1978. I was hooked at that point and it set the direction of my career. Now I'm retired and back bit twiddling with Arduinos and the like :)
I would imagine it would be easy enough to use a transistor pulldown circuit to actually drive the LEDs. A bias resistor could easily stay within the operating current of a Z80 and still keep the base of the transistor from floating effectively. I've had a look around and one can still get brand new Z80 chips for those wondering. There are also some BGA packages that would work for this though harder to use as they are mostly SMD packages and as such, hard to use on a breadboard without some sort of bodged shield with headers to plug it in. Great video on the more intricate nature of a Z80. This was fun.
Great video! Takes me back to my ZX80 / 81 & Spectrum programming days! I recall when I FIRST discovered I could run LEDs from the external expansion port on my ZX81, and then decided to exchange the LED for a Motor. *That* was when I learned what current was as well... As I peered into the smoking remains of the Z80 after it went "POP!".
Awesome video !! I learned quite a bit actually! It never would've occurred to me to do this, and I found it very entertaining and educational. Keep up the awesome videos !
Robert George I still remember trying to implement graphics on a 48k Spectrum from assembler code. The way the addressing for the screen worked was very difficult to work with (in my view). Still fun though :)
I did something similar a very long time ago with a 6502 from a Commodore 64. Mine wasn't quite as extravagant as yours but NOP for that processor is 234 (EA). Don't ask me how I remember many of the OP codes for the 6502. And I didn't just reference them online. I had the same idea to fill "memory" will NOPs to fake it into running without interruption. I really wanted to start executing at 0x4c4c because repeating 4c's would JMP to 0x4c4c and loop endlessly... Or BE/BNE 0xfe to loop endlessly but that would require alternating bytes on the data input lines. I gave up on not using real memory at that point.
I love this vid & I'm also a big fan of the Z80. I still own my original ZX Spectrum, plus a few more now lol. I'll be playing about with a spare Z80 at the weekend :D Thanks for the upload & happy new year.
I have just tried this, it was great fun and a lot of learning! I'd accidentally started with my breadboard the other way up so negative is on the top rail, and that might be why I accidentally plugged in my address LEDs the wrong way around and they were counting down instead of up - that was a learning moment when I realised what I'd done there! Using my DSO138 scope to see what's happening was interesting too especially on the MREQ pin when I tried instruction 0x18. I did keep feeling for heat from the chip but not noticing anything - then i read that CMOS chips don't get as hot as NMOS and I've got a 10MHz CMOS chip here. Thanks Julian and keep doing bonkers stuff from time to time!!
I'm sure you get a lot of suggestions, so add this one to the list. Upon fiddling with the circuit myself, I found it's much more effective when using an output to drive an LED to instead just make a MOSFET driver to drive the LEDs. In my own experiences I've found even with a 220ohm resistor, the green LEDs were very dim, plus it lowers the output pin's voltage to whatever the LEDs forward voltage is. In my case it was ~ 2.5v. Great project though. I used this very project to "break my CPU cherry". Being that I'm Canadian i've always grown up with 6502 systems, C64, NES and so on. I never knew a lot about the Z80 and I've even found 6502 assembly to be easier. Anywho, thanks for making this video. It gave me the inspiration to make this and try different variations on it. Cheers, brother.
Loved this video, My first introduction to the Z80 was using the Micro professor board that included all the peripheral chips to interface components to.
when in the marines some of the Telephone switch boards used the z80 processors I know they have the z81 also so I had some and wanted to experiment and put it in the switch board in place of the z80 and was surprised it worked.
Wow - rekindled my love of the Z80 - Going to build this baby with a few extras so my other half can use it in the teaching world - maybe even do a blog about it.
This video helped relax me before starting production on my Z80 Computer, I already read the cpu user manual and a few chapters of "BuildYourOwnZ80" , Im just afraid of hooking it up for the first time ever as if it wont work, But You made it look easy as hell as if you were just doing a test circuit for a logic IC !
I learned assembly programming on a Z80 and it baffled me when other processors didn't use 0 for NOP. It was a great bit of nostalgia watching one wired up this way and hearing about the op codes again after all these years.
Great video Julian. I'd love to see the Z80 series get expanded with an example of how to read a program from a rom, and memory mapping some output chip to drive some LEDs. It would be a lot more complicated though, but oh what fun :)
I was excited there for a second, a Z80 project. But flashing leds? Now come on Julian, we know that you can design whole projects based on one of these, let's see something worthy of the chip.
If it didn't literally burn the chips they'd be setting the clock even higher. Plus the 'cache' stuff only exists because they couldn't get the memory to run as fast as the CPU
Hey Julian, I used those chips too in some video game boards and I am going to try and copy your project. it looks like fun. its a pretty fascinating chip.
in 1979, or thereabouts, I used to use a NOP tester to diagnose faults on Z80 system boards, just a CPU with the data lines soldered to a wire that pulled them all to ground. The advantage is that the CPU is going through all of the data/ram addresses, each address line being at half the frequency of the preceding bits. Thus you can 'scope out the address lines all round the board. You can do it with a 6502 (Commodore PET etc.) but the NOP is a different op code (iirc!).
Clever video you developed and loved it! I miss the Z80A. Exposed initially to Z80A via MSX (coleco) which eventually died in the mid '80's. Loved the two sets of registers! Still a great CPU.
Oh yes, the good old Z80, heart of my old and much-loved Sinclair ZX Spectrum. I seem to recall reading somewhere that there is a micro-controller based on the Z80 architecture or was I perhaps just dreaming it? One of the things I like most about the AVR is its assembler mnemonics are fairly similar to those of a Z80 and infinitely more readable than the mnemonics of a PIC (although I am beginning to get my head around them.)
That was fun to watch. I was a 6502 guy around the time you were a Z80 guy (Commodore VIC 20, Oric 1) and you have put the longing on me to revisit my youth and try the same thing with a 6502. If you haven't already seen it, you (and anyone else geeky enough to love this video) should check out Quinn Dunki's blog where she describes the process of building a 6502-based computer (called Veronica) completely from scratch.
Totally fascinating video, Julian! I've only really had a rudimentary idea of how the various components of a computer's architecture communicate so this was really interesting. Z80 ICs are pretty cheap too. Thanks for sharing!
That would make a great basic Z-80 tester. I started out with RCA Cosmac CDP1802. It had internal Sixteen 16 bit registers, so you could toggle in an LED flash program through DMA directly. The only external components would be a resister and an LED. My 30 year career at Boeing allowed my to work with many manufacturers micros and I ended my time at Boeing with PIC microcontrollers. Still do PICs as a hobby today
Actually, you'll find that the Z80 from 1987 on your breadboard is in fact a Z80A. Zilog stopped using the A/B/H suffixes, and instead put the actual clock frequency at the end of the long symbol. This one is Z0840004, so it's a 4Mhz chip, equivalent to the previous Z80A. I have a Z084C0008 chip, which is also marked Z80, but it''s a 8MHz version, which previously was dubbed Z80H, and additionally it's a C-MOS device, making it a static chip (meaning you can stop the clock completely) and less power-hungry :) Apart from that - very ingenious demonstration of the Z80 in action :) Cheers from Poland :)
i have vague recollections, 1960s or 70s maybe, of small computers in magazine pictures that appeared to be programmed by a bank of 8 [?] toggle switches. would these toggles correspond to your bank of 8 resistors on your breadboard ? to program different instructions & values ? i think there were pilot lights above the switches, to indicate on/off, i presume. thank you. take care & stay safe.
My first computer was a Digital Group kit with a Z80A. I never thought you could get a Z80 to do something interesting without RAM and all the other necessary support chips, and IO cards. The 5hz clock was brilliant. I was concerned when you started connecting LEDs directly to the chip, but it survived!
Just watched ben eaters 6502 videos, love these old and simple(r) CPUs. I'd love to make a diy 8 bit computer with only switches and leds on the front panel (well maybe some 7 segs)
That was great, I'm tempted to desolder my ZX Spectrum's CPU and toy around with it! Any thoughts on how to attach RAM, and of course how to preload some of it with actual code, to make this actually perform work? I'm off to re-read Rodnay Zaks and refresh my own memory on what address the stack pointer defaults to :-)
I love your use of ROM... Resistor Only Memory
That's good - I like that :)
I have quite a soft spot for the Z80 myself. This is a great way to introduce the Z80 in a way that is easily understandable so you can work up to a more complex setup with a real ROM etc. Great to see the timing signals at a speed that can be comprehended too.
You are a genius! This was awesome! I love Z80, but in my ~20 years with it, I never thought of something so simple like this. I never ever imagined connecting LEDs directly to its pins! I thought it'd blew up immediately.
And now all my computer architecture classes from 1986 suddenly make sense. Cheers for an really lovely walk down memory lane while at the same time connecting the dots between software and hardware. Really enjoyed that! Oh Happy new year to you too.
This turned out to be a handy video for me. I was troubleshooting an RC2014 Z80 Board I had just built but something wasn't right. M1 was constantly low. I remembered watching this video some time ago and decided to breadboard this just like you did. Guess what?!? Turns out I had a bum Z80. Out of a tube of six, I pulled the one bad one. I know this because, yes, while I had the breadboard built, I swapped out all the other chips and confirmed they work. My RC2014 Z80 Board appears to be working correctly too!
One other thing that helped, if you don't get activity on M1 after applying power, you can momentarily connect the reset pin to ground (remember, it already has a pullup resistor). This is occasionally necessary since we don't have a power-on-reset circuit yet.
Next up, building an EPROM programmer. I already have an Arduino EEPROM programmer and I've seen some projects to add the voltages needed to turn this into an EPROM programmer. I haven't decided if I'll use the 2764s (8K) I have or get some 27256s (32K) and save on some wiring. I also have some 8K SRAM chips but 32K chips would be nice.
This was a great video. Everything from "faking" an instruction to using LEDs to watch the chip request addresses sequentially. Just excellent. Thanks!
This is one the best tutorials i‘ve ever seen on youtube. You should poste a parts list. It‘s perfect to explain microprocessors!
Great Video!
Professor Julian lives and breathes Z80...you couldn't ask for clearer, more understandable explanation. Thank you!
The blue LEDs around 20:50 are spot on for 80's sci-fi computer lights !
Great educational video...enjoyed that.
I loved the Z80. Zilog had created a far better CPU than Intel's 8080. However it does have to be said that it wasn't cheap to use; especially if one used all of the Z80 family of support chips. These included DMA controller, clock, usart and an interrupt controller. I am sure I have missed a few vital ones. It was the i7 of its day. It was very easy to write assembly for. Later I went on to work with 6502s. Then I came to realise that architecture was almost like the "philosophy" of the way it was programmed. The superiority of one architecture over another was not so simple as one might assume. Thank you for this presentation. I confess to dampened eyes when you brought out the Zilog manual. Happy new year.
Well Julian, You made my evening !
What a blast from the past- getting that 35+ year old Z80 chip up and running again.
Remembering my Timex Sinclair ZX80, my first personal computer with that old chip and 8kb ram.
Those were some fun long evenings learning to program in Basic with it.
Amazing to see that old chip performing again- magic I say.
Thank you very much ! Going to bookmark this video to watch again.
@ 1:55 - that Z80 CPU is a 4Mhz part not 2.5Mhz. It's a newer one, made in the 27th week of 1987 and uses a different numbering scheme than the older ones. Z0840004PSC - the ''04'' in that specifies the max speed it runs at, in this case 4Mhz.
The Z80 is awesome to code for. The wildest trick I ever saw was massive abuse of the DRAM refresh register 'r' to store something in the 7th bit (which is apparently unused), and using the rest of it as a seed for a pseudo random number generator!
Brilliant Julian - I wish I had this kind of instruction when I was an apprentice in the 80's - very easy to understand.
And this is the reason why I watch this channel! This is very educational. a lot learned! great job :-)
Not only that, but a Z80 on a tiny breadboard? Who would have "thunk" it! I would have killed for this circuit some 30 years ago when I was a teen and just learning electronics. I had a CPU DIP chip and had no idea what to do with it.
I'm 53 years old and I was working with Commadore 64 computers back in the eighties. Those were the good old days. :-)
+Dog Rox me too, although that was a few upgrades in lol, my schools BRAND NEW computer room had (the state of the Art) BBC micro using bbc basic
10 this is boring
20 even more than that
30 when is break time
40 in 20 min oh no ;)
when my older brother got an 88 I was so jealous
I took computer science in school. I was the only student in the class. No one else was interested in it. It was an old Tandy computer and not the beloved Coco's which didn't exist back then , hehe! yes I was learning basic but I didn't think it was boring at all because I was learning how to make games like pong and a alternate version of tic-tac-toe. Which I found quite interesting.
Very interesting and very well explained. Took me back to my 6502 days many moons ago. Keep 'em coming
Excellent video/tutorial. Very well explained.
I did some assembly back in the days on the Z80.
Thanks for the memories ! back in the days I started to fiddle with assembler, 8080 and z80 ! Very instructionnal for those younger lads !!
Nice educational video! Great way to visualise the signals. So nice!
Julian I must admit that most of your videos go over my head but I love watching them your presentation is brilliant and subject matter very interesting. Keep up the great videos.
Wonderful video Julian! My first computer was Technical Design Labs (TDL) Z-80 kit. Your video brought back wonderful memories of Z-80 machine code. I always enjoy your videos.
Many years ago in high school ( I'm 42 now), I found a book at the library called 'how to build your own robot pet'. It was written in the 70's (I think), but was about building a robot 'dog', that used sonar eyes, and voice recognition. All based on the Z80. I read it cover to cover. Couldn't put it down. Fast forward several years, I recently found that book at a thrift shop for a buck. I later found at another thrift shop a black box with some cool switches and LEDs called a pack rat. I took it home and found a goldmine of Z80s and EEPROMs and RAMs. Very cool stuff. I love these videos. Thanks and keep it up.
Well I feel stupid. I went back and looked at the book again, it used the Intel 8085A. It did say you could use a Z80 instead though. And it's called 'how to build your own working robot pet' by Frank DaCosta.
Absolutely amazing explanation of the Z80! I almost feel like I understand it (a tiny bit). Thanks!
This by FAR is the best z80 instructional video I have seen yet.
Love it! One of the best microprocessors ever made, nice to see one dusted off. Great job!
this marks the start of microcontroller tutorials :) I like this
This is where Julian feels at home - in the engine room of an 8-bit CPU :)
take a look here ! zx80.netai.net/grant/z80/SimpleZ80.html you can make it !!
Akarsh Agarwal That's a microprocessor.
yeah brainstorm. my bad. he flashed LEDs with it so i called it microcontroller. xD
This facultative lobotomy was awesome! Thanks for letting me understand how the Ghost works :)
Using LEDs on the address and i/o lines is a neat way of demonstrating a CPU's function!
Congratulations ! this video is just awesome. I just made my first NOP computer with an old Z80 I had in my basement. Thanks for a such illuminating lesson of how computers work !!
I went ahead and built this project from this video with spare parts I had. A couple of notes, as Julian noted, use 220 ohm resistors on your LEDs and your CPU won't heat up. Also instead of just setting the RESET flag high, hook it up to a switch so you can momentarily set the flag to LOW. Connecting power to the CPU doesn't always guarantee a good start. I have to hit reset before proper operation occurs. Finally, I don't know how he did it but I had no potentiometers that fit nicely across pin 6 and 7 of the 555 timer or one that fit nicely in the holes of the bread board even though I have ones that look like his. I used a couple of 100k resistors along with a 1uF cap and got 4.7Hz. Whiz-Bang idea of the day: Soldering resistors to your LEDs. Saves space on the breadboard. Kudos to Julian and thanks!
You're quite right - reset needs a switch - I used a piece of wire, but it never made it into the video (must have lost it in the edit). Cheers Edward :)
A few resistors to program it, love it. Imagine doing that on a PI - most people would start with 'install Linux'!
AWESOME Julian! I think I threw away a Z80 in an old UPS and I am now regretting it because I could've recreated your amazing lightshow!! THANKS!
Wow...WOW! I didn't think you could get a microprocessor running with so little support circuitry. What a cool demo Julian. Thanks!
Absolutely fascinating video!!
I learnt more in 20 minutes than I managed as a 10y old child writing basic and trying (and failing) to use a ZX Spectrum Assembler software compiler my father had rather ambitiously bought me one Christmas in the 80's :)
More Z80 videos. I love the nostalgia!!
Takes me back many, many years. Thanks for a brilliant project I will be trying soon!
+julian ilett, I love this episode! Hardcoded single byte ROM! Very creative! Useless, but very interesting. I totally enjoyed it. Kudos!!!
There seems to be a revival in the Z80 scene. There are now multiple Z80 "homebrew" type systems with a few of them even running CP/M, and the odd few even ported onto an FPGA. The RC-14 seems to be the easiest to get and it's made in the UK.
Actually a very interesting video. Gives you an idea how these microprocessors work at electrical level. Thumbs up
Thanks Klaus
Excellent demo, you make a superb teacher Julian. thanks
Z80 in the title? An instant like.
www.instructables.com/id/Z80-Monitor-Type-Operating-System-and-SBC/
You don't need to UV erase that EPROM every time you program it if you use a bit of trickery. You could use code at the start to determine where your new code begins or simply use dip switches (or wires) on the high bits of the address bus. Both have their own advantages/disadvantages but either way it saves a lot of time (and wear on the EPROM) if your code is small. A 32kB EPROM could last a long time before you need to erase it. Works with EEPROMs too of course but the savings are less.
And it shouldn't be too hard to make a programmer using an Arduino so you don't even need to buy one. And of course we know you have a 12V PS somewhere! ;-)
Now that, I like. I've got some Z80 based units I often have to repair, I'll get busy with the VERO board in the next few days and get myself a little CPU tester built. Fabulously creative idea of using the resistors on the data bus to load an instruction. Many thanks.
This reminded me of 8086, wonderful days. I feel sad now. 😣
Nice video, Julian. It brings back memories of my first foray into computing: a two day intro to the 8080 on a tutor board (all LEDs and toggle switches) back in 1978. I was hooked at that point and it set the direction of my career. Now I'm retired and back bit twiddling with Arduinos and the like :)
Very interesting! And not something I've seen elsewhere!
I would imagine it would be easy enough to use a transistor pulldown circuit to actually drive the LEDs. A bias resistor could easily stay within the operating current of a Z80 and still keep the base of the transistor from floating effectively. I've had a look around and one can still get brand new Z80 chips for those wondering. There are also some BGA packages that would work for this though harder to use as they are mostly SMD packages and as such, hard to use on a breadboard without some sort of bodged shield with headers to plug it in. Great video on the more intricate nature of a Z80. This was fun.
Well done. 7 years and it's still relevant!
Fantastic video, really informative, really inclusive, really demystifying. Thank you!
Julian, this is definitely one of your best videos!
Thanks, I love the Z80 :)
"Thank You", thank you very much 😀 Is there a circuit schematic of this presentation/video🙄 If so, may I have a "link" to the schematic 😎
hmm no IO, are we seeing the programcounter out on the address bus incrementing? Interesting stuff!
perfect intro to the Z80. Thanks, much appreciated
Great video! Takes me back to my ZX80 / 81 & Spectrum programming days! I recall when I FIRST discovered I could run LEDs from the external expansion port on my ZX81, and then decided to exchange the LED for a Motor. *That* was when I learned what current was as well... As I peered into the smoking remains of the Z80 after it went "POP!".
Great video - the best I've seen (from any source) in a while. Very accessible and entertaining. More like this please :)
Awesome video !! I learned quite a bit actually! It never would've occurred to me to do this, and I found it very entertaining and educational. Keep up the awesome videos !
Brings back memories at Wang Labs in Lowell, Massachusetts. My 1st 3 R&D projects starting in 1980 were Z80 designs.
I still have a zx81, with 16kb ram expansion and even a tape deck. :D
Me too, although it's the american version Timex 1000. Still works flawlessly and slowly ! lol !
Up in my dad's loft, there sits a dusty zx81, which was my first computer. I don't think it works anymore.
Me too. This brought back some wonderful memories of Z80 and 6502 fiddling. Thanks!
Robert George I still remember trying to implement graphics on a 48k Spectrum from assembler code. The way the addressing for the screen worked was very difficult to work with (in my view). Still fun though :)
i have several zx81s, plus a good few spectrums! lovely machines, even with their 'peculiarities' ;-)
I did something similar a very long time ago with a 6502 from a Commodore 64. Mine wasn't quite as extravagant as yours but NOP for that processor is 234 (EA). Don't ask me how I remember many of the OP codes for the 6502. And I didn't just reference them online. I had the same idea to fill "memory" will NOPs to fake it into running without interruption. I really wanted to start executing at 0x4c4c because repeating 4c's would JMP to 0x4c4c and loop endlessly... Or BE/BNE 0xfe to loop endlessly but that would require alternating bytes on the data input lines.
I gave up on not using real memory at that point.
I love this vid & I'm also a big fan of the Z80. I still own my original ZX Spectrum, plus a few more now lol.
I'll be playing about with a spare Z80 at the weekend :D
Thanks for the upload & happy new year.
I have just tried this, it was great fun and a lot of learning! I'd accidentally started with my breadboard the other way up so negative is on the top rail, and that might be why I accidentally plugged in my address LEDs the wrong way around and they were counting down instead of up - that was a learning moment when I realised what I'd done there! Using my DSO138 scope to see what's happening was interesting too especially on the MREQ pin when I tried instruction 0x18. I did keep feeling for heat from the chip but not noticing anything - then i read that CMOS chips don't get as hot as NMOS and I've got a 10MHz CMOS chip here. Thanks Julian and keep doing bonkers stuff from time to time!!
I really enjoyed this video! Thank you for making it.
best video i have seen THIS year!
Better be careful there, Mr. Ilett. At 5Hz, you might be overclocking that little puppy
What a great way to learn about CPUs.
This is fascinating, well above what I'm knowledgeable about but still great
Thanks, I've successfully tested my Z80 proc with your method(flashing LEDs), and I now start to plan my really own computer... Thanks!
Very professional presentation and so educational. I love all your videos, but this one is really great. Thanks!!
I'm sure you get a lot of suggestions, so add this one to the list. Upon fiddling with the circuit myself, I found it's much more effective when using an output to drive an LED to instead just make a MOSFET driver to drive the LEDs. In my own experiences I've found even with a 220ohm resistor, the green LEDs were very dim, plus it lowers the output pin's voltage to whatever the LEDs forward voltage is. In my case it was ~ 2.5v.
Great project though. I used this very project to "break my CPU cherry". Being that I'm Canadian i've always grown up with 6502 systems, C64, NES and so on. I never knew a lot about the Z80 and I've even found 6502 assembly to be easier. Anywho, thanks for making this video. It gave me the inspiration to make this and try different variations on it. Cheers, brother.
Loved this video, My first introduction to the Z80 was using the Micro professor board that included all the peripheral chips to interface components to.
Really enjoyed this! Takes me back to my youth learning assembler on by brothers Nascom 1 Z80 based kit computer in the late 70's.
when in the marines some of the Telephone switch boards used the z80 processors I know they have the z81 also so I had some and wanted to experiment and put it in the switch board in place of the z80 and was surprised it worked.
Wow - rekindled my love of the Z80 - Going to build this baby with a few extras so my other half can use it in the teaching world - maybe even do a blog about it.
This would have saved me a lot of time had I watched this back in 1985. ;-)
Great video!
This video helped relax me before starting production on my Z80 Computer, I already read the cpu user manual and a few chapters of "BuildYourOwnZ80" , Im just afraid of hooking it up for the first time ever as if it wont work, But You made it look easy as hell as if you were just doing a test circuit for a logic IC !
I learned assembly programming on a Z80 and it baffled me when other processors didn't use 0 for NOP. It was a great bit of nostalgia watching one wired up this way and hearing about the op codes again after all these years.
Great video Julian. I'd love to see the Z80 series get expanded with an example of how to read a program from a rom, and memory mapping some output chip to drive some LEDs. It would be a lot more complicated though, but oh what fun :)
Absolutely great! The Z80 was my favourite back in the day. [Oh so long ago :) ] Please can we have more of this type of video.
this is a great video, julian! extremely interesting and what a great idea to simulate the ROM with resistors
cheers!
I was excited there for a second, a Z80 project. But flashing leds? Now come on Julian, we know that you can design whole projects based on one of these, let's see something worthy of the chip.
We have gone from 2.5MHz to ~4 GHz clocks!
Note that new processors execute faster (instructions take less clock cycles) so effective speed increase is even higher.
New processors actually execute several instructions per clock cycle because it was more effective than making the clock even faster.
More like 4hz clocks xD
If it didn't literally burn the chips they'd be setting the clock even higher.
Plus the 'cache' stuff only exists because they couldn't get the memory to run as fast as the CPU
It is now December 2019, and one of the fastest current CPUs, the Intel Core i9-9900KS has
Cores: 8 | Base clock: 4.0GHz | Boost clock: 5.0GHz
Happy new year to you too. And it starts with a great video 👍🏻 I like more of this..
Hey Julian, I used those chips too in some video game boards and I am going to try and copy your project. it looks like fun. its a pretty fascinating chip.
in 1979, or thereabouts, I used to use a NOP tester to diagnose faults on Z80 system boards, just a CPU with the data lines soldered to a wire that pulled them all to ground. The advantage is that the CPU is going through all of the data/ram addresses, each address line being at half the frequency of the preceding bits. Thus you can 'scope out the address lines all round the board. You can do it with a 6502 (Commodore PET etc.) but the NOP is a different op code (iirc!).
Clever video you developed and loved it! I miss the Z80A. Exposed initially to Z80A via MSX (coleco) which eventually died in the mid '80's. Loved the two sets of registers! Still a great CPU.
Great video, very educational. Learnt a lot, thanks Julian.
Oh yes, the good old Z80, heart of my old and much-loved Sinclair ZX Spectrum. I seem to recall reading somewhere that there is a micro-controller based on the Z80 architecture or was I perhaps just dreaming it? One of the things I like most about the AVR is its assembler mnemonics are fairly similar to those of a Z80 and infinitely more readable than the mnemonics of a PIC (although I am beginning to get my head around them.)
Nick B How about the ez-80?
That was fun to watch. I was a 6502 guy around the time you were a Z80 guy (Commodore VIC 20, Oric 1) and you have put the longing on me to revisit my youth and try the same thing with a 6502. If you haven't already seen it, you (and anyone else geeky enough to love this video) should check out Quinn Dunki's blog where she describes the process of building a 6502-based computer (called Veronica) completely from scratch.
Brilliant! Takes me back to building a Z80 based microcomputer on a great university course back in 1986-ish.
Totally fascinating video, Julian! I've only really had a rudimentary idea of how the various components of a computer's architecture communicate so this was really interesting. Z80 ICs are pretty cheap too. Thanks for sharing!
Very nice illustration of how the Z80 works. I'd love to see you build on this and create a simple breadboarded sbc.
That would make a great basic Z-80 tester. I started out with RCA Cosmac CDP1802. It had internal Sixteen 16 bit registers, so you could toggle in an LED flash program through DMA directly. The only external components would be a resister and an LED. My 30 year career at Boeing allowed my to work with many manufacturers micros and I ended my time at Boeing with PIC microcontrollers. Still do PICs as a hobby today
Actually, you'll find that the Z80 from 1987 on your breadboard is in fact a Z80A. Zilog stopped using the A/B/H suffixes, and instead put the actual clock frequency at the end of the long symbol. This one is Z0840004, so it's a 4Mhz chip, equivalent to the previous Z80A. I have a Z084C0008 chip, which is also marked Z80, but it''s a 8MHz version, which previously was dubbed Z80H, and additionally it's a C-MOS device, making it a static chip (meaning you can stop the clock completely) and less power-hungry :)
Apart from that - very ingenious demonstration of the Z80 in action :) Cheers from Poland :)
i have vague recollections, 1960s or 70s maybe, of small computers in magazine pictures that appeared to be programmed by a bank of 8 [?] toggle switches. would these toggles correspond to your bank of 8 resistors on your breadboard ? to program different instructions & values ? i think there were pilot lights above the switches, to indicate on/off, i presume. thank you. take care & stay safe.
i love z80, i love with you done, very well work, i will pick-up my protoboard and made one for me now
My first computer was a Digital Group kit with a Z80A. I never thought you could get a Z80 to do something interesting without RAM and all the other necessary support chips, and IO cards. The 5hz clock was brilliant. I was concerned when you started connecting LEDs directly to the chip, but it survived!
I have just built this. I had to pulse pin 26 (reset) low to get mine to start. Did you not do that off camera. great project. thank you.
very fun project and great video just getting back to Z80 fun and got a couple of spectrums to play with as I lost my TRS-80 when moving
*PLEASE DO THE FOLLOWING:*
incase this in resin along with a wireless power coil.
Just watched ben eaters 6502 videos, love these old and simple(r) CPUs. I'd love to make a diy 8 bit computer with only switches and leds on the front panel (well maybe some 7 segs)
will you do more stuff with the z80? its nice to learn about this
That was great, I'm tempted to desolder my ZX Spectrum's CPU and toy around with it! Any thoughts on how to attach RAM, and of course how to preload some of it with actual code, to make this actually perform work? I'm off to re-read Rodnay Zaks and refresh my own memory on what address the stack pointer defaults to :-)