Z80 MMU (Zeta)

684 views
Skip to first unread message

Tadeusz Pycio

unread,
Sep 24, 2023, 3:53:35 PM9/24/23
to retro-comp
Another processor module design with MMU, this time based on a well known and used Sergey concept. I decided to move the MMU into the processor module to make use of the available memory for the Z180/280, which really should be where the MMU is. I'll admit that the project came about for my convenience, as I got bored of using the ROM emulation plugin for Z80-based systems (I have a dedicated module that replaces that for me). I think I will opt for a PCB design this time.

mod.jpg
Z80MMU1.pdf

Sergey Kiselev

unread,
Sep 26, 2023, 6:56:26 PM9/26/23
to retro-comp
Looks good. I like the idea of using multiplexers to switch higher address lines for MMU disabled vs. MMU enabled cases.

Tadeusz Pycio

unread,
Sep 26, 2023, 7:39:28 PM9/26/23
to retro-comp
Looks good. I like the idea of using multiplexers to switch higher address lines for MMU disabled vs. MMU enabled cases.

Hi Sergey,
Too much choice I didn't have, what works successfully on the SBC or on the internal memory module bus, when used as a standalone MMU seems to be the only option. This extends your concept somewhat, but retains the idea.
I'll be starting design work soon, as I'm currently delving into another topic I've been looking for for a very long time - a modern microcontroller that operates at 5V. As I manage to master it to a minimal degree, I will share the information in another thread. I'm talking about the CH32V103C8T6, it's not retro, but from a tool to make retro systems easier to run, it doesn't have to meet those criteria.

Douglas Miller

unread,
Sep 26, 2023, 9:10:36 PM9/26/23
to retro-comp
Looks very similar to a 512K RAM MMU I did for Heathkit computers. Except I put two sets of map registers, one for read and one for write. That allows CP/M 3 (and ramdisks) to do more efficient transfers, at the cost of needing to update more map registers when changing "banks".

Tadeusz Pycio

unread,
Nov 21, 2024, 5:34:20 PM11/21/24
to retro-comp
After a delay of more than a year, I have returned to this project and it looks like I will be completing it soon. The schematic has been simplified a bit and I think it should work.

Z80MMUv10.png
Z80MMUZ2t.pdf

Tadeusz Pycio

unread,
Nov 22, 2024, 8:15:43 AM11/22/24
to retro-comp
Revised scheme, the previous one had unusual addressing in relation to the available Zeta2-compatible MMU-based modules in the RCBus environment.
Z80MMUZ2.pdf

Mark T

unread,
Nov 22, 2024, 11:48:09 AM11/22/24
to retro-comp

Is it worth including MREQ in the control of the ‘257 to still support 16 bit i/o addressing?

Maybe a switch from ‘257 to ‘253 as only two outputs of the ‘257 are used.

Tadeusz Pycio

unread,
Nov 22, 2024, 12:34:24 PM11/22/24
to retro-comp
Hi Mark,
It's a good idea, looks like it won't require adding more ICs if you change ‘257 to ’253. This design required some tricks to get a NOT gate from the available one free flip-flop anyway. However, the simplification involves incomplete I/O decoding. Although I don't know if anyone uses 16-bit I/O addressing in an RCBus environment.

Mark T

unread,
Nov 22, 2024, 12:46:32 PM11/22/24
to retro-comp

Its not common to use16 bit i/o addresses. I think Alan Cox has a few modules that support this, but not sure if anyone else is using them. 

Mark T

unread,
Nov 22, 2024, 12:53:57 PM11/22/24
to retro-comp
I was wondering about the reason for using the ‘74 for BUSEN, I thought maybe you wanted a slight delay.

An asynchronous method of using ‘74 as inverter is to ground the clear input and use the preset input and Q output.

Bill Shen

unread,
Nov 22, 2024, 2:48:20 PM11/22/24
to retro-comp
 My VGARC uses 4K of the 16-bit IO space to map every screen character position to an IO location as well as font tables for 128 characters.  VGARC uses the classic 40-pin RC2014 connector.
Bill

Tadeusz Pycio

unread,
Nov 22, 2024, 4:12:56 PM11/22/24
to retro-comp
An asynchronous method of using ‘74 as inverter is to ground the clear input and use the preset input and Q output.

Yes, you are right. I know I considered both options and I can't remember why I thought this was the best solution a year ago, perhaps it was due to the convenience of running the paths. The current distribution of elements leads me to return to the asynchronous solution. Thank you for bringing this to my attention.

I checked the availability of 74HCT253 chips - it doesn't look good, I think I'll stick with 74HCT257 and the resulting consequences.

Tadeusz Pycio

unread,
Nov 23, 2024, 6:01:48 AM11/23/24
to retro-comp
Two versions have been created, both with a PCB design. I don't know yet which one I will send to production, everything will depend on the availability of mutiplexers. The 74HCT257 ICs are readily available, with the 74HCT253 there is a problem.

