Home » RBC Forums » General Discussion » Z80 Multi Board Computer (Z80 modular backplane computer)
Re: Z80 Multi Board Computer [message #9613 is a reply to message #9612] |
Sun, 16 January 2022 04:05   |
vackon
Messages: 16 Registered: January 2022 Location: Czech Republic
|
Junior Member |
|
|
Hi,
I have questions, maybe I should re-read the documentation, maybe there are answers.
I add that I have a CPU speed of 3.5MHz and I mixed LS / ALS and HCT chips.
1 / Z80PROC3 - WAIT LED - shouldn't it be connected behind jumper JP2? It still shines like this. Still showing Wait cycles.
2 / Z80SERIAL3 - is jumper J1 used in RomWbW? I didn't influence whether INT was used
3 / Z80ROM2 - When I want to use only 32kB Eprom without RomWBW. E.g. simple image NASCOM 8K BASIC.
I set: K1, K6 and K8 according to the type EEPROM / EPROM / 32 / 28pin
JP1 will be closed for access to the lower 32kB and K2 does not matter how it will be set?
I get it OK?
4 / Z80RAM3 - here is the worst :), very complicated board, at least for me :)
Please, can I use only 1x512kB chip?
Is it enough not to install RAM1?
JP1 when it is closed so it means the only RAM board in the system and at startup it is connected to the bus, right? I get it OK?
K9 allows me to switch upper and lower 32kB as needed, right?
K6 is for the size of the upper switchable RAM (32 or 16), right?
I still can't quite imagine the combinations JP1, K9 and K6 :(.
Please when I want to run NASCOM 8K BASIC again with 32kB ROM and 32kB RAM, how to set JP1, K9 and K6?
Thanks a lot and I apologize for so many questions and for my English
Jan
[Updated on: Sun, 16 January 2022 05:34] by Moderator Report message to a moderator
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9616 is a reply to message #9610] |
Sun, 16 January 2022 04:53   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
eugene wrote on Sun, 16 January 2022 00:05Hi Andrew,
It all run probably. One question to ask. Is there possible to only install one 512k SRAM on memory bord to boot RomWBW? How to setting the jumper of the memory board. Any advices, Thanks.
Nice build vackon. Good luck.
Thanks
Eugene
Hi Eugene,
Yes, the Z80 RAM board will work fine with one 512KB SRAM only. There are no differences in jumper settings between the 1MB and 512KB SRAM configurations since the extra chip is detected by software in RomWBW-dev.
There are a bunch of jumpers on the Z80 RAM V3 board though. I described them on the nhyodyne repo and also documented them on the schematic in more detail. Here is a summary:
Jumpers
JP1 is Boot RAM Option. Pins 1-2 closed (default) for Boot enable assuming single RAM board present in system. Will cause upper 32KB RAM page to be present at power on or after reset. Only one RAM board per system can be boot enabled. Multiple RAM boards can be present but only one can be boot enabled and rest must have JP1 open or bus contention.
K2 is RAM size option. Pins 1-2 closed for 128KB RAMs (both RAM0 and RAM1) (default). Pins 2-3 closed for 512KB RAMs.
K7 is for 32 pin 128KB RAM0 or 512KB RAM0. Pins 1-2 closed for 512KB RAM (default). Pins 2-3 closed for 128KB RAM. One or the other must be selected.
K9 is for select Upper 32KB of RAM to be fixed, Lower 32KB of RAM to be switchable Pins 2-3 closed (default) or both to be switchable pins 1-2 closed. Note: software needs to support latter feature. RomWBW assumes default of pins 2-3 closed. One or the other must be selected.
K6 is to select whether fixed top of RAM to be 32KB pins 1-2 closed (default) or 16KB pins 2-3 closed. One or the other must be selected.
JP2 is battery select jumper option supports both RAM0 and RAM1. Pins 1-2 closed for onboard CR2032 battery (default). Pins 3-4 must be closed also if CR2032 is used (default). Optionally pins 3-4 can be used as external battery connector with pin 4 is positive terminal, pin 3 is negative (ground).
JP3 and JP4 for U16 DS1210 installed pin 1-2 open (default). Closed both pins 1-2 to bypass. Default is both open. Note, if pins 1-2 closed U16 must be removed or unreliable operation.
K3 DS1210 RAM0 power sag tolerance feature, pins 1-2 closed 10% power sag (default), pins 2-3 closed 5%. One or the other must be selected or NVRAM will not work. If experiencing random lockups try 10% power sag setting or diagnose power supply issues.
JP5 and JP6 for U9 DS1210 installed pin 1-2 open (default). Closed both pins 1-2 to bypass. Default is both open. Note, if pins 1-2 closed U9 must be removed or unreliable operation.
K1 DS1210 RAM1 power sag tolerance feature, pins 1-2 closed 10% power sag (default), pins 2-3 closed 5%. One or the other must be selected or NVRAM will not work. If experiencing random lockups try 10% power sag setting or diagnose power supply issues.
My advice is to remove the DS1210s and set the jumpers to bypass them at least initially. Install only a single 512KB SRAM chip. Set boot jumper and install the rest of the jumpers as appropriate. Go with the defaults for K6 and K9 jumpers at least at first -- these can be troublesome and introduce subtle problems if not configured to default. They work fine but require special software to implement these features.
One thing that helps me is to post a photo of your board with jumpers installed so people can compare to theirs. If you are having issues this will sometimes flush it out.
Good luck and please post your progress. If you have any questions I am standing by to help get you going. Thanks, Andrew Lynch
|
|
|
Re: Z80 Multi Board Computer [message #9617 is a reply to message #9613] |
Sun, 16 January 2022 05:29   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
vackon wrote on Sun, 16 January 2022 07:05Hi,
I have questions, maybe I should re-read the documentation, maybe there are answers.
I add that I have a CPU speed of 3.5MHz and I mixed LS / ALS and HCT chips.
1 / Z80PROC3 - WAIT LED - shouldn't it be connected behind jumper JP2? It still shines like this. Still showing Wait cycles.
The Z80 CPU inserts one wait state for every IO cycle regardless so even if the wait state generator is completely disabled and bypassed you will still get some wait states whenever you access IO like UART. Depending on your selection of the LED it can shine brightly. On mine it is dimly lit but you can still tell it is on especially when accessing IO like polling the UART. I recommend bypassing the wait state generator at least initially. That's remove JP2 on the Z80 Processor board. Some wait states are just inherent on the Z80 CPU and the wait state generator just adds more if needed. It's mostly for legacy peripherals like really old EPROMs and slow IO devices. Really haven't had much application for it yet but we know it works just fine. If the LED is too bright you might consider boosting the value of R3 to 470 ohms or even 1K ohms. Also be sure to set the wait state jumpers (J1-J4) to the lowest possible setting (0 WS for memory and 1 WS for IO)
Quote:
2 / Z80SERIAL3 - is jumper J1 used in RomWbW? I didn't influence whether INT was used
Yes, the J1 enables the INT# from the UART but the RomWBW-dev has to be specially configured to enable the interrupt mode for UART. By default it is polling only. We went through a lot of trials and tribulations trying to sort out the INT for UART. I can say it definitely does work but can be a real challenge to set up so that's why it is polling only by default. For example, if you are using a TTL serial to USB cable it has to support hardware (CTS/RTS) handshaking and so does your terminal computer and terminal program. I've gotten it to work but this is a complicated topic probably worth its own thread. I know Wayne has gone through this before with RC2014 with very similar circumstances. My advice is to get a 16C550C compatible UART (not 16C550A) with automatic flow control. RomWBW-dev will autodetect it and it will go really fast assuming all the handshaking issues are resolved. Plus, it won't use interrupts which really speed things up.
I recommend getting everything else working first and then tackling the INT for UART issue. It works but is a pain to get all the bits and pieces aligned properly. Really not sure how much of an improvement INT is over straight polling either so the results were rather anti-climatic. I would go with the AFC (16C550C) type UART and get that working instead.
Quote:
3 / Z80ROM2 - When I want to use only 32kB Eprom without RomWBW. E.g. simple image NASCOM 8K BASIC.
I set: K1, K6 and K8 according to the type EEPROM / EPROM / 32 / 28pin
JP1 will be closed for access to the lower 32kB and K2 does not matter how it will be set?
I get it OK?
That's correct. with 28 pin EPROM you'll only get one page of lower 32KB ROM and that's it. K2 is for higher address lines which do not affect the 28 pin EPROM. Honestly, you might be the first person to try this in the field so I am very interested in your results. The idea for the 32KB ROM support was for early development so RomWBW-dev really doesn't apply here. It should work but the ROM MPCL really won't do much since there are no other ROM pages to switch. You can switch out the ROM though but that's about it.
Quote:
4 / Z80RAM3 - here is the worst :), very complicated board, at least for me :)
Please, can I use only 1x512kB chip?
Is it enough not to install RAM1?
JP1 when it is closed so it means the only RAM board in the system and at startup it is connected to the bus, right? I get it OK?
K9 allows me to switch upper and lower 32kB as needed, right?
K6 is for the size of the upper switchable RAM (32 or 16), right?
I still can't quite imagine the combinations JP1, K9 and K6 :(.
Please when I want to run NASCOM 8K BASIC again with 32kB ROM and 32kB RAM, how to set JP1, K9 and K6?
Yes, Z80 RAM V3 is the most complicated and troublesome board. If there is a problem with a new system most of the time it is the RAM board.
You can use only a single 512KB SRAM chip. I did for a long time and it works fine. There are no jumper differences between 512KB and 1MB RAM configuration because it is all detected by software. RAM1 is purely optional. JP1 must be installed if you have a single RAM board because it tells that is the default RAM board. Otherwise it will be silent after reset and no RAM present. RomWBW-dev definitely needs some start-up RAM. Only one RAM board per system can have JP1 installed so there is a "boot" RAM and the rest are enabled through software.
K9 is for select Upper 32KB of RAM to be fixed, Lower 32KB of RAM to be switchable Pins 2-3 closed (default) or both to be switchable pins 1-2 closed. Note: software needs to support latter feature. RomWBW assumes default of pins 2-3 closed. One or the other must be selected.
K6 is to select whether fixed top of RAM to be 32KB pins 1-2 closed (default) or 16KB pins 2-3 closed. One or the other must be selected.
I think JP1, K9, and K6 would be the same for either RomWBW-dev or NASCOM. I would put them in default settings at least at first.
Please let me know if this does not work for you and we can investigate further on what is happening
Quote:
Thanks a lot and I apologize for so many questions and for my English
Jan
No problem! Happy to help and glad you are trying out the system. Best of luck! Thanks, Andrew Lynch
|
|
|
Re: Z80 Multi Board Computer [message #9618 is a reply to message #9614] |
Sun, 16 January 2022 05:33   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
vackon wrote on Sun, 16 January 2022 07:35Hi,
still query RAM 512 / 1024kB.
Is the error wrong with me or RomWBW?
Whether I put 512 or 1024kB, it still shows me the same RAMDisk size 256kB
I would expect more at both 512 and 1024.
512 - 64 = 448
1024 - 64 = 960
Where is the problem ?
Hi Jan
There is no problem but RomWBW-dev does require special settings in MBC_std.asm to see 1MB RAM and set the RAM drive to larger format. Similar for the ROM drive. RomWBW-dev by default recognizes the 512KB memory configuration and takes some for itself resulting in a moderate sized RAM drive with 512KB SRAM. With the settings in MBC_std.asm you get the larger RAM drive.
RomWBW-dev needs some RAM and ROM for itself depending on your configuration. That's how it keeps the TPA for CP/M so high is it moves the CBIOS driver code and a bunch of other stuff into extended RAM and ROM. I'll post my MBC_std.asm as an example later today
Quote:
Thanks a lot
Jan
-
Attachment: MBC_std.asm
(Size: 2.32KB, Downloaded 227 times)
[Updated on: Sun, 16 January 2022 06:57] Report message to a moderator
|
|
|
|
Re: Z80 Multi Board Computer [message #9622 is a reply to message #9621] |
Sun, 16 January 2022 12:10   |
vackon
Messages: 16 Registered: January 2022 Location: Czech Republic
|
Junior Member |
|
|
Hi,
One more thing. Maybe you will have experience and teach me time.
I have a problem on the MBC bus. My system now depends on the order of the boards on Z80BCKPLN1.
I need to have the Z80RAM3 in a slot closer to the Z80PROC3 than the Z80ROM2.
E.g.
UART, nothing, ROM, nothing, RAM, nothing, PROC that's OK
UART, Nothing, RAM, Nothing, ROM, Nothing, PROC that's not OK
It's strange, but it's true.
Some timing issue, build error, or faulty chip.
I'll check all the connections and replace the chips, or build another RAM board to check.
Some idea, some advice .
Thanks a lot
Jan
|
|
|
|
Re: Z80 Multi Board Computer [message #9624 is a reply to message #9622] |
Sun, 16 January 2022 17:42   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
vackon wrote on Sun, 16 January 2022 15:10Hi,
One more thing. Maybe you will have experience and teach me time.
I have a problem on the MBC bus. My system now depends on the order of the boards on Z80BCKPLN1.
I need to have the Z80RAM3 in a slot closer to the Z80PROC3 than the Z80ROM2.
E.g.
UART, nothing, ROM, nothing, RAM, nothing, PROC that's OK
UART, Nothing, RAM, Nothing, ROM, Nothing, PROC that's not OK
It's strange, but it's true.
Some timing issue, build error, or faulty chip.
I'll check all the connections and replace the chips, or build another RAM board to check.
Some idea, some advice :).
Thanks a lot
Jan
Hi Jan
That suggests timing to me. When in doubt use 74ls chips. The Z80 serial V3 is especially sensitive to Z80 bus interface chips if they are 74ALS, 74HCT, etc. Some boards are insensitive to substitutions but others not. Did you use 74F on the Z80 RAM and Z80 ROM boards? 74LS should work there too but 74F will give you more margin. 74HCT tend to be slower. I've found 74ALS can be too fast for the TL16C550C for some unknown reason.
Normally I place the RAM and ROM boards closer to the Z80 processor and then Z80 clock and Z80 DMA surrounding them. Put the IO boards on the outside because for the most part they tend to be the least sensitive (PPIDE, DUART, FDC, etc.) plus the Z80 CPU forces a wait state for every IO access. Except Z80 serial V3 for some reason. I used a 74ALS245 and it really caused intermittent problems with the Z80 serial V3. I replaced it with 74LS245 and they disappeared. When in doubt, you 74ls chips. That will usually help the timing related issues. Bus placement sensitivity is a sign of timing issues.
If you have mixed families of chips in your build try swapping chips from one board to another and see if you can get the problem to follow. I use two systems and can normally fault isolate a flakey board pretty quickly.
Good luck! Thanks, Andrew Lynch
[Updated on: Sun, 16 January 2022 17:42] Report message to a moderator
|
|
|
Re: Z80 Multi Board Computer [message #9625 is a reply to message #8396] |
Mon, 17 January 2022 03:48   |
vackon
Messages: 16 Registered: January 2022 Location: Czech Republic
|
Junior Member |
|
|
Hi,
thanks for the link to TEST software. I missed it.
I would like to help, but I haven't programmed in assembler since school (30 years ago). I have to do it again.
Yes, you're right, my problem is timing.
I've done a few tests - a different CPU frequency, a new backplain board, swapping chips, and as a final test unification of the TTL series. The last change is the right way.
Today I will order the F series TTL, according to your suggestions and I will remove HCT everywhere.
Yes, the second set is a good thing, I will build it too . I did the same with RC2014.
Unfortunately, F and LS are more expensive today than HCT. Maybe use HCT and AHCT. Has anyone tried it?
Thanks a lot
Jan
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9632 is a reply to message #9628] |
Tue, 18 January 2022 03:21   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
eugene wrote on Mon, 17 January 2022 17:39Hi,
I finally got the RomWBW v3.1 working.

But no luck on install only one 512K SRAM on memory board to boot RomWBW. I am using RAM Memory Board V2.
Thanks
Eugene
Hi Eugene! Yay! Looking great! I see your system recognizes an AY-3-8910 sound board. Must be from the RC2014 side. Really cool!
There is a setting in MBC_std.asm regarding installed RAM. I'll find the line in the version I posted earlier
Congratulations! That's real progress. I hope you enjoy your Z80 MBC system!
Thanks, Andrew Lynch
PS, it is:
RAMSIZE .SET 1024 ; INSTALLED RAM
for 512KB change above to 512, I think that is the default setting
[Updated on: Tue, 18 January 2022 03:25] Report message to a moderator
|
|
|
|
Re: Z80 Multi Board Computer [message #9639 is a reply to message #9633] |
Thu, 20 January 2022 01:20   |
eugene
Messages: 5 Registered: January 2022
|
Junior Member |
|
|
Hi,
I got the memory board working on install only one 512K SRAM (AS6C4008). And booting the RomWBW normally. It was the K2(256K/1M) jumpper setting. Put K2 jumper on left hand side then it work. Thanks Jan, for your pic.
Thanks
Eugene
So Jan, maybe you need to put K2 jumper to right hand side to get 1024K to work.
[Updated on: Thu, 20 January 2022 01:23] Report message to a moderator
|
|
|
Re: Z80 Multi Board Computer [message #9648 is a reply to message #9639] |
Thu, 20 January 2022 13:30   |
vackon
Messages: 16 Registered: January 2022 Location: Czech Republic
|
Junior Member |
|
|

Hi,
today arrived a series of "F" TTL chips. I also got a cheap 74LS688 .
I changed the chips of the whole MBC according to your recommendation and the timing is OK.
I can install boards in any order and it's stable .
I will build another MBC set for backup and debugging .
Maybe one mistake when I had a CPU on one side next to UART and RAM and a ROM on the other side of the motherboard.
At the same time, I set the memory read wait cycles from 1 to 7, so once or twice, the boot crashed while testing the system.
When I set 0 wait cycles for reading memory, everything was OK.
Changing other wait cycles had no effect.
0 wait cycles was OK.
The error is not simply repeatable. I tried again now and the error was repeated only for waiting cycle 7 to read from memory. 0 to 6 was OK.
I hope you understand me .
I will still test, but otherwise it is very stable and reliable.
It would be interesting to build a SIO or DART and replace a UART.
@eugene yes maybe, but I haven't compiled RomWbW yet. I'm using the default build from the @wwarthen repository
Have a nice day
Jan
-
Attachment: F_TTL.jpg
(Size: 284.69KB, Downloaded 1343 times)
[Updated on: Thu, 20 January 2022 13:35] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9675 is a reply to message #9672] |
Mon, 24 January 2022 20:24   |
mrgcms
Messages: 7 Registered: August 2020
|
Junior Member |
|
|
Andrew,
I've been playing with a logic analyzer and a proto board, to get a feel for the Z80 signaling and the effect of wait states. I've written a small routine that accesses the card, reads and writes to strobe the CS signal, and I'm probing the signals while I vary the wait jumpers.
On the GitHub page for the Proc3 module, it states that for the IORQ wait states, "Z80 processor has 1 WAIT state for IO reads/writes by default. J3 & J4 IO WAIT states are not additive but represent total number", but that doesn't appear to be the case. With the wait state generator disabled, my IORQ time is 208nS (12 MHz clock), with the generator enabled and the jumper on the first links, which should be the CPU internal 1 default wait state, i.e. I shouldn't see a difference in the IORQ timing, it's now 292nS. Each subsequent jumper adds around 84nS.
So it looks like for IORQ, disabling the WS generator results in the single default wait state, and with the generator enabled, we get 2-9 wait states, not 1-8.
The RAM wait states do appear to start at 0, so the jumpers yield 0-7 wait states, as is stated in the readme.
Dave White
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9680 is a reply to message #9679] |
Wed, 26 January 2022 03:44   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi Jan
The 74LS (and 74F, I think) contain internal pull ups on inputs so even if left unconnected they appear to be high. I don't think 74HC or 74HCT include pull ups but even without them they can be left disconnected. I used to ground or pull high unused inputs but that makes debugging a real pain so now I just leave them unconnected. With 74LS and 74F that's not an issue and usually isn't with 74HCT either.
I don't use 74HC because the logic levels are different and require interfacing to work properly. Normally I prefer 74LS, 74F, 74ACT, 74ALS, and 74HCT and usually can be substituted but not in all cases. 74HC is different though and if you want to used it you'll have to use it exclusively throughout the design to accommodate the different logic levels. I've not tested 74HC so don't know if it will work at all so I recommend some caution before using it. If there are open gate inputs you can always try a jumper to ground on the copper side of the board.
Good luck! Thanks, Andrew Lynch
[Updated on: Mon, 14 February 2022 04:26] Report message to a moderator
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9768 is a reply to message #9763] |
Mon, 21 February 2022 11:42   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi
After a lengthy delay due to problems with the Z80 CTCDART and Z80 DUALPIO it seems those have been solved so it is time to move on to the next pair of boards. They will be the Z80 PRINT and the Z80 PSG
Z80 PRINT
https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=568&goto=9514&#msg_9514
Z80 PSG
https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=568&goto=9460&#msg_9460
The Z80 PRINT adds fully capable bi-directional, buffered, Centronics parallel port. It can be used for old style printers like dot matrix or early ink jets or for parallel peripherals. Has full set of handshaking signals and interrupt capability for data transfers.
The Z80 PSG is a familiar design from the original ECB SCG board and N8. A three channel FM synthesis sound generator with two joystick ports which can be configured for MSX or Atari compatibility. Intended to be MSX compliant to complement future boards which add V9938/V9938 VDP for a greater degree of MSX compatibility.
Thanks, Andrew Lynch
PS, does anyone know how to prevent the forum editor from corrupting RBC forum URLs? I can never seem to post a URL to a specific message on RBC forum without it getting mangled
[Updated on: Mon, 21 February 2022 11:46] Report message to a moderator
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9891 is a reply to message #9461] |
Mon, 02 May 2022 10:52   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
lynchaj wrote on Wed, 08 December 2021 07:43Z80 VDP1A

Hi
This is first iteration of upcoming Z80 VDP1A board. It is based on the V9938 section of the S-100 MSX VDP board updated to support V9958. It is designed for output compatible with GBS-8200 video converter boards. Since there are multiple ways to design V9938/V9958 video output stages the plan is to design two boards and downselect depending on which one does best. This design uses multiple discrete components to fashion a video output stage similar to how implemented on S-100 MSX VDP (demonstrated working design).
Please review and comment on design. I am especially interested in usability concerns as these boards are highly complicated and usability can suffer with all the many options available.
Thanks, Andrew Lynch
Hi
I finally ordered PCBs for Z80 VDP1A and Z80 VDP1B. This weekend I built the Z80 VDP1A as far as I could go. Still missing the 21 MHz crystal and the FMS6141 and LM1881 ICs. It seems to have gone together fairly well although it did take quite a bit of time to get organized beforehand. There are a lot of parts and some unusual values so it takes more effort than most Z80 MBC boards. Next weekend I'll do the same for the Z80 VDP1B although I know I am missing parts for it as well. Then it is just a matter of waiting for the parts to arrive to finish them up and starting testing.
As usual, all the information is stored on the nhyodyne Github repo
Thanks, Andrew Lynch
[Updated on: Mon, 02 May 2022 11:07] Report message to a moderator
|
|
|
Current Time: Sat Mar 15 19:24:28 PDT 2025
Total time taken to generate the page: 0.01104 seconds
|