Z80 Computer - Part 1 The CPU, Clock & Reset

Поделиться
HTML-код
  • Опубликовано: 25 окт 2024

Комментарии • 82

  • @nick1austin
    @nick1austin Год назад +9

    24:19 The current limits are the same for all pins so its specified just once under DC Characteristics. It's non-symetrical so different for active high and active low. Iₒₗ is 2.0 mA and Iₒₕ is 1.6mA. If you were using a first generation chip you'd have had problems, but later revisions were built to better specs.

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад

      This is good to know. If anyone is following along with an early chip it could damage it.

  • @kenturkey1971
    @kenturkey1971 Месяц назад +2

    Fun to watch you do exactly what I did recently. 😀 I'm working on a similar project with a Z180.

  • @marcusklinkenvan5391
    @marcusklinkenvan5391 6 месяцев назад +3

    Recently I started a little 8 bit breadboard computer project with the w65c02. Much fun with the literal 0`s and 1`s right on the chips little legs. I also more recently got hold of 6 circuit boards from some communication system, It holds a D780C-1 processor. Turns out I am now the proud father of 6 Z80 oem CPU's. So a search on yt got me here for a Z80 project, Subbed and bookmarked for later.

  • @byteforever7829
    @byteforever7829 Год назад +3

    It's amazing and brilliant that this was Zilog's first product and it is still in production and sold millions of units. What a great CPU, and still totally relevant today. Ace project as well, can't wait to watch through the progress.

  • @jesusmolo
    @jesusmolo 2 года назад +18

    Hello, good afternoon. Please continue with this project, all my life I wanted to build a microcomputer with the z80. Your way of explaining the subject is excellent. You have one more follower.

    • @SteveRaynerMakes
      @SteveRaynerMakes  2 года назад +6

      Thank you. I will be coming back to this but I can't promise any timescales.

  • @zilog1
    @zilog1 2 года назад +4

    im 25 so i have no nostalgia for this. I like the z80 computers and the cpu because the documentation is fantastic, there are so so many books on the darn thing, its reasonably easy to make a system from, they are cheap and readily available, and because of how old it is, there is a crap ton of software written for it so plenty of example code. This is a fantastic learning tool for any age regardless nostalgia.

    • @SteveRaynerMakes
      @SteveRaynerMakes  2 года назад +3

      Thank you. It's interesting to know that younger viewers might be interested in this type of content despite the Z80 being so old.

    • @jclosed2516
      @jclosed2516 2 года назад +2

      Yep - I still have some old books about the Z80, and they are really helpful. I was experimenting a lot with the Z80 (and all kinds of processors to be honest, starting with the now famous 4004), in a way very similar to this video. That said, I also have a load of books about the 6502 processor. That was another one that was really popular in those days (mainly because the where at the heart of the Acorn Atom and the more widely known BBC-B computer).

    • @zilog1
      @zilog1 2 года назад +2

      @@jclosed2516 Fun Fact, the 6502 is still being made brand new by WDC and is being sold by Mouser and digikey. WDC also makes some other 6502 related products like a 16 bit pipelined version and a microcontroller/soc called the MENCH

    • @jclosed2516
      @jclosed2516 2 года назад +3

      @@zilog1 Yeah - I know. I only wanted to point out that around that time those processors (Z80, 6502, 1802) where at the height of their popularity. For me it's still fun to play around with them at the present, but for most people today it's sadly just an ancient piece of technology.

  • @j.c.murillo
    @j.c.murillo Год назад +1

    Excellent project, thanks for sharing and continue giving life to the Z80

  • @3498137
    @3498137 2 года назад +2

    Thank you for your excellent contribution. Your explanation is impeccable. I have the Microprofessor Z80 and was wondering how the z80 worked. With your input I have more clarity on this issue. Continue with your project, surely it will be very useful to us. I am one of your new enthusiastic followers.

  • @Dieguscus
    @Dieguscus 2 года назад +1

    Seriously waiting for the continuation of this series. Great job on the explanation! Regards

    • @SteveRaynerMakes
      @SteveRaynerMakes  2 года назад

      Yeah sorry. I ran into a problem with the RAM which is holding me up.

  • @vvtor
    @vvtor 9 месяцев назад +1

    Great video and excellent way to present, I will watch the rest for sure.

  • @abrienel6558
    @abrienel6558 10 месяцев назад +1

    Fabulous and fascinating. At just the right level!

  • @dante.alighieri
    @dante.alighieri Год назад +1

    Thanks for sharing your knowledge Steve.

  • @Rayvonwiggle
    @Rayvonwiggle 3 года назад +1

    Cheers Steve, really well explained. My first computer too. Looking forward to part two.

  • @Millstone_Firewood
    @Millstone_Firewood Год назад +1

    Just found this. Outstanding explanations. I'm going to build all of this so I can follow along. Thank you!

    • @pikadroo
      @pikadroo Год назад

      How are the explanations out standing? He has no idea idea why the 74hc14 chip using pin 3 & 4 in the clock circuit he borrowed from someplace else.

    • @Millstone_Firewood
      @Millstone_Firewood Год назад

      @@pikadroo Certainly there are a lot of things he doesn't know. Even I knew about the clock. Overall this was a good video for a beginner. If you don't like it, don't watch.

  • @tangente60
    @tangente60 2 года назад +2

    very interesting stuff, awaiting more...

  • @eknuds
    @eknuds Год назад +1

    I just started breadboarding this. I got some C compiled and burned onto an EEPROM but I will have to make my own Z88DK config. After I started connecting it to the Z80 I decided to move the processor to another breadboard and create a bus, putting all of the control, address, and data pins in order. My clock is only 1MHz, so I think it should still work.
    Then it was early morning so I decided to pick it up another day.

  • @colonelbarker
    @colonelbarker 2 года назад +2

    Great video, looking forward to seeing more at some stage.

  • @paulfletcher4613
    @paulfletcher4613 7 месяцев назад +1

    Wow. Now I can build my own Z-80 :) Thanks

  • @ChrisSavageEngineer
    @ChrisSavageEngineer Год назад +1

    Nice video. One quick note when you're manually doing the output. Whatever you output is going to be on the same bus as those DIP switches, which some are forced HIGH when the switches are closed. Hopefully no data bus pins were damaged.

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад +1

      Yes in hindsight that wasn't really a very good idea. I guess the circuit is ok for reading, but not really safe for writing. Luckily there does not appear to be any damage. I think I might have been lucky, in that the instruction I used was OUT (n), A. So it's the contents of register A that would be output. I believe this "may" be FF after a reset.

    • @ChrisSavageEngineer
      @ChrisSavageEngineer Год назад +1

      @@SteveRaynerMakes I saw that you're learning as you go, so these are typical things we all do. I was building a Z80 system yesterday and mixed up a few lines and wondering why my code wasn't doing what it should. Then I accidentally connected the WR line on the EEPROM / Flash memory, so when the code went rogue, it overwrote some of the code. I'm on your third video. Still going...

  • @microhobbyist
    @microhobbyist 2 года назад +1

    Great video. I started my own series on the Z80 not too long ago.

  • @melkiorwiseman5234
    @melkiorwiseman5234 Год назад +1

    Just found this series. It looks interesting so I'll follow it for at least an episode or two. Maybe longer. It looks like you're going to be using bank switching. Multitasking? That would be a challenge but an interesting one.
    I had an idea of building a multitasking / multiuser system which has memory protection to prevent one user's program from intruding on memory intended for a different program. For example, only an instruction executed from the ROM switch memory banks and if a program running elsewhere attempts to do so, the signal is blocked and goes nowhere. This would force running programs to "request" a bank switch when needed and the OS can ensure the request is valid before granting it.
    Directly jumping to a ROM routine would also be disabled. The running program would need to use a RST call in order to send a request to the OS.
    Incidentally, it seems that most or all Z80 CPUs will actually access up to 64K I/O ports. This is done by using the IN A,(C) and OUT (C),A instructions. It seems that these instructions actually output the entire BC register pair onto the address bus during the instruction execution, which means you have access to heaps more I/O ports. If you really wanted to, you could even use some of these I/O locations as slow RAM for accessing data.
    This is undocumented so it might not work on all Z80 CPUs, but it's worth trying to see if your CPU works that way.

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад

      Hi thanks for your comment. Yes I'm intending to use bank switching to access more memory, but not really for the purpose of multitasking or multi-user system. I think that would be too advanced for me. Yes the IO address space is actually full 16bit (64k). Some instructions place the A register on the top half of the address bus and some use the B register. I'm using this feature in Part 11 for the keypad.

  • @jamesgoacher1606
    @jamesgoacher1606 Год назад

    I have seen briefly this video in the past but this time I watched it through and I was absolutely enthalled.
    I believe that the initial standard chip speeds were 2.5MHz and 4MHz and I always found the Z80 to be an understandable chip. Its instruction set and fuction is the same as the Intel-8080 but that require a couple of support chips corrected with the Intel-8085.
    Somewhere I have all of the chips for a Z80 SBC and a perforated board that I was going to assemble it on. Maybe it is in the loft.

  • @rsmrsm2000
    @rsmrsm2000 День назад +1

    Amazing !!!!

  • @cthoadmin7458
    @cthoadmin7458 2 года назад +2

    Going to try this Steve. A question. In Ben Esser's series on the 6502 he talks about not using the early 6502 models because they had dynamic registers that needed to be constantly refreshed by the clock like dynamic memory, meaning slow or single step clocks would cause the processors register contents to disappear. I have what looks like quite an old crusty Z80, just wondering if i might hit the same problem. You don't appear to. Any ideas?

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад +1

      If you use static ram like I am, then it doesn't need to be constantly refreshed. The Z80 can handle any clock speed down to zero, completely stopped. It's an excellent processor to learn and get started with.

  • @mbiella1965
    @mbiella1965 2 месяца назад

    This series is amazing and your project is really beautiful, compliments. One question, is possible to have schematics of this project? Thanks in advance

  • @JohannSwart_JWS
    @JohannSwart_JWS Год назад +1

    Not useless, not low spec. As a embedded microcontroller, its still very useful, and fast. Just inconvenient, in comparison with modern ucontrollers, with everything onboard.

  • @laithal-athary9932
    @laithal-athary9932 4 месяца назад +1

    same nostalgia and same dream to build my own computer

  • @mrshodz
    @mrshodz Год назад +1

    I might try this project.

  • @mk6595
    @mk6595 Год назад +1

    The second inverter on the clock generator is to buffer the clock signal so that things that are using the clock don't load it down.

  • @alex2272
    @alex2272 12 дней назад

    Hi, can you report schematics ? Thanx.

  • @ana2kin
    @ana2kin Год назад +1

    Hello! I tried out the circuit, and it works perfectly with automatic clock. However, manual clock does not work as it should in my case: no problem if I press the clock button continuously at a steady pace. But if I stop pushing it, after - let’s say - 1 or 2 seconds all the yellow and blue LEDs turn on. So I can’t really pause the execution. I checked the clock signal with an oscilloscope, and it looks ok. If I stop pressing the button, there is no clock signal. But even in absence of a clock signal, all the LEDs (except halt) will light up after a few seconds.

    • @ana2kin
      @ana2kin Год назад +1

      It looks like my Z80 is an NMOS version of the chip, thus requiring a minimum clock speed. Manual clock only works with newer CMOS processors.

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад +1

      Although it doesn't help you much, it is at least good to know.

    • @ana2kin
      @ana2kin Год назад +1

      @@SteveRaynerMakes Indeed, I purchased a new CMOS Z80 and I can confirm that manual clock works properly with it ;-)

  • @TheWareek
    @TheWareek 2 года назад +3

    my first computer was a TRS80, 4K of thundering power expandable to 16K.

    • @TheWareek
      @TheWareek 2 года назад

      I had one of those, and to this day I regret selling it. To be able to bring it out and show my grand kids what the first computers were like. Bliss.

  • @MarcioR2
    @MarcioR2 9 месяцев назад

    Legal!! 😃
    Obrigado por compartilhar seu conhecimento do z80!!
    Eu também quero montar um z80 no protoboard!!

  • @erikfabbri291
    @erikfabbri291 8 месяцев назад +1

    hi, I have a Zilog Z80 like yours, in cmos, but it behaves anomalously, I made the connections like yours, pullup resistors on the reset-busrq-wait-int and nmi pins, I generate a clock with the blink sketch of arduino (for my convenience at the moment). 4 LEDs with resistance on the negative for the address bus A0-A1-A2-A3 and finally I put all the pulldown resistors of the data bus, the only difference from your project is that I didn't put the jumper on the positive for the databus. It shows no signs of life, the clock LED flashes, the RD LED is always on and on the m1 it never activates even after pressing the reset for a long time... Do you have any suggestions, maybe I missed something? if it can be useful my model is Z84C0020PEC

    • @SteveRaynerMakes
      @SteveRaynerMakes  8 месяцев назад

      My part number is Z84C0010PEC. Seems we both have CMOS versions. Mine is 10Mhz yours is 20Mhz, but as far as I can tell they should both work the same. All I can suggest is that you double check everything. Did you connect 5v and GND pins on the Z80? Might be obvious, but you didn't mention it. Do you have an oscilliscope?

    • @erikfabbri291
      @erikfabbri291 8 месяцев назад

      ​@@SteveRaynerMakes I had taken the power supply for granted, the 5V in pin 11 and GND at pin 29, I power it via the Arduino Mega. I have one oscilloscope that has been sitting in the cellar for many years, I don't know if it still works, I also did a test by changing the breadboard and redoing all the connections, the strange thing is that if I remove it from the board and put in a new one taken 2 days ago even if it is another model (Z8400AB1 or Z80ACPU) I think CMOS doesn't work

  • @eduranger
    @eduranger Год назад +2

    Poderia informar a relação de materiais usados nesta montagem?

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад

      github.com/srayner/z80-trainer/blob/main/Episode1/bom.md

  • @davidhartmann5492
    @davidhartmann5492 Год назад +1

    Very well done!

  • @adamismaad9604
    @adamismaad9604 2 года назад +1

    Hello sir do you have schamtic diagram for this project

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад

      Sorry, I need to tidy up the schematics, but they will be available soon. Please bear in mind this project is evolving, so the schematics will almost certainly change as the project progresses.

  • @ziadfawzi
    @ziadfawzi Год назад +1

    Thank you so much.

  • @Stefan_Boerjesson
    @Stefan_Boerjesson 2 года назад +1

    Anyone knowing how, where, to get hold of a Z80 assembler to run on a Pc?
    Once had Cromemcos Rose running on the Z80 assembling code read from first tape, then floppy disc.

    • @bradallen8909
      @bradallen8909 Год назад

      Have you never heard of google?

    • @Stefan_Boerjesson
      @Stefan_Boerjesson Год назад +1

      @@bradallen8909 Oh yes! Getting lots of hits and it ends up like looking for a needle in a haystack.

  • @vegansynths7757
    @vegansynths7757 Год назад

    Is there a way to copy the programming from a Z80 and transfer it to another Z80?

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад

      The program is not stored in the Z80, it is stored in the external memory chips.

    • @vegansynths7757
      @vegansynths7757 Год назад

      @@SteveRaynerMakes got it. Thank you so much for taking the time to respond. ✌

  • @PE4Doers
    @PE4Doers Год назад +1

    Added a like 😊

  • @mrshodz
    @mrshodz Год назад +1

    Nice video.

  • @Jay-qu4ps
    @Jay-qu4ps Год назад

    for such system thinking to make a hard disk using clock machanism and self made farric oxide coted disk 😁 hows my idea....from many years its in my mind

  • @СеменХеруимов
    @СеменХеруимов Год назад +1

    Очень интересно. Спасибо большое :)

  • @garyjohnson4608
    @garyjohnson4608 2 года назад +1

    I beg to differ on this with you. I say the main reason for building this is what you will learn from doing it. Keep in mind that the Z-80 is hardly a gutless wonder.

    • @SteveRaynerMakes
      @SteveRaynerMakes  2 года назад +2

      Yes I'm hoping to learn a lot. Often the journey is more rewarding than the end result.

  • @TheUnofficialMaker
    @TheUnofficialMaker 3 года назад +1

    very interesting and fun.

  • @vicheakeng6894
    @vicheakeng6894 Год назад +1

    I was running 1991 to 1996. Now I am walking.

  • @7alken
    @7alken Год назад +1

    wow, more hardcore than altair/imsai ))

  • @groveTerm
    @groveTerm 2 года назад

    Hello

  • @fench1234567
    @fench1234567 Год назад +2

    Choosing a "fairly useless low spec machine" is on the USEer. If you have a USE for a low spec machine as a hardware and/or software driven invention/utility device, then the low spec machine is no longer "USELESS". If you want your computer to decide for itself what it will be used for today, then by all means, USE paywalled corporate driven AI pets!!!!

  • @pikadroo
    @pikadroo Год назад +1

    So if you aren’t that knowledgeable why are you instructing all of us?

    • @SteveRaynerMakes
      @SteveRaynerMakes  Год назад +5

      :-) I'm not instructing you, I'm just sharing my progress