Z80 Computer - Part 11 Operating The Keypad

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

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

  • @amcginlay
    @amcginlay 11 месяцев назад +1

    It's an amazing series. Well done. Things I've just been aware of my whole life (e.g. the split ROM/RAM configuration) I now feel like I "understand" them now. Looking forward to what comes next.

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

    Awesome series Steve! It took some time, but I binged the whole series just now. I'm trying to build a TRS-80 Model 3 clone (my first PC was a Model 3 clone), and your series helped me a lot to understand more about how everything works. Thanks a lot for the content!

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

      Building a TRS-80 clone sounds awesome. I would love to see/hear more about that.

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

    Me again... just a quick one, AND A doesn't clear the A register, it clears the carry flag - clearing the A register can be done with XOR A. :) Nice work on the keypad, looking forward to the next one!

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

      Thanks. I did wonder why that instruction was there because the A register would already be clear because all the bits have been shifted out of it. I believe this code originated from the Spectrum code which I modified to suit my needs. I need to go back and look at the code, but I'm wondering if the carry flag would also already be clear.

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

    This is amazing, I have all of my parts-- and the Z-80 and prototyping board arrived today... everything you have here, and I am very excited to start this project. Thank always for each video!!!!

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

    Great video and great knowledge!

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

    Excellent as always.👌👏 Very interested in the PCB and thank you for the Memory writer which I'm happy to say met with my soldering iron a few days ago. 😀

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

      My pleasure. Did you get the EPROM programmer working?

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

      @@SteveRaynerMakes Mostly there... I just mounted the ZIF socket. Last thing to dig out the memory from the garage. 🙂

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

    hello. thank you for sharing your knowledge and experience. i have learned a lot from your videos.

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

    I love this series. Keep up the great work! 🎉

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

    Hei Steve, I worked my way through your very interesting vid. Thank you.
    This is the first in your Z80 series I watched. Perhaps because I haven't seen the earlier videos, it took me a time to relate your schematic (first seen around 11:10) with your keypad and its PCB (first seen around 12:30). As I think you point out in the audio someplace, the Row circuit around U22 is from another board, and is only illustrative in this video. I got that clearly once I saw your keypad_map code (around 19:10), but then I'm a programmer...
    I'm sure your downloadable schematics are sorted, but maybe put a note in this video comments to make the schematic difference more clear?
    And your software never uses the U21 column-reading circuit which is actually for your hardware 😏
    An afternnon well spent getting low level, thx.

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

      Thanks for the feedback. No i think downloadable schematics are most likely out of date. I need to get things organised. I was thinking maybe there should be a downloads page for each episode (where relevant). I'll need to re-watch this video to remind myself what you are referring to. But I'm sure you're right and an explanation note is required.

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

      So, I rewatched this video to remind myself.
      At this episode there are 2 PCBs in this project. However EasyEDA only allows 1 schematic per PCB. So there is a schematic for the main board that contains all the hardware except the keyswitches, and a separate schematic for the keypad, which just contains the keyswitches. There is a connector between these two PCBs (ribbon cable). On the mainboard you will see connections such as A0, A1 & A2. These translate to R0, R1 & R2 on the keypad board.
      The U21 buffer is located on the mainboard and is used in conjunction with the software. In the software we set the port number to 1. This relates to the U21 buffer. If we had specified port number 0, it would relate to buffer U22.
      The U22 buffer is located on the mainboard, and is used in a previous episode.
      To make this even more confusing, I believe I re-number the U labels in a future episode.

    • @julianrose3058
      @julianrose3058 7 месяцев назад

      @@SteveRaynerMakes I see that A8, A9 and A10 relate to R0, R1, R2 through the connector CN1.
      With the port number set to 1, in the C register initialised in your assembly code line 40, it drives A0 high (A1 and A2 low) at line 45. [Also line 45 the value in B (initialised from keyboard_map in line 43, like $01) drives the selected A8, A9 and A10 to select the Row.]
      When you set port 1, the U15 74xx138 port Y1 is driven high and port Y0 is driven low. The U21 and U22 74xx244 Enables pins are active low. So Y0 low enables U22, thus you read the Row Data on the Z80 data bus. And Y1 high disables U21, the Column scanner. As Y1 never goes low, U21 is never enabled in this code.
      This follows in your code, which iterates over the 6-bit Row data, for each Row.

  • @julioGonzalez-gf6ow
    @julioGonzalez-gf6ow Год назад +1

    Thanks for sharing !

  • @onurolce
    @onurolce 5 месяцев назад +1

    I've looked many keypad PCB schematics and nobody used diodes in their design. Just some of them used PU/PD resistors. So can you explain what is the reason you have used diodes ?

    • @SteveRaynerMakes
      @SteveRaynerMakes  3 месяца назад +1

      It is to prevent key ghosting. This is when a key appears to be pressed when it is not. It is caused when several keys are pressed at the same time. The diodes prevent the electrical current traveling backwards to another column through a pressed switch.

    • @onurolce
      @onurolce 3 месяца назад

      @@SteveRaynerMakes thanks for explanation.

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

    Nice 👍❤️❤️

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

    Hey. It's been a while since you made a video. Hope all is OK with you! :)

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

      All good. Life just gets a bit busy sometimes. Before you know it, several months have gone by. For Part 12 I was experimenting with a different camera and audio setup, but I didn't have much success with it. Ended up losing a lot of the audio, so I can't really use the footage. I also didn't have too much success with my first attempt at VGA graphics, but I'm hoping to put out another video soon that will at least show the little progress that I have made.

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

    Great! Where can I find the complete circuit diagrams? Are they free available?

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

      PDF files for the schematics can be found in the github repo. github.com/srayner/z80-trainer

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

      @@SteveRaynerMakes Thanks a lot!

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

    question. at 14:00 ish you have sevral resistors for each button or row.
    when you press more than one button at a time, it looks to me as if you have more than 1 resistors in parallel to ground.
    iirc resistors in parallel usually add up to less than 1 resistor. does it means it will drive more current?
    could you just use one resistor to go to ground and share it ?
    is there a reason you cant share them on pulling up? will it pull all buttons low when you press one ?

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

      It's a valid question, but if you draw it out it becomes obvious. If you only have one resistor and connect all lines to that same resistor then you have tied all the lines together. You switch one and they all switch. You can no longer detect which one was switched. You are correct the more buttons pressed the more current will flow, but the current is so small it's negligible.