@Mark - Thanks for the feedback, as I would probably leave the synchronous version of the NOT gate despite moving the clock source to the left side of the PCB (I didn't pay attention to that - I avoid using vias for clock and power signals in my designs).

Z80MMUZ2AB.pdf

Mark T

unread,
Nov 23, 2024, 11:36:37 AM11/23/24
to retro-comp
I was thinking the ‘74 could be changed to ‘00 and use a set-reset latch for MEN. It loses the ability to disable the MMU after it has been enabled, I don’t think that is needed for ROMWBW. This gives you one gate for the inverter and one spare that could be used to combine MREQ and MEN to stay with the ‘157.

A ‘157 might be able to act as latch and address line selector, select input via one of the unused outputs, but then you would need additional chip to tristate the outputs and might need an inverter to reset the latch. Tristate would not be needed if the mmu is direct to the memory so I might explore that for a minimum sbc.

Tadeusz Pycio

unread,
Jan 17, 2025, 2:57:36 PM1/17/25
to retro-comp
With the usual delay for me, the CPU module with Z2 MMU is now ready. :)

CPU-Z2.jpg

Sergey Kiselev

unread,
May 22, 2025, 1:42:58 PM5/22/25
to retro-comp
Hi Tadeusz,

Have you ever shared your Z2 MMU project on GitHub?

Thanks,
Sergey

Tadeusz Pycio

unread,
May 22, 2025, 2:45:34 PM5/22/25
to retro-comp
Hi Sergey,

Oops, I actually did not make this project available on GitHub contenting myself with just a mention on my website. I will try to rectify this as soon as possible. The ZBUS modular computer project (Z8000, Z280) is consuming most of the, currently quite limited time, I can devote to my hobby. In good news, I should soon have modules ready for the XR88C681 ( and derivatives ) in RCBus format, which I mentioned in another thread.


Jaap van Ganswijk

unread,
May 22, 2025, 7:50:18 PM5/22/25
to Tadeusz Pycio, retro-comp
Why are you still using a bus-system design? Just put all the chips on a single  board and design a new one every several years. And use a Z180 or better and you won't need two NS74LS670's as an MMU. In my TRS80 days I also expanded it with a bus system, but that is outdated now.

But have fun! ;-)

On Thu, 22 May 2025, 20:45 Tadeusz Pycio, <ta...@wp.pl> wrote:
Hi Sergey,

Oops, I actually did not make this project available on GitHub contenting myself with just a mention on my website. I will try to rectify this as soon as possible. The ZBUS modular computer project (Z8000, Z280) is consuming most of the, currently quite limited time, I can devote to my hobby. In good news, I should soon have modules ready for the XR88C681 ( and derivatives ) in RCBus format, which I mentioned in another thread.


--
You received this message because you are subscribed to the Google Groups "retro-comp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/59653e2a-babe-4519-b5bb-25eae3fad638n%40googlegroups.com.

Tadeusz Pycio

unread,
May 23, 2025, 3:23:38 AM5/23/25
to retro-comp
This is a good question, but I think I have the answer. The phenomenon of RC2014/RCBus is that it is a system with elementary modules so that you can configure your computer as you like, unlike S100 or N8VEM which use more complex modules so that you lose that flexibility. Probably not everyone likes this concept of building a computer and prefers monolithic solutions that easily allow them to be enclosed in a nice case and allow them to focus on the software. I used to build such systems in the past, but they never met my expectations, because I always came to the conclusion after some time that I could have done something differently, there were often some elements missing that doomed the whole project. With RCBus I don't have such problems, I change the modules accordingly to achieve the desired goal. The modular system also has a huge advantage, because when I'm working on a new module, I focus only on it, the rest of the computer is already comprehensively tested, and the unification of the bus ensures compatibility between them. Yes, there are disadvantages to this solution, it is difficult to enclose such a system in an enclosure and there are also higher construction costs, for the PCB factory it does not matter whether they produce an SBC or a single module, the price is similar and in the case of a modular computer you need at least 3-4 such PCBs.

Ronny Ribeiro

unread,
May 23, 2025, 9:38:05 AM5/23/25
to Tadeusz Pycio, retro-comp
Beautiful!

Em sex., 17 de jan. de 2025, 16:57, Tadeusz Pycio <ta...@wp.pl> escreveu:
With the usual delay for me, the CPU module with Z2 MMU is now ready. :)

CPU-Z2.jpg

--
You received this message because you are subscribed to the Google Groups "retro-comp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to retro-comp+...@googlegroups.com.

7alken

unread,
May 23, 2025, 10:05:52 PM5/23/25
to retro-comp
it is :-)

Tadeusz Pycio

unread,
May 25, 2025, 1:41:02 PM5/25/25
to retro-comp
The project has been made available on GitHub.

7alken

unread,
May 25, 2025, 9:36:01 PM5/25/25
to retro-comp
Thanks Tadeusz - please, there was also some discussion about 16bit IO addressing, yes or no ... ?? (affects Bill VGARC); what was resolution of this debate?
or, why that debate was needed in fact? is he using some tricks?
Petr

