Pony80 - Z80 CPU Architecture - My Z80 homebrew computer!

Sdílet
Vložit
  • čas přidán 1. 08. 2024
  • In this video, I will be discussing the architecture of the Z80 processor, how it addresses memory and I/O, and how instructions are processed.
    I also get the Z80 onto the breadboard and working!
    The Pony80 is a Z80 based 8-bit computer that I built from scratch.
    In this series, I will be taking a deep dive into everything I wish I had known before starting!
    Please visit my website. I have links, schematics for the videos I’ve released and more! ponytailbob.com/pony80-z80-ar...
    And join me on Twitter to keep up with new videos! / ponytailbob
    Also, visit my Patreon site. I have extra content and behind the scenes videos for my patrons.
    / ponytailbob
  • Věda a technologie

Komentáře • 47

  • @SPimentaTV
    @SPimentaTV Před 4 měsíci +2

    The best explanation of the Z80 basics so far! Very well explained 👌

  • @juliust.5650
    @juliust.5650 Před 2 lety +6

    Loved the Z80! Learned assembly on the TRS-80 Model III/4.

  • @damouze
    @damouze Před rokem +3

    For I/O requests, the Z80 actually does put a complete 16-bit value onto the address bus. For simple I/O instructions like in A, (n) and out (n), A the CPU puts the contents of the A register onto the high 8 bits of the address bus and the immediate value n onto the low 8-bits of the address bus. The instructions out (C), A and in A, (C) put the entire contents of the BC register onto the address bus. So, while this is undocumented, the Z80 actually did have a 16-bit I/O address space.

    • @Pony80
      @Pony80  Před rokem +3

      Been toying with using this for a vga interface… I will post a video if I can get it to work.

    • @reinoud6377
      @reinoud6377 Před 10 měsíci

      ​@@Pony80Did you ever manage to do so?

  • @VVerVVurm
    @VVerVVurm Před 2 lety +2

    I enjoyed the video! nice introduction :)

    • @Pony80
      @Pony80  Před 2 lety

      Thank you! Enjoyed the chat!

  • @colonelbarker
    @colonelbarker Před 2 lety +2

    I'm really, really loving your videos. I ended up with a tube of z80s a few months ago and have been dying to do something with them. Thanks for making this so clear and easy to follow along. Looking forward to more.

    • @Pony80
      @Pony80  Před 2 lety

      Thanks for the encouragement!!!

    • @colonelbarker
      @colonelbarker Před 2 lety

      @@Pony80 always! It can be hard making videos without that positive reinforcement to keep it up. Is the plan to build the whole system on a breadboard before moving it to PCBs? (I mean obviously you have, but in terms of the discussion of the operation.)
      Also I was wondering why you went with the 14 rather than the 4, I assume the scmitt trigger was to help clean up the clock signal a bit?

    • @Pony80
      @Pony80  Před 2 lety

      In my first build, I converted breadboards to PCB to keep the wires under control. Replicating the 16-bit address bus and the 8-bit data bus to each breadboard was becoming unmanageable.
      I will probably do the same here, create the backplane, and each card as it is proved out on the breadboard.
      Also, to be honest, I used a 14 because I had it on the bench. I just did some comparisons with the 04 and the 14 and it didn't make too much different on the clock signal.
      Good catch tho... Keep me honest!

    • @colonelbarker
      @colonelbarker Před 2 lety +1

      @@Pony80 If I'm honest I'm fairly new and wanted to make sure I hadn't missed something obvious! I'm currently making the Ben Eater cpu and yeah, unmanageable is one word for it!

    • @Pony80
      @Pony80  Před 2 lety

      I did the Ben eater cpu too!! This is what got me started on this journey!

  • @jimsmind3894
    @jimsmind3894 Před 2 lety +1

    I'll very much enjoy seeing where you go with this!
    I have a few Z80's I tinker with, working on a similar project myself in my spare time.
    Eventually I'll recreate the 80's computer I never had, probably Spectrum compatible.
    At the moment I'm using a PIC microcontroller to 'emulate' the bus, for clock, memory and serial IO.
    I'm planning to expand with physical ROM & RAM, eventually a graphics output. Trying to figure out which components to use nowadays, and how complex I want to make it. I still need to fully understand how bank switching works, it seems the sensible way to go today.
    John's Basement channel has some great videos and Grant Searle's original Z80 homebrew computer webpage, both an excellent source of info.
    Good luck! May the magic pixie smoke stay contained!

    • @Pony80
      @Pony80  Před 2 lety

      Thanks!!
      I plan on implementing bank switching for the memory. I didn’t have it on the first one I made.
      EEPROM chips are harder to come by these days. I have a bunch on order that are due in August of 23!

    • @jimsmind3894
      @jimsmind3894 Před 2 lety

      @@Pony80 Hehe, yes! Same problem.
      I'm looking at avoiding ROM and using all NVRAM instead. It seems fast enough, and easier to get.

  • @tijuthomas6793
    @tijuthomas6793 Před 2 lety +1

    I am planning to make a simple 8bit game console (just learning stage) your videos make me easy to understand, so please upload more microprocessor videos :)

    • @Pony80
      @Pony80  Před 2 lety

      That's a great idea! I definitely have more to upload once I finish them! Thanks for watching!

  • @tijuthomas6793
    @tijuthomas6793 Před 2 lety

    Sir, awesome video, can you make more videos about single board computer using 8086, Pentium etc..

  • @____________________________.x

    I was just thinking while watching the paging video, that I should build a little board with leds/resistors on 🙂

  • @emoutraspalavras-marloncou4459

    Thank you for the project! I am interested in building it to serve to its original purpose: embedded systems and robotic applications! I wonder which pins work as gpios and how call that "port" in the assembly code. A capture and compare mode is available with for ultrasonic sensors and PWM generation?

    • @Pony80
      @Pony80  Před rokem

      I talked a bit about utilizing ports in the memory module video, because we use a port to turn the ROM off and on. I will also be talking about it a lot more in the upcoming LCD video. That should be out this weekend.

    • @physnoct
      @physnoct Před 10 měsíci

      "which pins work as gpios"
      A Z80 microprocessor doesn't have any GPIOs or peripherals (capture & compare or PWM). You'll find those in a microcontroller, with flash and RAM.

  • @b213videoz
    @b213videoz Před 4 měsíci +1

    Can it play River Raid ?

  • @goupigoupi6953
    @goupigoupi6953 Před 3 měsíci +2

    Really, is there a static version of Z80? All that I could find stopped working at 1-200 Hz.

    • @Pony80
      @Pony80  Před 3 měsíci +1

      Yes. The part number I am using is Z84C0008PEG. I got them from Mouser.com

    • @goupigoupi6953
      @goupigoupi6953 Před 3 měsíci +1

      @@Pony80 Thank you, I'll definitely try to use that.

    • @quantisedspace7047
      @quantisedspace7047 Před 3 měsíci

      Wasn't the 'down to zero Hertz' referring to the original Z80, not any modern model ?
      I was always led to believe that the 'fully static' was emergent, and not a design requirement. I seem to remember that you can stop the clock, but only in the high state, something to do with internal bus drivers being partially asynchronous. Someone else on YT tried it but stopping the clock caused addresses to jump.

  • @RetroEcoChicken
    @RetroEcoChicken Před 9 měsíci

    couldnt figure out why my computer didnt work, finally realised that just because my clock signal was blinking it dosent mean that the chip was getting a zero when the light went off so i tied it trough a resistor and now ram rom and cpu works just fine.

  • @garyjohnson4608
    @garyjohnson4608 Před 2 lety +1

    Watching your video, I don't see any markings of any kind on the z80 chip itself. I know that the pin designations on the block diagram of the chip are not where they are on the actual chip. So, with that in mind, how does one know which pins are which on the chip itself ?

    • @Pony80
      @Pony80  Před 2 lety +2

      On the left hand side of the chip in the video, you can see a semicircular cutout. That indicates pin 1 is on the bottom left. Then it goes in order from 1-20, left to right, on the bottom, and then 21-40, right to left on the top side.

    • @kimchristensen2175
      @kimchristensen2175 Před 2 lety +2

      It's pretty much standard for DIP ICs. Look up "Dual in-line package" on Wikipedia and scroll down to "Orientation and lead numbering".

  • @flyguille
    @flyguille Před 2 lety

    Also you can do LD IXh, a .... LD a, IXh , most 8bits operations can be donde with IXh IXl, IYh, IYl, they just forget to document those. .

    • @flyguille
      @flyguille Před 2 lety

      This happen because 0xDD and 0xFD, just switch the enable signal from HL to IX or IY for only the next instruction.

    • @SpeccyMan
      @SpeccyMan Před rokem

      @@flyguille It's not generally considered good programming practice to use undocumented opcodes.

  • @davidrosset4457
    @davidrosset4457 Před rokem +2

    My z80 only lights up all data LED’s and keeps lighting up RD and MR simultaneously, then shutting them off again. Do you think I have a bad chip?

    • @Pony80
      @Pony80  Před rokem

      That’s hard to say… what else do you have connected to it?

    • @davidrosset4457
      @davidrosset4457 Před rokem

      @@Pony80 the connections are the same as you have on 20:51

  • @AbcXyz-rn2lz
    @AbcXyz-rn2lz Před 10 měsíci

    Serial PWM modem and bbs

  • @vanhetgoor
    @vanhetgoor Před rokem +1

    Can the Pony do tricks?

  • @joefish6091
    @joefish6091 Před 2 lety

    65536 IO, there are some 16 bit IO instructions.
    HD64180 10MHz
    Z8S180 33MHz
    the above have very nicel inbuilt DMA MMU CNC serial.
    Z86 series can do Harvard or von Neuman if desired.