No video

Z80 Computer - Part 8 Testing Input

  Рет қаралды 3,267

Steve Rayner Makes

Steve Rayner Makes

Күн бұрын

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 program and demonstrate how the input is isolated from the data bus until the point the Z80 program issues a "in" instruction.
Github repo
github.com/sra...
74HC244 video
• SN74HC244N Octal Buffer
TommyPROM
tomnisbet.gith...

Пікірлер: 21
@nebbsie
@nebbsie 5 ай бұрын
Loving this series so far! You have motivated me to give it a go!
@knghtbrd
@knghtbrd 11 ай бұрын
Something not clear from your explanation (unless I missed it (which is possible) is the or gate on the '244. Your other video and the datasheet make this very clear: The '244 is a dual quad buffer, not a single octal buffer. That means there are two /OE lines, but they each control a nybble, so to use it as an octal buffer you do want them both tied together and you do need the OR gate to select when it is active. This is unlike certain chips (memories most often) where they have two or three enable lines that allow you to save an individual gate. The fact that this kind of thing still comes up today is why you see 1G parts in SMD format.
@SteveRaynerMakes
@SteveRaynerMakes 11 ай бұрын
Yes maybe I didn't cover that point in enough detail. As you rightly say, each enable line is only controlling one half of the chip. So we can't connect our two control lines to them directly. If we did, when one of our control lines went low, only half of the 244 buffer would be activated. And it would also be activating at the wrong time, such as during a memory read. So we need the OR gate to combine our 2 control lines so that we get one combined signal that only goes low during an IO read. An then we must tie the two enable lines on the 244 together so that both halves operate at the same time. The 244 is simply 2 quad buffers in a single package.
@alfredomeurer634
@alfredomeurer634 Жыл бұрын
Mr Steve, good evening. Could you please to show the program for those 6 X DM9368 to read the Z80 addresses and the bus Output. Thank you very much for your help.
@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
@phils_arcade
@phils_arcade Жыл бұрын
Looking at the Z80 processor and see there are a number of different versions. Is it that the clock speed is the only difference? Would be interested in a possible future project for myself. Actually just read that there are CMOS versions as well up to 50Mhz. Max Clock: Z80 : 2.5MHz Z80A : 4MHz Z80B : 6MHz Z80H : 8MHz The eZ80 CPU is one of the fastest 8-bit CPUs available today, executing code up to four times faster with zero wait-state memory than a standard Z80 operating at the same frequency. Do these all use the same instruction set? Have you looked into other variants of the chip?
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
I took a look at the eZ80 versions. They look very interesting. They have a 24bit address bus and lots of on-chip peripherals. They seem to have a compatibility mode and can run programs designed for the original Z80. I could not find the instruction set, but with all these new features there must be different instructions. I would also presume they have some 24bit registers. I'm wondering if you would use a higher-level language such as C or C++ along with a compiler. As programming in assembly language these days would seem like a huge waste of time.
@phils_arcade
@phils_arcade Жыл бұрын
@@SteveRaynerMakes When I first started programming it was on these Z80 and 6502 CPUs all in assembler. Coders have no idea what it used to be like fault finding your code back in the day, lol.
@nick1austin
@nick1austin Жыл бұрын
3:50 The diodes look correct to me. The bar end indicates the cathode which goes to negative. The triangular end is the anode or positive.
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
Yeah, but I'm also showing a ground symbol when it should be a +5v symbol. These are active low signals and I want the LED to light when the signal goes low. I actually corrected it before I made this video, but I've not yet uploaded the correct version to github.
@melkiorwiseman5234
@melkiorwiseman5234 Жыл бұрын
The way I think of it is that the bar end is the "negative-seeking" end of the diode, so positive comes out of that end and is "seeking" the negative side in order for current to flow.
@phils_arcade
@phils_arcade Жыл бұрын
Very nice. Really interested to see the actual keyboard you designed in the previous video connected up and allowing output. Can you show the wiring on the underside of the board? I know it looks like a birds nest, but it would help understand the complexity of what you're doing as the nice clean circuit on top looks so clean and serene.
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
there is an image of the back of the board in the community section of the channel, if that's what you mean
@ivolol
@ivolol Жыл бұрын
You might want some small debounce caps on your stepping buttons, I think usually 1 or 10nF
@melkiorwiseman5234
@melkiorwiseman5234 Жыл бұрын
Debouncing can be done in software, but it's easier to do it in hardware. I second your suggestion.
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
Yes, there is a 100nF capacitor on the stepping button, it's also passed through a Schmitt trigger inverter. But very strange it did feel like it missed a step there.
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
@@melkiorwiseman5234 For the single stepping of CPU cycles it has to be done in hardware.
@melkiorwiseman5234
@melkiorwiseman5234 Жыл бұрын
@@SteveRaynerMakes Strictly speaking, that's not true, but single-stepping in software does require an Operating System to support it. In a Z80 system, the call to start the program is intercepted and the first instruction is examined to find out its length, then the following instruction is copied and replaced with a RST (restart) instruction which "calls" the single-step routine in the OS. The OS then overwrites the RST instruction with the copied instruction before allowing the user to examine the saved machine state and then step the program again (which again finds the next instruction, saves a copy and replaces it with a restart before returning control to the program). (For anyone who doesn't know, there are 8 RST instructions, 0-7, and they're intended to be used as the next instruction following an interrupt but not limited to that use).
@SteveRaynerMakes
@SteveRaynerMakes Жыл бұрын
@@melkiorwiseman5234 Yes, although that's single-stepping instructions, not single-stepping clock cycles. I realized I said CPU cycles, whereas I should have been more specific and said clock cycles.
@Thebasicmaker
@Thebasicmaker Жыл бұрын
no address for the input part? my Amstrad cpc requires a 16 bit decoding of the address so you using no address for your input sounds weird to me!
@tgopaul
@tgopaul Жыл бұрын
…ok if he is only ever having one byte of input. …simple for a breadboard experiment. i/o decode will be discovered in a later video.
Z80 Computer - Part 9 Fast Clock
29:47
Steve Rayner Makes
Рет қаралды 2,5 М.
Z80 Computer - Part 7 Keyboard Layout
22:50
Steve Rayner Makes
Рет қаралды 3,4 М.
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 12 МЛН
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 13 МЛН
DIY Z80 Retro Computer #5: Boot From CompactFlash Card
10:05
Doctor Volt
Рет қаралды 11 М.
Terminal Emulation on a Graphical LCD with the Z80
21:11
Ready? Z80
Рет қаралды 4 М.
CP/M 65 on the KIM-1 clone PAL-1
3:42
masterhit1
Рет қаралды 298
Zilog Z80 Deep Dive - How does it work?
15:05
NCOT Technology
Рет қаралды 24 М.
Internet is going wild over this problem
9:12
MindYourDecisions
Рет қаралды 163 М.
Damascus Steel From Stick Welding Electrodes
14:15
Alec Steele
Рет қаралды 646 М.
The Madness of Z80 I/O
22:52
Noel's Retro Lab
Рет қаралды 73 М.
RS232 interface with the 6551 UART
22:45
Ben Eater
Рет қаралды 203 М.
The Z80 MBC2 retro computer kit, Assembly and Testing
56:46
Electrogeek64
Рет қаралды 8 М.
Z80 Computer Part 21 - VRAM Memory Map
17:29
Steve Rayner Makes
Рет қаралды 1,2 М.
ОБЯЗАТЕЛЬНО СОВЕРШАЙТЕ ДОБРО!❤❤❤
00:45