memory test

31 views
Skip to first unread message

smb...@gmail.com

unread,
Mar 25, 2023, 1:34:20 PM3/25/23
to SEBHC
I'm trying to run some memory tests on the ill-fated DRAM board (now at revision 3, and still wonky).

First, can someone give me a summary of what the 32K monitor DRAM test does? I'm getting a little lost in the assembly due to all of the serial IO that is present as part of the test code, and short of sitting down and commenting the whole function to try to understand it, a description would help me to know exactly what it is testing.

Second, are there any other HDOS memory test tools? I'm looking for something that would exercise a whole range of instructions, both LDA and STA but also instructions that might involve more than one memory access within a single instruction, such as INR/DCR or PUSH/POP.

Scott

Douglas Miller

unread,
Mar 25, 2023, 1:46:29 PM3/25/23
to se...@googlegroups.com

The memory test in the new monitor for Z80/Z180 is the one implemented in the MMS 444-84B H89 monitor. It relocates itself, bouncing between high and low memory, but only tests 64K. It uses a BCD pattern test, incrementing the "seed" on each pass.

The new 8080 Monitor memory is much simpler, and only tests memory above 2000H (up to 0FFFFH). It also does a BCD pattern test, incrementing the "seed" on each pass.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/12ffb63c-a9a8-400b-84f2-ad639ed6bef6n%40googlegroups.com.

Douglas Miller

unread,
Mar 25, 2023, 1:47:38 PM3/25/23
to se...@googlegroups.com

I should also point out, these tests are intended to test MEMORY, not the memory interface/controller.

Scott Baker

unread,
Mar 25, 2023, 6:31:45 PM3/25/23
to se...@googlegroups.com
Yeah, understood. You've already been a big help -- I was running the 8080 test, while looking at the Z80 monitor listing. Now I'm a little less confused about what is going on.

I could use help with an error message:

3000 2C *

Is that it expected to read the value 2C at address 3000 ?

Scott

Douglas Miller

unread,
Mar 25, 2023, 6:41:46 PM3/25/23
to se...@googlegroups.com

That is interesting, as the "2C" is supposed to be the BCD value currently being used as the "seed", however that value is not BCD. That should not be possible - unless the memory location used to store the seed is bad or getting corrupted. Or, less likely, the CPU is malfunctioning such that the DAA instruction is not working. As you probably already discovered, the 8080 test will fill memory from 2000H-FFFFH with the BCD sequence starting with the current "seed", then goes back and compares the memory with the BCD value, regenerated the same way. The "3000" suggests that no compare errors were seen for 2000H-2FFFH, so something changed when it crossed that boundary. One wild guess, probably not possible, is that an addressing snafu caused 3000H to become 1000H (where the memtest lives) and corrupted the seed - but it seems unlikely the memory test could even run, then. It also might be that memory in the 1000H range (where memtest lives) is bad, and something popped and it crashed, and the "3000 2C *" might not even be a "valid" error (in the sense it was not reached by a miscompare, but rather by executing off into the weeds). Probably many other theories we could come up with.

smb...@gmail.com

unread,
Mar 25, 2023, 8:59:11 PM3/25/23
to SEBHC
I'm pretty sure there is an execution problem going on. Back to the DRAM board thread...

rand...@hotmail.com

unread,
Mar 25, 2023, 9:52:29 PM3/25/23
to SEBHC
Fwiw memory test can tell you much more than bad ram chips.

A single byte error is most commonly a bad ram chip. If there are multiple errors and a pattern exists it can be other problems and analyzing the pattern can usually point the way.


Randy
Reply all
Reply to author
Forward
0 new messages