You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1083 lines
28 KiB
1083 lines
28 KiB
;===============================================================================
|
|
;
|
|
; $Workfile: LAGUNA.INC $
|
|
;
|
|
; Contents:
|
|
; Laguna family structures and registers.
|
|
;
|
|
; Copyright (c) 1996, Cirrus Logic, Inc.
|
|
;
|
|
; $Log: X:/log/laguna/nt35/displays/cl546x/i386/LAGUNA.INC $
|
|
;
|
|
; Rev 1.59 Mar 25 1998 16:35:22 frido
|
|
; Added dwOverlayContr and dwCONTROL2Save variables.
|
|
;
|
|
; Rev 1.58 Mar 04 1998 14:43:10 frido
|
|
; Added shadowFGCOLOR.
|
|
;
|
|
; Rev 1.57 Feb 27 1998 17:03:34 frido
|
|
; Added shadowQFREE register and updated REQUIRE macro to use it.
|
|
;
|
|
; Rev 1.56 Jan 20 1998 11:45:54 frido
|
|
; Changed the REQUIRE macro for GBP on.
|
|
; Synchronized PDEV structure with C version.
|
|
;
|
|
; Rev 1.55 Jan 16 1998 14:06:26 frido
|
|
; Changed SOLID_COLOR_FILL so it uses the pattern.
|
|
;
|
|
; Rev 1.54 Nov 04 1997 09:25:22 frido
|
|
; Fixed a typo in DATASTREAMING switch.
|
|
;
|
|
; Rev 1.53 Nov 03 1997 16:26:04 frido
|
|
; Added fDataStreaming flag to PDEV structure.
|
|
; Changed REQUIRE macro.
|
|
;
|
|
; Rev 1.52 16 Oct 1997 09:50:34 bennyn
|
|
;
|
|
; Added bPrevModeDDOutOfVideoMem to PDEV
|
|
;
|
|
; Rev 1.51 18 Sep 1997 16:02:18 bennyn
|
|
; Fixed compile/link problem of NT3.51
|
|
;
|
|
; Rev 1.50 16 Sep 1997 11:09:06 bennyn
|
|
; Fixed the DRIVERDATA mismatch in laguna.inc and driver.h
|
|
;
|
|
; Rev 1.49 12 Sep 1997 11:57:18 bennyn
|
|
; Fixed the PDEV misalignment and added overlay structures.
|
|
;
|
|
; Rev 1.48 18 Aug 1997 09:19:02 FRIDO
|
|
;
|
|
; Added fields for bitmap filter.
|
|
;
|
|
; Rev 1.47 08 Aug 1997 17:19:18 FRIDO
|
|
;
|
|
; Moved mmCore include file to after OFMHDL definition.
|
|
;
|
|
; Rev 1.46 08 Aug 1997 15:11:58 FRIDO
|
|
; Added automatic include file dependencies.
|
|
;
|
|
; Rev 1.45 08 Aug 1997 14:51:52 FRIDO
|
|
; Added support for new memory manager.
|
|
;
|
|
; Rev 1.44 01 Jul 1997 09:56:18 einkauf
|
|
;
|
|
;
|
|
; add dither x,y offsets to TMCDSYSTEM structs, to mirror PDEV changes
|
|
;
|
|
; Rev 1.43 23 May 1997 15:41:56 noelv
|
|
;
|
|
; Added chip revision to pdev
|
|
;
|
|
; Rev 1.42 29 Apr 1997 16:29:42 noelv
|
|
; Merged in new SWAT code.
|
|
; SWAT:
|
|
; SWAT: Rev 1.4 24 Apr 1997 10:55:42 frido
|
|
; SWAT: NT140b09 merge.
|
|
; SWAT: Removed all memory manager changes for now.
|
|
; SWAT:
|
|
; SWAT: Rev 1.3 18 Apr 1997 00:26:10 frido
|
|
; SWAT: NT140b07 merge.
|
|
; SWAT:
|
|
; SWAT: Rev 1.2 11 Apr 1997 12:38:18 frido
|
|
; SWAT: Added OFM_HandleChain.
|
|
; SWAT:
|
|
; SWAT: Rev 1.1 09 Apr 1997 17:34:22 frido
|
|
; SWAT: Added fPreAllocate and nPages.
|
|
; SWAT: Added FONTCELL structure and variables.
|
|
;
|
|
; Rev 1.41 08 Apr 1997 11:49:34 einkauf
|
|
;
|
|
; clean up TMCDSYSTEM struct, adds to PDEV to complete MCD
|
|
;
|
|
; Rev 1.40 04 Apr 1997 16:50:52 noelv
|
|
; Added pointer for new DDraw functions.
|
|
;
|
|
; Rev 1.39 27 Mar 1997 14:32:18 noelv
|
|
; Added new DDRAW function.
|
|
;
|
|
; Rev 1.38 21 Mar 1997 10:08:42 noelv
|
|
; Synced PDEV between C code and ASM code.
|
|
; Added macro to log QFREE data.
|
|
; Consolidated do_flag and sw_test_flag into a single pointer_switch flag.
|
|
;
|
|
; Rev 1.37 07 Mar 1997 09:35:48 SueS
|
|
; Define DO_FLAG based on NULL driver flags.
|
|
;
|
|
; Rev 1.36 26 Feb 1997 13:20:48 noelv
|
|
;
|
|
; disable MCD code for NT 3.5x
|
|
;
|
|
; Rev 1.35 26 Feb 1997 09:24:50 noelv
|
|
;
|
|
; Added support form OpenGL MCD driver
|
|
;
|
|
; Rev 1.33 28 Jan 1997 16:11:02 SueS
|
|
; Added clipping support for the 5465.
|
|
;
|
|
; Rev 1.32 23 Jan 1997 16:36:16 bennyn
|
|
;
|
|
; Added 5465 DD support
|
|
;
|
|
; Rev 1.31 16 Jan 1997 11:32:38 bennyn
|
|
; Added power manager variables to PDEV
|
|
;
|
|
; Rev 1.30 10 Dec 1996 13:28:48 bennyn
|
|
;
|
|
; Added ulFreq to PDEV
|
|
;
|
|
; Rev 1.29 27 Nov 1996 11:33:04 noelv
|
|
; Disabled Magic Bitmap
|
|
;
|
|
; Rev 1.28 18 Nov 1996 10:18:24 bennyn
|
|
;
|
|
; Added grFormat to PDEV
|
|
;
|
|
; Rev 1.27 12 Nov 1996 15:17:16 bennyn
|
|
;
|
|
; Added handle for DD blt scratch buffer
|
|
;
|
|
; Rev 1.26 07 Nov 1996 16:16:24 bennyn
|
|
;
|
|
; Added support to alloc offscn mem in DD createsurface
|
|
;
|
|
; Rev 1.25 01 Nov 1996 09:21:12 BENNYN
|
|
;
|
|
; Added support for DD blt code
|
|
;
|
|
; Rev 1.24 31 Oct 1996 11:13:44 noelv
|
|
; Split common buffer into two buffers.
|
|
;
|
|
; Rev 1.23 25 Oct 1996 11:53:06 noelv
|
|
;
|
|
; added second common buffer
|
|
;
|
|
; Rev 1.22 23 Oct 1996 14:40:26 BENNYN
|
|
;
|
|
; Added YUV cursor variables to PDEV
|
|
;
|
|
; Rev 1.21 04 Oct 1996 16:46:56 bennyn
|
|
; Added DirectDraw YUV support
|
|
;
|
|
; Rev 1.20 18 Sep 1996 13:56:08 bennyn
|
|
; Modified to support DD stretchBLT
|
|
;
|
|
; Rev 1.19 20 Aug 1996 11:29:00 noelv
|
|
; Bugfix release from Frido 8-19-96
|
|
;
|
|
; Rev 1.1 17 Aug 1996 12:32:50 frido
|
|
; New release from Bellevue.
|
|
;
|
|
; Rev 1.18 16 Aug 1996 08:59:02 bennyn
|
|
;
|
|
; Moved bUseSWPtr outside of #ifdef WINNT_VER40
|
|
;
|
|
; Rev 1.17 16 Aug 1996 08:47:58 bennyn
|
|
; Modified to fix DirectDraw cursor problem
|
|
;
|
|
; Rev 1.16 25 Jul 1996 15:50:32 bennyn
|
|
;
|
|
; Modified to support DirectDraw
|
|
;
|
|
; Rev 1.15 16 Jul 1996 14:26:44 BENNYN
|
|
;
|
|
;
|
|
; Rev 1.14 11 Jul 1996 15:51:00 bennyn
|
|
;
|
|
; Added DirectDraw support
|
|
;
|
|
; Rev 1.13 23 May 1996 16:23:06 BENNYN
|
|
;
|
|
; Added SubFreeQ declarations
|
|
;
|
|
; Rev 1.12 08 May 1996 17:03:52 noelv
|
|
; preallocate device bitmap.
|
|
;
|
|
; Rev 1.11 03 May 1996 15:22:44 noelv
|
|
; added switch to turn font cache on and off
|
|
;
|
|
; Rev 1.10 01 May 1996 11:06:00 bennyn
|
|
; Modified for NT 4.0
|
|
;
|
|
; Rev 1.9 10 Apr 1996 13:40:02 NOELV
|
|
; Frido release 27
|
|
;
|
|
; Rev 1.18 07 Apr 1996 17:12:30 frido
|
|
; Added solid brush cache.
|
|
;
|
|
; Rev 1.17 01 Apr 1996 13:58:40 frido
|
|
; Changed layout of brush cache.
|
|
;
|
|
; Rev 1.16 25 Mar 1996 11:42:18 frido
|
|
; Bellevue 102B3.
|
|
;
|
|
; Rev 1.7 14 Mar 1996 09:40:08 andys
|
|
;
|
|
; Added dcTileWidth and dsSRAMWidth
|
|
;
|
|
; Rev 1.6 12 Mar 1996 15:47:24 noelv
|
|
; Added support for stroke and fill path
|
|
;
|
|
; Rev 1.5 11 Mar 1996 11:53:40 noelv
|
|
; Added file pointer to PDEV
|
|
;
|
|
; Rev 1.4 08 Mar 1996 11:07:32 BENNYN
|
|
;
|
|
; Rev 1.3 05 Mar 1996 12:03:48 noelv
|
|
; Frido version 19
|
|
;
|
|
; Rev 1.13 29 Feb 1996 19:57:10 frido
|
|
; Added bEnable to PDEV structure.
|
|
;
|
|
; Rev 1.12 27 Feb 1996 16:39:42 frido
|
|
; Added device bitmap store/restore.
|
|
; Changed DSURF structure.
|
|
;
|
|
; Rev 1.11 26 Feb 1996 23:39:10 frido
|
|
; Added function pointers for ScreenToHost and HostToScreen.
|
|
;
|
|
; Rev 1.10 24 Feb 1996 01:22:40 frido
|
|
; Added device bitmaps.
|
|
;
|
|
; Rev 1.9 19 Feb 1996 05:10:50 frido
|
|
; Changed broken_FIFO to 0.
|
|
;
|
|
; Rev 1.8 17 Feb 1996 21:46:22 frido
|
|
; Revamped brushing algorithmn.
|
|
;
|
|
; Rev 1.7 13 Feb 1996 16:51:44 frido
|
|
; Changed the layout of the PDEV structure.
|
|
; Changed the layout of all brush caches.
|
|
; Changed the number of brush caches.
|
|
;
|
|
; Rev 1.6 10 Feb 1996 21:48:36 frido
|
|
; Split monochrome and colored translation cache.
|
|
;
|
|
; Rev 1.5 08 Feb 1996 00:03:06 frido
|
|
; Added some extra definitions from Driver.h.
|
|
; Changed number of XLATE caches to 8.
|
|
;
|
|
; Rev 1.4 05 Feb 1996 17:35:10 frido
|
|
; Added translation cache.
|
|
;
|
|
; Rev 1.3 31 Jan 1996 13:48:32 frido
|
|
; Added engine macros.
|
|
;
|
|
; Rev 1.2 25 Jan 1996 22:03:10 frido
|
|
; Added some more structures for the PatBLT.
|
|
;
|
|
; Rev 1.1 25 Jan 1996 12:44:44 frido
|
|
; Added font cache ID counter.
|
|
;
|
|
; Rev 1.0 24 Jan 1996 23:13:40 frido
|
|
; Initial release.
|
|
;
|
|
;===============================================================================
|
|
|
|
.NOLIST
|
|
INCLUDE Optimize.h
|
|
INCLUDE SWAT.h
|
|
COMMENT ~ ;automatic include file dependencies for BUILD.EXE
|
|
#include "Optimize.h"
|
|
#include "SWAT.h"
|
|
~
|
|
.LIST
|
|
|
|
; DirectDraw
|
|
; Be sure to synchronize these structures with those in driver.h!
|
|
ACCUM = 0
|
|
MAJ = 1
|
|
MIN = 2
|
|
MAX_REGS = 3
|
|
|
|
MAX_FOURCCS = 3
|
|
MAX_VIDEO_WINDOWS = 8
|
|
|
|
; Bits defined in DrvSemaphore
|
|
; Be sure to synchronize these structures with those in driver.h!
|
|
DRVSEM_CURSOR_REMOVED_BIT = 0
|
|
DRVSEM_HW_CURSOR_BIT = 1
|
|
DRVSEM_IN_USE_BIT = 2
|
|
DRVSEM_NEW_CURSOR_XY_BIT = 3
|
|
DRVSEM_CHECK_CURSOR_BIT = 4
|
|
DRVSEM_CURSOR_IN_USE_BIT = 5
|
|
DRVSEM_CURSOR_CHANGED_BIT = 6
|
|
DRVSEM_3D_BUSY_BIT = 7
|
|
DRVSEM_MISSED_SET_BIT = 8
|
|
DRVSEM_YUV_ON_BIT = 9
|
|
DRVSEM_DISABLE_SETS_BIT = 10
|
|
DRVSEM_YUV_RECT_VALID_BIT = 11
|
|
|
|
; the corresponding mask values
|
|
; Be sure to synchronize these structures with those in driver.h!
|
|
DRVSEM_CURSOR_REMOVED = 00000001h
|
|
DRVSEM_HW_CURSOR = 00000002h
|
|
DRVSEM_IN_USE = 00000004h
|
|
DRVSEM_NEW_CURSOR_XY = 00000008h
|
|
DRVSEM_CHECK_CURSOR = 00000010h
|
|
DRVSEM_CURSOR_IN_USE = 00000020h
|
|
DRVSEM_CURSOR_CHANGED = 00000040h
|
|
DRVSEM_3D_BUSY = 00000080h
|
|
DRVSEM_MISSED_SET = 00000100h
|
|
DRVSEM_YUV_ON = 00000200h
|
|
DRVSEM_DISABLE_SETS = 00000400h
|
|
DRVSEM_YUV_RECT_VALID = 00000800h
|
|
|
|
broken_FIFO = 0
|
|
|
|
autoblt_regs STRUCT
|
|
LNCNTL WORD ?
|
|
SHRINKINC WORD ?
|
|
DRAWBLTDEF DWORD ?
|
|
FGCOLOR DWORD ?
|
|
BGCOLOR DWORD ?
|
|
OP0_opRDRAM DWORD ?
|
|
MAJ_Y WORD ?
|
|
MIN_Y WORD ?
|
|
OP1_opRDRAM DWORD ?
|
|
ACCUM_Y WORD ?
|
|
PATOFF WORD ?
|
|
OP2_opRDRAM DWORD ?
|
|
MAJ_X WORD ?
|
|
MIN_X WORD ?
|
|
BLTEXT DWORD ?
|
|
ACCUM_X WORD ?
|
|
OP0_opSRAM WORD ?
|
|
SRCX WORD ?
|
|
OP2_opSRAM WORD ?
|
|
BLTEXTR_EX DWORD ?
|
|
MBLTEXTR_EX DWORD ?
|
|
OP0_opMRDRAM DWORD ?
|
|
OP1_opMRDRAM DWORD ?
|
|
STRETCH_CNTL WORD ?
|
|
RESERVED WORD ?
|
|
CLIPULE DWORD ?
|
|
CLIPLOR DWORD ?
|
|
NEXT_HEAD DWORD ?
|
|
autoblt_regs ENDS
|
|
|
|
NUM_MONO_BRUSHES = 32
|
|
NUM_4BPP_BRUSHES = 8
|
|
NUM_DITHER_BRUSHES = 8
|
|
NUM_COLOR_BRUSHES = 32
|
|
NUM_8BPP_BRUSHES = (NUM_COLOR_BRUSHES)
|
|
NUM_16BPP_BRUSHES = (NUM_COLOR_BRUSHES/2)
|
|
NUM_TC_BRUSHES = (NUM_COLOR_BRUSHES/4)
|
|
;//frido BEGIN 07-Apr-96
|
|
NUM_SOLID_BRUSHES = 4
|
|
;//frido END 07-Apr-96
|
|
|
|
;//frido BEGIN 01-Apr-96
|
|
;FIRST_MONO_ROW = 0
|
|
;NUM_MONO_ROWS = (NUM_MONO_BRUSHES/16)
|
|
;FIRST_4BPP_ROW = (FIRST_MONO_ROW + NUM_MONO_ROWS)
|
|
;NUM_4BPP_ROWS = (NUM_4BPP_BRUSHES*2)
|
|
;FIRST_DITHER_ROW = (FIRST_4BPP_ROW + NUM_4BPP_ROWS)
|
|
;NUM_DITHER_ROWS = (NUM_DITHER_BRUSHES/2)
|
|
;FIRST_COLOR_ROW = (FIRST_DITHER_ROW + NUM_DITHER_ROWS)
|
|
;NUM_COLOR_ROWS = (NUM_COLOR_BRUSHES/2)
|
|
;//frido END 01-Apr-96
|
|
|
|
RBRUSH STRUCT
|
|
nPatSize ULONG ?
|
|
iBitmapFormat ULONG ?
|
|
ulForeColor ULONG ?
|
|
ulBackColor ULONG ?
|
|
iType ULONG ?
|
|
BRUSH_MONO = 1
|
|
BRUSH_4BPP = 2
|
|
BRUSH_DITHER = 3
|
|
BRUSH_COLOR = 4
|
|
iUniq ULONG ?
|
|
cache_slot ULONG ?
|
|
cache_xy ULONG ?
|
|
cjMask ULONG ?
|
|
ajPattern BYTE 0 DUP(?)
|
|
RBRUSH ENDS
|
|
|
|
BC_ENTRY STRUCT
|
|
xy ULONG ?
|
|
pjLinear DWORD ?
|
|
brushID DWORD ?
|
|
BC_ENTRY ENDS
|
|
|
|
DC_ENTRY STRUCT
|
|
xy ULONG ?
|
|
pjLinear DWORD ?
|
|
ulColor ULONG ?
|
|
DC_ENTRY ENDS
|
|
|
|
MC_ENTRY STRUCT
|
|
xy ULONG ?
|
|
pjLinear DWORD ?
|
|
iUniq ULONG ?
|
|
ajPattern BYTE 8 DUP(?)
|
|
MC_ENTRY ENDS
|
|
|
|
XC_ENTRY STRUCT
|
|
xy ULONG ?
|
|
pjLinear DWORD ?
|
|
iUniq ULONG ?
|
|
ajPattern BYTE 8 * 4 DUP(?)
|
|
ajPalette ULONG 16 DUP(?)
|
|
XC_ENTRY ENDS
|
|
|
|
POFM_CALLBACK TYPEDEF PTR
|
|
|
|
OFMHDL STRUCT
|
|
x ULONG ?
|
|
y ULONG ?
|
|
aligned_x ULONG ?
|
|
aligned_y ULONG ?
|
|
sizex LONG ?
|
|
sizey LONG ?
|
|
alignflag ULONG ?
|
|
flag ULONG ?
|
|
pcallback POFM_CALLBACK ?
|
|
prevhdl DWORD ?
|
|
nexthdl DWORD ?
|
|
subprvhdl DWORD ?
|
|
subnxthdl DWORD ?
|
|
prvFonthdl DWORD ?
|
|
nxtFonthdl DWORD ?
|
|
pdsurf DWORD ?
|
|
OFMHDL ENDS
|
|
POFMHDL TYPEDEF PTR OFMHDL
|
|
|
|
IF MEMMGR
|
|
INCLUDE mmCore.h
|
|
ENDIF
|
|
COMMENT ~
|
|
#include "mmCore.h" //automatic include file dependencies for BUILD.EXE
|
|
~
|
|
|
|
DDOFM STRUCT
|
|
prevhdl DWORD ?
|
|
nexthdl DWORD ?
|
|
phdl POFMHDL ?
|
|
DDOFM ENDS
|
|
PDDOFM TYPEDEF PTR DDOFM
|
|
|
|
|
|
MAX_GLYPHS = 256
|
|
FONTMEMORY STRUCT
|
|
pTile DWORD ?
|
|
ulLastX DWORD ?
|
|
pNext DWORD ?
|
|
FONTMEMORY ENDS
|
|
|
|
GLYPHCACHE STRUCT
|
|
xyPos DWORD ?
|
|
cSize DWORD ?
|
|
ptlOrigin POINTL {}
|
|
GLYPHCACHE ENDS
|
|
|
|
; New SWAT3 structure.
|
|
FONTCELL STRUCT
|
|
x DWORD ?
|
|
y DWORD ?
|
|
pfc DWORD ?
|
|
ulLastX DWORD ?
|
|
pNext DWORD ?
|
|
FONTCELL ENDS
|
|
PFONTCELL TYPEDEF PTR FONTCELL
|
|
|
|
FONTCACHE STRUCT
|
|
ppdev DWORD ?
|
|
pFontMemory DWORD ?
|
|
pFontCell PFONTCELL ? ;SWAT3
|
|
ulFontCount ULONG ?
|
|
aGlyphs GLYPHCACHE MAX_GLYPHS DUP({})
|
|
pfo DWORD ?
|
|
pfcPrev DWORD ?
|
|
pfcNext DWORD ?
|
|
FONTCACHE ENDS
|
|
PFONTCACHE TYPEDEF PTR FONTCACHE
|
|
|
|
OFFSCR_YUV STRUCT
|
|
SrcRect RECTL {}
|
|
nInUse WORD ?
|
|
ratio WORD ?
|
|
OFFSCR_YUV ENDS
|
|
POFFSCR_YUV TYPEDEF PTR OFFSCR_YUV
|
|
|
|
if DRIVER_5465
|
|
ifdef OVERLAY
|
|
|
|
VIDCONFIG STRUCT
|
|
sizXfer SIZEL {}
|
|
sizCap SIZEL {}
|
|
sizSrc SIZEL {}
|
|
sizDisp SIZEL {}
|
|
uXferDepth DWORD ?
|
|
uCapDepth DWORD ?
|
|
uSrcDepth DWORD ?
|
|
uDispDepth DWORD ?
|
|
uGfxDepth DWORD ?
|
|
dwXferRate DWORD ?
|
|
dwFlags DWORD ?
|
|
VIDCONFIG ENDS
|
|
LPVIDCONFIG TYPEDEF PTR VIDCONFIG
|
|
|
|
|
|
PROGREGS STRUCT
|
|
VW0_FIFO_THRSH WORD ?
|
|
DispThrsTiming WORD ?
|
|
PROGREGS ENDS
|
|
LPPROGREGS TYPEDEF PTR PROGREGS
|
|
|
|
|
|
OVERLAYFLIPRECORD STRUCT
|
|
fpFlipFrom PBYTE ?
|
|
liFlipTime DWORD ?
|
|
DWORD ?
|
|
DWORD ?
|
|
DWORD ?
|
|
dwFlipDuration DWORD ?
|
|
dwFlipScanline DWORD ?
|
|
bFlipFlag BOOL ?
|
|
bHaveEverCrossedVBlank BOOL ?
|
|
bWasEverInDisplay BOOL ?
|
|
OVERLAYFLIPRECORD ENDS
|
|
|
|
|
|
OVERLAYTABLE STRUCT
|
|
pfnCanCreateSurface DWORD ?
|
|
pfnCreateSurface DWORD ?
|
|
pfnDestroySurface DWORD ?
|
|
pfnLock DWORD ?
|
|
pfnUnlock DWORD ?
|
|
pfnSetColorKey DWORD ?
|
|
pfnFlip DWORD ?
|
|
pfnUpdateOverlay DWORD ?
|
|
pfnSetOverlayPos DWORD ?
|
|
pfnGetFlipStatus DWORD ?
|
|
OVERLAYTABLE ENDS
|
|
LPOVERLAYTABLE TYPEDEF PTR OVERLAYTABLE
|
|
|
|
endif ; OVERLAY
|
|
endif ; DRIVER_5465
|
|
|
|
|
|
DRIVERDATA STRUCT
|
|
PTAGFooPixel DWORD ?
|
|
fNineBitRDRAMS WORD ?
|
|
fReset BOOL ?
|
|
ScreenAddress PBYTE ?
|
|
VideoBase PBYTE ?
|
|
RegsAddress DWORD ?
|
|
DrvSemaphore WORD ?
|
|
EdgeTrim WORD ?
|
|
YUVTop WORD ?
|
|
YUVLeft WORD ?
|
|
YUVXExt WORD ?
|
|
YUVYExt WORD ?
|
|
VideoSemaphore WORD ?
|
|
CurrentVideoFormat WORD ?
|
|
NumVideoSurfaces WORD ?
|
|
ScratchBufferOrg DWORD ?
|
|
|
|
ifdef WINNT_VER40
|
|
if DRIVER_5465
|
|
ifdef OVERLAY
|
|
fOverlaySupport BOOL ?
|
|
OverlayTable OVERLAYTABLE {}
|
|
dwOverlayCount DWORD ?
|
|
dwCONTROL2Save DWORD ?
|
|
|
|
; Win95 5465over.c static vars
|
|
bUseBWEqn BOOL ?
|
|
bNoOverlayInThisMode BOOL ?
|
|
|
|
lpHardwareOwner DWORD MAX_VIDEO_WINDOWS DUP (?)
|
|
lpColorSurfaceVW DWORD MAX_VIDEO_WINDOWS DUP (?)
|
|
lpSrcColorSurfaceVW DWORD MAX_VIDEO_WINDOWS DUP (?)
|
|
|
|
grOverlaySrc RECTL MAX_VIDEO_WINDOWS DUP ({})
|
|
grOverlayDest RECTL MAX_VIDEO_WINDOWS DUP ({})
|
|
gdwFourccVW DWORD MAX_VIDEO_WINDOWS DUP (?)
|
|
bIsVWMirrored BOOL MAX_VIDEO_WINDOWS DUP (?)
|
|
|
|
gdwAvailVW DWORD ?
|
|
gdwColorKey DWORD ?
|
|
gdwSrcColorKeyLow DWORD ?
|
|
gdwSrcColorKeyHigh DWORD ?
|
|
gdwDestColorKeyOwnerVW DWORD ?
|
|
gdwSrcColorKeyOwnerVW DWORD ?
|
|
|
|
giOvlyCnt DWORD MAX_VIDEO_WINDOWS DUP (?)
|
|
giPlanarCnt DWORD ?
|
|
bCLPLLobotomyMode BOOL ?
|
|
|
|
; Win95 5465over.c global vars
|
|
gsOverlayFlip OVERLAYFLIPRECORD {}
|
|
|
|
gsProgRegs PROGREGS {}
|
|
|
|
gvidConfig VIDCONFIG {}
|
|
|
|
gwNormalDTTR WORD ?
|
|
dwNumVideoWindows DWORD ?
|
|
|
|
bEnableCLPL BOOL ?
|
|
|
|
; NT only data
|
|
dwMaxOverlayStretch DWORD ?
|
|
dwMinOverlayStretch DWORD ?
|
|
|
|
dwFourCC DWORD MAX_FOURCCS DUP (?)
|
|
else
|
|
dwFourCC DWORD ?
|
|
endif ; OVERLAY
|
|
else
|
|
dwFourCC DWORD ?
|
|
endif ; DRIVER_5465
|
|
endif ; WINNT_VER40
|
|
|
|
signature DWORD ?
|
|
|
|
DRIVERDATA ENDS
|
|
PDRIVERDATA TYPEDEF PTR DRIVERDATA
|
|
|
|
FLIPRECORD STRUCT
|
|
ifdef WINNT_VER40
|
|
fpFlipFrom PBYTE ?
|
|
endif
|
|
liFlipTime DWORD ?
|
|
DWORD ?
|
|
liFlipDuration DWORD ?
|
|
DWORD ?
|
|
bFlipFlag BOOL ?
|
|
bHaveEverCrossedVBlank BOOL ?
|
|
bWasEverInDisplay BOOL ?
|
|
dwFlipScanLine WORD ?
|
|
FLIPRECORD ENDS
|
|
PFLIPRECORD TYPEDEF PTR FLIPRECORD
|
|
|
|
|
|
LL_RECT STRUCT
|
|
DWORD left ?
|
|
DWORD top ?
|
|
DWORD right ?
|
|
DWORD bottom ?
|
|
LL_RECT ENDS
|
|
|
|
TDISPLAYLIST STRUCT
|
|
pdwNext DWORD ?
|
|
hMem DWORD ?
|
|
pdwLinPtr DWORD ?
|
|
pdwStartOutPtr DWORD ?
|
|
dwPhyPtr DWORD ?
|
|
dwLen DWORD ?
|
|
dwMargin DWORD ?
|
|
TDISPLAYLIST ENDS
|
|
PTRDL TYPEDEF PTR TDISPLAYLIST
|
|
|
|
NUM_DL = 2
|
|
|
|
LL_PATTERN STRUCT
|
|
pat DWORD 8 DUP(?)
|
|
LL_PATTERN ENDS
|
|
|
|
TMCDSYSTEM STRUCT
|
|
rColor_Min_Bounds DWORD ?
|
|
rColor_Max_Bounds DWORD ?
|
|
AlphaConstSource DWORD ?
|
|
AlphaConstDest DWORD ?
|
|
Displists TDISPLAYLIST NUM_DL DUP({})
|
|
pDL PTRDL ?
|
|
dwCdl DWORD ?
|
|
pRegs DWORD ?
|
|
pFrame PBYTE ?
|
|
pattern_ram_state DWORD ?
|
|
dither_array LL_PATTERN {}
|
|
dither_x_offset WORD ?
|
|
dither_y_offset WORD ?
|
|
TMCDSYSTEM ENDS
|
|
|
|
;temporary mem for MCD display lists
|
|
SIZE_TEMP_DL = 2048
|
|
SIZE_FRECIP = 2048+1
|
|
|
|
PDEV STRUCT
|
|
hDriver HANDLE ?
|
|
hdevEng HANDLE ?
|
|
hsurfEng HANDLE ?
|
|
hPalDefault HANDLE ?
|
|
pjScreen PBYTE ?
|
|
cxScreen ULONG ?
|
|
cyScreen ULONG ?
|
|
cxMemory ULONG ?
|
|
cyMemory ULONG ?
|
|
cyMemoryReal ULONG ?
|
|
ulMode ULONG ?
|
|
ulFreq ULONG ?
|
|
lDeltaScreen LONG ?
|
|
flRed FLONG ?
|
|
flGreen FLONG ?
|
|
flBlue FLONG ?
|
|
cPaletteShift ULONG ?
|
|
ptlHotSpot POINTL {}
|
|
cPatterns ULONG ?
|
|
ahbmPat HANDLE HS_DDI_MAX DUP(?)
|
|
pPal DWORD ?
|
|
pjOffScreen PBYTE ?
|
|
iBitmapFormat ULONG ?
|
|
ulBitCount ULONG ?
|
|
iBytesPerPixel ULONG ?
|
|
PtrABlt autoblt_regs 3 DUP({})
|
|
|
|
ifdef WINNT_VER40
|
|
CShsem HANDLE ?
|
|
else
|
|
PtrCritSec CRITICAL_SECTION {}
|
|
endif
|
|
|
|
prcl RECTL {}
|
|
PtrBusy BOOL ?
|
|
fHwCursorActive BOOL ?
|
|
CursorHidden BOOL ?
|
|
PtrMaskHandle POFMHDL ?
|
|
PtrImageHandle POFMHDL ?
|
|
PtrABltHandle POFMHDL ?
|
|
PtrXHotSpot ULONG ?
|
|
PtrYHotSpot ULONG ?
|
|
PtrX ULONG ?
|
|
PtrY ULONG ?
|
|
PtrSzX ULONG ?
|
|
PtrSzY ULONG ?
|
|
PointerUsage LONG ?
|
|
grCONTROL DWORD ?
|
|
grFORMAT DWORD ?
|
|
grVSCONTROL DWORD ?
|
|
lOffset_2D LONG ?
|
|
lTileSize LONG ?
|
|
lTotalMem LONG ?
|
|
OFM_init BOOL ?
|
|
|
|
ifdef WINNT_VER40
|
|
MMhsem HANDLE ?
|
|
else
|
|
MutexHdl HANDLE ?
|
|
endif
|
|
|
|
bDirectDrawInUse BOOL ?
|
|
ScrnHandle POFMHDL ?
|
|
OFM_UsedQ POFMHDL ?
|
|
OFM_FreeQ POFMHDL ?
|
|
OFM_SubFreeQ1 POFMHDL ?
|
|
OFM_SubFreeQ2 POFMHDL ?
|
|
pfcChain PFONTCACHE ?
|
|
|
|
Bcache POFMHDL ?
|
|
|
|
Mtable MC_ENTRY NUM_MONO_BRUSHES DUP({})
|
|
Xtable XC_ENTRY NUM_4BPP_BRUSHES DUP({})
|
|
Dtable DC_ENTRY NUM_DITHER_BRUSHES DUP({})
|
|
Ctable BC_ENTRY NUM_COLOR_BRUSHES DUP({})
|
|
;frido BEGIN 07-Apr-96
|
|
Stable DC_ENTRY NUM_SOLID_BRUSHES DUP({})
|
|
SNext ULONG ?
|
|
;frido END 07-Apr-96
|
|
CLast ULONG ?
|
|
MNext ULONG ?
|
|
XNext ULONG ?
|
|
DNext ULONG ?
|
|
CNext ULONG ?
|
|
|
|
ulFontCount ULONG ?
|
|
UseFontCache ULONG ?
|
|
|
|
ptlOffset POINTL {}
|
|
bEnable BOOL ?
|
|
|
|
pfnHostToScreen DWORD ?
|
|
pfnScreenToHost DWORD ?
|
|
|
|
pLgREGS_real DWORD ?
|
|
pLgREGS DWORD ?
|
|
|
|
dcTileWidth WORD ?
|
|
dcSRAMWidth WORD ?
|
|
|
|
uBLTDEF ULONG ?
|
|
uRop ULONG ?
|
|
pvTmpBuffer DWORD ?
|
|
|
|
|
|
IF ENABLE_LOG_FILE
|
|
pmfile DWORD ?
|
|
TxtBuff DWORD 1000h DUP(?)
|
|
TxtBuffIndex DWORD ?
|
|
ENDIF
|
|
|
|
IF NULL_HW
|
|
buffer BYTE 1000h DUP(?)
|
|
ENDIF
|
|
|
|
IF WINBENCH96
|
|
pofmMagic POFMHDL ?
|
|
bMagicUsed ULONG ?
|
|
ENDIF
|
|
|
|
; SWAT1 changes.
|
|
fPreAllocate BOOL ?
|
|
nPages DWORD ?
|
|
; SWAT3 changes.
|
|
FONTCELL_COUNT = 64
|
|
FONTCELL_X = 128
|
|
FONTCELL_y = 16
|
|
pofmFontCache POFMHDL ?
|
|
fcGrid FONTCELL FONTCELL_COUNT DUP({})
|
|
IF MEMMGR
|
|
; MEMMGR changes.
|
|
mmMemMgr IIMEMMGR {}
|
|
must_have_width LONG ?
|
|
bBitmapFilter BOOL ?
|
|
szlBitmapMin SIZEL {}
|
|
szlBitmapMax SIZEL {}
|
|
ENDIF
|
|
|
|
; For DirectDraw
|
|
bPrevModeDDOutOfVideoMem BOOL ?
|
|
DirectDrawHandle POFMHDL ?
|
|
flipRecord FLIPRECORD {}
|
|
DriverData DRIVERDATA {}
|
|
offscr_YUV OFFSCR_YUV {}
|
|
dwDDLinearCnt DWORD ?
|
|
pPtrMaskHost PBYTE ?
|
|
|
|
bYUVuseSWPtr BOOL ?
|
|
dwLgDevID DWORD ?
|
|
dwLgDevRev DWORD ?
|
|
bYUVSurfaceOn BOOL ?
|
|
InitBPP WORD ?
|
|
|
|
lRegVals DWORD 2 * MAX_REGS DUP(?)
|
|
sShrinkInc DWORD ?
|
|
usLnCntl DWORD ?
|
|
usStretchCtrl DWORD ?
|
|
|
|
pPMdatabuf PBYTE ?
|
|
|
|
ifdef WINNT_VER40
|
|
pfnDelay9BitBlt DWORD ?
|
|
pfnEdgeFillBlt DWORD ?
|
|
pfnMEdgeFillBlt DWORD ?
|
|
pfnDrvDstBlt DWORD ?
|
|
pfnDrvDstMBlt DWORD ?
|
|
pfnDrvSrcBlt DWORD ?
|
|
pfnDrvSrcMBlt DWORD ?
|
|
pfnDrvStrBlt DWORD ?
|
|
pfnDrvStrMBlt DWORD ?
|
|
pfnDrvStrMBltY DWORD ?
|
|
pfnDrvStrMBltX DWORD ?
|
|
pfnDrvStrBltY DWORD ?
|
|
pfnDrvStrBltX DWORD ?
|
|
endif
|
|
|
|
DDScratchBufHandle POFMHDL ?
|
|
DDOffScnMemQ PDDOFM ?
|
|
|
|
IFDEF BUS_MASTER
|
|
Buf1VirtAddr DWORD ?
|
|
Buf2VirtAddr DWORD ?
|
|
Buf1PhysAddr DWORD ?
|
|
Buf2PhysAddr DWORD ?
|
|
BufLength ULONG ?
|
|
ENDIF
|
|
|
|
;START OpenGL MCD additions
|
|
IFNDEF WINNT_VER35
|
|
hMCD HANDLE ?
|
|
pMCDFilterFunc DWORD ?
|
|
cDoubleBufferRef DWORD ?
|
|
cZBufferRef DWORD ?
|
|
pohBackBuffer POFMHDL ?
|
|
pohZBuffer POFMHDL ?
|
|
|
|
temp_DL_chunk DWORD SIZE_TEMP_DL DUP(?)
|
|
LL_State TMCDSYSTEM {}
|
|
|
|
pAllocOffScnMem DWORD ?
|
|
pFreeOffScnMem DWORD ?
|
|
pAssertModeMCD DWORD ?
|
|
|
|
frecips DWORD SIZE_FRECIP DUP(?)
|
|
|
|
pLastDevRC DWORD ?
|
|
NumMCDContexts DWORD ?
|
|
iUniqueness DWORD ?
|
|
pFirstTexture DWORD ?
|
|
pLastTexture DWORD ?
|
|
ENDIF
|
|
;END OpenGL MCD additions
|
|
|
|
XlateCache POFMHDL ?
|
|
XlateCacheId ULONG ?
|
|
CachedChromaCtrl WORD ?
|
|
CachedStretchCtrl WORD ?
|
|
|
|
signature DWORD ?
|
|
|
|
if DATASTREAMING
|
|
dwDataStreaming DWORD ?
|
|
shadowFGCOLOR DWORD ?
|
|
shadowBGCOLOR DWORD ?
|
|
shadowDRAWBLTDEF DWORD ?
|
|
shadowQFREE BYTE ?
|
|
endif
|
|
PDEV ENDS
|
|
|
|
DSURF STRUCT
|
|
ppdev DWORD ?
|
|
pofm DWORD ?
|
|
pso DWORD ?
|
|
ptl POINTL {}
|
|
sizl SIZEL {}
|
|
packedXY DWORD ?
|
|
DSURF ENDS
|
|
|
|
TEXT_EXPAND_XPAR = 106601F0h
|
|
TEXT_EXPAND_OPAQUE = 100600F0h
|
|
SOLID_COLOR_FILL = 100700F0h
|
|
CLIPEN = 0800h
|
|
|
|
grSTATUS = 400h
|
|
grCONTROL = 402h
|
|
grQFREE = 404h
|
|
grOFFSET_2D = 405h
|
|
grTIMEOUT = 406h
|
|
grTILE_CTRL = 407h
|
|
grRESIZE_A_opRDRAM = 408h
|
|
grRESIZE_B_opRDRAM = 40Ch
|
|
grRESIZE_C_opRDRAM = 410h
|
|
grCOMMAND = 480h
|
|
grMIN_Y = 500h
|
|
grMAJ_Y = 502h
|
|
grACCUM_Y = 504h
|
|
grMIN_X = 508h
|
|
grMAJ_X = 50Ah
|
|
grACCUM_X = 50Ch
|
|
grLNCNTL = 50Eh
|
|
grBLTEXT = 518h
|
|
grMBLTEXT = 51Ch
|
|
grOP0_opRDRAM = 520h
|
|
grOP0_opMRDRAM = 524h
|
|
grOP0_opSRAM = 528h
|
|
grPATOFF = 52Ah
|
|
grOP1_opRDRAM = 540h
|
|
grOP1_opMRDRAM = 544h
|
|
grOP1_opSRAM = 548h
|
|
grOP1_opMSRAM = 54Ah
|
|
grOP2_opRDRAM = 560h
|
|
grOP2_opMRDRAM = 564h
|
|
grOP2_opSRAM = 568h
|
|
grOP2_opMSRAM = 56Ah
|
|
grSRCX = 580h
|
|
grSHRINKINC = 582h
|
|
grDRAWBLTDEF = 584h
|
|
grDRAWDEF = 584h
|
|
grBLTDEF = 586h
|
|
grMONOQW = 588h
|
|
grCLIPULE = 590h
|
|
grCLIPLOR = 594h
|
|
grMCLIPULE = 598h
|
|
grMCLIPLOR = 59Ch
|
|
grOP_opFGCOLOR = 5E0h
|
|
grOP_opBGCOLOR = 5E4h
|
|
grBITMASK = 5E8h
|
|
grPTAG = 5ECh
|
|
grBOGUS = 5FCh
|
|
grBLTEXT_XEX = 600h
|
|
grBLTEXTFF_XEX = 604h
|
|
grBLTEXTR_XEX = 608h
|
|
grBLTEXT_LN_EX = 60Ch
|
|
grMBLTEXT_XEX = 620h
|
|
grMBLTEXTR_XEX = 628h
|
|
grBLTEXT_EX = 700h
|
|
grBLTEXTFF_EX = 704h
|
|
grBLTEXTR_EX = 708h
|
|
grMBLTEXT_EX = 720h
|
|
grMBLTEXTR_EX = 728h
|
|
grCLIPULE_EX = 760h
|
|
grCLIPLOR_EX = 770h
|
|
grMCLIPULE_EX = 780h
|
|
grMCLIPLOR_EX = 790h
|
|
grHOSTDATA = 800h
|
|
|
|
SWIZ_CNTL = 0400h
|
|
|
|
ENUMRECTS8 STRUCT
|
|
_c DWORD ?
|
|
arcl RECTL 8 DUP({})
|
|
ENUMRECTS8 ENDS
|
|
|
|
FUDGE = 2 ;fudge factor for QFREE register
|
|
|
|
REQUIRE MACRO n:REQ, ppdev:REQ, base:=<ebp>
|
|
LOCAL WaitFIFO, SkipWait, WaitIdle, SkipWaitUpdate, WaitLoop
|
|
IF DATASTREAMING
|
|
TEMPREG8 TEXTEQU <>
|
|
TEMPREG32 TEXTEQU <>
|
|
IFDIFI <ppdev>, <eax>
|
|
IFDIFI <base>, <eax>
|
|
TEMPREG8 TEXTEQU <al>
|
|
TEMPREG32 TEXTEQU <aex>
|
|
ENDIF
|
|
ENDIF
|
|
IFDIFI <ppdev>, <ebx>
|
|
IFDIFI <base>, <ebx>
|
|
TEMPREG8 TEXTEQU <bl>
|
|
TEMPREG32 TEXTEQU <ebx>
|
|
ENDIF
|
|
ENDIF
|
|
IFDIFI <ppdev>, <ecx>
|
|
IFDIFI <base>, <ecx>
|
|
TEMPREG8 TEXTEQU <cl>
|
|
TEMPREG32 TEXTEQU <ecx>
|
|
ENDIF
|
|
ENDIF
|
|
IFDIFI <ppdev>, <edx>
|
|
IFDIFI <base>, <edx>
|
|
TEMPREG8 TEXTEQU <dl>
|
|
TEMPREG32 TEXTEQU <edx>
|
|
ENDIF
|
|
ENDIF
|
|
test [ppdev].dwDataStreaming, -1
|
|
js WaitFIFO
|
|
jz SkipWait
|
|
cmp BYTE PTR [base + grQFREE], n + FUDGE
|
|
jnb SkipWait
|
|
WaitIdle:
|
|
test WORD PTR [base + grSTATUS], 8005h
|
|
jnz WaitIdle
|
|
mov byte ptr [ppdev].dwDataStreaming, 0
|
|
jmp SkipWait
|
|
WaitFIFO:
|
|
push TEMPREG32
|
|
mov TEMPREG8, [ppdev].shadowQFREE
|
|
WaitLoop:
|
|
cmp TEMPREG8, n + FUDGE
|
|
jnb SkipWaitUpdate
|
|
mov TEMPREG8, [base + grQFREE]
|
|
jmp WaitLoop
|
|
SkipWaitUpdate:
|
|
sub TEMPREG8, n
|
|
mov [ppdev].shadowQFREE, TEMPREG8
|
|
pop TEMPREG32
|
|
SkipWait:
|
|
ENDIF
|
|
ENDM
|
|
|
|
IDLE MACRO base:=<ebp>
|
|
LOCAL WaitFIFO
|
|
WaitFIFO:
|
|
cmp WORD PTR [base + grSTATUS], 0
|
|
jne WaitFIFO
|
|
ENDM
|
|
|
|
ENDREQUIRE MACRO ppdev:REQ
|
|
IF DATASTREAMING
|
|
or [ppdev].dwDataStreaming, 1
|
|
ENDIF
|
|
ENDM
|