PDA

View Full Version : CP/M memorytest



Roland Huisman
November 7th, 2012, 01:35 AM
Hello Everyone,

I have a Tandy TRS80 model II which boots up CP/M
but it won't boot TRS-DOS. TRS-DOS displays an DMA error.

Does anyoneknow if there is an "universal" mem test program for CP/M
that also uses the DMA? The testsoftware from the TRS CP/M disk gives no errors.

http://www.vintage-computer.com/vcforum/showthread.php?33751-TRS-80-model-II-boot-disk

Thanks in advance!
Roland

Chuck(G)
November 7th, 2012, 07:51 AM
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.

Roland Huisman
November 11th, 2012, 01:36 AM
Hello Chuck,

Problem solved! It was not a memory problem but the
SIO chip which was disturbing the DMA.

http://www.vintage-computer.com/vcforum/showthread.php?33751-TRS-80-model-II-boot-disk&p=251638#post251638

Regards, Roland

Gabriele72
November 11th, 2012, 05:04 AM
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...

leeb
November 11th, 2012, 10:26 AM
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

Gabriele72
November 11th, 2012, 10:56 AM
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?

Chuck(G)
November 11th, 2012, 11:06 AM
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.

Gabriele72
November 11th, 2012, 12:11 PM
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. :(

Chuck(G)
November 11th, 2012, 01:39 PM
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 (http://www.ganssle.com/testingram.htm) and here's another one. (http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/software-based-memory-testing.html)

Gabriele72
November 18th, 2012, 04:48 AM
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 (http://www.ganssle.com/testingram.htm) and here's another one. (http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/software-based-memory-testing.html)

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.