Date: Fri, 28 Mar 2008 00:33:20 -0500
From: Jim Leonard
I have a BIOS listing of the PCjr (techref is in front
of me); I will look
at the listing to see if I can see obvious places where this would result
in a savings. Thanks for the discussion and history.
I first noticed this when I first looked at the PC AT techref. "Why
the heck did they code (fill in a routine name) in two pieces like
that?" I asked myself. After I grabbled the PC 5150 techref it was
obvious.
Later, when I got the Phoenix BIOS books, routine locations were
called out specifically in the literature, so I wasn't dreaming.
I can well imagine that it's useful to some code to know the
locations of entry points and ISRs. There was initially no standard
convention for "hooking" interrupt vectors, so knowing where the
default one was might be useful. I can think of at least one
instance where that might be useful--reverse-engineering protection.
Calling the ROM BIOS directly precludes a snoopy programmer from just
hooking the INT 13H vector and logging a program's disk activity.
When I was unraveling copy protection from some of the original PC
games, I found having my own custom-hacked BIOS ROMs for such stuff
very handy indeed.
I do know that the convention continued into the PS/2 line--and, a
spot check on the system I've got in front of me (an HP P4-equipped
model) shows that the INT 10h vector still points to F000:F065; INT
16h points to F000:E82E--the same addresses used on the original
5150.
Cheers,
Chuck