1

I'm facing a Parity Error problem on my new 486er DOS Retro PC. Every now and then a running software crashes with a Parity Error output on screen. This happens for different software so I think the source is one of my 4 2 MB RAM modules.

I've already tried to proof this with a copy of memtest86 on a bootable floppy disk, but this program also crashes on startup and creates an endless boot loop. It shows a menu and a blue screen is visible afterwards for 2 seconds. There is a debug option to run it step by step which only prints out 2 steps before reboot.

What are my options? How did someone in the early 90s investigates in such a problem? How to detect defect RAM on DOS?

  • 4
    Try swapping the modules into different sockets. The memtest program itself is small, maybe you got unlucky and your bad RAM module corrupted the memtest code. If that doesn't help, just remove the modules one at a time till the problem goes away! – alephzero Jun 18 at 11:49
  • 1
    Most parity errors weren't caused by bad RAM because most PCs didn't use the parity/ECC SIMMs necessary to make memory parity checking work. – Ross Ridge Jun 18 at 14:58
  • 2
    Try setting the RAM speed to e.g 80ns instead of 60ns, or e.g. 3-3-3-3 waitstate instead of 3-2-2-2. This can be done in the BIOS setup in the chipset features submenu. – Janka Jun 18 at 16:02
4

In such cases, the problem is almost always in one of three places:

  1. One of the memory modules.
  2. The motherboard itself.
  3. A plug-in device.

To help with the testing, you should start be removing all non-essential devices form the system (CDROM, Network, HDD, other I/O). Just leave the keyboard, screen and floppy. Then re-run your tests. If it works, the problem is in one of the removed devices.

Next remove the memory, and try them out one at a time. You could then test the memory using your test program. You could then replace the defective module(s)

Another possible would be to disable parity checking in the BIOS. This assumes that this can be done. I don't know the specifics of your motherboard or BIOS so I can't say for sure. The error would still be there, but your program would be able to show you where the problem was without being clobbered. Again you could then remove/replace the defective memory.

Finally as a sledge hammer, you could buy new memory and hope the new stuff is good.

  • Further clarification: In that era, memory modules were 8 bit + parity. Depending on your CPU 486DX or 486SX you will have to at least 4 or 2 memory modules installed in order to run your tests. – Peter Camilleri Jun 18 at 19:20
  • +1 thank you. I did a lot of testing yesterday and found a configuration that I think works (I never had that parity error again). I switched many ram modules and found out, that some of them had some kind of corrosion or dirt on their contacts. I finally cleaned all of them with alcohol. It seems as if this was the problem. – Ziagl Jun 19 at 6:59
2

You mention there are 4 2Mb modules. If I remember correctly, many 486 era boards would let you populate in banks of 2. If your board supports it, you can try removing 2 of the memory modules and running the system with only 2 installed. If the problem persists, it is likely to be one of the two remaining modules. If the problem goes away, then it is likely one of the two removed modules is faulty. By carefully trying different combinations you can usually isolate the bad memory module. It helps to label the memory so you can record your results... something like 'a', 'b', 'c' and 'd' would work.

For example:

a & b = no errors
c & d = parity errors

conclusion, c or d is the problem.

a & c = no errors
b & d = parity errors

conclusion, d is the problem because b already seemingly was working fine when paired with a.

to double check our conclusions we try:

a & b = no errors (repeated test, but it never hurts to be sure)
a & c = no errors (again, repeated test)
b & c = no errors (we expect this, because we suspect d is the bad memory)

and also:

d & a = parity errors (probably because of d)
d & b = parity errors (again, probably because of d)
d & c = parity errors (really pretty sure now, d is junk)

You get the idea... :-)

  • +1 thanks! Yesterday I switched many modules and think found the error. – Ziagl Jun 19 at 6:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.