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
EVERYTHING except IBM.
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
oldskool.org)
http://www.oldskool.org/
Help our electronic games project:
http://www.mobygames.com/
Or check out some trippy MindCandy at
http://www.mindcandydvd.com/
A child borne of the home computer wars:
http://trixter.wordpress.com/