Scope will do, just check the data/address one by one if you see some
reasonably looking activity. Control signals like Chip Select and Output
Enable will only toggle when you do an actual CMOS/NVRAM operation.
And yes it's relatively easy to test both chips from software.
The RTC registers and CMOS memory can be accessed through I/O ports 70h
(index) and 71h (data). The MC146818A RTC/CMOS chip in Model 70 has 10
RTC registers (index 0-9h), 4 control registers (A-Dh) and 50
general-purpose CMOS locations (0E-3Fh). More about the chip and its
registers here:
https://ardent-tool.com/datasheets/Motorola_MC146818A.pdf
You can do a simple r/w test on a selected location of the RTC CMOS
memory using the DOS DEBUG utility. Something like this should work:
("-" is the DEBUG prompt, ";" and everything behind are comments)
-o 70 11 ; select CMOS index 11h
-o 71 55 ; write 55h (all even bits 1) to index 11h
-i 71 ; read back value at index 11h, you should get your 55h back
-o 71 AA ; write AAh (all odd bits 1) to the same index
-i 71 ; you should get AAh back
The extended NVRAM is accessed via ports 74h (index MSB), 75h (index
LSB) and 76h (data). These older systems have only 2K of NVRAM (index
0-7FFh).
And similarly to the CMOS memory, you can do something like this to test
the NVRAM:
-o 75 05 ; set high index byte to 05h
-o 74 55 ; set low index byte to 55h, we have NVRAM index 555h selected now
-o 76 55 ; write 55h (even bits set) to index 555h
-i 76 ; read back index 555h, you should get 55h back
-o 76 AA ; write AAh to the same index
-i 76 ; and expect to get AAh back
And to exit debug:
-q
You can retry these tests on multiple different locations to test the
not only the memory locations but also address lines. Or even better put
it into a loop...
This will of course trash the contents of the touched memory locations
(unless you check the original value first and then put it back when you
are done), and effectively of the entire chip, because the checksum will
be wrong. But that's not a concern here I don't think :). If you are
gonna test the RTC and control regs as well, check the datasheet for
their description first. There are some limitations to what you can do
and when. Some control register changes may crash the system or have
other strange effects.
Also, please note that there are some timing and interrupt masking
requirements when accessing the RTC/CMOS and NVRAM devices. If you do
these tests instruction by instruction from DEBUG running under pure DOS
with no device and extended memory drivers or device drivers loaded, you
should be fine and can ignore the stuff below. But if you are gonna
execute a sequence of instructions at once (assembly or compiled
higher-level program) or with some drivers/TSRs active you may run into
problems very quickly... Generally, these older systems should be happy
with a dummy jump instruction between the I/O instructions. Newer
systems require an I/O op to dummy reg. 4Fh. So instead of:
out 70h, al
in al, 71h
you would do:
out 70h, al
out 4Fh, al ; dummy write to force I/O cycle and delay things
; the written value doesn't matter,
; reuse whatever you have stored already)
in al, 71h
I'll not go into the interrupt stuff here.
I hope I got this right, I'm writing this from the top of my head. Let
me know if you run into any problems.