• Please review our updated Terms and Rules here

IBM 5155 and AST SixPakPlus issue

Ps2K

Member
Joined
Aug 30, 2011
Messages
25
Location
Zwolle, Netherlands, Netherlands
Hello all,

I decided to give my IBM 5155 some period hardware updates; some more memory and perhaps in the future a small harddrive. Well I managed to find a AST ramcard, but I am not having much luck with it at the moment :(
Thanks to one of the forum members who posted the scanned manuals of this card I checked the switch settings on the card, they seem ok to me. Also I compared the switch settings of the mainboard with the IBM and AST manual.

Here's my problem:
When the card is inserted, the system will not detect any additional memory. Running the IBM diag disk tells me the card is active since the serial port is now detected.

This is what I configured:
- switch settings on the mainboard have 3 and 4 in the off position, meaning I have 256Kb on the mainboard; This is also what the system finds when it boots.
- the switch settings on the AST board are as follows: 1 and 6 are in the "off" position and 2,3,4,5,7 and 8 are in the "on" position; translating in starting adress at 256K (1,2,3), all banks full (4,5,6), switch 7 is unused and switch 8 for parity.

Changing the starting adress on the AST board has some effect, if I set it to 64K then this is the maximum ammount of RAM detected in the system. To be sure I disabled LPT and the clock, this has no effect.

Since I cannot think of any other options to try, is there something I overlooked or forgot? Any help would be greatly appreciated!

I added a picture of the AST to this post for detailed identification.

29wpgm8.jpg
 
All the switches look correct, you already know that. Maybe work the switches on and off a couple times to let them know you are watching them <g>
Look on the back of the card and make sure none of the pins that stick out are touching another, they kind of protrude sometimes and can get bent over into each other.
Try another slot if there is room, kind of tight for full length cards in a 5155.
Also you can turn switch 8 off on the sixpak and try that. (disables parity check but should make no difference, if it doesn't help turn it back on)
You can also disable the ports on the sixpak and try that. Edit... I see you already did that
You can remove all cards from the 5155 except the video, floppy controller and sixpak and try the diagnostics again.
I don't think reseating chips is the answer here since they aren't being recognized.
Look at the card for broken traces (scrapes and such)
 
Isn't there a bug with the '82 XT BIOS for system RAM over 576KB? I might be getting confused. But maybe try the card configured as 256KB (for 512KB total).
 
Since I cannot think of any other options to try, is there something I overlooked or forgot? Any help would be greatly appreciated!
The 5155 contains an ealy IBM 5160 motherboard. The 5160 motherboards have what I consider to be poor design in the POST, in particular the code that determines the total amount of RAM in the machine. Without going into details, if the RAM in the first bank of your card is faulty in a particular way, that would explain your symptom. Try swapping over the chips in the first bank with those of, say, the last bank.

Isn't there a bug with the '82 XT BIOS for system RAM over 576KB? I might be getting confused.
I think you are getting confused. Perhaps you are thinking of the early IBM 5150 motherboards (the ones with the first or second revision BIOS). A limitation (but not a bug) was that they did not recognise more than 544K of RAM.
 
Thanks for the replies!

I already tried to switch the card around (as far as possible in the cramped 5155) but this had no effect either. What I noticed on the card was the first bank has different memory chips compared to the other banks.

On my to do list for this evening is:
- Check the IC codes, get the data sheets and verify what IC's these are
- Remove the IC's in the first bank and replace them with the IC's from the last bank

The card looks fine in any other way, no obvious burn marks, damaged components, weird solderings whatsoever...
 
Thanks everyone for the help!

I think one of the ic's in bank 1 is wonky; I switched row 1 with row 6 and tadaaaa:
------------------------
Even though I don't understand how there was no memory error identifying the first bank of chips, excellent outcome. Modem7 surely has some magic.
I have the exact card you have with a strange memory issue using a 5160 logic board, I have replaced individual chips with no success, guess I'll try a whole row at a time. :eek:)
 
Even though I don't understand how there was no memory error identifying the first bank of chips,
In the 5150, the machine is informed of the total amount of RAM (motherboard + expansion cards) by way of the switches on SW2.

In the IBM 5160, it seems to me that the designers thought that they had come up with a clever alternative to SW2.
To work out the total amount of RAM (motherboard + expansion cards), they actually write/read to the first two addresses of each 64K block.
Once the RAM size has been determined by that method, the RAM test is done [check every address and display a progress count on screen].

---------------------------------------------------------------

SCENARIO #1 - ALL RAM IS GOOD

In this scenario, all RAM is good.
The 'HOW-BIG' below is the routine in the POST that determines how much total RAM there is.

The HOW-BIG routine looks to see if there is a 64K block of RAM starting at 64K.
It does this by first writing AAh to address 10000h and 55h to address 10001h

0FFFE:
0FFFF:

10000: AA
10001: 55
10002:
10003:

It reads back AAh from 10000h and 55h from address 10001h and so assumes that there is 64K of RAM starting at the 64K mark.

The HOW-BIG routine goes on to check the next 64K block (128K to 192K).
It does this by first writing AAh to address 20000h and 55h to address 20001h

1FFFE:
1FFFF:

20000: AA
20001: 55
20002:
20003:

It reads back AAh from 20000h and 55h from address 20001h and so assumes that there is 64K of RAM starting at the 128K mark.

The HOW-BIG routine goes on to check the next 64K block (192K to 256K).

And so on.

---------------------------------------------------------------

SCENARIO #2 - BAD RAM CHIP IN 128K-192K

So let's look at the sitation where the bit 1 chip in the 128K-192K bank is faulty, and faulty in a way that results in it always returning 0.

The HOW-BIG routine will determine that there is RAM up to 128K.
It will go on to see if there is a 64K block of RAM starting at 128K (where our bad RAM is).
The HOW-BIG routine will write AAh to address 20000h and 55h to address 20001h.

1FFFE:
1FFFF:

20000: AA (bit7=1, bit6=0, bit5=1, bit4=0, bit3=1, bit2=0, bit 1=1, bit0=0)
20001: 55 (bit7=0, bit6=1, bit5=0, bit4=1, bit3=0, bit2=1, bit 1=0, bit0=1)
20002:
20003:

When the HOW-BIG routine reads back addresses 20000h/20001h, it will read back A8h/55h (expecting AAh/55h).
Consequently, the HOW-BIG routine then incorrectly assumes that there is no RAM past the 128K address.

---------------------------------------------------------------

SCENARIO #3 - BAD RAM CHIP IN 128K-192K

But in some circumstances, the HOW-BIG routine does get it right. It depends on the type of failure.

In this scenario, the bit 1 chip in the 128K-192K bank is faulty, but faulty only at its third address.

1FFFE:
1FFFF:

20000: AA (bit7=1, bit6=0, bit5=1, bit4=0, bit3=1, bit2=0, bit 1=1, bit0=0)
20001: 55 (bit7=0, bit6=1, bit5=0, bit4=1, bit3=0, bit2=1, bit 1=0, bit0=1)
20002: <--------- bit 1 bad at third address
20003:

The HOW-BIG routine will write AAh to address 20000h and 55h to address 20001h. It will read those same values back (those two addresses are good).
Consequently, it decides that there is RAM in the 64K block starting at the 128K mark, then goes on to look at the next 64K block.

Later, the RAM test [check every address and display a progress count on screen] will detect the faulty chip and produce a 201 error.
 
In the 5150, the machine is informed of the total amount of RAM (motherboard + expansion cards) by way of the switches on SW2.

In the IBM 5160, it seems to me that the designers thought that they had come up with a clever alternative to SW2.
To work out the total amount of RAM (motherboard + expansion cards), they actually write/read to the first two addresses of each 64K block.
Once the RAM size has been determined by that method, the RAM test is done [check every address and display a progress count on screen].

---------------------------------------------------------------

[

Thanks for posting that great explanation.
 
Agree with that, it really is a great reply. I am intrigued how Modem7 found this out though :)
 
Back
Top