• Please review our updated Terms and Rules here

Repairing an IBM PC XT 5160

I started a thread about the PS/2 I am now also trying to revive, because I could use it to write 720K diskettes. I found another way to do that, but I'd still like to get the PS/2 to work again.
 
Alright, we made some progress! We recapped the motherboard and the floppy drive. The floppy drive makes the appropriate noises now, and does not prevent the PC from booting. I don't have any 5¼" floppies to test it with though, so I don't know if it is working. However with all your advice we were able to get a 3½"diskette drive working, and the PC successfully boots from that!

The hard drive seems to be flaky. The PC did boot from the hard drive once. It booted into DOS and we could look around and run programs; even start Leisure Suite Larry in the Land of the Lounge Lizards which turned out to be installed on it. But that happened only once. I'm still worried I damaged the drive by moving the PC around too much without the heads parked. Now it won't boot from the hard drive. It either says "disk boot failure" (which I believe means it could read the boot sector, but the boot sector could not load the kernel), or it boots to BASIC. I want to get Spinrite working on it, so I can have it exercise the hard disk and hopefully get it up and running again. However, we now arrive at the next problem I need help with:

The PC has only 256 KB of RAM on the motherboard, which is not enough to run Spinrite (or much else really), so I purchased an AST SixPak Plus card. It is fully populated with RAM, so it should provide 384 KB extra RAM for 512 KB in total. We checked and double-checked the dip switch settings, but with the card installed the PC only counts up to 384 KB at boot, so only the first 128 KB appears to be working.

