Hello, I am looking for a sophisticated RAM-Check-algorithm, that does not only detect problems with one cell like a simple write and read back. It should also be able to detect short ciruits and breaks of address-lines and maybe timing problems on the address-bus. Thanks!
I wrote a ram selftest for c167 which can be run nondestructively. I turn off interrupts, then read the contents of a cell, save it in a register, write the same cell with the 1's complement, read it and compare, then restore it and compare to original contents. I also do a similar test at address boundaries, that is I shift a bit through the address buss to see if I accidentally change a value. For example, I read and save the contents at 0x40000, then read, save, and replace the value at 0x40002, then look back at 0x40000 to see if it changed, then restore the value at 0x40002. I repeat for all address bits in the ram by shifting the address as 0x40004, 0x40008, etc. If an address bit is stuck I would think this would catch it.