Parent


Ruud's diagnostic ROM
fitted to the 64KB-256KB version of IBM 5150 motherboard



5150_label_64kb_256kb_cpu.jpg


ROM hosted diagnostics versus floppy hosted diagnostics

Ruud's diagnostic ROM, obviously, is a ROM hosted diagnostic.

ROM HOSTED - Instead of the diagostics being on a floppy disk, or on a hard drive, they are on a ROM chip.  You pull out the motherboard BIOS chip, and substitute the diagnostic ROM.
MOTHERBOARD DIAGNOSTICS - These are mostly, motherboard diagnostics - tests of the motherboard.

Floppy hosted diagnostics are expected to be better (a floppy fits more diagnostic code than a ROM), and so ROM hosted diagnostics are good for the situation where the motherboard problem prevents a diagnostics floppy from being booted from.


Where does it fit ?

Remove the IBM BIOS ROM in socket U33, then fit the Ruud's diagnostic ROM in its place.  Depending on the EPROM type you use (see below), you may or may not require a suitable adapter to go between the EPROM and socket U33.


Additional

An example MDA/CGA on-screen output is shown at here.

Ruud's diagnostic ROM was created by Ruud Baltissen, and is based on the Supersoft/Landmark diagnostic ROM, but unlike that ROM, Ruud's diagnostic ROM will stop RAM testing at the first RAM error.  That means that if your computer has RAM problems covering multiple addresses, that you will not see a confusing display (as you will with the Supersoft/Landmark diagnostic ROM).  The concept is that you fix the displayed RAM problem (which, BTW, may not be caused by a RAM chip), then re-run Ruud's diagnostic ROM to see if there is another RAM problem, and so on.

Ruud's diagnostic ROM cannot trust that the motherboard switches, or their supporting circuitry, are working.  Therefore:
- The 'Top of RAM' figure (e.g. 256 KB, 640 KB, ...) is determined by test read/writes of RAM.
- MDA/CGA video cards are auto-detected.

Requirements

For version 5.1 (or later) of Ruud's Diagnostic ROM, the table below shows the 6 options that are available to you.

  On-screen
output
Checkpoints
to LPT ports
Checkpoints
to COM1
Speaker
beep
IBM 5150
relay click
 Comment
  Option #1:  MDA video card Yes Yes Yes Yes Yes  
  Option #2:  CGA video card Yes Yes Yes Yes Yes  
  Option #3:  4KB RAM at address A0000 No Yes Yes Yes Yes  
  Option #4:  4KB RAM at address B0000 No Yes Yes Yes Yes  The diagnostic will think that you have an MDA video card.
  Option #5:  4KB RAM at address B8000 No Yes Yes Yes Yes  The diagnostic will think that you have a CGA video card.
  Option #6:  None of the above No Limited Limited Yes Yes  


In the table above, 'Speaker beep' is the short-long-short pattern of beeps that the diagnostic does quite early, and 'IBM 5150 relay click' is a click of the IBM 5150 motherboard's relay that the diagnostic does quite early.

Before you read any further, read note 5 at the bottom of this web page.

Per the table above, if you want an output on-screen, like what is shown at here, then you need an MDA or CGA video card, and matching display monitor.

The next best option is to put 4 KB of RAM at address A0000 or B0000 or B8000.  With that, all tests are done, and the checkpoints are sent to the LPT ports, and the COM1 port.  For detail on what "checkpoints" are, see the 'Checkpoint codes' section below.  How you get 4KB of RAM at one of the three addresses is up to you.

You may be lucky and have an EGA card that puts RAM at A0000 even though the card is uninitialised.  My fully-populated IBM EGA card and my AST-3G card are not in that category.  See here for some examples of how to get 4KB of RAM at A0000.

If you do not have an MDA card, nor CGA card, nor 4 KB of RAM at xxxxx, then things are quite limited.  Only the initial tests are done.  You won't even be able to see if there is bad RAM in bank 0.

Below, see note 6 about ISA POST cards.


Limitation: Testing scope

• It is not possible for software to fully test hardware.  Some of the checks done by this diagnostic (and others for that matter) barely test the functionalty of the check's target.  Keep that in mind.  The checks being done need to be considered as confidence tests only.

• When sizing RAM, and then testing it, anything above 640 KB is not looked for.

• It is not possible for this diagnostic to detect all cases of an addressing problem.


Test descriptions

Click here.


Checkpoint codes

At various stages of execution, Ruud's diagnostic ROM sends 'checkpoint' codes (bytes) to I/O ports 378h, 278h, 3BCh, and 3F8h.  The codes are listed at here, and in the diagnostic's source code (included in the image download below).

I/O ports 378h and 278h and 3BCh are parallel (printer) (LPT) ports.  If you have one of those ports, then the device shown at here can be used to view bytes sent to the port.  You can use a parallel printer if it has a 'hex' mode - example at here.

I/O port 3F8h is typically the first serial port, usually referred to as COM1.  More information about checkpoints going to COM1 is at here.

Below, see note 6 about ISA POST cards.


Speaker and relay

An early thing that Ruud's diagnostic ROM does, is:
• Send 3 beeps to the speaker, in the pattern of: short-long-short; and
• Single-click the 5150 motherboard's relay.

That is seen in the step breakdown at here.


Important information

The following applies to version  5.1  of the diagnostic.

1. The 'Hot NMI' test is known to fail if either:
   - Math coprocessor (8087 chip) is absent and you have switch 2 in switch block SW1 in the wrong position for that (off).
   - Math coprocessor (8087 chip) is present and is faulty in a particular way.
   
2. If there is a faulty RAM chip for parity, it will not be shown until all faulty RAM chip/s for data (in the same bank) have been rectified.
   
3. The 'Check ROM at F4000' test is expected to fail, because there is nothing in the motherboard's U28 socket.  However, on some IBM 5150 motherboards, the test might pass.  You may even see it pass sometimes, and fail at other times.  Diagram at here.


Known bugs/issues

The following applies to version  5.1  of the diagnostic.

1. Both an MDA and CGA card fitted, with monitor connected to the CGA card.
In this scenario, the only thing that you will see on the CGA monitor is, "Ruud's Diagnostic ROM for PC/XT" - everything else goes to the MDA card+monitor.
This is not a bug.  This diagnostic expects only one video card fitted, of MDA or CGA.

( Some bugs/issues for clones are shown in the table at here. )


Faulty RAM bank 0 ?

If RAM bank 0 is faulty, and the IBM BIOS ROM is fitted, you will appear to have an 'appears dead' motherboard.  Although, that symptom has many possible causes.

Use of Ruud's diagnostic ROM will, in most cases, reveal a faulty RAM chip in bank 0.  (See the yellow highlighted lines below.)


Observed RAM test behaviour on my 64KB-256KB motherboard

The following table applies to version  5.1  of the diagnostic.

Condition      Observed behaviour      Comment
All 4 banks are good See the partial screen shot at here.  4 banks of 64 KB = 256 KB
 
Only bank 0 is populated, and all chips in it are good See the partial screen shot at here.  1 bank of 64 KB = 64 KB
 
A single chip has failed, in bank 0.
Failure affects the first 2K of addresses.
See the partial screen shot at here.  • Includes a complete failure of chip (i.e. affecting all addresses in chip).  See note 1 below.
 

A single chip has failed, in bank 0.
Failure is after the first 2K of addresses.


The 'Testing RAM - Data' test fails.  Under that is:
• "Failure at address: xx KB" is displayed, where 'xx' is a figure between 2 KB and 63 KB.
• The bad bit is displayed (example at here).
 • 64KB-256KB motherboard.
 

A single chip has failed, in bank 1


