Diagnosing Bad RAM with MemTest86

I own a vintage gaming system running Windows 98, which regularly encounters protection errors upon startup. Additionally, it occasionally crashes without any error messages or logs, simply restarting as if nothing happened. Some have suggested that faulty memory could be the likely culprit, so I decided to run MemTest86 to diagnose the issue. While it’s possible that the power supply unit (PSU) could be at fault, I doubt it since I am using a reliable modern 600W unit.

I downloaded the memory test software from https://www.memtest86.com/download.htm and chose the bootable floppy image. This choice was driven by the fact that I have Omniflop software, which can write disk images onto floppies. I could have used a CD but didn’t want to waste one for a file that would fit on a floppy. I didn’t want USB, either, in case I need this tool again.

In Omniflop, I selected the DOS category and found the appropriate 1.44MB 3.5″ option for writing the image correctly. To initiate the test, I inserted the floppy into my computer, which was already set to boot from floppy in the BIOS, and started it up. The system automatically booted and commenced MemTest86. My KVM switch failed to detect video output; consequently, I manually selected the active computer, and the monitor displayed the test in progress.

The test did not go well, as evident from the error count displayed on the right-hand side alongside the corresponding test numbers. And that was just the first pass. You can find descriptions of the tests at this link: https://www.memtest86.com/tech_individual-test-descr.html. MemTest86 is designed to stop after four passes, and the documentation suggests running at least two. It generates a summary report upon completion. Although I ran a few passes, there was no need to complete all of them. As expected, the error numbers kept increasing.

By the way, MemTest86 offers extensive configuration options, but I only utilized the default settings for this straightforward test.

On Windows versions before Vista, it is not possible to blacklist faulty RAM ranges. Therefore, the only option is to replace the RAM when it becomes defective. The test does not identify the specific chip that is faulty, but I can easily re-run it with only one chip at a time to determine if one of them is problematic. If you need to, you can also rotate memory slots in case your RAM is good but you are hunting a slot-related problem. A single pass with a 512MB RAM module on my 1GHz machine took approximately 30 minutes. Additionally, the errors observed do not necessarily prove that the RAM is faulty, as the system consists of interconnected components. However, given the significant number of problems encountered, it is likely that the RAM is the source of the issues.

Analysis

My results indicate errors exclusively within the first 256MB of memory. This is a positive finding because it suggests that only one of the 256MB chips has failed, assuming I am using 256MB chips. As it turns out, I had a combination of RAM chips: 2x 128MB and 1x 256MB, as shown below. If you are curious, these are PC133 chips, meaning they operate at a speed of 133MHz.

3 RAM slots on motherboard.

I had forgotten my motherboard had three RAM slots! I assumed that all the memory errors were contained in the single 256MB chip, based on the memory address range indicated by MemTest86. I pulled the chip and retested.

Voila! I removed the faulty chip, resulting in half the amount of RAM installed, but the errors vanished. The bad chip was in the third slot (visible in BIOS) so I did not have to move the other chips.

Error free Memtest86 run

As an aside, this article was proofed and re-written by ChatGPT. It came out a little better but more wordy than my usual style. The AI also introduced some mistakes which I corrected in the final proofreading.

Leave a comment