INT 67 - Virtual Control Program InterfaceA simple API for protected-mode programs to allocate memory and switch into or out of protected mode. See also DOS Protected-Mode Interface. - SWITCH TO PROTECTED MODE AX = DE0Ch ESI = linear address in first megabyte of values for system registers (see #03665) interrupts disabled Return: interrupts disabled GDTR, IDTR, LDTR, TR loaded SS:ESP must have at least 16 bytes space, and the entry point is required to set up a new stack before enabling interrupts EAX, ESI, DS, ES, FS, GS destroyed Note: in protected mode, calling the protected-mode VCPIsee Virtual Control Program Interface entry point with AX = DE0Ch DS = segment selector mapping entire linear address space obtained via AX=DE01h SS:ESP in first megabyte of linear memory STACK:QWORD(quad-word) Eight bytes. See also DWORD, PWORD. return address from FAR call to 32-bit segment DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. EIP DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. CS DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. reserved for EFLAGS DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ESP DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. SS DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ES DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. DS DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. FS DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. GS and interrupts disabled, will switch to virtual86 mode with interrupts disabled, all segment registers loaded, and EAX destroyed. SeeAlso: AH=3Fh,INT 15/AH=89h,INT D4/AH=10h Format of system register values for switch to protected mode: Offset Size Description (Table 03665) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. value for CR3 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. linear address in first megabyte of value for GDTR 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. linear address in first megabyte of value for IDTR 0Ch WORD value for LDTR 0Eh WORD value for TR 10h PWORDSix bytes. Used to hold an 80386 protected-mode "far" address, consisting of a segment selector and a 32-bit offset, or a Turbo Pascal "real" variable. See also DWORD, QWORD. CS:EIP of protected mode entry-point