IBM 5160 and 3270 PC bring-up
After Byte Hamr I wanted an IBM to poke at the same way. I use my machines. There’s no nostalgia in it and these aren’t museum pieces. After a few months of looking I ended up with two: an IBM 5160 in a 5150 case and an IBM 5271, the 3270 PC, with an Intel Inboard 386 in it. Both came out of Tektronix and had been in storage since the 1990s, and as far as anyone knows had not been booted in decades. This page covers getting both of them to boot DOS from their hard drives. I didn’t keep a calendar during the work, so the log dates after the pickup are approximate and I put them on weekends.
Current state
As of 2026-10-27: Both machines boot from floppy and from their ST-251 hard drives, running DOS 5. The 5160 runs an EGA card in CGA mode on the IBM 5153. The 5271 runs a VGA card with the Inboard 386 active and an A80387DX-25 on it, which passes Intel’s MCPDIAG. Intel’s iNBRDPC.SYS 1.1 driver loads from CONFIG.SYS with NOPAUSE. It tests the extended memory at every boot, reports 640k conventional and 256k extended with 0k bad, and runs the system BIOS from 32-bit RAM. The 5271 talks to the Mac over Kermit on COM1 at 115200, with a window of 1 and 4000-byte packets, and has Turbo C 2.0, Turbo Debugger 1.0 and MASM 6.00 installed. The 5271 prints ERROR at boot with no code, and boots fine after. Both Model F keyboards are refurbished and in daily use. The 3270 side of the 5271 is untouched. I’m running it as a plain XT.
The 5160 has an XT-IDE rev 4 in it now, with a 32 MB CF card as D:. The boot ROM is XTIDE Universal BIOS r638 on an AT28C64B at D000h, the ide_xtp.bin build for the V20. Card is in hi-speed mode with the IDE port at 300h. The ST-251 is still C:.
The 5160 also has an Intel D8087-2 now, with SW1 switch 2 off. FINIT and FLDPI tests typed into DEBUG give the right status word and the right bytes for pi.
Architecture
Two XT-class machines. The 5160 has a NEC V20 and an Intel 8087 on a 256-640K board. The 5271 has a stock 8088 on a 64-256K board plus the Inboard 386 in a slot, which takes over the CPU function. Each has its own MFM controller card driving a Seagate ST-251. Video is an EGA card in CGA mode on the 5160 and VGA on the 5271.
Hardware
IBM 5160: 5150 badge and cover, 5160 internals, motherboard revision B1N22, NEC V20, Intel D8087-2. Tandon TM100-2 full-height 5.25 inch floppy. A half-height 3.5 inch drive came with it and is pulled and untested. One I/O card I haven’t identified yet. IBM 130 W PSU with a new RIFA cap and a new large ceramic cap. XT-IDE rev 4 with a CF to IDE adapter and a 32 MB CF card.
IBM 5271: 64-256K motherboard, Intel 8088, Intel Inboard 386/PC with 1 MB on board and an Intel A80387DX-25 math coprocessor on it. Tandon TM100-2 full-height 5.25 inch floppy. Seagate ST-251 on a Western Digital WD1002A-WX1. VGA card with an AMI VGA BIOS, a serial card at COM1, the floppy controller. IBM 130 W PSU, inspected, original caps. None of the 3270 hardware is installed, so the machine runs as a plain XT with an accelerator in it.
Shared: IBM 5153 CGA monitor, two IBM Model F 83-key XT keyboards, one 122-key 3270 keyboard, four ST-251 40 MB MFM drives of which two work, a few 8-bit EGA cards (BCCA, Paradise Basic EGA, Everex EV-657), and the 3270 cards that came with the 5271 and are currently out of it: the IBM 6320984 display adapter and what I think is the host connect card.
Tools: a DMM and a Siglent SDS1204X-E scope. An FTDI USB serial adapter on the Mac for Kermit to the 5271.
Gateware and firmware
Open problems
- The 5271 says ERROR at boot with no code. It boots anyway.
- Inboard 386: the iNBRDPC.SYS driver runs, but the rest of Intel’s Installation and Utility Diskette (ISTATPC, ICACHE, iLIM386.SYS) hasn’t turned up.
- The serial card in the 5271 drops received bytes at 115200 unless Kermit sends one packet at a time. I don’t know which UART is on it yet, or whether it’s socketed for a 16550A.
- The 3270 keyboard controller card (IBM 61X6609 or 1503893) is missing, so the 122-key keyboard and the 3270 display adapter do nothing yet, and the display adapter needs a 5151 or 5272 monitor I don’t have.
- Two of the four ST-251s are dead.
- The floppy alignment was done with a hand-assembled loop in DEBUG and the scope. I wrote a spec for a DOS tool that holds a track, checks the recorded cylinder with the FDC Read ID command, and sweeps every track for read reliability. Unbuilt, planned.
- Identify the I/O card in the 5160.
- The XT-IDE rev 4 has not been back in the 5271 since it started working in the 5160. With ide_386.bin in it, the 5271 read the card’s own option ROM back with 33 of 64 bytes wrong, and a different 33 on each dump. Cold the checksum failed and the BIOS skipped the ROM, so DOS booted normally. Warm the checksum passed, the code ran, and the machine froze. Nothing on the Inboard itself has been measured. The machine and the ROM build both changed when the card moved, so I don’t know which one was at fault.
- Decide what the 5271 is for: chase the Inboard properly with a scope on the bus, or pull it and restore the machine to a 3270.
- XTIDECFG writes 0x1FFD = 1A and 0x1FFE = E6 into the saved image. They cancel each other out in the checksum and I don’t know what they are for.
Links
John Elliott’s 5271 page: http://www.seasip.info/VintagePC/5271.html
Tandon TM100 alignment procedure: https://www.classic-computers.org.nz/blog/2010-06-28-alignment-tandon-m100.htm
WD1002A-WX1 documentation: https://theretroweb.com/expansioncard/documentation/wd1002a-wx1-66be2495576bf476868117.pdf
XTIDE Universal BIOS: https://www.xtideuniversalbios.org/
minuszerodegrees XUB mirror, all versions: https://minuszerodegrees.net/xtide/XUB/XUB%20versions.htm
XT-IDE rev 4 jumper and switch tables: https://www.minuszerodegrees.net/xtide/rev_4/XT-IDE%20Rev%204%20-%20general.htm