


>>>>>>>>  TEST6099


----------------------------------------------
TARGET
----------------------------------------------

This is 32 KB sized code to go into ROM U18 (which is 32 KB sized) on an IBM 5160 (IBM XT) motherboard.

If your IBM 5160 motherboard is a 64-256KB type, the TMM23256/MK37000/MK38000 ROM's can in most cases be replaced with 27C256 EPROM's,
but some brands of 27C256 may be unsuitable for the 64-256KB motherboard - see http://www.minuszerodegrees.net/5160/motherboard/5160_u18_u19_sockets.htm
     
If your IBM 5160 motherboard is a 256-640KB type, then you can use a 27C256 (or 27256) EPROM, or a Winbond W27E257.
      
For the IBM 5160, use EPROM's that are rated at 250 ns, or faster.
See http://www.minuszerodegrees.net/5160/motherboard/IBM%205160%20motherboard%20-%20ROM%20description%20from%20TR.png


The code also suits XT clones that have a single 32 KB sized BIOS ROM (e.g. 27256 or 27C256).
If the XT clone has instead, a single 8 KB sized BIOS ROM (e.g. 2764 or 27C64), then use the 8 KB sized ROM images at http://www.minuszerodegrees.net/5150/code/IBM%205150%20-%20Some%20test%20code%20for%20U33.htm


----------------------------------------------
REQUIRED
----------------------------------------------

1. Either a logic probe, or a multimeter (and the knowledge of how to use it to measure DC voltage).

2. A way of putting the TEST6099_TESTING_16KB.BIN file into a suitable ROM/EPROM/EEPROM for the IBM 5160 (IBM XT) motherboard.


----------------------------------------------
WHAT DOES THE CODE DO ?
----------------------------------------------

It answers the following two questions:

1. Is the POST (power-on self test) in the 11/08/82 (08NOV82) revision of BIOS ROM for the IBM 5160 (IBM XT) motherboard, starting and getting as far as the BASE 16KB RAM test ?
2. If the answer to question 1 is yes, is that test passing or failing ?


----------------------------------------------
WHAT YOU SHOULD OBSERVE
----------------------------------------------

If the BASE 16KB RAM test has executed and passed, then a few seconds after power-on, you will:
1. Hear 2 short beeps from the speaker.
2. Then observe that the PB3 (pin 21) on the 8255 chip is toggling (see 'toggling' section below) every two seconds; and
3. Then expect to see (and hear) the relay changing state every two seconds. The 'TEST6099_video_relay.mp4' video shows that.

If the BASE 16KB RAM test has executed and FAILED, then a few seconds after power-on, you will:
1. Hear a series of 8 beeps from the speaker - see the 'error beeps' section below.
2. Then observe that the PB2 (pin 20) on the 8255 chip is toggling (see 'toggling' section below) every two seconds.

If neither 8255 PB3 (pin 21) nor PB2 (pin 20) is toggling, it means that the POST did not get as far as the BASE 16K RAM test.


----------------------------------------------
ERROR BEEPS
----------------------------------------------
If the BASE 16KB RAM test has executed and FAILED, then a few seconds after power-on, you will hear a series of 8 beeps from the speaker.

Some beeps are short, some are long. Short corresponds to a 0. Long corresponds to a 1.

The eight beeps (eight 0's and 1's) make up a byte. The order of beeps is bit 7 to bit 0 (MSB to LSB).
For example, if you hear short-long-short-short-short-short-short-short, that is 01000000 binary, or 40 hex.

00 hex (00000000) = Failure of parity bit
01 hex (00000001) = Failure of bit 0
02 hex (00000010) = Failure of bit 1
04 hex (00000100) = Failure of bit 2
08 hex (00001000) = Failure of bit 3
10 hex (00010000) = Failure of bit 4
20 hex (00100000) = Failure of bit 5
40 hex (01000000) = Failure of bit 6
80 hex (10000000) = Failure of bit 7

Anything else indicates multiple bits. For example, 28 hex (00101000) indicates bits 5 and 3.

See the following link for a diagram showing the layout of RAM chips in bank 0 on the IBM 5160 motherboard:
https://minuszerodegrees.net/5150_5160/ram/5150_5160_motherboard_ram_layout.jpg


----------------------------------------------
TOGGLING
----------------------------------------------

'Toggling' can be observed by monitoring the PB2/PB3 pins via a logic probe, or via a multimeter (in 'DC voltage' mode).

If using a multimeter (instead of a logic probe):
- Put meter into 'DC voltage' mode.
- Put the negative probe on pin 7 of the 8255 (or on any ground).
- Put the positive probe on pin 20 of the 8255.

The 'TEST6099_video_multimeter.mp4' video shows what is seen if a multimeter (in 'DC voltage' mode) is used.


----------------------------------------------
HOW THIS 'TEST6099' CODE WAS CREATED BY ME
----------------------------------------------

Step 1: I obtained the BIN file for the 11/08/82 (08NOV82) revision of BIOS ROM for the IBM 5160 (IBM XT) motherboard.

Step 2: I then located the section that does the BASE 16KB RAM test. I found that by referring to the BIOS source listing in the applicable technical reference for the IBM 5150.

Step 3: I modified the BASE 16KB RAM test code.

Step 4: I altered the final byte to restore an 8-bit checksum of 00.

Step 5: I renamed the BIN file to TEST6099_TESTING_16KB.BIN


----------------------------------------------
HOW THIS 'TEST6099' CODE WAS TESTED BY ME
----------------------------------------------

Step 1: Known good IBM 5160 motherboard of type 64-256KB.
Step 2: U18 BIOS ROM swapped out for a suitable EPROM containing TEST6099_TESTING_16KB.BIN
Step 3: Powered on motherboard.
Step 4: After a few seconds, heard 2 short beeps from the speaker.
Step 5: Then, observed PB3 (pin 21) on the 8255 chip toggling. (Endless)
Step 6: Observed PB2 (pin 20) on the 8255 chip NOT toggling.
Step 7: Powered off motherboard.
Step 8: Simulated RAM failure by removing the bit 6 RAM chip from RAM bank 0.
Step 9: Powered on motherboard.
Step 10: After a few seconds, from the speaker, heard the bit error pattern of short-long-short-short-short-short-short-short (01000000).
Step 11: Then, observed PB2 (pin 20) on the 8255 chip toggling. (Endless)
Step 12: Observed PB3 (pin 21) on the 8255 chip NOT toggling.












