Pony80 - Z80 CPU Architecture - My Z80 homebrew computer!

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 มิ.ย. 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
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 47

  • @SPimentaTV
    @SPimentaTV 2 หลายเดือนก่อน +2

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

  • @juliust.5650
    @juliust.5650 ปีที่แล้ว +6

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

  • @damouze
    @damouze ปีที่แล้ว +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  ปีที่แล้ว +3

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

    • @reinoud6377
      @reinoud6377 8 หลายเดือนก่อน

      ​@@Pony80Did you ever manage to do so?

  • @VVerVVurm
    @VVerVVurm ปีที่แล้ว +2

    I enjoyed the video! nice introduction :)

    • @Pony80
      @Pony80  ปีที่แล้ว

      Thank you! Enjoyed the chat!

  • @tijuthomas6793
    @tijuthomas6793 ปีที่แล้ว +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  ปีที่แล้ว

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

  • @colonelbarker
    @colonelbarker ปีที่แล้ว +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  ปีที่แล้ว

      Thanks for the encouragement!!!

    • @colonelbarker
      @colonelbarker ปีที่แล้ว

      @@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  ปีที่แล้ว

      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 ปีที่แล้ว +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  ปีที่แล้ว

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

  • @jimsmind3894
    @jimsmind3894 ปีที่แล้ว +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  ปีที่แล้ว

      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 ปีที่แล้ว

      @@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 ปีที่แล้ว

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

  • @____________________________.x
    @____________________________.x ปีที่แล้ว +1

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

    • @Pony80
      @Pony80  ปีที่แล้ว +1

      I have the schematics on my website. I should also upload the gerber files…

    • @____________________________.x
      @____________________________.x ปีที่แล้ว

      @@Pony80 oh neat, thanks

  • @emoutraspalavras-marloncou4459
    @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  ปีที่แล้ว

      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 8 หลายเดือนก่อน

      "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 2 หลายเดือนก่อน +1

    Can it play River Raid ?

  • @garyjohnson4608
    @garyjohnson4608 ปีที่แล้ว +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  ปีที่แล้ว +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 ปีที่แล้ว +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".

  • @davidrosset4457
    @davidrosset4457 ปีที่แล้ว +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  ปีที่แล้ว

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

    • @davidrosset4457
      @davidrosset4457 ปีที่แล้ว

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

  • @goupigoupi6953
    @goupigoupi6953 หลายเดือนก่อน +1

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

    • @Pony80
      @Pony80  หลายเดือนก่อน

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

    • @goupigoupi6953
      @goupigoupi6953 หลายเดือนก่อน +1

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

    • @quantisedspace7047
      @quantisedspace7047 หลายเดือนก่อน

      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.

  • @flyguille
    @flyguille ปีที่แล้ว

    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 ปีที่แล้ว

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

    • @SpeccyMan
      @SpeccyMan ปีที่แล้ว

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

  • @AbcXyz-rn2lz
    @AbcXyz-rn2lz 8 หลายเดือนก่อน

    Serial PWM modem and bbs

  • @RetroEcoChicken
    @RetroEcoChicken 7 หลายเดือนก่อน

    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.

  • @vanhetgoor
    @vanhetgoor ปีที่แล้ว +1

    Can the Pony do tricks?

    • @2kBofFun
      @2kBofFun 10 หลายเดือนก่อน +1

      One trick ;)

    • @Pony80
      @Pony80  10 หลายเดือนก่อน +1

      It will!!

  • @joefish6091
    @joefish6091 ปีที่แล้ว

    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.