Home » RBC Forums » General Discussion » Z80 Multi Board Computer (Z80 modular backplane computer)
Re: Z80 Multi Board Computer [message #8756 is a reply to message #8751] |
Mon, 05 July 2021 05:26   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
OK, so the excitement from ROMWBW and DSKY ng is still raging but it's time to get back down to business. The Z80 PPIDE board is great and really opened up the window into a large Z80 software world. Quite an expansion when you're used to debug monitor and just working CP/M 2.2 with RAM & ROM drives.
The next stage is to add a Floppy Drive Controller because hey, who would trust a retro computer without a floppy drive? ;-) (just kidding)
Looking over all the various iterations of FDCs, it seems like the best, most recent ones are based on the WD37C65 which is the FDC used in the N8 and the awesome Zeta II SBC. So it makes sense to me to use that as a basis for a new Z80 FDC. Also the chip is still available and is a single piece solution without needing the weird, hard to find support chips for data separator, etc. (remember the FDC9229 on original DiskIO? Talk about a unicorn, yikes)
The Z80 FDC project is in the early planning stages. A couple of other goals for the board is to be relatively low power (CMOS a must), support both PIO and DMA modes (target is ECB-DMA circuit), and capable of HD mode. At this point I am thinking the only real floppy drive support would be for PC compatible HD and DD 2MB (IBM 1.44MB format). the WD37C65 probably supports a bunch of other formats (5.25", 8", tape drives, etc.) but over time these others have dwindled down to almost nothing. Of the floppy drives pretty much the 1.44MB format overwhelmingly dominates and is still commonly available. Also it is much lower power than the other older formats.
Here is an opportunity to make changes to the design and get your input in early. Please review the attached schematic and PCB layout and post your comments or send me an email. All input will be considered although I cannot promise it will be implemented. There are many trade-offs and only some will make the cut. Thank you in advance, Andrew Lynch
[Updated on: Mon, 05 July 2021 05:49] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #8776 is a reply to message #8772] |
Tue, 06 July 2021 03:23   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Wayne W wrote on Mon, 05 July 2021 23:02This might be a good time to think through the interrupt management approach for the MBC.
Currently, the Serial Module asserts the /INT signal directly. As designed, the FDC Module would do the same thing. Since neither the 16C550 nor the 37C65 handle Z80 mode 2 interrupts, this would imply the use of interrupt mode 1. This would also imply that upon interrupt, all possible interrupting devices will need to be polled to see who is tugging on the signal.
Sergey's Zeta II utilizes a CTC to coerce isolated interrupt signals into Z80 mode 2 interrupts. The CTC also provides a system timer which is generally useful.
As far as I know, there is nothing wrong with using mode 1 interrupts. Mode 2 interrupts would be more performant, but would increase complexity.
I'm sorry I don't have a specific solution to suggest off the top of my head. Just thought it was worth a bit of thought.
-Wayne
Hi Wayne, good point. I am adding a jumper to the Z80 FDC to allow selection between INT or NMI or none like the Z80 serial board. I think it would have to use interrupt mode 1 and do polling to identify the interrupt source. That kind of sucks but there is not really an equivalent of an Intel PIC for Z80 that I know about.
That being said, the Z80 MBC lacks a timer circuit and it is a major shortcoming. My plan to resolve this is to split the old Zilog Peripherals board up into two boards; a CTC + DART board and a dual PPI board. The CTC + DART would go first because I think it is more urgently needed as a timer and would help with the interrupt issues as well. This would have to be a later project though because I'd really like to get the FDC and DMA working first. I think we're stuck with PIO and/or mode 1 interrupts w/polling for a while.
Great insight! Thanks! Andrew Lynch
|
|
|
|
|
Re: Z80 Multi Board Computer [message #8784 is a reply to message #8779] |
Tue, 06 July 2021 12:30   |
 |
Wayne W
Messages: 385 Registered: October 2015 Location: Fallbrook, California, US...
|
Senior Member |
|
|
etchedpixels wrote on Tue, 06 July 2021 04:12Wayne W wrote on Mon, 05 July 2021 20:02
As far as I know, there is nothing wrong with using mode 1 interrupts. Mode 2 interrupts would be more performant, but would increase complexity.
I'm sorry I don't have a specific solution to suggest off the top of my head. Just thought it was worth a bit of thought.
-Wayne
IM2 very slightly speeds up a few things like SIO serial, but not noticeably and lets you use a CTC without jumping through hoops. Unless you are trying to service lots of low latency low service cost devices at once it's pretty much noise, and it doesn't buy you anything like proper priority servicing - once you are in a given handler it's actually really messy to allow other higher priority interrupts. 8085 got that right - Z80 didn't.
Good points as always Alan. If Andrew adds the jumper to allow selection of /INT or /NMI, then it would also be possible to leverage that jumper in the future to attach a fly wire to connect IM2 interrupts if some kind of interrupt management hardware is built.
Anyway, I think this is case closed at this point.
Thanks,
Wayne
|
|
|
Re: Z80 Multi Board Computer [message #8785 is a reply to message #8784] |
Tue, 06 July 2021 15:14   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Z80 FDC

Hi, added 3D rendering image of board with most components except PLCC-44 to help visualize the board design
Made some updates to the Z80 FDC board design based on people's inputs
- added user FDC reset capability (Thanks Alan!)
- added mounting holes in the upper left and right corners (M2 screws)
- added exclusion zones (0.75mm) for small card guides on left & right edges
- added optional provisions for secondary 9.6 MHz clock (I figure if someone wants it bad enough they can make the mods)
Discovered the old KiCAD footprint for PLCC-44 has an error in it which makes trace routing nearly impossible. (pin 38 & 41 occupy same hole) so switched to newer PLCC footprint and verified against datasheet. Fortunately the bug surfaced early before ruining the PCBs.
Thanks, Andrew Lynch
update: ordered PCBs, should be here early next week. Ordered WD37C65s and PLCC-44 sockets
update: PCBs and parts arrived. Gathered up all other parts from stock and assembled a board minus ICs. Conduct initial testing soon. So far looks pretty good
update: built and tested Z80 FDC board, installed ICs and powered up. Everything seems to check out. Built floppy drive test station of old PC power supply, 3.5" floppy drive, DD floppy disk, cables, etc. Powered up and appears to be working.
update: tried RomWBW FDU.COM modified for Z80 MBC & Z80 FDC board. Seems to work fine. Formatted 720KB DD 3.5" floppy disk. Read, write, & verified data. Track seek, home, and various FDC commands all seem to be working as expected. Good news!
[Updated on: Wed, 28 July 2021 04:54] Report message to a moderator
|
|
|
Re: Z80 Multi Board Computer [message #8799 is a reply to message #8785] |
Wed, 07 July 2021 20:42   |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
I did quite a bit of playing with WD37C65 while working on Zeta SBC V2, so here is some constructive criticism:
- Generally the board seems to be overcomplicated. All it really needs is the FDC and the chip select logic. Not even buffers, since you're really buffering only a single IC.
- 37C65 already has "soft reset" - see Operation Register bit #2. So separate reset control is not required
- Most of DMA/TC logic is unnecessary. RomWBW uses programmed I/O in AT/EISA mode. It only pulses /DACK+TC to indicate the end of transfer and keep the FDC happy. Since the FDC samples TC signal only when /DACK is active, tying it "high" (to VCC) will work. All you need is two chip selects for the FDC itself (/CS and /DACK) and two chip selects for /LDOR and /LDCR registers respectively
- Zeta SBC V2 has one more optimization - it puts /DACK (read only, qualified with /RD) on the same I/O address as /LDOR (write only). You could do the same, and save Wayne patching the RomWBW FDC code
Floppy connector:
- P27 pin 6 is connected to /MO1/DS3. Also, it looks that pins 10, 12, 14, 16 are swapped compared to the typical IBM PC/AT implementation. Perhaps you wanted to support 4 drives? If not, I'd recommend leaving pin 6 unconnected and swapping other pins to match IBM implementation. Otherwise people will get really confused about their IBM-compatible cables not working properly.
Improvements:
- Add more space around oscillators - full can oscillator packages are a bit bigger than DIP packages, and it looks that 16 MHz oscillator will overlap with 74LS138
- If you wish to use available real estate, addition of 50-pin floppy connector might be a good idea. Some people asked for that in the past
- If you like, you can add a vectored interrupt using a CTC or something like that instead of tying the interrupt to /INT or /NMI directly. But RomWBW doesn't use interrupts for FDC anyway...
- Integrate 8237 DMA on the board. Not sure if it will fit on 100x100 mm board though. Also interfacing with 8237 might be painful...
Small optimizations:
- 74LS02 is only used as an inverter. You could use one available 74LS10 gate U8C instead of U4B, and one of the available 74LS06 gates instead of U4A (together with yet another pull up)
- Use a resistor array for 4700 ohm pull-ups on IRQ/DMA signals
Thanks,
Sergey
|
|
|
Re: Z80 Multi Board Computer [message #8802 is a reply to message #8799] |
Thu, 08 July 2021 03:12   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Thanks Sergey!
Excellent, well thought out points. Especially the drive cable issue. That was a carry-over from the N8 back when I was more concerned with a purist Shugart floppy interface (up to 4 drives) than IBM compatibility. However, this board acknowledges current reality and needs to be more compatible with the mainstream IBM 1.44MB drives and their cables with the twist. I will implement as much as possible but some things are design decisions and to support DMA integration (hopefully soon).
Much appreciated, Andrew Lynch
[Updated on: Thu, 08 July 2021 15:40] Report message to a moderator
|
|
|
|
Re: Z80 Multi Board Computer [message #8899 is a reply to message #8897] |
Tue, 27 July 2021 04:59   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
clock V2

placeholder for respin of Z80 clock board
Update: the Z80 clock V2 board seems to work fine with no problems so far. On my system I've noticed that if I use the straight clock configuration (no "clk sel" 50%/100% speed mode) then it works stably. On one of my systems with the 50%/100% "clk sel" jumper installed it will occasionally generate "bad int" messages in RomWBW. Not sure what is causing this but it seems to have something to do with the flip flop effecting the clock signal. With straight clock signal (100% all the time) I believe there is no distortion and the system is rock solid. If you have the 50%/100% speed jumper installed and see the "bad int" messages try removing the jumper as it may help
[Updated on: Thu, 18 November 2021 06:13] Report message to a moderator
|
|
|
|
|
Re: Z80 Multi Board Computer [message #8917 is a reply to message #8907] |
Thu, 29 July 2021 12:17   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Z80 DMA

Update: Going to order PCBs soon, any last minute questions, reviews, or comments welcome
Update: design going through some revisions, most notably the switch from CMOS DIP-40 to CMOS PLCC-44 to gain RESET# pin function. Many other clean ups to design and PCB layout
Update: ordered PCBs with revised design. Expect delivery in 9-15 business days.
Update: credit to Edzard for finding power LED bug. Expect a fix in Z80 DMA V2 respin. Also a bunch of minor corrections and updates.
Update: Good news, Z80 DMA built and tested. Seems to be working although testing not done yet. DMAmon program available but getting reworked by Phil. Had some problems getting my initial build to work properly but a tear-down and reassemble seemed to clear up the issue so that's nice.
Update: With the latest RomWBW the DMA driver code has been updated in preparation for external DMA IO. As a result in the stand-alone mode (no connection to an IO device) "EXT DMA" connector needs to have pins 2-3 connected with jumper. Otherwise the DMA driver does not work properly.
[Updated on: Thu, 18 November 2021 06:06] Report message to a moderator
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #8934 is a reply to message #8932] |
Mon, 02 August 2021 10:49   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
norwestrzh wrote on Mon, 02 August 2021 12:33Why two DS1210s? I think that a single DS1210 can be used to control power for 2 SRAM chips (I think I did it, but I could be wrong -- it was a long time ago). If not, then why not use a DS1221? It is a bigger chip (it is a 16-pin dip), but can control power to 4 SRAM chips.
Roger
Hi
It is due to how the Z80 RAM design implements chip select. Each SRAM has a unique chip select and common RD# and WR# lines. The alternative would be to implement unique RD# and WR# lines and have a common chip select and then you could use a single DS1210. So as it turns out with the former approach it saved 4 OR gates and a couple of inverters but cost an extra DS1210. Originally I went with the latter approach and a single DS1210 and forgot to update it when I switched over to unique chip selects causing the error.
Obviously you can't have common RD#, WR#, and chip select lines or you would have bus contention on reads. Writes might sort of work but you'd have the same data written to both chips at once.
Ironically, my Red Z80 MBC works fine with the single DS1210 and retains memory across resets, reboots, power cycles, no problem. Green sometimes looses data on power cycles if their over a certain amount of time. Regardless, the initial implementation is wrong and had to be fixed. Amazing how well it worked in spite of the error though. As a regular (volatile) RAM board it seems to work perfectly. Its the non-volatile portion that got screwed up.
Thanks, Andrew Lynch
|
|
|
Re: Z80 Multi Board Computer [message #8938 is a reply to message #8930] |
Mon, 02 August 2021 11:30   |
 |
Wayne W
Messages: 385 Registered: October 2015 Location: Fallbrook, California, US...
|
Senior Member |
|
|
b1ackmai1er wrote on Sun, 01 August 2021 04:41Hi Andrew,
With the addition of the second DS1210 being added for the second RAM chip, I think the HBIOS needs to be updated to ensure the second RAM chip is accessed twice before it is actually used otherwise you will get seemingly random errors.
hbios:
; IF A DS1210 POWER CONTROLLER IS INSTALLED AND BATTERY BACKUP IS NOT INSTALLED
; OR IS LESS THAN 2V THEN THE DS1210 WILL BLOCK THE SECOND RAM ACCESS.
; FAILURE TO COMPLETE TWO RAM ACCESSES BEFORE INSTALLING PROXY WILL RESULT
; IN THE ROM ID BYTES NOT BEING COPIED CORRECTLY AND CP/M APPLICATIONS
; WILL NOT START CORRECTLY WHEN THEY CHECK THE ROM ID VERSION BYTES.
Thanks Phil, but this problem is a little different. In this case, the data in the first byte of both ram chips can be verified as written correctly prior to a power cycle. After a power cycle, these bytes become 0xFF. If the DS1210 was blocking a write, it would not explain how the bytes become 0xFF.
Also, in theory, the DS1210 protocol is active on this platform under RomWBW.
Thanks,
Wayne
|
|
|
|
|
Re: Z80 Multi Board Computer [message #8994 is a reply to message #8982] |
Wed, 11 August 2021 08:30   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Z80 Prototyping

Hi, received a request for a Z80 prototyping board for the Z80 MBC. There are at least two ways to design a prototyping board; first is just a full board of PTHs and all wiring left to the operator, and the second is most likely components are added with a reduced amount of PTHs. Both are valid but this design reflects the latter approach. Not everyone will like it but if you have any feedback or questions on this implementation please post here or contact me. Thanks, Andrew Lynch
Note: there are pads for the most common buffered signals (labeled) above the ICs and the capacitor in the upper right corner of the component area is actually VCC and GND pads. 4 IO port addresses are reserved for the prototyping by default although the operator can modify the IO port decoder circuit to add/subtract IO ports with cuts and jumpers.
Update: Did some minor updates and realized I had better post them before they get lost in the churn
[Updated on: Mon, 16 August 2021 04:50] Report message to a moderator
|
|
|
Re: Z80 Multi Board Computer [message #9023 is a reply to message #8994] |
Wed, 18 August 2021 04:45   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi
If you want to build your own Z80 MBC all the files are posted in this thread. Just download the Gerber files and go to JLCPCB or your favorite company to have them manufactured. You upload the Gerber zip file and accept the default parameters. Normally this gets you 5 PCBs for $2 plus shipping to where ever you live. This is a different model than previous boards and gives the builders direct control over what they purchase and build. You can customize PCBs by selecting your own color and other parameters, order extras, etc.
There are no middle men involved and no one has to buy a bunch of PCBs at risk and store inventory hoping other people buy them to recover their funds. If you get extra PCBs you can offer them to other builders and/or give them away to your friends. I've given away most of my PCBs because I really only need a couple of each type to build and maintain my two systems. No point in carrying extras around so give them to people who'll build and spread the fun.
The Z80 MBC is build is almost entirely with common off-the-shelf components if you have a collection of electronic parts you might be able to source most if not all the parts from your stock. A tremendous money saver. I know I've used up a bunch of old components that had been sitting around for years in some cases. No special customized parts or programmable logic so a simple, basic ROM programmer and a soldering iron is all you need to start. Nice to see them working!
Post here if you have any questions or send me a PM. Hope to see you get started soon!
Thanks, Andrew Lynch
PS, these boards use all through-hole parts and no SMD for easy construction by beginners. Also if you mess up PCB (difficult but possible) they are inexpensive enough to just try again. All the parts that are actually soldered to the PCB are inexpensive passives, connectors, and sockets so you can remove the ICs and try again without breaking the bank. If you use JLCPCB you'll get 5 PCBs so tossing one or two while you get the hang of it is no big deal. All PCBs use solder masks and large pads for easy construction. These are designed and intended for the new builders so don't be afraid to give it a try.
[Updated on: Wed, 18 August 2021 04:50] Report message to a moderator
|
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9060 is a reply to message #9059] |
Mon, 30 August 2021 06:31   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi Edzard
OK, let me work on some improvements. Thanks for the feedback, it'll make for a better prototyping board.
Thanks, Andrew Lynch
PS, is it just those two sockets or all of them? Is just barely too tight or way off? Trying to figure out how much additional spacing is needed.
[Updated on: Mon, 30 August 2021 06:34] Report message to a moderator
|
|
|
|
|
Re: Z80 Multi Board Computer [message #9066 is a reply to message #9063] |
Mon, 30 August 2021 11:03   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi Edzard
I am going to add 0.5mm space between the ICs to allow for more room. However this means I have to move the spares connector to below the sockets and change from a 1x10 pin header to a 2x5 pin header. The spares aren't used much yet so I don't think that will make much difference but it will fix the problem you're having with too tight socket placement.
Thanks, Andrew Lynch
PS, made the updates and am reworking the PCB trace routing in FreeRouting now. Should see something soon.
[Updated on: Tue, 31 August 2021 04:39] Report message to a moderator
|
|
|
|
Re: Z80 Multi Board Computer [message #9070 is a reply to message #9069] |
Tue, 31 August 2021 03:56   |
lynchaj
Messages: 1080 Registered: June 2016
|
Senior Member |
|
|
Hi Edzard, You're right, I made a mistake on the power LED probably during the rearrangement of the bypass capacitors. Just lift the grounded pin of R12 and connect to VCC with a jumper and it should work fine. I'll roll in a change for the next PCB respin.
Thanks, Andrew Lynch
PS, I just checked and fortunately the fix is easy. Locate R12 in the upper left hand corner, pull pin #1 (on the right) and connect to the pin directly to the right of it (VCC). It is very close so likely an extra jumper wire is not needed. Annoying but not a show stopper. I've updated the schematic and PCB layout for Z80 DMA V2 which is likely the first of several changes. The Z80 DMA is based on the ECB-DMA board and is experimental so probably more changes will be necessary as we work out the bugs. Although the ECB-DMA seems to be performing well so maybe it will be only a few changes. Regardless, thank you for finding the bug and it's been fixed for the next version.
[Updated on: Tue, 31 August 2021 04:37] Report message to a moderator
|
|
|
|
|
Current Time: Wed Mar 19 03:27:45 PDT 2025
Total time taken to generate the page: 0.01007 seconds
|