• Please review our updated Terms and Rules here

Memory parity error when doing large disk operations?

themaritimegirl

Experienced Member
Joined
Jun 15, 2011
Messages
137
Location
NB, Canada
Hello all,

I recently acquired what is the first vintage computer i've owned in 9 years, and the second i've ever owned. It's an Epson Apex Plus with an 8088 clone CPU and 640K of RAM.

It works great, except for one problem: when doing something that involves a lot of disk work, like transferring a 100K file from a floppy disk to the hard drive, MS-DOS 5 throws me the following piece of news:

Code:
Memory Parity Non-Maskable Interrupt at C800:0747.

Then it gives me the option to (S)hut off NMI, (R)eboot, or to press another key to continue. If I continue, things resume as normal, but anything that was being copied from disk to disk is corrupted along the way.

So far, this has happened every time i've tried to install MS-DOS 5 on the hard drive (it happens whilst copying either MS-DOS.SYS or IO.SYS from Disk 2), and the result is that it finishes installing, supposedly successfully, but I just get a bunch of garbage when it attempts to boot to the new DOS install from the hard drive. It has also happened in the command prompt while attempting to transfer a ~200K file from a floppy to the hard drive (although a second attempt was successful), and in the MS-DOS Shell, while attempting to exit to the command prompt.

It is the same message every time, at the same memory address. I would hope that it is a sort of software or disk problem, but I have a feeling that it's a physical problem with a memory chip. I have no idea, though.

So far it hasn't happened when running from the original MS-DOS 3.2 floppy, although I haven't done anything rather intensive while running from that, yet.

I hope the knowledgeable folks on this forum will be able to assist me with this matter.
Thanks,
-Trent
 
You have a flakey RAM chip. DOS doesn't do anything but call your system BIOS for I/O. The address given in the message does indeed show that the NMI is hitting somewhere in your hard disk BIOS code, probably while waiting for the disk DMA to complete.

Run a good memory diagnostic and replace the failing chip.
 
That's what I figured. Until I get a replacement chip (if I ever decide to), assuming I can remove the bad memory and use the computer with less for now, is it possible to remove the one chip and still use the computer, or must I remove the entire bank? Also, how can I tell which chip out of the 27 is the bad one?

Finally, are there any particular memory testing programs for DOS you can recommend?

Thanks for your help,
-Trent
 
You might want to start with the IBM diagnostics disk for the PC XT for testing. There are lots of others.

If you're faulting on a parity error, then no, you need all 9 chips per bank.
 
Thanks! Unfortunately, I have another problem at the moment. My makeshift 3.5" DD floppies, while they work fine when transferring data from the Epson to my other computer, ultimately fail when doing the opposite.

Looks like the only way to make the diagnostic disk is to hook the 5.25" floppy drive to my other computer. I don't really want to do too much inside the Epson, because it would ruin my day if I were to break anything (although I am seasoned with working inside computers, i've never worked inside anything this old). But I guess i'll have to if I want to get the Epson fully working, especially to remove a memory bank, since they are under both floppy drives.

-Trent
 
Well, I was just inside the computer, and I learned something interesting - out of the three memory banks, only one is removable. That makes things easier, if that bank is the one with the bad memory chip. Otherwise, I don't know what I would do. I sure as heck wouldn't be taking a desoldering tool to the motherboard, haha.

-Trent
 
I finally found courage to disassemble the computer enough (which was pretty much entirely) to get to the RAM banks. I removed the one removable bank, which turned out to be 128 KB in size, leaving me with 512 KB soldered on the motherboard. I reassembled the computer, booted it to the first MS-DOS 5 install diskette, and the problem still exists. It appeared even sooner than before removing the bank, before it even started writing the first file to the hard disk. Also, now instead of the address being C800:0747, it's C800:0750.

So it appears the problem chip is soldered on the motherboard. Is there any possible way I could rectify this problem other than soldering on new banks?

Thanks,
-Trent
 
So it appears the problem chip is soldered on the motherboard. Is there any possible way I could rectify this problem other than soldering on new banks?
It may be possible. It comes down to how configurable the motherboard is at enabling/disabling RAM banks.

