windows-nt/Source/XPSP1/NT/multimedia/media/avi/drawdib.16/dcilib/vflatd.inc
2020-09-26 16:20:57 +08:00

133 lines
3.7 KiB
HTML

;******************************************************************************
;
; (C) Copyright MICROSOFT Corp., 1993-1994
;
; Title: Virtual Flat Device Exported Services
;
; Version: 2.00
;
; Date: 8-Nov-1993
;
; Author: RAP
;
;------------------------------------------------------------------------------
;
; Change log:
;
; DATE REV DESCRIPTION
; ----------- --- -----------------------------------------------------------
; 08-Nov-1993 RAP Original
;
;==============================================================================
IFDEF VMM_TRUE
Begin_Service_Table VFLATD
VFLATD_Service VFLATD_Get_Version, LOCAL
VFLATD_Service VFLATD_Unmap_Flat_Selector, LOCAL
End_Service_Table VFLATD
ENDIF
VflatD_Chicago_ID equ 011Fh ; OEM #8 Device #31
VflatD_Windows_ID equ (0440h + 29d) ; MMSYS OEM# device 30
ifdef WIN31
VflatD_Device_ID equ VflatD_Windows_ID
VflatD_Version equ 0160h ; 1.60
else
VflatD_Device_ID equ VflatD_Chicago_ID
VflatD_Version equ 0200h ; 2.00
endif
;
; PM API defines
;
VflatD_Query equ 0
VflatD_Get_Version equ 0
VflatD_Get_Sel equ 1
VflatD_Reset equ 2
VflatD_Create_Virtual_Frame_Buffer equ 3
VflatD_Create_Physical_Frame_Buffer equ 4
;******************************************************************************
;
; VFLATD_PM_API_Query
;
; DESCRIPTION:
; Query VFlatD info
;
; ENTRY:
; Client_DX = 0
;
; EXIT:
; Client_EAX = VFlatD version
; Client_EBX = selector to the frame buffer
; Client_ECX = size of frame buffer
; Client_EDX = Bank size + flags?
;
;==============================================================================
;******************************************************************************
;
; VFLATD_PM_API_Get_Video_Base
;
; DESCRIPTION:
; Return a GDT selector to the flat video buffer
;
; ENTRY:
; Client_DX = 1
; Client_AX = # of pages of video memory
; Client_CX = size of bank switch code
; Client_ES:DI -> bank switch code
;
; EXIT:
; Client_AX = Selector to flat video buffer
; Client_EDX = Linear base of flat video buffer
; Client carry flag clear
;
;==============================================================================
;******************************************************************************
;
; VFLATD_PM_API_Create_Physical_Frame_Buffer
;
; DESCRIPTION:
; Return a GDT selector to a flat video buffer
;
; ENTRY:
; Client_DL = 4
; Client_DH = flags
; Client_EAX = physical base of frame buffer
; Client_ECX = size of frame buffer (in bytes)
;
; EXIT:
; Client_AX = Selector to flat video buffer
; Client_EDX = Linear base of flat video buffer
; Client carry flag clear
;
;==============================================================================
;******************************************************************************
;
; VFLATD_PM_API_Create_Virtual_Frame_Buffer
;
; DESCRIPTION:
; Return a GDT selector to the flat video buffer
;
; ENTRY:
; Client_DL = 3
; Client_DH = flags
; Client_EAX = size of frame buffer (in bytes)
; Client_EBX = size of a bank (in bytes)
; Client_ESI = location of bank
; Client_CX = size of bank switch code
; Client_ES:DI = ptr to bank switch code
;
; EXIT:
; Client_AX = Selector to flat video buffer
; Client_EDX = Linear base of flat video buffer
; Client carry flag clear
;
;==============================================================================