133 lines
3.7 KiB
HTML
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
|
|
;
|
|
;==============================================================================
|