When calling this function, the user should be aware that: 1) the BIOS functions are not
available, 2) the interrupt tables must be moved to avoid conflict with the 80286 interrupt
vectors, 3) the user loaded descriptor tables must not overlap with the BIOS's descriptor tables
and 4) because of the system's second (HP) 8259 slave controller, both the master 8259 and the
HP slave must be reprogrammed by the user on entry to protected mode.
Upon return from protected mode the system BIOS will return control to the return point
specified at 40H:67H. The user should recover the stack and continue.
There are a few points of caution that should be observed:
1. Any code which is expected to run mixed mode, that is both protected mode and real
mode, must not make any far references, including far calls.
2. Also, any return addresses put on the stack must have been generated in the same mode in
which the return code executes, or else they must be near returns.
3. The system address line A20 must be forced to
a
when the system is operating in real
mode. This task is performed by the 8041 controller. When the system enters protected
mode, A20 must be released, and when it enters real mode it must be forced to 0 again. It
is the program's responsibility to issue the appropriate command to the 8041 controller
before changing modes (see Section 5).
On Entry:
AH
=
F15_ENTELPROT (89H)
BH
=
Offset into interrupt table where interrupts coming from the Master 8259 will
go (I nterru pt level 1).
BL
=
Offset into interrupt table where interrupts coming from the industry standard
(STD) slave 8259 will go (Interrupt level 2).
ES:SI
=
Pointer to a set of descriptor tables. The following descriptors must be passed
by the calling routine: Dummy Descriptor (DUMMY), Global Descriptor Table
(GDD, Interrupt Descriptor Table (lDD, Data Segment Descriptor Table (DS),
Extra Segment Descriptor Table (ES), Stack Segment Descriptor Table (55),
Code Segment Descriptor Table (CS) and BIOS Descriptor Table (BIOS).
On Exit:
AH
=
0, If successfully entered Protected Mode.
Registers Altered:
All.
Example: To enter protected mode and start executing the routine PROTECTED.
,
,. Load up descriptor tables with appropriate values. See the
,. iAPX 286 Programmer's Reference Manual for details.
System Drivers
281
Need help?
Do you have a question about the Vectra and is the answer not in the manual?