RC2014 RTC

129 views
Skip to first unread message

Michelle Lawson

unread,
Nov 26, 2025, 6:55:45 AM (2 days ago) Nov 26
to RC2014-Z80
In looking at the various Tindie & z80kits offerings, they seem to use the serial I/O type of RTC devices. Is anyone aware of anything that uses the old MM58167? If not, I have a design (not mine) that I might try to spin up. Given I'm going to be using CP/M 2.2 as the OS, I'm not concerned about OS functionality. Thanks

Alan Cox

unread,
Nov 26, 2025, 7:07:55 AM (2 days ago) Nov 26
to rc201...@googlegroups.com
I did a board using the standard pc style RTC chips. Should be on hackaday in the etchedpixels board designs.
The PC ones are widely available and most did Y2K correctly 

On Wed, 26 Nov 2025, 11:55 Michelle Lawson, <michelle...@gmail.com> wrote:
In looking at the various Tindie & z80kits offerings, they seem to use the serial I/O type of RTC devices. Is anyone aware of anything that uses the old MM58167? If not, I have a design (not mine) that I might try to spin up. Given I'm going to be using CP/M 2.2 as the OS, I'm not concerned about OS functionality. Thanks

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/rc2014-z80/6eda29eb-abb0-44ff-af0e-a36e0f9b41e6n%40googlegroups.com.

Michelle Lawson

unread,
Nov 26, 2025, 6:59:54 PM (2 days ago) Nov 26
to RC2014-Z80
Well, since I have a couple of MM58167s and there is already software out there to use it that I can tweak, I whipped up this as a start. If anyone is interested, I'll supply the KiCAD stuff.
RTC.pdf

Mark T

unread,
Nov 26, 2025, 9:28:06 PM (2 days ago) Nov 26
to RC2014-Z80
Is it likely to cause any problems if U2 latches the data bus during an interupt acknowledge?

You might put IORQ on the enabled pin and M1 into P7.

Michelle Lawson

unread,
Nov 26, 2025, 9:53:42 PM (2 days ago) Nov 26
to RC2014-Z80
Thanks Mark, great suggestion. Duly noted and updated.
RTC.pdf

Ed Silky

