How compatible were "MS-DOS Compatible" machines?

Jim Leonard trixter at
Mon Jan 28 17:16:16 CST 2008

Fred Cisin wrote:
> DOS calls will work for ANYTHING running MS-DOS, including grossly
> incompatible machines, such as Victor 9000 (Sirius)

Since one of my requirements is manipulating the PC speaker to sound an 
arbitrary tone of arbitrary duration -- something that is not provided 
by the BIOS or MS-DOS -- should I worry about "grossly incompatible" 
machines?  For example, does the Victor 9000 even *have* a speaker (or 
8253 timer?)?

> Some minor glitches may still show up.  For example, the Corona and the PC
> CGA had different ideas what to do about the intensity attribute bit for
> reverse video.

That was also an issue with the AT&T PC 6300/Olivetti M24 if you were 
using a monochrome monitor.  It was monochrome CGA, but the monitor 
would do things like _underline_ the text based on the attribute.

> But sometimes you can work around it.  For example, Toshiba 300 will work
> with DOS and BIOS calls, but their "CGA" video memory was at B000h (the
> normal location for MDA).  But THAT was the only change needed to get
> PC-WRITE to run on them.

Is there any way to test for that?  I don't recall a BIOS call to 
determine the base segment of video memory, other than querying DOS 
(BIOS?) for the machine capabilities for either CGA or MDA...

> Even "100% compatible" machines had a few discrepancies.  For example, it
> wasn't until about 1984 that IBM documented that they used the second to
> last byte of memory for a code identifying whether a machine was PC/XT v
> PC/AT.  So, even Compaq failed that.

Whoops :)

> Any code that presupposes the presence of the BASIC ROMs will fail on

Very true.  But I'm not using any of that (indeed, is there any way to 
use the BASIC ROM for anything other than BASIC?)

> In approximately January 1982? PC-WORLD had a comparison of "compatibles".
> As expected, the version of XenoCopy that was hard coded to only work on
> the IBM PC (as part of publisher's attempt to peddle it to IBM) would only
> work on the IBM PC, and they dubbed it "the acid test".

To be fair, didn't that test only check for a string in the BASIC ROM? 
(ie. something that XenoCopy didn't actually use for functionality)

> XenoPhobe, which was a crude compatibility tester that
> is not still around

That's a shame; I'd love to run it on my various compatibles and see 
what it displays.  I'd also like to poke around the documentation (or 
source) to see what you were checking for and how.

So, bottom line -- should I not waste my time with "MS-DOS compatible" 
and just go straight for BIOS calls?  I'm leaning toward yes (all 
opinions still welcome)...
Jim Leonard (trixter at  
Help our electronic games project: 
Or check out some trippy MindCandy at
A child borne of the home computer wars:

More information about the cctech mailing list