1. Calling 16-bit code
The vesa bios extensions for super vga cards provide a mechanism to
change which bank is mapped to the A000 memory segment. This mechanism
is provided in two ways: first through the 10h video interrupt, and
second, through a call using a far pointer. For speed reasons, I want
to use the pointer. Unfortunately I can't figure out how to interface
correctly with the 16-bit routine. I keep getting a general protection
fault when I try to call it from machine code. I know that the calling
code must have the IP < 64k so that the 16-bit ret instruction will work
correctly. I've tried using an operand override with the call
instruction but that still doesn't work. I think what I'm trying to do
is called "thunking", is there a Causeway function that will do this for
me? Can anyone help?
--
_____ _____ _____
________ /\ \ /\ \ /\ \
/ \ \ / \____\ / \____\ / \____\
/ _ \____\ / / ___/_ / /____/ / / ___/_
/ / \ |____|/ / /\____\ / \ \ / / /\____\
\ \_/ / / \ \/ / ___/_\ \ \ \ \/ / ___/_
\ /____/ \ / /\ \\/\ \ \ \ / /\ \
\ \ \ \ \/ \____\ \ \ \ \ \/ \____\
\ \ \ \ / / \ \____\ \ / /
\ \____\ \ / / \ / / \ / /
\ / / \ / / \/____/ \ / /
\/____/ \/____/xseal at harborside.com\/____/