• Please review our updated Terms and Rules here

Parity Check 1

dongfeng

Veteran Member
Joined
Nov 16, 2003
Messages
1,348
Location
London, England
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 ;)
 
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
 
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:

Code:
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.
 
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
 
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.
 
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?
 
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.
 
Testing SW1 and SW2 via BASIC

Testing SW1 and SW2 via BASIC

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.
 
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?
 
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.
 
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:

Code:
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.

Hmm... Vintage computers must be one of the few inanimate objects that seem to fail at a whim.

I booted up the 5051 to give it a workout. It hadn't been on for about 5 months. The first thing I see is

0040 201
Parity error 1

Oh bugger!

A google search suggested RAM. Then I searched the VC boards and found this thread...I'd hoped someone must have had something similar!

Dongfeng, did you ever fix it?

I think I have a 64/265k board (it's 256k and all the RAM is filled). From the above this would seem to mean a problem on BANK 0, parity chip.

Excuse my ignorance on how to read the code, but does that equate to a physical RAM IC in the bank and if so which one?

Bank 0 is the only bank that is NOT socketed. Arrgg!!

How can RAM chips fail simply through non-use for a few months!? It just don't seem right!

Tez
 
Hmm... Vintage computers must be one of the few inanimate objects that seem to fail at a whim.
They're getting old, just like us.
Even so, my experience is that today's electronics is much more reliable than that of the eighties.

How can RAM chips fail simply through non-use for a few months!? It just don't seem right!
Electronic components can fail on application of power, however in this case, we haven't ruled out a socket related issue yet.

Excuse my ignorance on how to read the code, but does that equate to a physical RAM IC in the bank and if so which one?
The "xx40" equates to the bit 6 chip. Of the 9 chips per bank, bit 6 is the second closest chip to the center of the board.

The "00xx" equates to bank 0. Had the failure occurred in the first 16K of that bank, the 5150 would have halted without displaying anything on the screen, and so you had some luck there.
Yes, so bummer that the failure is in the soldered-in bank. Just to be sure, it won't hurt to swap the bit 6 and bit 7 chips for each of the socketed banks (using anti-static procedure). If the "40" bit of the error code changes to "80", then obviously bank 0 wasn't the problem bank (and would puzzle me).
 
Ok, ta.

I'll remove some RAM in the other banks and if it changes the post message.

Philip Avery (pavery) is going to loan me his Oscilloscope on Thursday. If this bit 6 RAM IC is indeed faulty is there a way I can verify this with a scope? I don't want to unsolder and replace unless it really IS faulty.

Tez
 
Duh!

My error was the same as DongFeng's i.e. 0400 201 NOT 0040 201. Sorry, I typed it in incorrectly. This means the parity IC (the first IC near the edge?) in bank 0, correct?

Something else is weird though.

The error beep is long then two short. All the information I can find on the web says this should be the display adaptor? Yet the display adaptor works. It comes up with the 0400 201 error in 80 columns then says "Parity check 1" in 40 column mode. Is this usual behavior if it's a video display problem?

So is it the display adaptor or Parity RAM in Bank zero. The beeps seem to conflict with the error message? I suspect RAM (hopefully not both!). I replaced the CGA adaptor with a Monochrome one I had but still got the same type of beeps. Of course I couldn't see anything as I didn't have a green screen.

Why is it giving me one long beep and two short ones though?

I'm a little reluctant to remove this unsocketed Bank 0 parity IC unless I'm sure it really is the problem. Anyone know any tests on the pins I could do with a simple voltmeter (or Phillips oscilloscope) to verify it definitely isn't working.

Tez
 
Last edited:
My error was the same as DongFeng's i.e. 0400 201 NOT 0040 201. Sorry, I typed it in incorrectly.
I see that you had reversed "5150" to "5051" as well.

This means the parity IC (the first IC near the edge?) in bank 0, correct?
More information required.
Do you have a 16/64K or a 64/256K board?
What is the BIOS date (or provide the 7 digit part number on U33)?
What switch settings are you using for SW1 and SW2 ?
Do you have any top-up RAM on expansion card/s?

Something else is weird though. The error beep is long then two short. All the information I can find on the web says this should be the display adaptor? Yet the display adaptor works. It comes up with the 0400 201 error in 80 columns then says "Parity check 1" in 40 column mode. Is this usual behavior if it's a video display problem?
Yes, one long then two short is a video issue. Odd.

I replaced the CGA adaptor with a Monochrome one I had but still got the same type of beeps.
You did change the switches for video (SW1-5 and SW1-6) as appropriate when switching between CGA and MDA ?

I'm a little reluctant to remove this unsocketed Bank 0 parity IC unless I'm sure it really is the problem.
I agree. Get back to us with the answers to the questions.
 
I see that you had reversed "5150" to "5051" as well.

Oh well...we humans do that. :)

The board is a 64/256k one.

Anyway, I have identified the problem. I piggybacked a good 4164c RAM IC over the parity chip in Bank 0 and booted. No error beeps...the machine started up just fine and dandy. Not problems with the video. All was as it should be.

So it is definitely that IC. Pity it's not socketed, but I'm comfortable with removing soldered ICs and replacing them now.

I don't know why the error beeps indicated a video problem? In trawling the net I found a discussion board where someone found the same thing. Beeps suggested video, but codes suggested RAM. He replaced the RAM and the machine was ok. He did dispose of the graphics card assuming it was also faulty. I wonder if it actually was?

Useful things, these POST error codes. Pity they don't exist on the APPLE II+. It might help with my clone issue.

Thanks for your help.

Tez
 
Just to wrap things up...Planar removed, non-working non-socketed parity RAM chip in bank 0 removed (clipped off, then pins desoldered out), socket soldered on and new 4164c plugged in. Machine now works perfectly.

Took me an hour.

I wouldn't have been able to do that 18 months ago.

Tez
 
Anyway, I have identified the problem. I piggybacked a good 4164c RAM IC over the parity chip in Bank 0 and booted. No error beeps...the machine started up just fine and dandy. Not problems with the video. All was as it should be.
That's good news. The piggyback technique won't always work (depends on how the RAM chip has failed) but worth a try.

I don't know why the error beeps indicated a video problem? In trawling the net I found a discussion board where someone found the same thing. Beeps suggested video, but codes suggested RAM. He replaced the RAM and the machine was ok.
Yeah, the video error was odd and there can be other symptoms that appear after the 201 error as well.

* Jumps to resident BASIC (per post #11 in this thread)
* Computer freezes/halts (per post #11 in this thread)
* Diskette drive access light comes on and stays on

Sources of 201 errors that I've seen in 5150s:

* RAM chip failure
* Contact problem - RAM chip needs reseating in socket
* Switches not set correctly
* Using less than 4 banks on a 16/64K motherboard that has had the BIOS updated to the third version.
 
I've written this up in detail. It is a straightforward (almost trivial) repair for the hardware hackers out there I know, but for others who are just starting out dabbling with their machines (as I was 18 months ago) it might be of interest.

Tez
 
Back
Top