Bill Shen

unread,
May 25, 2025, 10:42:11 PM5/25/25
to retro-comp
 
It is standard Z80 IO operation to put contents of reg B on address bus A[15..8] and reg C on A[7..0] with instruction OUT (C),A.  So Z80 has 16-bit IO space all along.
Bill

Mark T

unread,
May 26, 2025, 1:03:43 AM5/26/25
to retro-comp
Another interesting one is that IN A,(nn) puts the current value from A onto A15-8 and reads D7-0 into A in the same cycle. I was going to try and use this to shift bits in and out of A but still not got around to trying it yet.

7alken

unread,
May 26, 2025, 10:24:34 AM5/26/25
to retro-comp
thanks for clarifying; I probably thought that this out (c),a was new thing on Z180 - this seems like possible to simulate for other intel 8bits as 8085 by adding single 8bit latch?
at least at hardware level, using 2 outs ?? you know, I started thinking about generic MMUs (and more debate now in retro-z80)
ya, all means more chips and less physical space available... debate about "full" 8bit ioports are was also interesting; something can be probably done by serializing sequence of
writes to single out-only port, but again, far more logic ... grrr; these CPLDs were part of old machines very soon, also Ferranti ULA, all the custom chips in home computers...
(cant imagine today how they were done, if as some form of generic chips as ULA, or as totally custom ASICs?? -- seems extremely expensive, even today ...)
Petr

Alan Cox

unread,
May 27, 2025, 4:20:39 AM5/27/25
to 7alken, retro-comp
On Mon, 26 May 2025 at 15:24, 7alken <antos...@gmail.com> wrote:
thanks for clarifying; I probably thought that this out (c),a was new thing on Z180 - this seems like possible to simulate for other intel 8bits as 8085 by adding single 8bit latch?

8080/8085 output the same byte on both halves of the bus, and there were early S100 machines relying on this so some Z80 boards even had jumpers to fake the effect. It is doable with latches but you need to mux the address bus between the latch and CPU if you do so, Not hard if you use a 574 and mux it with A8-A15 based on IORQ.
 
(cant imagine today how they were done, if as some form of generic chips as ULA, or as totally custom ASICs?? -- seems extremely expensive, even today ...)

ULA was a custom metal layer over the gates as I understand it - fine for high volumes. If you look at some of the 1982 machines and cards though others were using early PLDs, and even before that it was common to use tiny PROMs for stuff like address decoding.

7alken

unread,
May 27, 2025, 12:32:20 PM5/27/25
to retro-comp
thanks again to all Bill, Alan, Mark ... ya, that 80C85 is interesting, I have here some OKI qfp/plcc (that oki really pushed to 3V3 cmos, more than toshiba), I re-read again feilipu and Alans designs, I was wondering how these 16-bits IO on them, want to build some existing RCBus/RC2014 system, not sure which one yet; around Z180 I had that very wild radio transmitting breadboard (nice it lead up to Bills 64MHz at 3V3 here, haha); ya, Ferranti ULA history has some interesting video on youtube, with all the quite ugly details )); ...aha, that PROMs, ya, true,
btw, I remember at high-school 85-89, our local Tesla Piestany was selling still MHB8748/8048 here, I was trying to abuse the signals to be able to write even to external program SRAM (that 4kB, in fact 2x 2kB), with serial uart bit-bang boot from 74188, I had written that 32byte code (simulated in head only), it was SBC of size of that Welsh Altoids, but only drawing, not realized - at that time I even went to local patent office to investigate if that "writing to program SRAM by data instructions" can be protected (very naive funny experience, NEVER more) ... but I absolutely don't remember what I had found there on the signals charts, probably nothing so miraculous, of course ... but there was interesting that 4bit semi-serial expander 8243; knowing today it was already 10+ years old and in fact one of first MCU, it might be 3 chips, single 5V tiny system ... but then came "velvet" here, and PC; )) ... btw, in relation to 8048 its interesting that CHM has NOT published oral history video, although the transcript IS available ... because, one of my recent weeks action was "re-mastering" of audio of 68000 oral history panel (I dont want to touch history record from 2007. but I was trying to listen these good guys several times, but the first 30 minutes are drown in noise/hum/hiss very badly, so I have already done here at 90% complete cleaning, noise spectrum subtracting, manually/carefully, wanting to absolutely preserve the true voices, without any automatic dynamic processing, afraid,  but another 10% will be next equally long pass to correct Tom's voice dynamics (RIP) - at least I already heard this cleaned and everything mentioned around first 68000 is very interesting, and entire track is louder to the end as guys are laughing more and more...), will send the clean audio track to CHM if they are interested, I don't know ... but that missing 8048 oral history video is interesting also :-( ... well, excuse me pls again mixture of brain unload;
Petr
Reply all
Reply to author
Forward
0 new messages