On Thu, 28 Feb 2013, Chris Tofu wrote:
I would have guessed extension roms contain raw
independent code.
Largely just writing values to port addtesses
I would have guessed that the extension ROMs look just like a different
INT10h. Possibly passing some calls through to the old routines.
Possibly providing storage for a few other variables.
BUT REPLACING INT10h with a different INT10h, with similar calling
structure, to keep full compatability with most software.
As such, the extension ROMs would contain the replacement INT10h, plus
code that gets called once (at boot) to repoint the 10h entry of the IVT
to the replacement. That code is basically the same as what is in most
TSR loaders, and for the interrupt handler itself, look at the source code
for INT10h, and ask "what should be different to support the other modes,
etc.?"
THEN, assume that that would make sense, so scrap it and write something
else as incompatible as possible.