[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 2F Fn 43E0  - Novell DOS Protected Mode Services (dpms) - Installatio  [E]

   AX = 43E0h

Return: AX = 0000h if installed
       ES:BX -> registration structure (see below)

Note:  this specification is still in beta

See Also: INT 2F/AX=1687h

Format of registration structure:
Offset Size    Description
 00h   DWORD   real-mode API entry point
 04h   DWORD   16-bit protected-mode API entry point
 08h  8 BYTEs  reserved (0)
 10h  8 BYTEs  blank-padded server OEM name
 18h   WORD    flags
       bit 0: fast processor reset available (286 only)
       bits 1-15 reserved (undefined)
 1Ah  2 BYTEs  DPMS version (major,minor)
 1Ch   BYTE    CPU type (02h = 286, 03h = 386 or higher)

Call DPMS entry point with:
   AX = 0100h call protected-mode procedure
       CX = number of words of stack to copy
       ES:DI -> callup/down register structure (see below)

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0101h call real-mode procedure (RETF return)
       CX = number of words of stack to copy
       ES:DI -> callup/down register structure (see below)

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0102h call real-mode procedure (IRET return)
       CX = number of words of stack to copy
       ES:DI -> callup/down register structure (see below)

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0103h call real-mode interrupt handler
       BL = interrupt number
       CX = number of words of stack to copy
       ES:DI -> callup/down register structure (see below)

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0200h allocate descriptors
       CX = number of descriptors to allocate

       Return: CF clear if successful
               AX = first descriptor allocated
           CF set on error
               AX = error code (see below)
   AX = 0201h free a descriptor
       BX = descriptor

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0202h create alias descriptor
       BX = descriptor

       Return: CF clear if successful
               AX = alias descriptor
           CF set on error
               AX = error code (see below)
   AX = 0203h build alias to real-mode segment
       BX = descriptor
       CX = real-mode segment

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0204h set descriptor base
       BX = descriptor
       CX:DX = base address

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0205h set descriptor limit
       BX = descriptor
       CX = limit

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0206h set descriptor type/attribute
       BX = descriptor
       CL = type
       CH = attribute

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0207h get descriptor base
       BX = descriptor

       Return: CF clear if successful
               CX:DX = base address
           CF set on error
               AX = error code (see below)
   AX = 0300h get size of largest free block of memory

       Return: CF clear if successful
               BX:CX = size
           CF set on error
               AX = error code (see below)
   AX = 0301h allocate block of extended memory
       BX:CX = size

       Return: CF clear if successful
               BX:CX = base address
               SI:DI = handle
           CF set on error
               AX = error code (see below)
   AX = 0302h free block of extended memory
       SI:DI = handle

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0303h map linear memory
       ES:[DI] = DDS

       Return: CF clear if successful
               BX:CX = base address
               SI:DI = handle
           CF set on error
               AX = error code (see below)
   AX = 0304h unmap linear memory
       SI:DI = handle

       Return: CF clear if successful
           CF set on error
               AX = error code (see below)
   AX = 0400h relocate segment to extended memory
       ES:SI = base address
       CX = limit
       BL = type
       BH = attribute
       DX = selector or 0000h

       Return: CF clear if successful
               AX = selector
               BX:CX = new base address
               SI:DI = handle
           CF set on error
               AX = error code (see below)

Values for error code:
 8000h general error
 8001h unsupported function
 8011h descriptor unavailable
 8012h linear memory unavailable
 8013h physical memory unavailable
 8021h invalid value
 8022h invalid selector
 8023h invalid handle

Format of callup/down register structure:
Offset Size    Description
 00h   DWORD   EDI
 04h   DWORD   ESI
 08h   DWORD   EBP
 0Ch  4 BYTEs  reserved (0)
 10h   DWORD   EBX
 14h   DWORD   EDX
 18h   DWORD   ECX
 20h   DWORD   EAX
 24h   DWORD   EIP
 28h   WORD    CS
 2Ah  2 BYTEs  reserved (0)
 2Ch   DWORD   EFLAGS
 30h   DWORD   ESP
 34h   WORD    SS
 36h  2 BYTEs  reserved (0)
 38h   WORD    ES
 3Ah  2 BYTEs  reserved (0)
 3Ch   WORD    DS
 3Eh  2 BYTEs  reserved (0)
 40h   WORD    FS
 42h  2 BYTEs  reserved (0)
 44h   WORD    GS
 46h  2 BYTEs  reserved (0)

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson