PDA

View Full Version : Parity Check 1


dongfeng
May 2nd, 2008, 01:13 PM
I'm trying to resurrect a 5150, but it has a 'Parity Check 1' message on boot.

I have removed all 3 socketed banks of memory, only leaving bank 0 (which is soldered in place).

On boot it shows:

0400 201

PARITY CHECK 1

From what I can work out, this is a faulty RAM chip in bank 0, and the parity chip being the dodgy one?

Just wanted to confirm in here before I start unsoldering the memory ;)

Yzzerdd
May 2nd, 2008, 02:41 PM
I must warn you I dont know EVERYTHING about the 5150. Yet.

BUT I can say this much:
My IBM used to note a Parity Check 1 error upon boot, too. I got a 200 error as well with this. Well I set the chip settings for the memory(turns out I had it wrong) and that solved both problems. So I recommend you put the RAM back in(or just leave it out) and set the dip-switches accordingly. With no RAM in and a 64K-256K board, you'll need to set the memory to 64K(duh! lol).
Here is where dip-switch settings can be found: http://vintageibm.net/5150_diagnostics

I must warn you though, for no apparent reason Eric didn't put the REST of the memory stuff on the site, so if you want to set it to something past what is charted there(say, 640K) let me know and I will give it to you straight from the Holy book--The IBM 5150 Guide to Operations. LOL

--Ryan

modem7
May 2nd, 2008, 05:44 PM
On a 16/64K board, the "04" in the "0400" means a memory read error in the first part of bank 1.
So if you have a 16/64K board, you haven't reflected the changed memory configuration into the switches.

201 memory error codes on the 5150 - from Upgrading and Repairing PC's:

16/64K board
------------
00xx to 03xx = Bank 0 (the XX indicates which chip [or chips] have failed)
04xx to 07xx = Bank 1 (the XX indicates which chip [or chips] have failed)
08xx to 0Bxx = Bank 2 (the XX indicates which chip [or chips] have failed)
0Cxx to 0Fxx = Bank 3 (the XX indicates which chip [or chips] have failed)

64/256K board
------------
00xx to 0Fxx = Bank 0 (the XX indicates which chip [or chips] have failed)
10xx to 1Fxx = Bank 1 (the XX indicates which chip [or chips] have failed)
20xx to 2Fxx = Bank 2 (the XX indicates which chip [or chips] have failed)
30xx to 3Fxx = Bank 3 (the XX indicates which chip [or chips] have failed)


XX is 00 indicates the parity chip
XX is 01 indicates the bit 0 chip
XX is 02 indicates the bit 1 chip
XX is 04 indicates the bit 2 chip
XX is 08 indicates the bit 3 chip
XX is 10 indicates the bit 4 chip
XX is 20 indicates the bit 5 chip
XX is 40 indicates the bit 6 chip
XX is 80 indicates the bit 7 chip

XX is something else indicates multiple chip failure, eg. 24 would indicate bit 5 and bit 2 failure.

dongfeng
May 4th, 2008, 07:25 AM
Thanks!

Would that be the same for a 64/256 board? As that's what I have...

modem7
May 5th, 2008, 01:39 AM
No. If you look carefully in my previous post, I've included both the 16/64K and 64/256K boards.

So a "0400 21" error on the 64/256K board indicates:
"04" --> Bank 0 (falls into the "00xx to 0Fxx = Bank 0")
"00" --> Parity chip

djkrex
May 6th, 2008, 04:43 PM
My old PC1 has a Parity Check 1 error 0455 201. It had me stumped so I put the problem on the back burner until now. I also removed all the chips except for the soldered in bank 0 leaving me with only 16K. According to the previous posts, it has a multi bit error on bank 1 which is empty. I have the switch block set to indicate 16K on board as I remember. It also seems strange that 4 chips would go bad after setting idle for a long time.

modem7
May 7th, 2008, 05:51 PM
My old PC1 has a Parity Check 1 error 0455 201. It had me stumped so I put the problem on the back burner until now. I also removed all the chips except for the soldered in bank 0 leaving me with only 16K. According to the previous posts, it has a multi bit error on bank 1 which is empty. I have the switch block set to indicate 16K on board as I remember. It also seems strange that 4 chips would go bad after setting idle for a long time.
When a 5150 reads RAM that doesn't exist, my experience is that you will see multi-bit errors, and that the bits can vary from machine to machine.
I think that's what you are seeing.

I think your, "I have the switch block set to indicate 16K on board as I remember" is the clue to your problem. Both switch blocks need to be changed, not just one.
So switches 3 and 4 on SW1 should be both ON (motherboard RAM is bank 0 only).
SW2 should be ON,ON,ON,ON,ON,OFF,OFF,OFF (total RAM [motherboard + any expansion cards] = 16K)

Are the switches per above?

djkrex
May 8th, 2008, 05:25 PM
The switch settings on blocks 1 and 2 are correct. Maybe switches 3 or 4 are dirty and not making. I'll try soaking sw bank 1 with contact cleaner and working them back and forth a bit. After setting for a lot of years, a bad switch seems to make more sense. Correct me if this isn't a good thing to try.

