Index for interrupt INT 2C
Table of Contents by Order
2C - INT 2C - DOS 2+ - RESERVED
2C - INT 2C - STARLITE architecture - KERNEL API
2C - INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN
2C0000 - INT 2C P - Cloaking - ALLOCATE GDT SELECTOR
2C0001 - INT 2C P - Cloaking - FREE GDT SELECTOR
2C0002 - INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS
2C0003 - INT 2C P - Cloaking - SET SEGMENT LIMIT
2C0004 - INT 2C P - Cloaking - SET SEGMENT ACCESS MODE
2C0005 - INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE
2C0006 - INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR
2C0007 - INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR
2C0008 - INT 2C P - Cloaking - GET PASSALONG ADDRESS
2C0009 - INT 2C P - Cloaking - SET PASSALONG ADDRESS
2C000A - INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR
2C000B - INT 2C P - Cloaking - GET SELECTOR LIMIT
2C - INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS
2C000F - INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event"
2C0011 - INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back"
2C0012 - INT 2C P - Cloaking v1.01 - "Query_Current_VM"
2C0013 - INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message"
2C001D - INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT
2C001E - INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION
2C001F - INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION
2C0020 - INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE
2C0021 - INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE
2C0022 - INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE
2C0023 - INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL
2C0024 - INT 2C P - Cloaking - SET V86-MODE STACK
2C0025 - INT 2C P - Cloaking - CALL V86-MODE PROCEDURE
2C0026 - INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER
2C0027 - INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER
2C0028 - INT 2C P - Cloaking - GET ESP0 FROM TSS
2C0029 - INT 2C P - Cloaking - SET SECONDARY STACK
2C002A - INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS
2C002BCH81 - INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES
2C002C - INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG
2C002D - INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG
2C002E - INT 2C P - Cloaking - TRAP I/O PORT
2C002F - INT 2C PU - Cloaking - UNTRAP I/O PORT
2C0030 - INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT
2C0031 - INT 2C PU - RM386 v6.00 - BUG
2C0031 - INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK
2C0032 - INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK
2C0033 - INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT
2C0034 - INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT
INT 2C - DOS 2+ - RESERVED Note: this vector is not used in DOS versions <= 6.00, and points at an IRETTop
INT 2C - STARLITE architecture - KERNEL API Note: STARLITE is an architecture by General Software for a series of MS-DOS compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to be released in 1991. The interrupt number is subject to change before the actual release.Top
INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN Notes: when this interrupt is invoked in V86 mode, RM386 will invoke the first in a chain of protected-mode handlers, and will only pass execution to the V86-mode INT 2C handler if none of the handlers in the passalong chain handle the call instead. This is the method by which the real-mode stub of a cloaked application communicates with the protected-mode portion. the cloaking host calls the passalong chain with EAX=58494E33h ('WIN3') when MS Windows starts up and with EAX=334E4958h ('3NIW') when Windows shuts down; between these two broadcasts, the additional Windows-only Cloaking services are available this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's Netroom SeeAlso: INT 2C/AX=0009h,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking - ALLOCATE GDT SELECTOR AX = 0000h EBX = base address CL = access mode byte CH = extended access mode byte (omit limit field) EDX = segment limit Return: CF clear if successful AX = selector CF set on error AX = error code (see #02556) Notes: this INT 2C interface is used by Netroom's DPMI.EXE v3.00 to access extended memory, set the base address to the desired physical address plus 400000h (4M) this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's Netroom SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0004h,AX=0005h,INT 31/AH=57h,#00501 (Table 02556) Values for Cloaking error code: 0001h no more selectors 0002h not a GDT ring 0 selector 0003h invalid selector (out of range, not user selector) 0004h selector not allocatedTop
INT 2C P - Cloaking - FREE GDT SELECTOR AX = 0001h SI = selector Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS AX = 0002h SI = selector EBX = new physical base addres Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 31/AX=0007h,#00501Top
INT 2C P - Cloaking - SET SEGMENT LIMIT AX = 0003h SI = selector EBX = new limit Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 31/AX=0008hTop
INT 2C P - Cloaking - SET SEGMENT ACCESS MODE AX = 0004h SI = selector CL = new access mode byte (see #00502) Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0005h,INT 31/AX=0009hTop
INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE AX = 0005h SI = selector CL = new extended access mode byte (limit field ignored) (see #02557) Return: CF clear if successful CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0004h,INT 31/AX=0009h Bitfields for extended access mode byte: Bit(s) Description (Table 02557) 7 4K granularity instead of byte granularity 6 32-bit code segment 5 reserved (0) 4 segment available to system SeeAlso: #00505Top
INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR AX = 0006h CL = vector (00h-7Fh) Return: CF clear DX:EBX -> current interrupt handler Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0007h,INT 31/AX=0204hTop
INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR AX = 0007h CL = vector (00h-7Fh) DX:EBX -> interrupt handler Return: CF clear Notes: this function was first introduced with RM386 (RAM-MAN/386) v6.00 the IDT entry's type remains unchanged SeeAlso: AX=0006h,INT 31/AX=0205hTop
INT 2C P - Cloaking - GET PASSALONG ADDRESS AX = 0008h Return: CF clear DX:EBX = current passalong address Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0009h,AX=002Ch,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking - SET PASSALONG ADDRESS AX = 0009h DX:EBX = new value for passalong address (see #02558) Return: CF clear Notes: when an INT 2C instruction is executed in V86 mode, the Cloaking host calls the passalong address. The handler should check whether the upcall is of interest to it, and if not it should jump to the old passalong address (retrieved with AX=0008h before the handler was installed). The final handler should return with CF clear to cause the interrupt to be reflected back to V86 mode if none of the passalong handlers is triggered this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0008h,AX=002Dh,INT 2C"PASSALONG CHAIN" (Table 02558) Values Cloaking passalong address is called with: EAX = CS:IP of byte following INT 2C instruction invoking passalong SS:EBX -> caller registers (see #02559) CF clear others undefined Return: CF clear: pass along to V86-mode INT 2C handler CF set: return immediately to V86 mode Format of Cloaking caller registers: Offset Size Description (Table 02559) 00h DWORD EDI 04h DWORD ESI 08h DWORD EBP 0Ch DWORD reserved (ESP from PUSHAD instruction) 10h DWORD EBX 14h DWORD EDX 18h DWORD ECX 1Ch DWORD EAX 20h DWORD error code 24h DWORD EIP 28h WORD CS 2Ah WORD padding 2Ch DWORD EFLAGS 30h DWORD ESP 34h WORD SS 36h WORD padding --remainder not available if protected-mode ring3 trap--- 38h WORD ES 3Ah WORD padding 3Ch WORD DS 3Eh WORD padding 40h WORD FS 42h WORD padding 44h WORD GS 46h WORD paddingTop
INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR AX = 000Ah SI = selector Return: CF clear if successful EBX = segment base address CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's Netroom SeeAlso: AX=0000h,AX=0002h,AX=000BhTop
INT 2C P - Cloaking - GET SELECTOR LIMIT AX = 000Bh SI = selector Return: CF clear if successful EBX = segment base address CF set on error AX = error code (see #02556) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=000Ah,INT 2F/AX=4310h"Cloaking"Top
INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS AX = function (000Ch-001Fh)Top
INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event" AX = 000Fh ECX = event code (see #02560) DX = subfunction for event EDX high word = boost value (see #02561) SI:EDI -> completion procedure Return: CF clear if successful (event scheduled) CF set on error Note: this function is only available while MS Windows is running SeeAlso: AX=0011h,AX=0012h,INT 2F/AX=1605h,INT 2F/AX=4310h"Cloaking" (Table 02560) Values for Cloaking shell event code: 0414h Hot key event subevent 0000h: Alt-Space subevent 0001h: Alt-Enter subevent 0002h: Dir-VM 0415h Switch context subevent 0000h for DOS VM context, nonzero for System VM context 0416h Clipboard event 0417h Termination event subevent 0000h for normal termination, nonzero for error 0418h Display message subevent 0000h for normal message, nonzero for system model ASAP 0419h Crash 041Ah Paste complete subevent 0000h: normal subevent 0001h: cancelled by user subevent 0002h: cancelled 041Bh Contention event 041Ch Screen switch subevent 0000h: forward subevent 0001h: back 041Dh Filesystem change 041Eh Check Focus 041Fh Panic Bitfields for boost value: Bit(s) Description (Table 02561) 0 boost system VM until focus changes 1 boost system VM on Switcher screen 2 boost system VM until response 3 boost system VM during clipboard activity 4 boost system VM during print screen 5 boost system VM during updateTop
INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back" AX = 0011h EBX = handle of VM to be made active SI:EDI -> 32-bit FAR completion procedure Return: CF clear if successful (scheduled) CF set on error Notes: this function is only available while MS Windows is running the completion procedure is called with CF clear if the specified VM has been made active, or with CF set on error SeeAlso: AX=000Fh,AX=0012hTop
INT 2C P - Cloaking v1.01 - "Query_Current_VM" AX = 0012h Return: CF clear EBX = handle of active VM ESI = handle of system VM ECX = VM status flags (see #02562) EDX = shell flags (see #02563) Note: this function is only available while MS Windows is running in enhanced mode SeeAlso: AX=000Fh,AX=0011h,AX=0013h Bitfields for VM status flags: Bit(s) Description (Table 02562) 0 in exclusive mode 1 runs in background 2 being created 3 suspended 4 not executable 5 executing in protected mode 6 contains PM application 7 32-bit PM application 8 called from VxD 9 high priority background 10 blocked on semaphore 11 awakening 12 has pageable V86 13 has locked V86 14 is scheduled 15 idle 16 closing Bitfields for shell flags: Bit(s) Description (Table 02563) 2 windowed 5 Alt-Tab reserved 6 Alt-Esc reserved 7 Alt-Space reserved 8 Alt-PrtSc reserved 9 Alt-Enter reserved 10 Alt-PrtSc reserved 11 PrtSc reserved 12 polling enabled 13 no HMA 14 has shortcut key 15 locked EMS handles 16 locked XMS handles 17 fast paste enabled 18 locked V86 memory 30 close-on-exit enabledTop
INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message" AX = 0013h EDX = message box flags (see #02564) DS:ECX -> ASCIZ message text DS:EDI -> ASCIZ caption Return: CF clear EAX = response code Note: this function is only available while MS Windows is running in enhanced mode SeeAlso: AX=000Fh,AX=0012h Bitfields for message box flags: Bit(s) Description (Table 02564) 3-0 response codes (see #02565) 7-4 icon codes 1 = Warning hand 2 = exclamation mark 4 = asterisk 9-8 default response (0 = first button, 1 = second, 2 = third) 12 message is system model 15 don't change focus 29 hang with interrupts enabled 30 do not window 31 execute ASAP (Table 02565) Values for response codes: 00h OK 01h OK, Cancel 02h Abort, Retry, Ignore 03h Yes, No, Cancel 04h Yes, No 05h Retry, CancelTop
INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT AX = 001Dh Return: CF clear DX:EBX = selector:offset of Cloaking host INT 2C handler Desc: get the Cloaking host's entry point to bypass any other programs which may have hooked INT 2C in protected mode Note: the returned entry point must be called with a simulated INT, i.e. a PUSHD must precede the far call to the handler SeeAlso: INT 2F/AX=4310h"Cloaking"Top
INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION AX = 001Eh Return: CF clear Desc: allow MS Windows to switch to another VM after having prevented it by invoking a critical section SeeAlso: AX=001Fh,INT 15/AX=101Ch,INT 2F/AX=1682hTop
INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION AX = 001Fh Return: CF clear Desc: prevent MS Windows from switching to another VM SeeAlso: AX=001Eh,INT 15/AX=101Bh,INT 2F/AX=1681hTop
INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE AX = 0020h Return: EAX = number of bytes required for storing state Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0021h,AX=0022hTop
INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE AX = 0021h ES:EDI -> buffer for protected-mode state Return: CF clear buffer filled Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0020h,AX=0022hTop
INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE AX = 0022h DS:ESI -> buffer containing previously-saved protected-mode state Return: CF clear if successful state restored CF set on error (invalid buffer contents) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0020h,AX=0021hTop
INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL AX = 0023h Notes: not currently implemented--NOP in RM386 v6.00 this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - SET V86-MODE STACK AX = 0024h DX:EBX = new value for V86-mode SS:ESP Return: nothing Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - CALL V86-MODE PROCEDURE AX = 0025h DS:EBX -> client register structure (see #02559) Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure, and calls the routine specified by CS:IP in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0026h,AX=0027h,INT 31/AX=0301hTop
INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER AX = 0026h DS:EBX -> client register structure (see #02559) CX = interrupt number Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0025h,AX=0027h,INT 31/AX=0300hTop
INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER AX = 0027h DS:EBX -> client register structure (see #02559) Return: CF clear if successful client register structure updated CF set if no more nested procedure call space available Notes: this call uses the V86-mode stack supplied in the client structure, and jumps to the address specified by CS:IP in the client structure this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0025h,AX=0026hTop
INT 2C P - Cloaking - GET ESP0 FROM TSS AX = 0028h Return: CF clear EAX = TSS's ESP0 Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the memory manager included in Helix Software's NetroomTop
INT 2C P - Cloaking - SET SECONDARY STACK AX = 0029h DX:EBX = new value for SS:ESP of ring 3 secondary stack Return: CF clear Desc: inform RM386 of the ring 3 interrupt stack location Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00Top
INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS AX = 002Ah BL = base vector of master interrupt controller CL = base vector of slave interrupt controller Notes: this call merely informs RM386 that the caller has changed the interrupt mappings this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: INT 67/AX=DE0BhTop
INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES AX = 002Bh CH = 81h CL = subfunction (02h-0Ch) other registers as appropriate for subfunction Return: varies by function CF set on error Notes: these functions are equivalent to the INT 4B/AX=81xxh subfunctions with the same numbers this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: INT 4B/AX=8102h,INT 4B/AX=810ChTop
INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG AX = 002Ch Return: CF clear DX:EBX = current I/O trapping passalong address Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0008h,AX=002DhTop
INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG AX = 002Dh DX:EBX = new I/O trapping passalong address (see #02566) Return: CF clear Notes: RM386 calls the passalong address whenever an access to a monitored I/O port is attempted; the handler should check whether it is a port that it is interested in, and if not call the previous passalong address (which was retrieved with AX=002Ch before installing the new handler) this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=0009h,AX=002Ch,INT 67/AX=5DEAh (Table 02566) Values Cloaking port-trapping passalong address is called with: EAX = CS:IP of faulting instruction (unless executing in protected-mode ring 3) SS:EBX -> caller register structure (see #02559) check EFLAGS V86-mode bit for type CX = first two bytes of I/O instruction which was trapped DX = port to which I/O is being performed CF clear Return: CF clear if RM386 should perform I/O operation CF set if I/O should be skipped Note: RM386 skips the trapped I/O instruction, so the passalong handler should not modify the client CS:EIPTop
INT 2C P - Cloaking - TRAP I/O PORT AX = 002Eh DX = port number to trap Return: CF clear if successful CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Fh,AX=0030hTop
INT 2C PU - Cloaking - UNTRAP I/O PORT AX = 002Fh DX = port number for which to cancel trapping Return: CF clear if successful CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Eh,AX=0030hTop
INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT AX = 0030h DX = port number Return: CF clear if successful BX = current state (0000h not trapped, 0001h trapped) CF set on error (port out of range or reserved) Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00 SeeAlso: AX=002Eh,AX=002FhTop
INT 2C PU - RM386 v6.00 - BUG AX = 0031h Program: RM386 (RAM-MAN/386) is the memory manager included in Helix Software's Netroom Note: due to a fencepost error, RM386 v6.00 will branch unpredictably if invoked with this functionTop
INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK AX = 0031h DX:EBX = CS:EIP of protected-mode routine to be invoked by callback Return: CF clear if successful EBX = CS:IP of V86-mode callback handler CF set on error SeeAlso: AX=0032hTop
INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK AX = 0032h EBX = CS:IP of V86-mode callback handler Return: CF clear if successful CF set on error AX = error code 0005h invalid callback address 0006h callback already free SeeAlso: AX=0032hTop
INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT AX = 0033h DS:EDX -> client registration structure (see #02567) Return: CF clear if successful CF set on error (linked list corrupt) SeeAlso: AX=0034h,#02778 at INT 2F/AX=4310h"Cloaking" Format of client registration structure: Offset Size Description (Table 02567) 00h PWORD link to next structure 06h PWORD link to previous structure 0Ch 2 BYTEs client version (major, minor) 0Eh 20 BYTEs client name 22h DWORD physical address of client start 26h DWORD client's total size in bytes Note: the link area should not be modified once the structure has been used for the registration callTop
INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT AX = 0034h DS:EDX -> client registration structure (see #02567) Return: CF clear if successful CF set on error (linked list corrupt) Note: the client must unregister before freeing the XMS block containing its registration structure(s) SeeAlso: AX=0033h,#02778 at INT 2F/AX=4310h"Cloaking"Top