unread,
Nov 27, 2025, 2:06:45 AM (yesterday) Nov 27
to rc201...@googlegroups.com
I notice on this schematic, and I've noticed it on prior ones, that you don't use any indication that a signal is 'active low'. You might want to consider showing an active low signal with a label that either:
  • Has an overbar (this is more typical for databooks than schematics)
  • A leading slash: /IORQ
  • A trailing dash: IORQ-
  • A trailing '/L': IORQ/L (you're more likely to find this on older schematics)
  • A leading or trailing '*': *IORQ or IORQ* (this can cause problems with some tools, as it might conflict with using a wildcard)
On the schematics you've shared so far, it hasn't been a problem, but you might find a need to have, say, both an active high and an active low RD, WR, RST, etc. and even if not, it can make the logic easier to follow.

Just something to think about.
-Ed

Ed Silky

unread,
Nov 27, 2025, 2:21:38 AM (yesterday) Nov 27
to rc201...@googlegroups.com
Here is an example of mine. This is the Z80-MB full system that I designed and I'm in the process of building. If I didn't identify active high and active low signals, it would be pretty hard to follow the logic.

-Ed
 
SD-ZMB-Main.pdf
SD-ZMB-ExpIO.pdf

Michelle Lawson

unread,
Nov 27, 2025, 9:52:30 AM (yesterday) Nov 27
to RC2014-Z80
Yep, I do need to go clean up a couple of them. I notice the same thing on the schematics for the RC2014 kit boards as well. My assumption at this point is that control lines are all active low, address and data are active high, and the rest are as indicated (power, clock, etc.)

Mark T

unread,
Nov 27, 2025, 11:59:16 AM (yesterday) Nov 27
to RC2014-Z80

Hi Ed,

I like the use of alternate gates to show the logic functions, does kicad support selection of different schamatic symbol for each gate in a package or do you need to create a unique symbol collection for each combination?

That is quite a complicated circuit, I have also considered using high speed ram as a page register. Not sure how MHA20 is held low.

Mark
On Thursday, November 27, 2025 at 2:21:38 AM UTC-5 Ed Silky wrote:

Michelle Lawson

unread,
Nov 27, 2025, 12:15:33 PM (yesterday) Nov 27
to RC2014-Z80
Mark, it's actually a pull from the PIC-RTC board from S100computers.com ( https://www.s100computers.com/My%20System%20Pages/PIC&RTC%20Board/My%20PIC%20Board.htm ). With a little tweaking of the ports, the software provided can be used as is. 

Michelle Lawson

unread,
Nov 27, 2025, 12:22:46 PM (yesterday) Nov 27
to RC2014-Z80
Of course, now that I checked that link again, the .zip file link is dead; but here is  a text file of the source:
myrtc.txt

Michelle Lawson

unread,
Nov 27, 2025, 12:29:56 PM (yesterday) Nov 27
to RC2014-Z80
Argggg, PDF conversion sux...... Looks like some important stuff got missed. I'll clean it up and get it to where the source will at least assemble and post the corrected stuff. My apologies.

Ed Silky

unread,
Nov 27, 2025, 12:33:36 PM (yesterday) Nov 27
to rc201...@googlegroups.com
Hi Mark,

KiCad allows you to select, as long as the symbol was created with the alternates. Most of the TTL/4000 series logic supports it. I have had to create a few, for example, the xx04 inverter in the KiCad library doesn't have the alternate symbol (circle first).

image.png

There are two main things that complicate the circuit over what is typically found:
  1. It fully buffers the signals to the RC Bus while supporting an external Bus Master for all operations:
    1. Read/write from/to bus memory and I/O
    2. Read/write from/to main board memory and I/O
    3. Interrupt service and acknowledge for any Z80 mode for main board or Bus peripherals
  2. It allows running the Z80 and main logic at 12MHz or 16Mhz (using a 20MHz Z80) while using a 6MHz or 8MHz CTC and SIO (and other I/O), by:
    1. Running the Z80 and main logic from the 'fast' clock, while running the peripherals from 1/2 (half) clock
    2. Switching the Z80 and main logic to the 'half' clock during INTACK, I/O read/write, and RETI operations
    3. Assuring the clock phase is correct during the switch to/from the half clock
    4. It also provides Option jumpers to always run everything from the 'fast' clock or the 'half' clock (if you just want to run a 6MHz Z80 and peripherals)
-Ed


Ed Silky

unread,
Nov 27, 2025, 1:04:03 PM (yesterday) Nov 27
to rc201...@googlegroups.com
Hi Mark,

Are you asking about MHA20 when the paging isn't enabled? 

Here are the parts that control it:
image.png
image.png

Let me know if that doesn't answer your question.
-Ed

Ed Silky

unread,
Nov 27, 2025, 1:05:55 PM (yesterday) Nov 27
to rc201...@googlegroups.com
"PDA..." stands for "Page Disabled Address"

Ed Silky

unread,
Nov 27, 2025, 1:15:00 PM (yesterday) Nov 27
to rc201...@googlegroups.com
Notice that you can read, as well as, write the page register. The page register also provides 8 additional bytes that can be used to hold whatever - typically information about current operating configuration.

-Ed

Mark T

unread,
Nov 27, 2025, 8:48:50 PM (18 hours ago) Nov 27
to RC2014-Z80
Hi Ed, yes that clears it up thanks, I was confused by ZPGRS being a disable rather than enable.

Jonathan Harston

unread,
Nov 27, 2025, 10:08:48 PM (16 hours ago) Nov 27
to RC2014-Z80
On Thursday, 27 November 2025 at 07:06:45 UTC Ed Silky wrote:
I notice on this schematic, and I've noticed it on prior ones, that you don't use any indication that a signal is 'active low'. You might want to consider showing an active low signal with a label that either:
  • Has an overbar (this is more typical for databooks than schematics)
  • A leading slash: /IORQ
  • A trailing dash: IORQ-
  • A trailing '/L': IORQ/L (you're more likely to find this on older schematics)
  • A leading or trailing '*': *IORQ or IORQ* (this can cause problems with some tools, as it might conflict with using a wildcard)
A variant I use is ~ viz ~IOQR, ~RD, ~WR etc. Probably looks better in a font where it is near the top pixel line.

jgh

Ed Silky

unread,
Nov 27, 2025, 11:57:37 PM (14 hours ago) Nov 27
to rc201...@googlegroups.com
Yeah, ZPGPRS (Z80PaGing/PageRegisterSelect) is TRUE/HIGH when the Z80 is the Master and Paging is Enabled, or when the Page Register is being selected to write/read it (I/O operation from either the Z80 or a Bus Master). ZPGPRS is FALSE/LOW, when 1) Paging isn't enabled 2) the Z80 isn't the Master 3) the Page Register isn't being (I/O) accessed to write/read it.

-Ed

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages