Parent


Ruud's diagnostic ROM
fitted to the 256-640KB version of IBM 5160 motherboard



Ruud's diagnostic ROM 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.

On the motherboard, ensure that switches 3 and 4 in switch bank SW1 are set correctly, because on an IBM 5160, those switches enable/disable the motherboard RAM banks.


Video card requirements

Ruud's diagnostic ROM requires an MDA or CGA video card.  An EGA card or VGA card will not work.

If you do not have a suitable video card, the best you can do is monitor the checkpoint codes that the diagnostic ROM outputs - see the following 'Checkpoint codes' section.


Where does it fit ?

Remove the IBM BIOS ROM in socket U18, then fit the Ruud's diagnostic ROM in its place.


Checkpoint codes

At various stages of execution, Ruud's diagnostic ROM sends 'checkpoint' codes (bytes) to I/O ports 80h, 378h, and 278h.  The codes are listed in the source code of the diagnostic, but early codes are shown at here.

I/O ports 378h and 278h are parallel (printer) ports.  If you have a parallel (printer) port at either of those ports, then the device shown at here can be used to view bytes sent to the port.

WARNING:  Note that the parallel (printer) port on an MDA (monochrome) card is typically at 3BCh, and is therefore, unusable.

On an IBM 5150 or 5160, rarely does a POST card work to monitor bytes sent to I/O port 80h.  Do not expect it to work.


Speaker

Early in the execution of Ruud's diagnostic ROM, the diagnostic beeps the speaker.  That is seen at step 25 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 reveal a faulty RAM chip in bank 0.  See the yellow highlighted line below.

Note that Ruud's diagnostic ROM does not test RAM refresh.  If faulty RAM refresh circuitry is the only problem, the POST in the IBM BIOS ROM will start and display something on-screen.  More information about that is at here.


Observed RAM test behaviour on my 256-640KB motherboard

The following table applies to version  2019-07-23  of the diagnostic.

Condition      Observed behaviour      Comment
All 4 banks are good See the partial screen shot at here.  2 banks of 256 KB + 2 banks of 64 KB = 640 KB
Only bank 0 is populated, and all chips in it are good See the partial screen shot at here.  1 bank of 256 KB = 256 KB
A single chip has failed, in bank 0 See the partial screen shot at here.  Complete failure of chip (i.e. affecting all addresses in chip).  See note 1 below.
A single chip has failed, in bank 1 "Bad memory 163 KB" is displayed.  163 KB ???
A single chip has failed, in bank 2 "Bad memory 163 KB" is displayed.  163 KB ???
A single chip has failed, in bank 3 The diagnostic will only find 576 KB of RAM.  ("Found RAM: 576 KB")  
RAM refreshed disabled 1. "Found RAM: 640 KB" is displayed.
2. "Bad memory 163 KB" is displayed.
3. The bit error pattern shows the parity bit in error.
 163 KB ???



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 U18.

As shown in the table below, you have the choice of using either a 27C256 EPROM (or 27256), or using a W27E257 EEPROM.

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


Type of EPROM for IBM 5160 Size Image download      Comment
27256/27C256 EPROM 32 KB  Download  See note 2 below.
W27E257 EEPROM 32 KB  Download  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 is actually only 8 KB in size.
To create a 32 KB sized image, the 8 KB image was simply quadrupled.
Therefore, the 32 KB sized image contains 4 instances of Ruud's Diagnostic ROM code.
When the 32 KB sized EPROM is placed in socket U18, it will be the fourth instance that gets executed.  (The first three are not used at all.)
   
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 5160 motherboard does not support programming/writing to EEPROM's in its sockets.