My question is how I proceed to determine the cause of this problem?
  • Is there a way I can test all the RAM (whether or not the BIOS thinks it's there)? Is there a tool which will do that, to hopefully discover which IC is bad, if that is the problem?
  • Are there known problems with the AST SixPak Plus card that might explain this?
  • What steps would you recommend I take to determine what the problem is and fix it? What should I try next?
Cheers for any help you can give! 👍
 
I'd expect 256K and 384K to get you all the way to 640K :)

Have you confirmed the starting address jumpers and the amount installed jumpers on the card are correct? Perhaps the card was previously used in a machine that had 64K or 512K or something like that, and so the starting place is wrong. I'm actually not sure if the symptoms would be what you are seeing, but it's a good place to look. There is a document here that show 6 different versions of the sixpak and their jumpers and also it looks like there are PDF versions of many of them versions. Note that text files rarely look right on mobile devices, especially if they are expecting fixed width fonts, so using a real computer to view the text files might be needed.
 
I'd expect 256K and 384K to get you all the way to 640K
Yes, sorry, that's what I meant. 😀
Have you confirmed the starting address jumpers and the amount installed jumpers on the card are correct? There is a document here that show 6 different versions of the sixpak and their jumpers and also it looks like there are PDF versions of many of them versions.
I had no idea there were that many versions of the card. The settings are correct according to a manual we found for a card that looked identical to the last chip, but maybe there are differences nevertheless. I'll try to find the manual for the exact part number I have and double check.
 
If the settings are right, maybe you are hitting the flaw in the POST logic that has been documented by modem7 here: http://minuszerodegrees.net/5160/post/5160 - POST - Detailed breakdown.htm

See step 17 and note 9 at the bottom. If that's the case, maybe you could just swap some RAM from another bank. Some of the PDF manual list the bank numbers for the SixPak. If that gets you further, then maybe you can figure out which chip in the bank you swapped is bad, by trial and error.
 
I think the settings must be correct. The part number on the board is 03-01177-01D. I can't find any documentation for that; it does not match any of the part numbers mentioned in the document you linked nor does Google find anything. However the card looks identical to the picture on page 1-5 of the documentation we have been using, and also identical to the schematic of the card called 201177-001 in the document you linked. According to both of those SW1 1 through 3 should be OFF ON ON for starting address 256K and SW1 4 through 6 ON ON OFF for 384K of installed memory, and that is what they are set to. It is odd that they were set differently when I got the card. Unfortunately I don't remember how. But it really seems unlikely that's the problem.

I guess I'll have to start swapping chips. Do you know of a program which can test all of the RAM, disregarding how much the BIOS thinks there is?
 
I disagree that the XT BIOS memory detection method is "flawed." It's simply detecting the amount of usable memory. If you know you should have more memory, then it's actually helpful in determining where the bad memory is. And you can continue using the system in the meantime.

You can use ROM BASIC to test "hidden" memory:

Code:
10 DEFINT A-Z: CLS
20 PRINT "Testing 256K to 640K RAM"
30 FOR S = 0 TO &H5FFF STEP 16
40 DEF SEG = &H4000 + S
50 PRINT "Segment " + HEX$(&H4000 + S)
60 FOR I = 0 TO 255
70 POKE I, &H55
80 IF PEEK(I) <> &H55 THEN PRINT "Bad RAM found"
90 NEXT I
100 NEXT S
110 PRINT "Test complete"

The full test will be very slow, but you can speed it up by changing line 60 to:

Code:
60 FOR I = 0 TO 0

This will only check every 256th byte, which is probably good enough.
 
Last edited:
I disagree that the XT BIOS memory detection method is "flawed." It's simply detecting the amount of usable memory.
If my computer (vintage or otherwise) developed a faulty RAM chip, of the following two behaviors, I expect the first.

* To be informed by the POST that there is a RAM problem; or
* Have the POST count up the amount of usable RAM.

Remember too that users in the 80's (and now) had varying levels of computer literacy. If they happened to notice one morning that the final number shown on-screen was different to the previous morning, how many would know that it is something they need to contact the company's computer department about. And some users would not notice at all, because after they flicked on the red power switch, they headed straight off to make their coffee.

If you know you should have more memory, then it's actually helpful in determining where the bad memory is.
The 201 error includes the address.
 
If my computer (vintage or otherwise) developed a faulty RAM chip, of the following two behaviors, I expect the first.

* To be informed by the POST that there is a RAM problem; or
* Have the POST count up the amount of usable RAM.

Remember too that users in the 80's (and now) had varying levels of computer literacy. If they happened to notice one morning that the final number shown on-screen was different to the previous morning, how many would know that it is something they need to contact the company's computer department about. And some users would not notice at all, because after they flicked on the red power switch, they headed straight off to make their coffee.


The 201 error includes the address.

It's not uncommon to have a modern BIOS count and use a reduced amount of RAM due to a badly seated SIMM or DIMM. It's happened to me multiple times.

How would a novice user know what "201" means? I don't find that any more user friendly.
 
It's not uncommon to have a modern BIOS count and use a reduced amount of RAM due to a badly seated SIMM or DIMM. It's happened to me multiple times.

How would a novice user know what "201" means? I don't find that any more user friendly.
As a novice user in the 80s, my first computer being an XT clone, I knew on an XT compatible BIOS, there was a RAM count displayed and it should display the RAM installed if they were inserted correctly and have the DIP switches set correctly. I can't remember how I learned this. It was either described in the manual that came in the computer, which was fairly detailed as it was then, or I was told by my dad when I assembled the computer. I also knew about POST codes from reading about the computer operation, if any codes were shown, to look in the manual for clues, or just go to the library or bookstore and find a reference. It was just what was done then... the information was just shared and users could read and find this information out. A novice user could learn quickly the process of the boot operation even then.
 
As a novice user in the 80s, my first computer being an XT clone, I knew on an XT compatible BIOS, there was a RAM count displayed and it should display the RAM installed if they were inserted correctly and have the DIP switches set correctly. I can't remember how I learned this. It was either described in the manual that came in the computer, which was fairly detailed as it was then, or I was told by my dad when I assembled the computer. I also knew about POST codes from reading about the computer operation, if any codes were shown, to look in the manual for clues, or just go to the library or bookstore and find a reference. It was just what was done then... the information was just shared and users could read and find this information out. A novice user could learn quickly the process of the boot operation even then.

Yes that's the point...
 
It's not uncommon to have a modern BIOS count and use a reduced amount of RAM due to a badly seated SIMM or DIMM. It's happened to me multiple times.
But hasn't there been something like 'Error: CMOS mismatch' displayed as well, i.e. discovered RAM amount does not tally with RAM amount declared in the CMOS/SETUP configuration ?
I.e. Informed that there was a problem of some kind.

( That is what happens in the IBM 5170. In the move to the IBM 5170, IBM did not duplicate the 'auto discover' behaviour of the IBM 5160. They reverted to what was done in the IBM 5150, that is, the BIOS is informed in some way by the owner/technician as to how much RAM to expect. )

How would a novice user know what "201" means? I don't find that any more user friendly.
I don't consider it user friendly at all. IBM's intention with the IBM 5160 was probably that the accompanying "ERROR. (RESUME = F1 KEY)" would prompt the lay user to contact 'technical support', and the error code be used by technical support
 
Depends on the BIOS I suppose. All my 386 and later systems don't allow you to set the memory size and only have auto detection. I specifically remember having an issue with a socket 7 board that would sometimes count to 64 MB and sometimes count to 96 MB. But there were no POST errors reported. Removing and reinstalling all the SIMMs fixed the issue.
 
The capacitors C56 and C58 got damaged seems to be a common problem :(
They are all disappear without a trace on my board, and C16 even burst through the motherboard 😂
Bad capacitors!:mad:I've changed all of them.
 
On the 5160 board I have, the tantalum in the C56 section has exploded.

Just in time, after seeing model7's article, it was cumbersome to repair, and it was decided to remove it after judging that even if there was no tantalum that corresponds to C56 or C58,
there was no problem with operation.
 
Back
Top