)
Call DPMS entry point with:
AX = 0000h unregister client from server
---control transfer functions---
AX = 0100h call protected-mode procedure
CX = number of words of stack to copy
ES:(E)DI -> callup/down register structure (see #02797)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0101h call real-mode procedure (RETF return)
CX = number of words of stack to copy
ES:(E)DI -> callup/down register structure (see #02797)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0102h call real-mode procedure (IRET return)
CX = number of words of stack to copy
ES:(E)DI -> callup/down register structure (see #02797)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0103h call real-mode interrupt handler
BL = interrupt number
CX = number of words of stack to copy
ES:(E)DI -> callup/down register structure (see #02797)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0104h register default protected mode procedure
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0105h register default real-mode procedure (RETF return)
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the procedure will be called from 16-bit prot. mode
AX = 0106h register default real-mode procedure (IRET return)
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the procedure will be called from 16-bit prot. mode
AX = 0107h register default real-mode interrupt handler
BL = interrupt number
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the handler will be called from 16-bit protected mode
AX = 0108h register default real-mode procedure (RETF return)
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the procedure will be called from 32-bit prot. mode
AX = 0109h register default real-mode procedure (IRET return)
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the procedure will be called from 32-bit prot. mode
AX = 010Ah register default real-mode interrupt handler
BL = interrupt number
ES:(E)DI -> default register structure (see #02798)
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
Note: the handler will be called from 32-bit protected mode
---descriptor management---
AX = 0200h allocate descriptors
CX = number of descriptors to allocate
Return: CF clear if successful
AX = selector for first descriptor allocated
CF set on error
AX = error code (see #02796)
AX = 0201h free a descriptor
BX = selector for descriptor
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0202h create alias descriptor
BX = selector for descriptor to be aliased
Return: CF clear if successful
AX = alias descriptor
CF set on error
AX = error code (see #02796)
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 #02796)
AX = 0204h set descriptor base
BX = descriptor
CX:DX = base address
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0205h set descriptor limit
BX = descriptor
CX = limit
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
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 #02796)
AX = 0207h get descriptor base
BX = descriptor
Return: CF clear if successful
CX:DX = base address
CF set on error
AX = error code (see #02796)
---linear memory functions---
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 #02796)
AX = 0301h allocate block of extended memory
BX:CX = required size
Return: CF clear if successful
BX:CX = base address
SI:DI = handle
CF set on error
AX = error code (see #02796)
AX = 0302h free block of extended memory
SI:DI = handle
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0303h map linear memory
ES:(E)DI -> DDS (see #02799)
Return: CF clear if successful
BX:CX = base address
SI:DI = handle
CF set on error
AX = error code (see #02796)
AX = 0304h unmap linear memory
SI:DI = handle
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0305h get page table entries
ESI = linear address
(E)CX = count
ES:(E)DI -> buffer for page table entries
Return: CF clear if successful
ES:(E)DI buffer filled
CF set on error
AX = error code (see #02796)
AX = 0306h set page table entries
EBX = linear memory handle
ESI = linear address
(E)CX = count
ES:(E)DI -> buffer containing page table entries
Return: CF clear if successful
CF set on error
AX = error code (see #02796)
AX = 0307h get largest mappable block size
Return: CF clear if successful
BX:CX = size
CF set on error
AX = error code (see #02796)
---miscellaneous---
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 #02796)
Note: the beta DPMS specification, which is still supported by the Novell
DOS 7.0 DPMS host, only supported functions 0100h-0103h, 0200h-0207h,
0300h-0304h, and 0400h