

>>>>>>>>  TEST6077


------------------------------------
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/5160/code/IBM%205160%20-%20Some%20test%20code%20for%20U33.htm


------------------------------------
PREREQUISITE
------------------------------------

That TEST6055 and TEST6000 successfully pass.


------------------------------------
PURPOSE
------------------------------------

To gain SOME confidence that the IBM 5160 motherboard is addressing all of the U18 ROM chip okay.

If the test passes, you have that confidence.

If the test fails, do not immediately jump to the conclusion that there is an addressing problem.


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

1. A parallel (LPT) port POST code reader.
   See http://www.minuszerodegrees.net/images4/Parallel%20port%20monitoring%20POST%20board.jpg

2. A parallel (LPT) port on your computer that is at one of the following I/O addresses: 378 or 278 or 3BC

3. A way of putting TEST6076_32KB_SIZED.BIN into a suitable ROM/EPROM/EEPROM.


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

- It is a crude ROM addressing test.

- Tests between motherboard addresses F8000 and FFFFF, the address range that the BIOS ROM (socket U18) of the IBM 5160 occupies.

- Outputs progress and good/bad status to parallel (LPT) ports 378, 278, and 3BC.

- Sequence:

   1. Send 80 to LPT ports
   2. Two second delay
   3. If 80 at motherboard address F8000, send 11 to LPT ports, otherwise (ERROR) send 99 to LPT ports
   4. Two second delay

   5. Send 81 to LPT ports
   6. Two second delay
   7. If 81 at motherboard address F8100, send 11 to LPT ports, otherwise (ERROR) send 99 to LPT ports
   8. Two second delay

   9. Send 82 to LPT ports
  10. Two second delay
  11. If 82 at motherboard address F8200, send 11 to LPT ports, otherwise (ERROR) send 99 to LPT ports
  12. Two second delay

  ......
  ......
  ......

  509. Send FF to LPT ports
  510. Two second delay
  511. If FF at motherboard address FFF00, send 11 to LPT ports, otherwise (ERROR) send 99 to LPT ports
  512. Two second delay

  513. Halt the CPU


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

From start to finish, the test takes about 8 and a half minutes (@ 4.77 MHz).

If you are using the aforementioned reader (has two 14-segment displays, with the right one showing the last byte received):

