Steve Rayner Makes
Steve Rayner Makes
  • Видео 131
  • Просмотров 393 097
Z80 Computer Part 21 - VRAM Memory Map
I need to make some adjustments to the memory map and associated glue logic circuits to incorporate an 8K video RAM into my system.
I start by looking at both the existing and new memory maps. I explain the required circuits to make it work. I then show a small Z80 assembly language program to test the video RAM, and final I show the program running.
Просмотров: 1 245

Видео

Z80 Computer Part 20 - VRAM Timing
Просмотров 5754 месяца назад
This time a take a look at how a different project is generating the video RAM timing signals and try to reproduce the concept for myself on a breadboard. I look at the overall idea of how the timing is broken down into 8 stages, making use of logic gates to decide if each signal is on or off at each stage, and then the use of a latch to re-time the signals, elimination most of the propagation ...
Z80 Computer - Part 19 Video RAM
Просмотров 8655 месяцев назад
In this part I start to look at the concept of sharing video RAM with the CPU. I show a circuit diagram of some registers connected to the video RAM. I explain the concept of how the CPU can write to and read from these registers without being concerned with the video circuitry timing. Finally I show a PCB design that I intend to get manufactured to simplify the wiring during the prototype phas...
Z80 Computer - Part 18 VGA Horizontal Characters
Просмотров 1,3 тыс.5 месяцев назад
This time I finally manage to get some pixel data on the screen and display some characters from a font set. I explain the different parts of the circuit and how it works. We take a look at the characters being displayed horizontally in a row on the screen. Right now each row just gets repeated, so the next step would be to add a vertical character counter. Font taken from: www.jimblimey.com/bl...
Z80 Computer - Part 17 VGA Colours
Просмотров 1,6 тыс.5 месяцев назад
This time I connect one of the output ports on the Z80 trainer board to the VGA circuit by adding some d-type latches. Using the program from part 16 with a minor change, I send the 3-bit binary number to the new port. This has the effect of changing the colour of the screen to one of 8 possible values. We have black, blue, red, magenta, green, cyan, yellow and white. I can now press of one the...
Z80 Computer - Part 16 Live Coding
Просмотров 8175 месяцев назад
Let's do some live coding. What is the worst that could happen? In this video I try coding a short Z80 assembly program to read input from the trainer board's on-board push buttons. Depending upon which button is pressed we should send a number from 0 to 7 to an output port. I have an idea how I might be able to use something like this to control part of the system in the future.
Z80 Computer - Part 15 Testing the Keyboard
Просмотров 1,1 тыс.6 месяцев назад
With the full keyboard built, it's time to test it. I start by looking at how the trainer board can be modified to connect to the keyboard. I talk through how to add a 74HC244 buffer IC to connect the keyboard to the data bus. Next I look at the Z80 assembly code, and how it has been modified to read from the keyboard. Finally we get to see the keyboard working on the trainer board. I check eac...
Z80 Computer - Part 14 Full Keyboard
Просмотров 1 тыс.6 месяцев назад
Time to build the full keyboard for the Z80 computer. I have 3D printed a key-switch plate for the full keyboard and the PCBs have arrived so the first thing to do is see if the PCB fits correctly. Next solder the diodes and cable connector. After some fun and games with the switch stabilizers, I finally get to fit all the keycaps. With a ribbon cable to finish things off. But will it work?
Z80 Computer - Part 13 Pixel Control
Просмотров 9056 месяцев назад
Now that I've got the VGA timing circuits working, I want to see if I can control the pixels as the horizontal lines are being generated on the screen. I am using a 74HC165 shift register to load data for 8 pixels, and then shifting the data out on each horizontal clock count. The basic idea does seem to work but there are some issues. I explore some ideas to solve the problems. Simply Put's vi...
Z80 Computer - Part 12 Thinking about VGA
Просмотров 1,3 тыс.6 месяцев назад
I want to start looking at the VGA signals that will be used to produce a graphical output. Being one of the more difficult aspects of the project. Taking ideas from the Ben Eater graphics card, I build up the horizontal timing circuits. I explain an issue I had when trying to use the circuit without the inverters, which resulted in the SR latch getting very hot. So putting the inverters back i...
Z80 Computer - Part 11 Operating The Keypad
Просмотров 4,5 тыс.Год назад
In this video, I will show you how I complete the keypad by mounting it on a PCB and fitting it inside a case. To interface the keypad with the trainer board, I will be using another 74HC244 buffer chip. Additionally, I will add a 74HC138 to provide input address decoding, allowing us to distinguish between the onboard tactile switches and the external keypad. I will walk you through the hardwa...
Z80 Computer - Part 10 Designing a Number Pad
Просмотров 2,2 тыс.Год назад
Still thinking about input I want to start creating a small prototype for the keyboard. The idea is to go over the design process and see how the parts will fit together. So I have decided to build the number pad section of a keyboard. I start by showing how we can use the KeyBoard Layout Editor website to generate the raw data for the keyboard design. I then show how we can take that data and ...
Z80 Computer - Part 9 Fast Clock
Просмотров 2,5 тыс.Год назад
Taking a look at a slightly more complex input program, I realise that I really need a fast clock option. Ideally, a high-frequency crystal oscillator signal that can be divided down to more manageable speeds. After a suggestion from a viewer, I decided to look at the CD4060 integrated circuit. With this IC I can make the high-speed oscillator circuit and divide it down all with one chip. I go ...
Z80 Computer - Part 8 Testing Input
Просмотров 3,2 тыс.Год назад
In this video I build a basic input circuit for the trainer board. This consists of up to 8 switches connected to the Z80 data bus via a 74xx244 buffer IC. I show the schematic diagram of this circuit, then show how I'm using ASM80.com to write and download a test program. I then show the process of uploading that program to the EPROM using the TommyPROM. Finally, I single step through the prog...
SN74HC244N Octal Buffer
Просмотров 4,1 тыс.Год назад
SN74HC244N Octal Buffer
Z80 Computer - Part 7 Keyboard Layout
Просмотров 3,4 тыс.Год назад
Z80 Computer - Part 7 Keyboard Layout
Z80 Computer - Part 6 The Stack & Subroutine Calls
Просмотров 5 тыс.Год назад
Z80 Computer - Part 6 The Stack & Subroutine Calls
Interfacing with an SD Card
Просмотров 9 тыс.Год назад
Interfacing with an SD Card
Z80 Computer - Part 5 Adding RAM
Просмотров 6 тыс.2 года назад
Z80 Computer - Part 5 Adding RAM
Z80 Computer - Part 4 I/O Address Decoding
Просмотров 4,7 тыс.2 года назад
Z80 Computer - Part 4 I/O Address Decoding
Z80 Computer - Part 3 Output
Просмотров 6 тыс.2 года назад
Z80 Computer - Part 3 Output
Z80 Computer - Part 2 Adding ROM
Просмотров 10 тыс.2 года назад
Z80 Computer - Part 2 Adding ROM
3D Printed Screwdriver Holders
Просмотров 1772 года назад
3D Printed Screwdriver Holders
December Mailbag
Просмотров 3802 года назад
December Mailbag
Z80 Computer - Part 1 The CPU, Clock & Reset
Просмотров 31 тыс.2 года назад
Z80 Computer - Part 1 The CPU, Clock & Reset
November Maker Mailbag
Просмотров 1202 года назад
November Maker Mailbag
74HCT04N Crystal Ocsillator Circuit
Просмотров 3,6 тыс.2 года назад
74HCT04N Crystal Ocsillator Circuit
October Maker Mailbag
Просмотров 1872 года назад
October Maker Mailbag
AS6C62256 32K SRAM Integrated Circuit
Просмотров 2,7 тыс.2 года назад
AS6C62256 32K SRAM Integrated Circuit
September Mailbag
Просмотров 982 года назад
September Mailbag

