5

I'd like to use the XT-IDE Universal BIOS with an IBM XT 286 (5162), but it's known to be incompatible. With the card installed, it will not boot from a floppy from which it would otherwise boot (it starts to, but then glitches out).

I plan to try third-party system BIOSes to see if that might fix it, but while I wait for EEPROMs to show up, I thought it might be worthwhile to see if I can fix whatever incompatibility there is directly. The source code seems unmaintained, though I did try flashing the latest version just in case (it has the same problem).

I'm a professional programmer by day with quite a lot of experience at low-level programming, but no experience with my new (to me) IBM or computers of its era. If I wanted to debug this problem, how might I start?

  • 1
    XT-IDE BIOS author started troubleshooting that, btw -- <vcfed.org/forum/… . The problem manifests as "It initially appears to work, but reads are randomly corrupted. Later revisions of the 5170 BIOS reduce the corruption, but it's still there. " (from same thread) – sendmoreinfo Dec 25 '17 at 19:15
  • 1
    From above thread, at least one person who got XT-IDE working on a 5162 describes the process: vcfed.org/forum/… – Brian H Dec 28 '17 at 16:43
  • Yeah, I saw that and tried it. Doesn't work for me, for whatever reason. :'( I replied to the thread about it. – Sydius Dec 28 '17 at 19:43
4

Depending on your skill level and the hardware you have access to, there are a few possible approaches I can think of:

  • you could read the code for the various BIOSs involved and try to figure out the incompatibility that way
  • you could use an in-circuit emulator to debug the problem
  • you could use a bus sniffer such as reenigne’s to trace the system booting

As you can imagine, none of these are simple...

1

I suppose what I would try is moving all the involved ROMs to RAM (a simple byte-copy routine can handle this), but then you would need to search for absolute jumps and retarget them to whatever RAM region you copied to.

Then, write a program that soft-boots the machine (either invoke the appropriate interrupt, or simulate what the CPU does at startup), then run this program under a debugger that lets you single-step through code. (this is why you needed to copy the ROM to RAM, so that you can set breakpoints).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.