Expect to see the following sequence (with about 2 seconds between changes in display):

   [xx][80]  Ignore this
   [80][11]  Good: 80 then 11   (would be [80][99] if error)
   [11][81]  Ignore this
   [81][11]  Good: 81 then 11   (would be [81][99] if error)
   [11][82]  Ignore this
   [82][11]  Good: 82 then 11   (would be [82][99] if error)
   [11][83]  Ignore this
   [83][11]  Good: 83 then 11   (would be [83][99] if error)
   [11][84]  Ignore this
   [84][11]  Good: 84 then 11   (would be [84][99] if error)
   [11][85]  Ignore this
   [85][11]  Good: 85 then 11   (would be [85][99] if error)
   [11][86]  Ignore this
   [86][11]  Good: 86 then 11   (would be [86][99] if error)
   [11][87]  Ignore this
   [87][11]  Good: 87 then 11   (would be [87][99] if error)
   [11][88]  Ignore this
   [88][11]  Good: 88 then 11   (would be [88][99] if error)
   [11][89]  Ignore this
   [89][11]  Good: 89 then 11   (would be [89][99] if error)
   [11][8A]  Ignore this
   [8A][11]  Good: 8A then 11   (would be [8A][99] if error)
   [11][8B]  Ignore this
   [8B][11]  Good: 8B then 11   (would be [8B][99] if error)
   [11][8C]  Ignore this
   [8C][11]  Good: 8C then 11   (would be [8C][99] if error)
   [11][8D]  Ignore this
   [8D][11]  Good: 8D then 11   (would be [8D][99] if error)
   [11][8E]  Ignore this
   [8E][11]  Good: 8E then 11   (would be [8E][99] if error)
   [11][8F]  Ignore this
   [8F][11]  Good: 8F then 11   (would be [8F][99] if error)

   [90][11]  Good: 90 then 11   (would be [90][99] if error)
   [11][91]  Ignore this
   [91][11]  Good: 91 then 11   (would be [91][99] if error)
   [11][92]  Ignore this
   [92][11]  Good: 92 then 11   (would be [92][99] if error)
   [11][93]  Ignore this
   [93][11]  Good: 93 then 11   (would be [93][99] if error)
   [11][94]  Ignore this
   [94][11]  Good: 94 then 11   (would be [94][99] if error)
   [11][95]  Ignore this
   [95][11]  Good: 95 then 11   (would be [95][99] if error)
   [11][96]  Ignore this
   [96][11]  Good: 96 then 11   (would be [96][99] if error)
   [11][97]  Ignore this
   [97][11]  Good: 97 then 11   (would be [97][99] if error)
   [11][98]  Ignore this
   [98][11]  Good: 98 then 11   (would be [98][99] if error)
   [11][99]  Ignore this
   [99][11]  Good: 99 then 11   (would be [99][99] if error)
   [11][9A]  Ignore this
   [9A][11]  Good: 9A then 11   (would be [9A][99] if error)
   [11][9B]  Ignore this
   [9B][11]  Good: 9B then 11   (would be [9B][99] if error)
   [11][9C]  Ignore this
   [9C][11]  Good: 9C then 11   (would be [9C][99] if error)
   [11][9D]  Ignore this
   [9D][11]  Good: 9D then 11   (would be [9D][99] if error)
   [11][9E]  Ignore this
   [9E][11]  Good: 9E then 11   (would be [9E][99] if error)
   [11][9F]  Ignore this
   [9F][11]  Good: 9F then 11   (would be [9F][99] if error)

   [A0][11]  Good: A0 then 11   (would be [A0][99] if error)
   [11][A1]  Ignore this
   [A1][11]  Good: A1 then 11   (would be [A1][99] if error)
   [11][A2]  Ignore this
   [A2][11]  Good: A2 then 11   (would be [A2][99] if error)
   [11][A3]  Ignore this
   [A3][11]  Good: A3 then 11   (would be [A3][99] if error)
   [11][A4]  Ignore this
   [A4][11]  Good: A4 then 11   (would be [A4][99] if error)
   [11][A5]  Ignore this
   [A5][11]  Good: A5 then 11   (would be [A5][99] if error)
   [11][A6]  Ignore this
   [A6][11]  Good: A6 then 11   (would be [A6][99] if error)
   [11][A7]  Ignore this
   [A7][11]  Good: A7 then 11   (would be [A7][99] if error)
   [11][A8]  Ignore this
   [A8][11]  Good: A8 then 11   (would be [A8][99] if error)
   [11][A9]  Ignore this
   [A9][11]  Good: A9 then 11   (would be [A9][99] if error)
   [11][AA]  Ignore this
   [AA][11]  Good: AA then 11   (would be [AA][99] if error)
   [11][AB]  Ignore this
   [AB][11]  Good: AB then 11   (would be [AB][99] if error)
   [11][AC]  Ignore this
   [AC][11]  Good: AC then 11   (would be [AC][99] if error)
   [11][AD]  Ignore this
   [AD][11]  Good: AD then 11   (would be [AD][99] if error)
   [11][AE]  Ignore this
   [AE][11]  Good: AE then 11   (would be [AE][99] if error)
   [11][AF]  Ignore this
   [AF][11]  Good: AF then 11   (would be [AF][99] if error)

   [B0][11]  Good: B0 then 11   (would be [B0][99] if error)
   [11][B1]  Ignore this
   [B1][11]  Good: B1 then 11   (would be [B1][99] if error)
   [11][B2]  Ignore this
   [B2][11]  Good: B2 then 11   (would be [B2][99] if error)
   [11][B3]  Ignore this
   [B3][11]  Good: B3 then 11   (would be [B3][99] if error)
   [11][B4]  Ignore this
   [B4][11]  Good: B4 then 11   (would be [B4][99] if error)
   [11][B5]  Ignore this
   [B5][11]  Good: B5 then 11   (would be [B5][99] if error)
   [11][B6]  Ignore this
   [B6][11]  Good: B6 then 11   (would be [B6][99] if error)
   [11][B7]  Ignore this
   [B7][11]  Good: B7 then 11   (would be [B7][99] if error)
   [11][B8]  Ignore this
   [B8][11]  Good: B8 then 11   (would be [B8][99] if error)
   [11][B9]  Ignore this
   [B9][11]  Good: B9 then 11   (would be [B9][99] if error)
   [11][BA]  Ignore this
   [BA][11]  Good: BA then 11   (would be [BA][99] if error)
   [11][BB]  Ignore this
   [BB][11]  Good: BB then 11   (would be [BB][99] if error)
   [11][BC]  Ignore this
   [BC][11]  Good: BC then 11   (would be [BC][99] if error)
   [11][BD]  Ignore this
   [BD][11]  Good: BD then 11   (would be [BD][99] if error)
   [11][BE]  Ignore this
   [BE][11]  Good: BE then 11   (would be [BE][99] if error)
   [11][BF]  Ignore this
   [BF][11]  Good: BF then 11   (would be [BF][99] if error)

   [C0][11]  Good: C0 then 11   (would be [C0][99] if error)
   [11][C1]  Ignore this
   [C1][11]  Good: C1 then 11   (would be [C1][99] if error)
   [11][C2]  Ignore this
   [C2][11]  Good: C2 then 11   (would be [C2][99] if error)
   [11][C3]  Ignore this
   [C3][11]  Good: C3 then 11   (would be [C3][99] if error)
   [11][C4]  Ignore this
   [C4][11]  Good: C4 then 11   (would be [C4][99] if error)
   [11][C5]  Ignore this
   [C5][11]  Good: C5 then 11   (would be [C5][99] if error)
   [11][C6]  Ignore this
   [C6][11]  Good: C6 then 11   (would be [C6][99] if error)
   [11][C7]  Ignore this
   [C7][11]  Good: C7 then 11   (would be [C7][99] if error)
   [11][C8]  Ignore this
   [C8][11]  Good: C8 then 11   (would be [C8][99] if error)
   [11][C9]  Ignore this
   [C9][11]  Good: C9 then 11   (would be [C9][99] if error)
   [11][CA]  Ignore this
   [CA][11]  Good: CA then 11   (would be [CA][99] if error)
   [11][CB]  Ignore this
   [CB][11]  Good: CB then 11   (would be [CB][99] if error)
   [11][CC]  Ignore this
   [CC][11]  Good: CC then 11   (would be [CC][99] if error)
   [11][CD]  Ignore this
   [CD][11]  Good: CD then 11   (would be [CD][99] if error)
   [11][CE]  Ignore this
   [CE][11]  Good: CE then 11   (would be [CE][99] if error)
   [11][CF]  Ignore this
   [CF][11]  Good: CF then 11   (would be [CF][99] if error)

   [D0][11]  Good: D0 then 11   (would be [D0][99] if error)
   [11][D1]  Ignore this
   [D1][11]  Good: D1 then 11   (would be [D1][99] if error)
   [11][D2]  Ignore this
   [D2][11]  Good: D2 then 11   (would be [D2][99] if error)
   [11][D3]  Ignore this
   [D3][11]  Good: D3 then 11   (would be [D3][99] if error)
   [11][D4]  Ignore this
   [D4][11]  Good: D4 then 11   (would be [D4][99] if error)
   [11][D5]  Ignore this
   [D5][11]  Good: D5 then 11   (would be [D5][99] if error)
   [11][D6]  Ignore this
   [D6][11]  Good: D6 then 11   (would be [D6][99] if error)
   [11][D7]  Ignore this
   [D7][11]  Good: D7 then 11   (would be [D7][99] if error)
   [11][D8]  Ignore this
   [D8][11]  Good: D8 then 11   (would be [D8][99] if error)
   [11][D9]  Ignore this
   [D9][11]  Good: D9 then 11   (would be [D9][99] if error)
   [11][DA]  Ignore this
   [DA][11]  Good: DA then 11   (would be [DA][99] if error)
   [11][DB]  Ignore this
   [DB][11]  Good: DB then 11   (would be [DB][99] if error)
   [11][DC]  Ignore this
   [DC][11]  Good: DC then 11   (would be [DC][99] if error)
   [11][DD]  Ignore this
   [DD][11]  Good: DD then 11   (would be [DD][99] if error)
   [11][DE]  Ignore this
   [DE][11]  Good: DE then 11   (would be [DE][99] if error)
   [11][DF]  Ignore this
   [DF][11]  Good: DF then 11   (would be [DF][99] if error)

   [E0][11]  Good: E0 then 11   (would be [E0][99] if error)
   [11][E1]  Ignore this
   [E1][11]  Good: E1 then 11   (would be [E1][99] if error)
   [11][E2]  Ignore this
   [E2][11]  Good: E2 then 11   (would be [E2][99] if error)
   [11][E3]  Ignore this
   [E3][11]  Good: E3 then 11   (would be [E3][99] if error)
   [11][E4]  Ignore this
   [E4][11]  Good: E4 then 11   (would be [E4][99] if error)
   [11][E5]  Ignore this
   [E5][11]  Good: E5 then 11   (would be [E5][99] if error)
   [11][E6]  Ignore this
   [E6][11]  Good: E6 then 11   (would be [E6][99] if error)
   [11][E7]  Ignore this
   [E7][11]  Good: E7 then 11   (would be [E7][99] if error)
   [11][E8]  Ignore this
   [E8][11]  Good: E8 then 11   (would be [E8][99] if error)
   [11][E9]  Ignore this
   [E9][11]  Good: E9 then 11   (would be [E9][99] if error)
   [11][EA]  Ignore this
   [EA][11]  Good: EA then 11   (would be [EA][99] if error)
   [11][EB]  Ignore this
   [EB][11]  Good: EB then 11   (would be [EB][99] if error)
   [11][EC]  Ignore this
   [EC][11]  Good: EC then 11   (would be [EC][99] if error)
   [11][ED]  Ignore this
   [ED][11]  Good: ED then 11   (would be [ED][99] if error)
   [11][EE]  Ignore this
   [EE][11]  Good: EE then 11   (would be [EE][99] if error)
   [11][EF]  Ignore this
   [EF][11]  Good: EF then 11   (would be [EF][99] if error)

   [11][F0]  Ignore this
   [F0][11]  Good: F0 then 11   (would be [F0][99] if error)
   [11][F1]  Ignore this
   [F1][11]  Good: F1 then 11   (would be [F1][99] if error)
   [11][F2]  Ignore this
   [F2][11]  Good: F2 then 11   (would be [F2][99] if error)
   [11][F3]  Ignore this
   [F3][11]  Good: F3 then 11   (would be [F3][99] if error)
   [11][F4]  Ignore this
   [F4][11]  Good: F4 then 11   (would be [F4][99] if error)
   [11][F5]  Ignore this
   [F5][11]  Good: F5 then 11   (would be [F5][99] if error)
   [11][F6]  Ignore this
   [F6][11]  Good: F6 then 11   (would be [F6][99] if error)
   [11][F7]  Ignore this
   [F7][11]  Good: F7 then 11   (would be [F7][99] if error)
   [11][F8]  Ignore this
   [F8][11]  Good: F8 then 11   (would be [F8][99] if error)
   [11][F9]  Ignore this
   [F9][11]  Good: F9 then 11   (would be [F9][99] if error)
   [11][FA]  Ignore this
   [FA][11]  Good: FA then 11   (would be [FA][99] if error)
   [11][FB]  Ignore this
   [FB][11]  Good: FB then 11   (would be [FB][99] if error)
   [11][FC]  Ignore this
   [FC][11]  Good: FC then 11   (would be [FC][99] if error)
   [11][FD]  Ignore this
   [FD][11]  Good: FD then 11   (would be [FD][99] if error)
   [11][FE]  Ignore this
   [FE][11]  Good: FE then 11   (would be [FE][99] if error)
   [11][FF]  Ignore this
   [FF][11]  Good: FF then 11   (would be [FF][99] if error)





