• Please review our updated Terms and Rules here

CP/M memorytest

Roland, I don't think that's possible, as there were no standards for DMA implementation. Indeed, most CP/M (8 bit x80) boards didn't use DMA at all! The disk on your Model II doesn't even require the use of DMA. You said you got an error from within the CP/M loader at some point. What version (whose?) CP/M was that and do you have a copy of the source for the BIOS? That might give you a hint as to what's going wrong.
 
Although Roland's problem is solved, I'm interested in this topic because I have a Superbrain that's behaving strangely and I suspect it's a RAM problem. It would be nice to have a tiny universal memorytester for CP/M machines, perhaps one that uses standard BDOS calls and is relocatable, so to avoid that the code ends right into the bad RAM. Unfortunately I can't assemble anything on my Superbrain as most programs crash...
 
Dunno if it is 'generic' or not, but I have one that is actually a 2-parter... tests lower area and the 2nd half tests the upper end. No 'page' testing.
Came on the image I downloaded from somewhere... the 4p emulator I use, I believe.
:D
 
Dunno if it is 'generic' or not, but I have one that is actually a 2-parter... tests lower area and the 2nd half tests the upper end. No 'page' testing.
Came on the image I downloaded from somewhere... the 4p emulator I use, I believe.
:D

Do you think it would work in any CP/M computer?
 
So what do you do about the systems (and there are some) that use parity checking and trap when an error is detected? It seems to me that there's no general-purpose memory test for all systems.
 
So what do you do about the systems (and there are some) that use parity checking and trap when an error is detected? It seems to me that there's no general-purpose memory test for all systems.

I would be happy if I could at least test the TPA memory of the most common systems (well... common 30 years ago :) ) such as Kaypro II, Osborne, Superbrain...
After looking at the Z80 mnemonics today, I wrote a small program to test the TPA (which is surely full of errors, being my 1st attempt to ever code for the Z80) only to find out that ASM.COM requires 8080 mnemonics... assembled with TASM80 on a PC but LOAD.COM isn't producing anything usable on my Superbrain. :(
 
Well, memory diagnostics (real ones, not the fake ones used on PCs) are interesting. Not just alternating 1's and 0's, but barber-pole, address-line, etc. Here's a good bonehead-level discussion and here's another one.

I've read the first interesting article, but after I completed my memory tester for CP/M. Unfortunately I realized I did everything that the author discourages: testing 1 cell at a time with 0xFF then restoring its original content, then again for 0x00. The only advantages are that the program is less than 500 Bytes and was able to detect faults in my Superbrain RAM bank 3 preserving TPA, CCP, BDOS and BIOS (though I'm not sure it would work in every type of CP/M computer when it comes to messing with BIOS and memory-mapped I/O). Of course if you can't boot CP/M it's quite useless...
It would be an interesting exercise to implement some of those rules to see if more faults are revealed.
 
Back
Top