Комментарии

  • @duyinhtan5107
    @duyinhtan5107 День назад

    How I draw the local ground plane under crystal's region ?

  • @eitantal726
    @eitantal726 10 дней назад

    consider tying the unused pins of the buffer to ground. Since they're floating, you could get sporadic garbage high-speed push-pull on the other side

  • @revietech5052
    @revietech5052 17 дней назад

    Why do all the leds for the top half of the address pins all seem to go on and off together?

  • @PeetHobby
    @PeetHobby 21 день назад

    Great video! For the past 15 years, I’ve had to repeatedly rewrite or update my SD card drivers whenever I get new SD cards, as the initial setup often breaks. 😅

  • @alby13
    @alby13 25 дней назад

    what an adventure! i wish I could dedicate as much time to my own z80 pc. i very much want to build a z80 pc.

  • @marktadlock5428
    @marktadlock5428 25 дней назад

    Sheet of Teflon should help reduce the noise

  • @kevinwhitcomb4495
    @kevinwhitcomb4495 Месяц назад

    has anyone built this robot with linear actuators instead of servos to make the arms thinner?

  • @arecproject6719
    @arecproject6719 Месяц назад

    Hi, I'm writing to you because I bought a box with thousands of components in a flea market, I understood that there was something good in the middle. in fact I managed to find different versions of the z80, as well as intel 8041,8085,8088,8086, ram, rom, eeprom, plus hundreds of TTLs as well as thousands of transistors, capacitors, .... etc. I wanted to know if you could help me choose the best versions of components and build a computer from scratch. It has always been a passion of mine. If you want I'll send you photos of the components I found, I'm cataloging them.. I hope you can help me, thanks...

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      That sounds like an awesome pick up. I would love to build computers based around all of those ICs. Unfortunately I know next to nothing about the 80xx series of CPUs. That's one reason I went with the Z80, because I had some past experience. My advice would probably to start small with something simple. Try to find an existing project design that you can copy. If you have any specific questions I would do my best to try to help. But bear in mind my knowledge is probably not that much better than yours. If you go to my channel page and click the little arrow to expand the description you will see my about page where you can view my email address. Feel free to drop me an email.

  • @johnbrogan6583
    @johnbrogan6583 Месяц назад

    is your EPROM programmer similar to the scratch built one that Ben Eater used?

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      Similar, but not the same. Mine uses the TommyProm design which can be found here: tomnisbet.github.io/TommyPROM/

    • @johnbrogan6583
      @johnbrogan6583 Месяц назад

      @@SteveRaynerMakes thank you

  • @EDP1
    @EDP1 Месяц назад

    HI how does the robcap mounted on the elbowplate ? pls

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      I assume you mean RobCap and ElbowShaftGear. These are only held together with glue. I imagine I used superglue.

  • @janakasilva9207
    @janakasilva9207 Месяц назад

    Sir im getting the error invalid signature connection is correct.

  • @pevkh8359
    @pevkh8359 Месяц назад

    Can I get The link to The key set you bought

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      Checkout the description in part 10 for all the links .

  • @pevkh8359
    @pevkh8359 Месяц назад

    I love your Videos

  • @synthesizer.repair
    @synthesizer.repair Месяц назад

    Brilliant explanation.

  • @EDP1
    @EDP1 Месяц назад

    hi may i ask witsh version of shoulder you use ? V1/V2/V3/V4/V5/V6 ? thank you

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      Each part has it's own version number. My notes can be found here: inmoov.civrays.com/build/shoulders

  • @quieneressomoslegion930
    @quieneressomoslegion930 Месяц назад

    Friend, I have a big question, I have a BTS7690 module that is used to control the direction of a DC motor, but the SN54HC244 integrated circuit has continuity in the VCC and GND pin (pin 10 and 20), is it in another circuit? I would appreciate your help friend

  • @thekraftyguy8246
    @thekraftyguy8246 Месяц назад

    Where the piston blocks connect to the front and back, put some grease in there

  • @laithal-athary9932
    @laithal-athary9932 2 месяца назад

    same nostalgia and same dream to build my own computer

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

    hi whats the name of the lower cover lock ?

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

    Hello Steve the subroutine found_bit is wasting memory and speed on line 21 put JR NC, OUTPUT, add on OUTPUT the DEC B and get rid of the found_bit sub

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

    Steve the HC is a cmos version is not ttl . The H is HIGH SPEED CMOS better use the HCT series HIGH SPEED CMOS TTL compatible

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

    Hello there nice work i like it you mistake with the RESET line is that there is not enough time for the Z80 to reset. You have to keep the reset asserted for minimum 6 clocks, my suggestion is to put a 10k resistor and a 10 μF capacitor in parallel with the reset button like the manual clock, because your clock is way too slow.

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

      Hi thanks for your comment, it's nice to get feedback. Yes you are correct, the clock is too slow so we need to hold the reset line low for longer. The problem is we don't know what speed the clock will be running at, also we might be in single step mode. We need a proper solution that will count the number of clock cycles and hold the reset line low until we have seen about 4 clock cycles. I've seen a nice solution for this, but never got round to implementing it. I really should have put in a solution right at the beginning of the project.

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

      Steve if you see the ZX Spectrum 48 k is using a pull up resistor with 220k value and a 1μF capacitor and the clock is at 3.5 MHz so the capacitor is small but the resistor is big that is make the capacitor to charge slowly so the reset line takes more time to reach the 5V. I do not remember the plus 2 A or plus 3 what values they are using but I can look at the schematic when I go home

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

    Take out the potentiometer, readjust to the centre, and rotate the gear till it all fits together properly

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

    This is very nice 👍 🎉

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

    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 Месяц назад

      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 Месяц назад

      @@SteveRaynerMakes thanks for explanation.

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

    I have a reasonable grasp of assembly so almost skipped over this one. Glad I didn’t; I wrote a Spectrum emulator and this made me check the stack handling logic. Turns out that I was decrementing the stack pointer AFTER each byte was added - which still works 99% of the time as my POP code matched, but now and again was clattering something when running larger programs. A quick change, one less bug to fix and at least two programs no longer freezing up!

    • @SteveRaynerMakes
      @SteveRaynerMakes Месяц назад

      awesome.

    • @cygil1
      @cygil1 29 дней назад

      Ah, rookie mistake. The most dangerous things are the things you think you know, that ain't so. Naturally the stack post decrements, that's only sensible. Except it doesn't.

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

    Loving the series so far. Ben Eater’s is awesome but quite slow paced (lower level, I guess, so more minute detail). So it’s nice to see the same kind of thing from a higher level and is much easier to follow! As an 80s guy who owned a Spectrum it’s extra special :) +1 sub

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

    Hello sir.. I want to know that programme burn in these ics?

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

    any more robots? quite like the one you made 2 years ago

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

      It's still there. I just need to motivate myself to continue working on it.

  • @marcusklinkenvan5391
    @marcusklinkenvan5391 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.

  • @electronicsamateurs7662
    @electronicsamateurs7662 4 месяца назад

    You should add the zilog z0860008psc chip to your computer

  • @nadaehab263
    @nadaehab263 4 месяца назад

    thanks for this video it really helps, but should I use the level shifter if the microcontroller is STM32F103C6 since it's operating voltage ranging between 2.2 and 3.6 v and I have another question, it's written in the datasheet of the sd card connector that the operating voltage is 10v while it's vcc connected to 3.3v I didn't get that part hope you answer me and thank s for all

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

      I would say that if your microcontroller operates at voltage of 2.2 to 3.6 then, no, you do not need the level shifter. This will simplify things for your design. The 10v is just a maximum rating for the physical connector. Not something you need to be concerned about because I doubt you would find an SD card that operates at higher voltages. But in theory anyone could design their own cards that operate at any voltage. So it's just the connector designer telling us don't use anything over 10volts.

  • @robertheer4043
    @robertheer4043 4 месяца назад

    Can you play a short video with a SD card on a raspberry pi Pico but also have the audio playing? I want to create a drive-in theater for my train layout.

  • @sammohan4954
    @sammohan4954 4 месяца назад

    Pls clear my Doubt Doubt

  • @sammohan4954
    @sammohan4954 4 месяца назад

    I need 1 help sir

  • @sammohan4954
    @sammohan4954 4 месяца назад

    I want to tack with you sir 👋 Were nice work sir

  • @february.bluefield
    @february.bluefield 4 месяца назад

    Please excuse my naïveness as I am only a beginner. There is one thing that I do not understand. 11:11 says that we never want to be writing to the ROM chip, so why are we not connecting it to +5V? Don't we want to make it go HIGH so that it doesn't write? *EDIT:* I saw the pinned comment. I get it now. It was just a mistake.

  • @phils_arcade
    @phils_arcade 4 месяца назад

    Love seeing and understanding the work on timings via the oscilloscope, The text on that seems very small at places on the screen. With eyesight not quite what it was, do these have outputs for a larger external screen to make it easier to read?

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

      No, my one does not seem to have the option of connecting a larger screen. The font size is very small and I have seen other people complaining, but I don't think the font size is adjustable.

  • @jamesross3939
    @jamesross3939 4 месяца назад

    Nice! Easy to understand explanations!

  • @Yeoman35
    @Yeoman35 4 месяца назад

    Another way of mapping the video ram is to put into the i/o space. The Z80 effectively has 6kBb of i/o space since it puts the B reg on the top 8 bits of the address, so you can think of it as 256 pages of 256 bytes, You can also copy data to it using the OTDR instruction and similar which is pretty fast.

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt 4 месяца назад

      This would have been cool to use on the 8088 to address palette entries or sound channels.

  • @jamesross3939
    @jamesross3939 4 месяца назад

    Very well done. I watched a few of these a while back but i started over and want to watch the entire series.

  • @0toleranz
    @0toleranz 4 месяца назад

    Hey Steve, if you would avoid needing to read from video ram (by the cpu that is) you could make the video ram make write only and have it parallel to the read only rom and can have 32k vram AND 32k rom

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

      Yes it's a good idea and something I have thought about. There isn't really that much need for the CPU to read from video RAM. We also never need to write to ROM. However from my memory of making games on the Z80, I would often read from video ram to know what was on the screen at certain points. Usually for collision detection of the player. That would make me think I would need to retain a duplicate of the screen data in normal RAM. It is a nice idea though. There are a lot of scenarios where we never need to read from Video RAM.

    • @0toleranz
      @0toleranz 4 месяца назад

      @@SteveRaynerMakes yes I thought about this too, but doing collision detection this way is very time consuming and if you do paint you sprites and background bitmaps all on one plane you probably would want to read back from vram anyway for proper masking. For fast flexible game graphics in an 8 bit system I would either implement at least two independently scrollable layers: background probably as tiles/multicolor text like the c64 but double the resolution and a color bitmap overlay where I paint my sprites without having to extensively mask out existing graphics at the same time. Colission detection can now be done by the layer compositing logic of the video circuit which can capture the bitmap counter position if both bitmap and background have pixel values than 0 (or any other value in a comparison register - depends on the complexity one would like implement)sprites to sprite colission can be detected while writing to the vram by reading the value first in an register (done in hardware) and comparing the byte to be written with the old one. If bits are different and different from 0 it would be a collision. Both would trigger an interrupt where the game could do its thing then.

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt 4 месяца назад

      @@0toleranzalready before the NES games actually had a background. This made the collision detection in C64 useless. This is why you need a z ordinate or even two playfields. Z can be encoded in the palette, but I hate palette. Give me RGB 332 direct cokors. Z buffer in n64 is on a different page to not slow down Video DMA. On Jaguar it is on the third phrase. I propose deferred rendering. First draw each sprite into one of the 8 bit per pixel and check for collision. Then replace with the winner sprites color. Can even do translucency or “shadow sprites”.

  • @BUY_YOUTUBE_VIEWS_d114
    @BUY_YOUTUBE_VIEWS_d114 4 месяца назад

    RUclips would be so boring without your videos

  • @goofyrulez7914
    @goofyrulez7914 4 месяца назад

    Very nice craftsmanship!

  • @zxborg9681
    @zxborg9681 4 месяца назад

    I designed pro broadcast video equipment for decades - NTSC, PAL, up to 4K. This counter plus decode logic plus a register to retime the signals is exactly my preferred implementation. Meat and potatoes of video design. Sometimes folding the decode logic into a PROM addressed by the counter for easy of modification, althouh with FPGAs/CPLDs that's not such a big deal. Nice starting point.

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

      Thanks. I can't take credit as I took the idea from someone else's design, but it's good to know that this is a tried and tested technique. I really feel that I have learnt something very important and useful here.

  • @desainmuda
    @desainmuda 4 месяца назад

    where can i buy that pcb?

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

      I would highly recommend buying the offical boards from inmoov.fr However I have shared the gerber files in the community section of this channel. You can get these PCBs manufactured from companies such as PCBWay or JLC PCB for very low cost.