Parent


Ruud's diagnostic ROM
fitted to the 64-256KB 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 64-256KB motherboard

The partial screen shot at here shows what is expected to appear when the 64-256KB motherboard's RAM subsystem (four banks of RAM chips, plus supporting circuitry except for RAM refresh) is functional.

The partial screen shot at here shows what is expected to appear when only bank 0 has RAM chips in it.

The partial screen shot at here shows what is expected to appear when a single chip has failed in bank 0.  See note 1 below.



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.

IMPORTANT:  Because this is the early version of the IBM 5160 motherboard, then per here, the NEC µPD27C256 is not suitable for use.

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.