One mistake in this video is that pin 27 on the ROM chip should be pulled high by connecting it to +5v. This is to ensure it never goes low because that could result in its contents getting changed. Which would be bad.
Hi Steve. Please continue with this very good projetc. Set a keyboard with a 74C923 it will be a good idea. All we are waiting good news from you soon. All the best to you and yours and don't forget of us.
Regarding putting ROM at the bottom of memory to ensure that instructions exist following a reset, a computer kit from around the 1990's got around that by having the hardware "disconnect" the low-memory RAM following a reset so that the CPU received continous NOP instructions until it reached the address for the ROM, at which point normal memory access would be restored.
@@SteveRaynerMakes Thanks. By the way, I added 'Like' to every episode now and I subscribed during the 3rd or 4th episode. Great work that I will be looking at more as I plan and build my 68K project. 😊
Hi Steve, fantastic. I have been watching your videos as I have an interest in building a similar pcb board which hopefully will end up with a code entry of some sort even if only by dip switches. Your explanation of the different parts of the circuit are brilliant. Do you ever plan to release the schematics? Maybe pdf format? I am learning the bus connections at the moment. Many thanks for sharing. oh, would a 555 timer help with the power on reset? Worked well on the c64.
On the flash memory chip I'm using, I found that leaving the /WE disconnected causes erratic operation and corruption of the data. Using a 10K pull-up solved the issue. EDIT: after submitting this, I saw your pinned comment.
It is always nice to have enough memory. My first computer had only one K. And it was black and white! This computer has already many colours and so much memory you could never fill it (with the two buttons provided).
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.
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.
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
it's 20cm x 15cm if that helps. I ordered it from Ebay about 6 or 7 years ago. This look similar www.ebay.co.uk/itm/285227717428?hash=item4268e59334:g:RRUAAOSwefhkMxof&amdata=enc%3AAQAIAAAA8NsBMzvmcynUSj7KoOwdc9kwo4eUXR%2BFNZtlUIHzchvxppZVO6wx69uHrn7cyWDYTiYAG0Ms1bFTpaSg4M9f9A1JGzV4ncZRgT1XZqiaOHj%2BU2pj92PVNsiKt8NBAhpip0dKV8QkXUh8aVV5zniy8Ef1x%2FFuHmqSsp0loC868z711JM7AN40Do9qoZXOh6f0iKqaTtkRYdcReWgSzke5mD4VzkASKt%2F2wyiaWdZvXoIyQhb4%2F7IcXJgdhn7UAC7lGwO9Rl%2BhG1iQdU4Atf7qmgSh8oljhjfWLIoxrVxwFGp8PJDObkxVc1ZSKm9oEbr%2BBg%3D%3D%7Ctkp%3ABFBM9LeeiYZi
Hi Is it possible to connect both ram and rom without a decoder? Connect directly CE(CS) On what address line, well, for example, a rom for 15 frames for 14?
There are loads of ways you could configure this. You certainly can connect an address line directly to CE(CS). However to enable the chip they usually need to be active low. I'm doing this with A15. However I have to run it though an inverter to make it enable a chip when A15 is high. If you don't want any decoding at all between the Z80 and the memory chips, you could use two 16K memory chips. These only need 14 address lines. You could then connect A14 to CE on one and A15 to CE on the other. However that configuration only gives you access to 32K total memory. However there are other considerations. Do you really want to send write signals to a ROM chip? If it truly is a ROM then it's fine. But modern chips are usually EEPROMS. Sending write signals to them could inadvertently overwrite their contents. Short answer is yes, you could do it with no decoding logic, but it comes with quite restrictive limitations.
@@SteveRaynerMakes it's just that I don't have other chips for decoding, but I have an inventor. Is it normal that if you insert a clean eeprom chip, the Z80 can stop at some address during operation?
So you could connect the A15 line to the CE(CS) for both ram and rom, running one of them through an inverter. You could connect RD on the Z80 to the OE on both memory chips. Then connect the WR on the Z80 to WE on just the ram chip. That solves everything apart from IO operations. The problem you would have is that any IO operations such as IN or OUT instructions will end up reading and writing to the memory. It's difficult to know what you mean exactly with a clean EPROM. If it's stopped it may have come across a halt instruction. But I guess there could be other reasons that it's stopped.
That's a fair point. I want to re-focus on the original goals. Sorry if I waffle on too much. In the next few videos I will be looking into the keyboard input. After that I might look at the memory bank switching to increase the ram.
One mistake in this video is that pin 27 on the ROM chip should be pulled high by connecting it to +5v. This is to ensure it never goes low because that could result in its contents getting changed. Which would be bad.
If its contents can be changed then it's not a ROM chip.
@@deang5622 Correct it's an EEPROM.
Hi Steve.
Please continue with this very good projetc.
Set a keyboard with a 74C923 it will be a good idea.
All we are waiting good news from you soon.
All the best to you and yours and don't forget of us.
this series is so good. thanks so much !
i really wanted to learn all this.
Regarding putting ROM at the bottom of memory to ensure that instructions exist following a reset, a computer kit from around the 1990's got around that by having the hardware "disconnect" the low-memory RAM following a reset so that the CPU received continous NOP instructions until it reached the address for the ROM, at which point normal memory access would be restored.
An excellent Series Steve (in New York here). I am progressing though this series and am hopeful I can reproduce it with the 68000 chip 🙂
That sounds interesting. There are so many different vintage chips to base a project on. I'm sure you'll have fun doing it.
@@SteveRaynerMakes Thanks. By the way, I added 'Like' to every episode now and I subscribed during the 3rd or 4th episode. Great work that I will be looking at more as I plan and build my 68K project. 😊
Is it the based 68k or one of the later ones? Have you documented it? I hope you do a CPU tester like what is usually done with these 8-bit CPU's.
Great looking board, I've subscribed so I can see you fix that power on reset!
Hi Steve, fantastic. I have been watching your videos as I have an interest in building a similar pcb board which hopefully will end up with a code entry of some sort even if only by dip switches. Your explanation of the different parts of the circuit are brilliant. Do you ever plan to release the schematics? Maybe pdf format? I am learning the bus connections at the moment. Many thanks for sharing. oh, would a 555 timer help with the power on reset? Worked well on the c64.
On the flash memory chip I'm using, I found that leaving the /WE disconnected causes erratic operation and corruption of the data. Using a 10K pull-up solved the issue.
EDIT: after submitting this, I saw your pinned comment.
It is always nice to have enough memory. My first computer had only one K. And it was black and white! This computer has already many colours and so much memory you could never fill it (with the two buttons provided).
I want to later have The Bredbordconector as an expansion Port
Why do all the leds for the top half of the address pins all seem to go on and off together?
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.
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.
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
Could you share which busboard you are using there. That is a nice large one I would like to use in some of my projects.
it's 20cm x 15cm if that helps. I ordered it from Ebay about 6 or 7 years ago. This look similar www.ebay.co.uk/itm/285227717428?hash=item4268e59334:g:RRUAAOSwefhkMxof&amdata=enc%3AAQAIAAAA8NsBMzvmcynUSj7KoOwdc9kwo4eUXR%2BFNZtlUIHzchvxppZVO6wx69uHrn7cyWDYTiYAG0Ms1bFTpaSg4M9f9A1JGzV4ncZRgT1XZqiaOHj%2BU2pj92PVNsiKt8NBAhpip0dKV8QkXUh8aVV5zniy8Ef1x%2FFuHmqSsp0loC868z711JM7AN40Do9qoZXOh6f0iKqaTtkRYdcReWgSzke5mD4VzkASKt%2F2wyiaWdZvXoIyQhb4%2F7IcXJgdhn7UAC7lGwO9Rl%2BhG1iQdU4Atf7qmgSh8oljhjfWLIoxrVxwFGp8PJDObkxVc1ZSKm9oEbr%2BBg%3D%3D%7Ctkp%3ABFBM9LeeiYZi
Hi Is it possible to connect both ram and rom without a decoder? Connect directly CE(CS) On what address line, well, for example, a rom for 15 frames for 14?
There are loads of ways you could configure this. You certainly can connect an address line directly to CE(CS). However to enable the chip they usually need to be active low. I'm doing this with A15. However I have to run it though an inverter to make it enable a chip when A15 is high. If you don't want any decoding at all between the Z80 and the memory chips, you could use two 16K memory chips. These only need 14 address lines. You could then connect A14 to CE on one and A15 to CE on the other. However that configuration only gives you access to 32K total memory. However there are other considerations. Do you really want to send write signals to a ROM chip? If it truly is a ROM then it's fine. But modern chips are usually EEPROMS. Sending write signals to them could inadvertently overwrite their contents. Short answer is yes, you could do it with no decoding logic, but it comes with quite restrictive limitations.
@@SteveRaynerMakes it's just that I don't have other chips for decoding, but I have an inventor. Is it normal that if you insert a clean eeprom chip, the Z80 can stop at some address during operation?
So you could connect the A15 line to the CE(CS) for both ram and rom, running one of them through an inverter. You could connect RD on the Z80 to the OE on both memory chips. Then connect the WR on the Z80 to WE on just the ram chip. That solves everything apart from IO operations. The problem you would have is that any IO operations such as IN or OUT instructions will end up reading and writing to the memory.
It's difficult to know what you mean exactly with a clean EPROM. If it's stopped it may have come across a halt instruction. But I guess there could be other reasons that it's stopped.
@@SteveRaynerMakes Thanks!
Hi.Where is part 6?
Coming soon...
Why don’t you waffle on about adding the 256k stated in your first videos system goals?
That's a fair point. I want to re-focus on the original goals. Sorry if I waffle on too much. In the next few videos I will be looking into the keyboard input. After that I might look at the memory bank switching to increase the ram.
👍
🍀 ρɾσɱσʂɱ
Just use a PIC microcontroller or an Arduino...far less effort
It would indeed.
That's not the same kind of fun...
The mc is used in projects while this kind of a computer is the project. That's why it's not the same.
Steve.
Please do not use Pic or Arduino, continue only with Z80 and logical circuits as was made 40 years ago.
Nothing of Pic or Arduino please.
Z80 is little endian, 6800 is big endian.