3 ms·
> I was actually hoping that by the end of the blog post, the mystery of why the game didn't run would be cleared up, but sadly it wasn't. My best guess would
by consp 3y ago
> I was actually hoping that by the end of the blog post, the mystery of why the game didn't run would be cleared up, but sadly it wasn't.
My best guess would be something of the following: The software tries to determine if the CPU has a 80(2/3)87 device some way. Thinks it does have it and then tries a FPU instruction to get the error signal firing and getting the eventual INT02 to blow up in it's face. But I'm not limited by any actual knowledge here so this might just as well be something completely different.
- bcoates 3y agoMy guess is that the Infocom game was setting up some sort of FP emulation TSR and not cleaning it up, and BattleTech was coincidentally using it. Or whatever the equivalent of a windows 3.x VxD is for OS/2, if that exists. Or just otherwise messing with the interrupt tables involved in the arcane x87 protocol in a way that un-breaks things. Also it looks like there may be some issues with FP/FP emulation on the OS/2 DOS extender host: https://www.os2museum.com/wp/floating-point-exceptions-and-dos-extenders/ https://www.os2museum.com/wp/floating-point-exceptions-and-d...
- consp 3y agoThat sounds quite more plausible than my idea. FP emulation is always interesting if performed by multiple programs/companies messing with each other's implementation. Lots of fun with layers of interrupts, real/virtual/protected mode switches and all the other magic the original 87 was not designed for.
- mst 3y ago"I'm not limited by any actual knowledge here" is an excellent way of putting it and I shall endeavour to remember it next time I'm in such a situation. Poor though my memory is, it happens often enough that I have a decent chance.