The 'Testing RAM - Data' test fails.  Under that is:
• "Failure at address: xx KB" is displayed, where 'xx' is a figure between 64 KB and 127 KB.
• The bad bit is displayed (example at here).
 • 64KB-256KB motherboard.
 • A figure between 65 KB and 127 KB is due to note 4.

A single chip has failed, in bank 2


The 'Testing RAM - Data' test fails.  Under that is:
• "Failure at address: xx KB" is displayed, where 'xx' is a figure between 128 KB and 191 KB.
• The bad bit is displayed (example at here).
 • 64KB-256KB motherboard.
 • A figure between 129 KB and 191 KB is due to note 4.

A single chip has failed, in bank 3


The 'Testing RAM - Data' test fails.  Under that is:
• "Failure at address: xx KB" is displayed, where 'xx' is a figure between 192 KB and 255 KB.
• The bad bit is displayed (example at here).
 • 64KB-256KB motherboard.
 • A figure between 193 KB and 255 KB is due to note 4.



Images (content) to be programmed into EPROM

To create a Ruud's Diagnostic ROM, you program/write ('burn') an image into a suitable EPROM.  An EPROM programmer is required to do that.  That EPROM replaces the BIOS ROM in IC socket U33.

As shown in the table below, there are various EPROM options for IC socket U33.  In some cases, an adapter is required between the EPROM and the IC socket.

There are some people/companies shown at here who can supply EPROM's, programmed/written ('burned') to your requirement.


Type of EPROM for IBM 5150 Size Image download Photo Comment
MCM68766 EPROM 8 KB  Download    
2564 EPROM 8 KB  Download  Photo  2564, not 2764
With adapter, 2764/27C64 EPROM 8 KB  Download    Click here for adapter.
With adapter, 27128/27C128 EPROM 16 KB  Download    Click here for adapter.   See note 2 below.
With adapter, 27256/27C256 EPROM 32 KB  Download  Photo  Click here for adapter.   See note 2 below.
With adapter, W27E257 EEPROM 32 KB  Download    Click here for adapter.   See notes 2 and 3 below.





Note 1 It is possible for a RAM chip to fail in such a way that affects only some of the chip's addresses.
Imagine such a chip in bank 0, one that fails at say the 5K address.
That would result in the diagnostics 'Check first 2 KB of RAM' test passing.
But the diagnostic will report an error later when testing the remainder of RAM.
   
Note 2 Ruud's Diagnostic ROM for the PC and XT is actually only 8 KB in size.
To create a 16 KB sized image, the 8 KB image was simply doubled.
To create a 32 KB sized image, the 8 KB image was simply quadrupled.
A related diagram is at here.
   
Note 3 Regarding the programming/writing of an image into the W27E257:
Even though the W27E257 is an EEPROM, rather than a 'traditional' EPROM, you will still need an EPROM programmer (or other) to program/write to the W27E257.
That is because the IBM 5150 motherboard does not support programming/writing to EEPROM's in its sockets.
   
Note 4 It is possible for a RAM chip to fail in such a way that not all of its addresses are affected by the failure.
   
Note 5 For most of its work, Ruud's Diagnostic ROM (RDR) needs some RAM for variables and for the stack.
The motherboard RAM cannot be trusted (a common use of RDR being because there is bad RAM in bank 0).
For that reason, RDR uses either:
- If an MDA video card is present, the unused video RAM on that; or
- If an CGA video card is present, the unused video RAM on that; or
- If 4 KB of RAM at address A0000, some of that RAM. (Version 4.3 or later of RDR required.)
- If 4 KB of RAM at address B0000, some of that RAM.
- If 4 KB of RAM at address B8000, some of that RAM.
   
Note 6 Some people may be puzzled as to why there is no mention of the checkpoints also being sent to I/O port 80h, the port monitored by an ISA POST card.
Although this diagnostic does also send the checkpoints to I/O port 80h, rarely does in ISA POST card work on an IBM 5150 or 5160.  Do not be surprised if it does not work.  More information about that is at here.