Example: 5 banks of 128K RAM (0 to 4) with faulty chip in bank 4. Disable bank 4. Fit memory expansion card configured to start at bank 4 starting address (512K), and sized at 128K.

Example: 5 banks of 128K RAM (0 to 4) with faulty chip in bank 3. Disable banks 3/4. Fit memory expansion card configured to start at bank 3 starting address (384K), and sized at 256K.

Example: 5 banks of 128K RAM (0 to 4) with faulty chip in bank 2. Disable banks 2/3/4. Fit memory expansion card configured to start at bank 2 starting address (256K), and sized at 384K.
 
The address given by the message (e.g. C800:0747) is actually in ROM; it's the address of the instruction when the problem occurred. However, that may not mean a lot, since most 8088 MFM hard disk controllers use DMA for memory access. In other words, all you know is that the memory error occurred when the hard disk BIOS (usually located at segment C800) was executing.

As I suggested, find a good memory diagnostic.
 
Ah, I see. Yes, I must make that PC/XT diagnostic diskette.

For the time being, I have some more information that would lead me to believe that this problem is not the memory itself, but perhaps the hard drive or controller (is that possible?). To start with, I successfully installed MS-DOS 5 on a set of floppy disks, instead of the hard drive. The install was flawless, as well as booting from and using DOS 5 on these floppies.

Next, I ran FDISK from the floppies to wipe the hard drive clean, re-partition it, and see what I got. While creating the new partition, I got the parity error again. This time at yet another address, C800:074E. I pressed a key to continue, and it finished creating the partition, probably incorrectly.

Next, I formatted the hard drive, and it got to 22%, at which point it started groaning loudly, and DOS gave something like "Trying to recover allocation unit 2072". Then it continued to format and finished. I'm going to guess that this was because of the parity error while creating the partition, but I thought I would mention it here anyway.

Next, I used the SYS command to transfer DOS to the hard drive, and rebooted. It would not boot from the hard drive, however. Again, this is probably because of the fudged partition creation.

However, I have used MS-DOS 5 a bit from the floppies so far, and it has worked perfect. I've done some disk work using the MS-DOS Shell, transferring a file from floppy to floppy, renaming, deleting, etc., all without a problem. I was also able to exit back to the command prompt without a problem. All of these were actions that threw me the parity error when MS-DOS 5 was on the hard drive. As such, I have a feeling that if I pretended the hard drive didn't exist and just used this computer with floppies (a task not too demanding since this computer has both 5.25" and 3.5" floppy drives), I would never see this parity error again. (Not that I will hold my breath right now.)

If it's information of any use, the hard drive in this computer originally didn't work - part of the reason it was given to me. Upon booting, the hard drive would spin up, reach a speed slower than normal, then shut down. When I took the computer home, I can only think that the ride home did something to make it work. Now, when you turn the computer on after it has been sitting a while, the hard drive still won't work, acting like before, but after the computer has been running a few minutes, turn it off, turn it back on, and the hard drive will spin up to full speed and work. It's a Kyocera KC-20B mated to a Western Digital controller, all on a hardcard.

Thanks,
-Trent
 
The PC/XT diagnostic disk is a no-go. I hooked the 5.25" floppy drive to my other computer (which runs Windows 98 and the BIOS of which supports 360K drives), and WinImage would only crash whenever it tried writing the image to a disk. I tried a different version of WinImage, same thing. I exited to MS-DOS and tried the imaging program that came with the diagnostic disk, and it wouldn't start either. I did successfully write the image to a 3.5" 720K disk, but when I tried booting it in the Epson, it only said "Boot disk failure". That could be because I use a 1.44 MB drive and 1.44 MB disks to make my 720K disks, although the Epson has had no problems with these makeshift disks except for failing to boot the diagnostic disk.

Now that I think of it, does this diagnostic disk have to be booted from, or is it possible to execute it from a running DOS environment? While I had trouble writing the disk image to the 5.25" drive, I had no problems copying files to and from the drive via Windows Explorer, so if possible I could extract the diagnostic disk contents to a 5.25" diskette.

