1. Calling 16-bit code
- Posted by Pete <xseal at HARBORSIDE.COM> Jan 18, 1998
- 552 views
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\/____/