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.
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.
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.
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.
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.
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 :)
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.
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.
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!
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.
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!).
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.
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 was a great video. Everything from "faking" an instruction to using LEDs to watch the chip request addresses sequentially. Just excellent. Thanks!
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.
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.
A number of years ago I built a 'Bigboard II" single-board computer that was based on the z80 chip. When it didn't work at first (which turned out to be due to solder bridges), I pulled the 74LS245 data bus buffer chip and soldered a bit of bare wire that grounded all of the data bus pins, which effectively caused the chip to continuously execut NOPs. This gave square waves on each of the address bus lines, each one half the frequency of the next, a nice troubleshooting tool. I still have that board. :-)
My first computer was a Z80 with 32 kilobytes of RAM 2 kilobyte of ROM and twin 5.25" (512kB) floppies running CPM. It was an amazing system which ran Wordstar word processor and a spread sheet. Its amazing that computers now have gigabytes memory!
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.
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!".
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!!
Something which occurred to me is that this would be great for techno-cosplay, where someone wants to dress up as a robot or cyborg. You could use an old CPU (perhaps with some transistors as buffers to get rid of the overheating problem) to drive a nice flashing light display to give that retro-tech feel to the costume.
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.
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.)
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.
Excellent. I did similar in the late '70s with the INS 8060 CPU that Sinclair used in the MK14. A UK magazine ran a series of articles showing how to use a toggle switch to SINGLE clock the CPU, and present data on the data lines using switches, such that the effect of each clock cycle and data could be seen.
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 :)
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
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.
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!
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! ;-)
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.
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 learned so much in middle/high school from my Z80 powered MicroAce (ZX80 clone with 2x the memory, a full 4k!) It amuses me that the icon we click on now to run a program would not even fit in that memory space.
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 !!
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.
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.
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!!
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 :)
Julian, I built this and then decided to drive it with an Arduino Mega which has enough pins to both drive the address and data bus. It's been an interesting project to say the least. Love your videos!
Possibly one of the CPU's best features was that its design facilitated its use in multi-tasking environments. It had a set of "alternate" registers. Flipping between the register sets was much faster than using the stack, although I'm not aware of many programs which took advantage of this feature. The fact that the Z80's instruction set was a superset of the 8080 meant that it could be used in computers which ran either CP/M or its multi-user/multi-tasking cousin, MP/M. The Z80 was used extensively in such computers.
I think the 2650 deserves at least an honourable mention. Its Program Counter Relative instructions meant that it was possible to make a program which could be loaded and run anywhere in memory.
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 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.
Thoroughly enjoyed that step back in time Vid Julian although the 6502 was the only CPU I did anything with. Produced a program in Assembler which used all of the BBC B Computer memory.
An interesting fact: I tried this with a "MOSTEK" Z80 CPU and found that I needed to add the 330 Ohm pull-up resistor on the clock pin even though I was running the clock from a 555, so it seems that the resistor is required in some cases.
Cool project, Julian. Takes me back to the late 70's writing firmware for the Z-80 on a Mostek development system. Your video makes me want to pull one of the old chips out and see if it still works, even if it's only executing a hardwired NOP! Thanks for sharing.
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.
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.
Very interesting old timer electronics. I read up on the z80 back then, but never got round to using it, I messed with the 6502 instead, I had a board with the 6502, adress decoder (3 bit to 8 line 74ls chip), rom, ram and a parallel port chip. Sort of a early arduino. I wrote some code using the bbc b computers assembler, but a mate of mine wrote code driectly in hex, bonkers. I built a msf clock using the z80, a rewbichron 2 from practical electronics, the system only used a rom chip, no ram.
the old days for me too back in the 80's when I worked for Ampex Corp. in Redwood City Ca. working with Rockwell 6502 cpu with rom chip, ram chip and latch chip , all on one board as a working board. the old days before Mcu's all on one chip..
would you consider doing some videos on machine language did it years ago in a tafe course and liked it they should still do it in high schools just in order to teach people how to break a problem down into discrete steps
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 have a whole bunch of 8051 chips that are also left over from tinkering in the '80s. By comparison, it is hard to believe what we have available today to tinker with (and at such low prices).
Thank you, nice video! I wanted to try that in the 1980s too, but back then the hobbyist LEDs took way too much power to operate, especially when you try to turn them all on at once on the data lines. I always had to use a ULN 2003 or transistors on the output.
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.
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.
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.
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.
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.
The blue LEDs around 20:50 are spot on for 80's sci-fi computer lights !
Great educational video...enjoyed that.
This is one the best tutorials i‘ve ever seen on youtube. You should poste a parts list. It‘s perfect to explain microprocessors!
Using LEDs on the address and i/o lines is a neat way of demonstrating a CPU's function!
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 :)
Nice educational video! Great way to visualise the signals. So nice!
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!
Professor Julian lives and breathes Z80...you couldn't ask for clearer, more understandable explanation. Thank you!
Brings back memories at Wang Labs in Lowell, Massachusetts. My 1st 3 R&D projects starting in 1980 were Z80 designs.
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.
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.
Wow...WOW! I didn't think you could get a microprocessor running with so little support circuitry. What a cool demo Julian. Thanks!
@ 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!
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.
Thanks for the memories ! back in the days I started to fiddle with assembler, 8080 and z80 ! Very instructionnal for those younger lads !!
Brilliant Julian - I wish I had this kind of instruction when I was an apprentice in the 80's - very easy to understand.
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!).
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.
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.
A few resistors to program it, love it. Imagine doing that on a PI - most people would start with 'install Linux'!
This was a great video. Everything from "faking" an instruction to using LEDs to watch the chip request addresses sequentially. Just excellent. Thanks!
Excellent video/tutorial. Very well explained.
I did some assembly back in the days on the Z80.
Love it! One of the best microprocessors ever made, nice to see one dusted off. Great job!
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.
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.
A number of years ago I built a 'Bigboard II" single-board computer that was based on the z80 chip. When it didn't work at first (which turned out to be due to solder bridges), I pulled the 74LS245 data bus buffer chip and soldered a bit of bare wire that grounded all of the data bus pins, which effectively caused the chip to continuously execut NOPs. This gave square waves on each of the address bus lines, each one half the frequency of the next, a nice troubleshooting tool. I still have that board. :-)
This reminded me of 8086, wonderful days. I feel sad now. 😣
Better be careful there, Mr. Ilett. At 5Hz, you might be overclocking that little puppy
hmm no IO, are we seeing the programcounter out on the address bus incrementing? Interesting stuff!
This facultative lobotomy was awesome! Thanks for letting me understand how the Ghost works :)
My first computer was a Z80 with 32 kilobytes of RAM 2 kilobyte of ROM and twin 5.25" (512kB) floppies running CPM. It was an amazing system which ran Wordstar word processor and a spread sheet. Its amazing that computers now have gigabytes memory!
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.
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!".
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!!
Something which occurred to me is that this would be great for techno-cosplay, where someone wants to dress up as a robot or cyborg. You could use an old CPU (perhaps with some transistors as buffers to get rid of the overheating problem) to drive a nice flashing light display to give that retro-tech feel to the costume.
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.
Takes me back many, many years. Thanks for a brilliant project I will be trying soon!
Very interesting and very well explained. Took me back to my 6502 days many moons ago. Keep 'em coming
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?
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.
Excellent. I did similar in the late '70s with the INS 8060 CPU that Sinclair used in the MK14. A UK magazine ran a series of articles showing how to use a toggle switch to SINGLE clock the CPU, and present data on the data lines using switches, such that the effect of each clock cycle and data could be seen.
Brilliant! Takes me back to building a Z80 based microcomputer on a great university course back in 1986-ish.
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!
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 :)
Absolutely amazing explanation of the Z80! I almost feel like I understand it (a tiny bit). Thanks!
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
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.
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!
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! ;-)
Very nice illustration of how the Z80 works. I'd love to see you build on this and create a simple breadboarded sbc.
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.
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
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 learned so much in middle/high school from my Z80 powered MicroAce (ZX80 clone with 2x the memory, a full 4k!)
It amuses me that the icon we click on now to run a program would not even fit in that memory space.
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 !!
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.
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.
"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 😎
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!!
Excellent demo, you make a superb teacher Julian. thanks
This by FAR is the best z80 instructional video I have seen yet.
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' ;-)
Very entertaining video, learning about these old chips. Would have loved to see the clock speeds up to the max so that all the LEDs blink like crazy
Julian, I built this and then decided to drive it with an Arduino Mega which has enough pins to both drive the address and data bus. It's been an interesting project to say the least. Love your videos!
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.
Very interesting! And not something I've seen elsewhere!
Well done. 7 years and it's still relevant!
Fond memories of entering octal code (like the 8080, nothing lined up in hex) on my home brew wire wrapped Z80 in '77.
Takes me back to connecting peripherals to my Jupiter Ace ...
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.
What _were_ some of the processor's applications in the 80s?
Many home computers
Also slot machines, vending machines, cash registers, music synthesisers...
Sinclair ZX80 PC, Microbee PC
Possibly one of the CPU's best features was that its design facilitated its use in multi-tasking environments. It had a set of "alternate" registers. Flipping between the register sets was much faster than using the stack, although I'm not aware of many programs which took advantage of this feature.
The fact that the Z80's instruction set was a superset of the 8080 meant that it could be used in computers which ran either CP/M or its multi-user/multi-tasking cousin, MP/M. The Z80 was used extensively in such computers.
I think the 2650 deserves at least an honourable mention. Its Program Counter Relative instructions meant that it was possible to make a program which could be loaded and run anywhere in memory.
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 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.
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
Thoroughly enjoyed that step back in time Vid Julian although the 6502 was the only CPU I did anything with. Produced a program in Assembler which used all of the BBC B Computer memory.
A pity you never did a series on the Z80
This is like a year of my City and Guilds 223 course in half an hour, brilliant. !
An interesting fact: I tried this with a "MOSTEK" Z80 CPU and found that I needed to add the 330 Ohm pull-up resistor on the clock pin even though I was running the clock from a 555, so it seems that the resistor is required in some cases.
Cool project, Julian. Takes me back to the late 70's writing firmware for the Z-80 on a Mostek development system. Your video makes me want to pull one of the old chips out and see if it still works, even if it's only executing a hardwired NOP! Thanks for sharing.
Actually a very interesting video. Gives you an idea how these microprocessors work at electrical level. Thumbs up
Thanks Klaus
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.
I really enjoyed this video! Thank you for making it.
+julian ilett, I love this episode! Hardcoded single byte ROM! Very creative! Useless, but very interesting. I totally enjoyed it. Kudos!!!
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.
Sharp made an electronic typewriter with a Z80 inside, lots of Sharp branded ICs in it.
Think I binned the PCB long ago, as no one wanted it for free.
What a great way to learn about CPUs.
Very interesting, please attach a memory chip and do part 2 of the video.
Thanks
Thank you. This has inspired me to order a Z80! 4 GBP for a binary counter is a tad expensive - but worth it for the fun.
Very interesting old timer electronics.
I read up on the z80 back then, but never got round to using it, I messed with the 6502 instead, I had a board with the 6502, adress decoder (3 bit to 8 line 74ls chip), rom, ram and a parallel port chip.
Sort of a early arduino.
I wrote some code using the bbc b computers assembler, but a mate of mine wrote code driectly in hex, bonkers.
I built a msf clock using the z80, a rewbichron 2 from practical electronics, the system only used a rom chip, no ram.
the old days for me too back in the 80's when I worked for Ampex Corp. in Redwood City Ca. working with Rockwell 6502 cpu with rom chip, ram chip and latch chip , all on one board as a working board. the old days before Mcu's all on one chip..
would you consider doing some videos on machine language did it years ago in a tafe course and liked it they should still do it in high schools just in order to teach people how to break a problem down into discrete steps
Z80 in the title? An instant like.
www.instructables.com/id/Z80-Monitor-Type-Operating-System-and-SBC/
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 have a whole bunch of 8051 chips that are also left over from tinkering in the '80s. By comparison, it is hard to believe what we have available today to tinker with (and at such low prices).
Thank you, nice video! I wanted to try that in the 1980s too, but back then the hobbyist LEDs took way too much power to operate, especially when you try to turn them all on at once on the data lines. I always had to use a ULN 2003 or transistors on the output.