Thanks,
-Trent
 
You could try these utilities on this page,

http://www.vintage-computer.com/vcforum/showthread.php?25724-Disk-Image-Utilities

I haven't had much luck with Winimage writing 5 1/4 disks. Kind of following this thread to find out how to make a diagnostic disk for my XT. For some reason, the extracting program theat came with the diagnostic disk files only makes a blank extracting file. I'll try to find a (working) copy of this disk.

To make 720k drives read a 1.44mb floppy disk, cover up the hole on the right side of the disk with tape. Copying the files to the disk with Windows Explorer won't work. The diagnostic disk does have to be booted from in order to work.
 
All right, thanks, i'll have to try those.

I didn't know 720K drives were capable of reading 1.44 MB diskettes? I just thought the tape trick was so a 1.44 MB drive would think it was dealing with a 720K disk and format it as such - what I've done to many of my 3.5" diskettes. Come to think of it, since 720K disks lacked that hole on the right side, a 720K drive would have no mechanism to detect said hole, would it?

-Trent
 
Kind of following this thread to find out how to make a diagnostic disk for my XT. For some reason, the extracting program theat came with the diagnostic disk files only makes a blank extracting file.
Some of the DOS based image extraction programs cannot create diskettes if they are run via a CMD or DOS window - one must boot to DOS then run the image extraction program from that DOS. Maybe that's the cause of your problem.
 
Alright, I haven't been able to work with the Epson lately, so i've been unable to attempt to make the PC/XT diagnostic disk to try on it or anything else at the moment. However, I just accidentally uncovered another clue which points at the hard drive for possibly being to blame for this memory parity error upon trying to read and write to it.

To recap what I said earlier, the hard drive itself has a quirk that developed a couple of years ago. When the computer is turned on from sitting for a while, the hard drive spins up, runs for a few seconds (without ever budging the heads) then spins down, afterwards flashing the activity light indefinitely. If I wait a few minutes, turn the computer off, then turn it back on, the hard drive spins up again, a little faster, then spins down and flashes the activity light again. Then I repeat the cycle, and every time I turn the computer on again, the hard drive spins up a little faster and a little faster. Eventually, I turn the computer on, and the hard drive spins up fast enough that it stays running, performs a self-test, and works, to the point of getting the memory parity error.

I just found this video on YouTube of the same hard drive:
http://www.youtube.com/watch?v=zEoE_x1s8JE

Listening to it spin up, this guy's drive spins up to about the RPM of mine when starting from a cold boot, and it self-tests and everything. Mine has to spin up to MUCH faster than that before initializing.

As such, I have a theory that my drive's electronics are malfunctioning in two ways, first, thinking that the drive is not spinning up fast enough when it is, and second, as the computer runs and the drive's circuit board warms up, the electronics drive the spindle motor faster then they should, and eventually they warm up enough that they drive the motor fast enough that it initializes at what they think is the correct spindle speed. As such, the drive spins at an incorrect speed, causing the problems.

Does this sound possible? If anyone wishes, I can make a video of both a cold and warm boot so you can compare the speed of the drive between the boots, as well as compare it to this person's drive.

Thanks,
-Trent
 
It is possible. One of my hard drives and laser printers does this. I have to turn them on and off repeatedly for them to work properly. Your hard drives sounds like it's defenitely showing it's age and may be on it's way out. Have you ran SpinRite aginst it?
 
SpinRite sounds like a good idea. Is there a download for it anywhere in particular though? I Googled and couldn't find a thing.

In the meantime, I unscrewed the hard drive and controller from the card so I could try it in my one modern computer with an ISA slot (it won't fit a full length card), just to see what would happen, but Windows 2000 didn't pick it up. I'll just put the controller and drive back on the card; no sense bothering trying to get that working.

I know one thing though, half of the ICs on the drive get damn HOT! I touched my finger to one IC for a second and it burned! While there is no sign of any overheating on the circuit board, there is a rather crap-looking wire running from one IC to another, presumably to replace what was a bad track on the circuit board. I tested continuity with my multimeter though, and it was fine.

-Trent
 
Back
Top