modem7
May 9th, 2008, 09:31 PM
If your 5150 board is getting to BASIC, you can use the following procedure to check out
the switch blocks AND the associated circuitry that selects and reads the switch blocks.

=================================================
IBM 5150 - TESTING SW1 AND SW2 BLOCKS VIA BASIC
=================================================

Failure indicates EITHER a faulty switch block OR the associated circuitry that selects/reads the switch blocks.

-----------------------------------
TEST 1 of 2 - switch block SW1
-----------------------------------

1. Boot to BASIC

2. Enter the following 3 lines of program:

10 OUT &H61,&HCC
20 PRINT INP(&H60)
30 OUT &H61,&H4C

Note: line 30 required to re-enable the keyboard (keyboard reading and SW1 can't be enabled at the same time).

3. Set all switches on SW1 to OFF.

4. Run the program. You should see "255" displayed.

5. Set all switches on SW1 to ON.

6. Run the program. You should see "0" displayed.

7. Set SW1 so that switch 1 is the only switch OFF.
8. Run the program. You should see "1" displayed.

9. Repeat steps 7 and 8 for each of the remaining 7 switches:
switch 2 is only one OFF - should see "2"
switch 3 is only one OFF - should see "4"
switch 4 is only one OFF - should see "8"
switch 5 is only one OFF - should see "16"
switch 6 is only one OFF - should see "32"
switch 7 is only one OFF - should see "64"
switch 8 is only one OFF - should see "128"

10. Set SW1 so that switches 1,3,5,7 are ON and switches 2,4,6,8 are OFF.
11. Run the program. You should see "170" displayed. [ 170 dec = 10101010 binary ]

12. Set SW1 so that switches 1,3,5,7 are OFF and switches 2,4,6,8 are ON.
13. Run the program. You should see "85" displayed. [ 55 dec = 01010101 binary ]

14. Set SW1 to normal setting.

15. Reboot computer.


-----------------------------------
TEST 2 of 2 - switch block SW2
-----------------------------------

INFO: Only the first 5 switches are connected. Not all 5 can be read at once - you can read the first 4 in one operation and the 5th in another.

1. Boot to BASIC

2. Enter the following 5 lines of program:

10 OUT &H61,&H4C
20 LOWER4% = INP(&H62) AND &H0F
30 OUT &H61,&H48
40 BIT5% = INP(&H62) AND &H01
50 PRINT LOWER4% " / " BIT5%

3. Set switches 1 to 5 on SW2 to OFF (don't care about other switches - they do nothing).

4. Run the program. You should see "15 / 1" displayed.

INFO: The first figure displayed is for switches 1 to 4 and the next figure is for switch 5

5. Set switches 1 to 5 on SW2 to ON.

6. Run the program. You should see "0 / 0" displayed.

7. Set SW1 so that switch 1 is OFF and switches 2 to 5 are ON (don't care about other switches).
8. Run the program. You should see "1 / 0" displayed.

9. Repeat steps 7 and 8 for each of the remaining 3 switches:
switch 2 is only one OFF - should see "2 / 0"
switch 3 is only one OFF - should see "4 / 0"
switch 4 is only one OFF - should see "8 / 0"
switch 5 is only one OFF - should see "0 / 1"

10. Set SW2 so that switches 1,3,5 are ON and switches 2 and 4 are OFF (don't care about other switches).
11. Run the program. You should see "10 / 0" displayed.

12. Set SW2 so that switches 1,3,5 are OFF and switches 2 and 4 are ON (don't care about other switches).
13. Run the program. You should see "5 / 1" displayed.

14. Set SW2 to normal setting.

15. Reboot computer.

djkrex
May 12th, 2008, 07:00 PM
No luck so far with cleaning the switch blocks. I might pull the motherboard and try jumpering the switch block pins. I can't get to basic. Is there any way to keep the computer from halting after a parity check 1? How about bypassing the error checking?

modem7
May 13th, 2008, 05:06 AM
I'm seeing something strange with my 16/64K board.

I normally have the second revision BIOS (10/19/81, p/n 5700671) fitted in that board, and with that revision, I have no problems with 16K of RAM inserted (actually I just removed the second bank). I set the switches for 16K, and no errors. I then set SW1 for bank0/1 and see a 201 error starting "04", as expected.

But when I insert the third BIOS (10/27/82, p/n 1501476), and set the switches to suit 16K, I see a "1094 201" error. Odd. Then setting the switches for RAM past 16K gives me "0455 201" errors, as expected.
I'll have to examine the source listing for the BIOS to work out why the "1094 201" appears. Maybe 16K of RAM isn't valid for the third BIOS revision.

The only card I have plugged into the motherboard is a video card. I'm noticing that on some RAM switch settings, the machine will freeze after displaying the 201 error, and on other settings, the machine will jump into BASIC after displaying the 201 error.