Leaked source code of windows server 2003
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.

1380 lines
80 KiB

  1. /******************************Module*Header*******************************\
  2. *
  3. * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4. * !! !!
  5. * !! WARNING: NOT DDK SAMPLE CODE !!
  6. * !! !!
  7. * !! This source code is provided for completeness only and should not be !!
  8. * !! used as sample code for display driver development. Only those sources !!
  9. * !! marked as sample code for a given driver component should be used for !!
  10. * !! development purposes. !!
  11. * !! !!
  12. * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  13. *
  14. * Module Name: glintreg.h
  15. *
  16. * Content:
  17. *
  18. * Copyright (c) 1994-1999 3Dlabs Inc. Ltd. All rights reserved.
  19. * Copyright (c) 1995-2003 Microsoft Corporation. All rights reserved.
  20. \*****************************************************************************/
  21. /*
  22. * GLINT register window definition
  23. */
  24. #define DWFILL unsigned long :32
  25. #define WFILL unsigned short :16
  26. typedef unsigned long DWORD;
  27. typedef struct GlintReg {
  28. /* 0h */
  29. volatile DWORD ResetStatus ; DWFILL; // 0x0000
  30. volatile DWORD IntEnable ; DWFILL; // 0x0008
  31. volatile DWORD IntFlags ; DWFILL; // 0x0010
  32. volatile DWORD InFIFOSpace ; DWFILL; // 0x0018
  33. volatile DWORD OutFIFOWords ; DWFILL; // 0x0020
  34. volatile DWORD DMAAddress ; DWFILL; // 0x0028
  35. volatile DWORD DMACount ; DWFILL; // 0x0030
  36. volatile DWORD ErrorFlags ; DWFILL; // 0x0038
  37. volatile DWORD VClkCtl ; DWFILL; // 0x0040
  38. volatile DWORD TestRegister ; DWFILL; // 0x0048
  39. union {
  40. volatile DWORD Aperture0 ; // SX/TX control register
  41. volatile DWORD ApertureOne ; // Permedia control register
  42. }; DWFILL; // 0x0050
  43. union {
  44. volatile DWORD Aperture1 ; // SX/TX control register
  45. volatile DWORD ApertureTwo ; // Permedia control register
  46. }; DWFILL; // 0x0058
  47. union {
  48. volatile DWORD DMAControl ; // 0x0060 P2
  49. volatile DWORD ControlDMAControl ; // 0x0060 P3 version of same register
  50. }; DWFILL;
  51. volatile DWORD FIFODiscon ; DWFILL; // 0x0068 SX Rev 2, TX and Permedia
  52. volatile DWORD ChipConfig ; DWFILL; // 0x0070 Permedia
  53. volatile DWORD AGPControl ; DWFILL; // 0x0078 P3 R3
  54. volatile DWORD OutDMAAddress ; DWFILL; // 0x0080 Output DMA controller address
  55. union {
  56. volatile DWORD OutDMACount ; // 0x0088 P2 Output DMA controller count
  57. volatile DWORD PCIFeedbackCount ; // 0x0088 P3R3
  58. }; DWFILL;
  59. union {
  60. volatile DWORD AGPTexBaseAddress ; // 0x0090 P2
  61. volatile DWORD PCIAbortStatus ; // 0x0090 P3R3
  62. }; DWFILL;
  63. volatile DWORD PCIAbortAddress ; DWFILL; // 0x0098 P3R3
  64. /* Bypass DMA Registers P2 */
  65. volatile DWORD ByDMAAddress; DWFILL; // 0x00A0 Bypass DMA host address
  66. DWFILL; DWFILL; // 0x00A8 Not used.
  67. DWFILL; DWFILL; // 0x00B0 Not used.
  68. volatile DWORD ByDMAStride; DWFILL; // 0x00B8 Host stride in bytes.
  69. volatile DWORD ByDMAMemAddr; DWFILL; // 0x00C0 Chip base address in texels.
  70. volatile DWORD ByDMASize; DWFILL; // 0x00C8 Height and width in texels.
  71. volatile DWORD ByDMAByteMask; DWFILL; // 0x00D0 Right and left byte masks.
  72. volatile DWORD ByDMAControl; DWFILL; // 0x00D8 General bypass DMA control.
  73. DWFILL; DWFILL; // 0x00E0 Not used.
  74. volatile DWORD ByDMAComplete; DWFILL; // 0x00E8 Manual GP restart.
  75. volatile DWORD PCIPLLstatus; DWFILL; // 0x00F0 P3R3
  76. DWFILL; DWFILL; // 0x00F8 Not Used
  77. volatile DWORD HostTextureAddress; DWFILL; // 0x0100 P3R3
  78. volatile DWORD TextureDownloadControl; DWFILL; // 0x0108 P3R3
  79. volatile DWORD TextureOperation; DWFILL; // 0x0110 P3R3
  80. volatile DWORD LogicalTexturePage; DWFILL; // 0x0118 P3R3
  81. volatile DWORD TexDMAAddress; DWFILL; // 0x0120 P3R3
  82. volatile DWORD TexFifoSpace; DWFILL; // 0x0128 P3R3
  83. volatile DWORD Fill0a[0x200/4 - 0x130/4];
  84. volatile DWORD TestInputControl; DWFILL; // 0x0200 P3R3
  85. volatile DWORD TestInputRdy; DWFILL; // 0x0208 P3R3
  86. volatile DWORD TestOutputControl; DWFILL; // 0x0210 P3R3
  87. volatile DWORD TestOutputRdy; DWFILL; // 0x0218 P3R3
  88. volatile DWORD TestWriteSelect; DWFILL; // 0x0220 P3R3
  89. volatile DWORD TestWriteData; DWFILL; // 0x0228 P3R3
  90. volatile DWORD TestReadSelect; DWFILL; // 0x0230 P3R3
  91. volatile DWORD TestReadData; DWFILL; // 0x0238 P3R3
  92. volatile DWORD PClkInvertA0; DWFILL; // 0x0240 P3R3
  93. volatile DWORD PClkInvertB0; DWFILL; // 0x0248 P3R3
  94. volatile DWORD PClkProfMaskA0; DWFILL; // 0x0250 P3R3
  95. volatile DWORD PClkProfMaskB0; DWFILL; // 0x0258 P3R3
  96. volatile DWORD PClkProfCount0; DWFILL; // 0x0260 P3R3
  97. volatile DWORD PClkInvertA1; DWFILL; // 0x0268 P3R3
  98. volatile DWORD PClkInvertB1; DWFILL; // 0x0270 P3R3
  99. volatile DWORD PClkProfMaskA1; DWFILL; // 0x0278 P3R3
  100. volatile DWORD PClkProfMaskB1; DWFILL; // 0x0280 P3R3
  101. volatile DWORD PClkProfCount1; DWFILL; // 0x0288 P3R3
  102. volatile DWORD Fill0b[0x300/4 - 0x290/4];
  103. // P3 R3 Bypass register configuration
  104. volatile DWORD ByAperture1Mode; DWFILL; // 0x0300
  105. volatile DWORD ByAperture1Stride; DWFILL; // 0x0308
  106. volatile DWORD ByAperture1YStart; DWFILL; // 0x0310
  107. volatile DWORD ByAperture1UStart; DWFILL; // 0x0318
  108. volatile DWORD ByAperture1VStart; DWFILL; // 0x0320
  109. volatile DWORD ByAperture2Mode; DWFILL; // 0x0328
  110. volatile DWORD ByAperture2Stride; DWFILL; // 0x0330
  111. volatile DWORD ByAperture2YStart; DWFILL; // 0x0338
  112. volatile DWORD ByAperture2UStart; DWFILL; // 0x0340
  113. volatile DWORD ByAperture2VStart; DWFILL; // 0x0348
  114. volatile DWORD ByDMAReadMode; DWFILL; // 0x0350
  115. volatile DWORD ByDMAReadStride; DWFILL; // 0x0358
  116. volatile DWORD ByDMAReadYStart; DWFILL; // 0x0360
  117. volatile DWORD ByDMAReadUStart; DWFILL; // 0x0368
  118. volatile DWORD ByDMAReadVStart; DWFILL; // 0x0370
  119. volatile DWORD ByDMAReadCommandBase; DWFILL; // 0x0378
  120. volatile DWORD ByDMAReadCommandCount;DWFILL; // 0x0380
  121. volatile DWORD ByDMAWriteMode; DWFILL; // 0x0388
  122. volatile DWORD ByDMAWriteStride; DWFILL; // 0x0390
  123. volatile DWORD ByDMAWriteYStart; DWFILL; // 0x0398
  124. volatile DWORD ByDMAWriteUStart; DWFILL; // 0x03A0
  125. volatile DWORD ByDMAWriteVStart; DWFILL; // 0x03A8
  126. volatile DWORD ByDMAWriteCommandBase;DWFILL; // 0x03B0
  127. volatile DWORD ByDMAWriteCommandCount;DWFILL; // 0x03B8
  128. volatile DWORD Fill0c[0x800/4 - 0x3C0/4];
  129. /* Delta Registers */
  130. volatile DWORD DeltaReset; DWFILL;
  131. volatile DWORD DeltaIntEnable; DWFILL;
  132. volatile DWORD DeltaIntFlags; DWFILL;
  133. volatile DWORD DeltaInFIFOSpace; DWFILL;
  134. volatile DWORD DeltaOutFIFOWords; DWFILL;
  135. volatile DWORD DeltaDMAAddress; DWFILL;
  136. volatile DWORD DeltaDMACount; DWFILL;
  137. volatile DWORD DeltaErrorFlags; DWFILL;
  138. volatile DWORD DeltaVClkCtl; DWFILL;
  139. volatile DWORD DeltaTestRegister; DWFILL;
  140. volatile DWORD DeltaAperture0; DWFILL;
  141. volatile DWORD DeltaAperture1; DWFILL;
  142. volatile DWORD DeltaDMAControl; DWFILL;
  143. volatile DWORD DeltaDisconnectControl;DWFILL;
  144. /* Localbuffer Registers */
  145. volatile DWORD Fill1[0xC40/4 - 0x870/4];
  146. volatile DWORD CommandMode; DWFILL; // 0xC40
  147. volatile DWORD CommandIntEnable; DWFILL; // 0xC48
  148. volatile DWORD CommandIntFlags; DWFILL; // 0xC50
  149. volatile DWORD CommandErrorFlags; DWFILL; // 0xC58
  150. volatile DWORD CommandStatus; DWFILL; // 0xC60
  151. volatile DWORD CommandFaultingAddr; DWFILL; // 0xC68
  152. volatile DWORD VertexFaultingAddr; DWFILL; // 0xC70
  153. DWFILL; DWFILL; // 0xC78
  154. DWFILL; DWFILL; // 0xC80
  155. volatile DWORD WriteFaultingAddr; DWFILL; // 0xC88
  156. DWFILL; DWFILL; // 0xC90
  157. volatile DWORD FeedbackSelectCount; DWFILL; // 0xC98
  158. DWFILL; DWFILL; // 0xCA0
  159. DWFILL; DWFILL; // 0xCA8
  160. DWFILL; DWFILL; // 0xCB0
  161. volatile DWORD GammaProcessorMode; DWFILL; // 0xCB8
  162. volatile DWORD Fill1a[0x1000/4 - 0xCC0/4];
  163. /* 1000h */
  164. union {
  165. volatile DWORD LBMemoryCtl ; // SX/TX
  166. volatile DWORD Reboot ; // Permedia SGRAM control register
  167. volatile DWORD MemCounter ; // P3R3
  168. }; DWFILL; // 0x1000
  169. union {
  170. volatile DWORD LBMemoryEDO ; // SX/TX
  171. volatile DWORD MemBypassWriteMask; // P3R3
  172. }; DWFILL; // 0x1008
  173. volatile DWORD MemScratch ; DWFILL; // 0x1010 P3R3
  174. volatile DWORD LocalMemCaps ; DWFILL; // 0x1018 P3R3
  175. volatile DWORD LocalMemTiming ; DWFILL; // 0x1020 P3R3
  176. volatile DWORD LocalMemControl ; DWFILL; // 0x1028 P3R3
  177. volatile DWORD LocalMemRefresh ; DWFILL; // 0x1030 P3R3
  178. volatile DWORD LocalMemPowerdown ; DWFILL; // 0x1038 P3R3
  179. volatile DWORD MemControl ; DWFILL; // 0x1040 Permedia
  180. DWFILL; DWFILL; // 0x1048
  181. DWFILL; DWFILL; // 0x1050
  182. DWFILL; DWFILL; // 0x1058
  183. DWFILL; DWFILL; // 0x1060
  184. DWFILL; DWFILL; // 0x1068
  185. DWFILL; DWFILL; // 0x1070
  186. DWFILL; DWFILL; // 0x1078
  187. volatile DWORD BootAddress ; DWFILL; // 0x1080 Permedia
  188. DWFILL; DWFILL; // 0x1088
  189. DWFILL; DWFILL; // 0x1090
  190. DWFILL; DWFILL; // 0x1098
  191. DWFILL; DWFILL; // 0x10a0
  192. DWFILL; DWFILL; // 0x10a8
  193. DWFILL; DWFILL; // 0x10b0
  194. DWFILL; DWFILL; // 0x10b8
  195. volatile DWORD MemConfig ; DWFILL; // 0x10c0 Permedia
  196. DWFILL; DWFILL; // 0x10c8
  197. DWFILL; DWFILL; // 0x10d0
  198. DWFILL; DWFILL; // 0x10d8
  199. DWFILL; DWFILL; // 0x10e0
  200. DWFILL; DWFILL; // 0x10e8
  201. DWFILL; DWFILL; // 0x10f0
  202. DWFILL; DWFILL; // 0x10f8
  203. union {
  204. volatile DWORD BypassWriteMask ; // Permedia
  205. volatile DWORD RemoteMemControl ; // P3R3
  206. }; DWFILL; // 0x1100
  207. DWFILL; DWFILL; // 0x1108
  208. DWFILL; DWFILL; // 0x1110
  209. DWFILL; DWFILL; // 0x1118
  210. DWFILL; DWFILL; // 0x1120
  211. DWFILL; DWFILL; // 0x1128
  212. DWFILL; DWFILL; // 0x1130
  213. DWFILL; DWFILL; // 0x1138
  214. volatile DWORD FramebufferWriteMask; DWFILL; // 0x1140 Permedia
  215. DWFILL; DWFILL; // 0x1148
  216. DWFILL; DWFILL; // 0x1150
  217. DWFILL; DWFILL; // 0x1158
  218. DWFILL; DWFILL; // 0x1160
  219. DWFILL; DWFILL; // 0x1168
  220. DWFILL; DWFILL; // 0x1170
  221. DWFILL; DWFILL; // 0x1178
  222. volatile DWORD MClkCount ; DWFILL; // 0x1180 Permedia
  223. /* Framebuffer Registers */
  224. volatile DWORD Fill2[0x1800/4 - 0x1188/4];
  225. /* 1800h */
  226. volatile DWORD FBMemoryCtl ; DWFILL;
  227. volatile DWORD FBModeSel ; DWFILL;
  228. volatile DWORD FBGPWrMask ; DWFILL;
  229. volatile DWORD FBGPColorMask ; DWFILL;
  230. /* GP Fifo Interface */
  231. volatile DWORD Fill3[0x2000/4 - 0x1820/4];
  232. /* 2000h */
  233. volatile DWORD GPFifo[1024];
  234. /* Internal Video Registers */
  235. /* 3000h */
  236. union {
  237. volatile DWORD VTGHLimit ; // 0x3000 SX/TX VTG Register
  238. volatile DWORD ScreenBase ; // 0x3000 Permedia VTG Register
  239. }; DWFILL;
  240. union {
  241. volatile DWORD VTGHSyncStart ; // 0x3008 SX/TX VTG Register
  242. volatile DWORD ScreenStride ; // 0x3008 Permedia VTG Register
  243. }; DWFILL;
  244. union {
  245. volatile DWORD VTGHSyncEnd ; // 0x3010 SX/TX VTG Register
  246. volatile DWORD HTotal ; // 0x3010 Permedia VTG Register
  247. }; DWFILL;
  248. union {
  249. volatile DWORD VTGHBlankEnd ; // 0x3018 SX/TX VTG Register
  250. volatile DWORD HgEnd ; // 0x3018 Permedia VTG Register
  251. }; DWFILL;
  252. union {
  253. volatile DWORD VTGVLimit ; // 0x3020 SX/TX VTG Register
  254. volatile DWORD HbEnd ; // 0x3020 Permedia VTG Register
  255. }; DWFILL;
  256. union {
  257. volatile DWORD VTGVSyncStart ; // 0x3028 SX/TX VTG Register
  258. volatile DWORD HsStart ; // 0x3028 Permedia VTG Register
  259. }; DWFILL;
  260. union {
  261. volatile DWORD VTGVSyncEnd ; // 0x3030 SX/TX VTG Register
  262. volatile DWORD HsEnd ; // 0x3030 Permedia VTG Register
  263. }; DWFILL;
  264. union {
  265. volatile DWORD VTGVBlankEnd ; // 0x3038 SX/TX VTG Register
  266. volatile DWORD VTotal ; // 0x3038 Permedia VTG Register
  267. }; DWFILL;
  268. union {
  269. volatile DWORD VTGHGateStart ; // 0x3040 SX/TX VTG Register
  270. volatile DWORD VbEnd ; // 0x3040 Permedia VTG Register
  271. }; DWFILL;
  272. union {
  273. volatile DWORD VTGHGateEnd ; // 0x3048 SX/TX VTG Register
  274. volatile DWORD VsStart ; // 0x3048 Permedia VTG Register
  275. }; DWFILL;
  276. union {
  277. volatile DWORD VTGVGateStart ; // 0x3050 SX/TX VTG Register
  278. volatile DWORD VsEnd ; // 0x3050 Permedia VTG Register
  279. }; DWFILL;
  280. union {
  281. volatile DWORD VTGVGateEnd ; // 0x3058 SX/TX VTG Register
  282. volatile DWORD VideoControl ; // 0x3058 Permedia VTG Register
  283. }; DWFILL;
  284. union {
  285. volatile DWORD VTGPolarity ; // 0x3060 SX/TX VTG Register
  286. volatile DWORD InterruptLine ; // 0x3060 Permedia VTG Register
  287. }; DWFILL;
  288. union {
  289. volatile DWORD VTGFrameRowAddr ; // 0x3068 SX/TX VTG Register
  290. volatile DWORD DDCData ; // 0x3068 Permedia VTG Register
  291. volatile DWORD DisplayData ; // 0x3068 P2 VTG Register
  292. }; DWFILL;
  293. union {
  294. volatile DWORD VTGVLineNumber ; // 0x3070 SX/TX VTG Register
  295. volatile DWORD LineCount ; // 0x3070 Permedia VTG Register
  296. }; DWFILL;
  297. union {
  298. volatile DWORD VTGSerialClk ; // 0x3078 SX/TX VTG Register
  299. volatile DWORD FifoControl ; // 0x3078 P2 VTG Register
  300. }; DWFILL;
  301. volatile DWORD ScreenBaseRight ; DWFILL; // 0x3080 P2 VTG Register
  302. volatile DWORD MiscControl ; DWFILL; // 0x3088 P3R3 VTG Register
  303. /* Video Overlay Control */
  304. volatile DWORD Fill3a[0x3100/4 - 0x3090/4];
  305. /* 3100h */
  306. volatile DWORD VideoOverlayUpdate ; DWFILL; // 0x3100
  307. volatile DWORD VideoOverlayMode ; DWFILL; // 0x3108
  308. volatile DWORD VideoOverlayFifoControl ; DWFILL; // 0x3110
  309. volatile DWORD VideoOverlayIndex ; DWFILL; // 0x3118
  310. volatile DWORD VideoOverlayBase0 ; DWFILL; // 0x3120
  311. volatile DWORD VideoOverlayBase1 ; DWFILL; // 0x3128
  312. volatile DWORD VideoOverlayBase2 ; DWFILL; // 0x3130
  313. volatile DWORD VideoOverlayStride ; DWFILL; // 0x3138
  314. volatile DWORD VideoOverlayWidth ; DWFILL; // 0x3140
  315. volatile DWORD VideoOverlayHeight ; DWFILL; // 0x3148
  316. volatile DWORD VideoOverlayOrigin ; DWFILL; // 0x3150
  317. volatile DWORD VideoOverlayShrinkXDelta ; DWFILL; // 0x3158
  318. volatile DWORD VideoOverlayZoomXDelta ; DWFILL; // 0x3160
  319. volatile DWORD VideoOverlayYDelta ; DWFILL; // 0x3168
  320. volatile DWORD VideoOverlayFieldOffset ; DWFILL; // 0x3170
  321. volatile DWORD VideoOverlayStatus ; DWFILL; // 0x3178
  322. /* External Video Control */
  323. volatile DWORD Fill4[0x4000/4 - 0x3180/4];
  324. /* 4000h */
  325. volatile DWORD ExtVCReg ; DWFILL; // Dac registers
  326. volatile DWORD Fill5[0x5000/4 - 0x4008/4];
  327. union {
  328. volatile DWORD RacerProDWAndStatus ; // 0x5000 Racer Pro Config
  329. volatile DWORD P2ExtVCReg ; // 0x5000 P2 External Dac
  330. }; DWFILL;
  331. volatile DWORD Fill5a[0x5800/4 - 0x5008/4];
  332. /* 5800h (Video Streams Interface) */
  333. volatile DWORD VSConfiguration ; DWFILL; // 0x5800 PM VidStream Register
  334. volatile DWORD VSStatus ; DWFILL; // 0x5808 PM VidStream Register
  335. volatile DWORD VSSerialBusControl ; DWFILL; // 0x5810 PM I2C Register
  336. volatile DWORD Fill6[0x5900/4 - 0x5818/4];
  337. // Video Stream A Video Data
  338. volatile DWORD VSAControl ; DWFILL; // 0x5900 PM VidStream A Register
  339. volatile DWORD VSAInterruptLine ; DWFILL; // 0x5908 PM VidStream A Register
  340. volatile DWORD VSACurrentLine ; DWFILL; // 0x5910 PM VidStream A Register
  341. volatile DWORD VSAVideoAddressHost ; DWFILL; // 0x5918 PM VidStream A Register
  342. volatile DWORD VSAVideoAddressIndex ; DWFILL; // 0x5920 PM VidStream A Register
  343. volatile DWORD VSAVideoAddress0 ; DWFILL; // 0x5928 PM VidStream A Register
  344. volatile DWORD VSAVideoAddress1 ; DWFILL; // 0x5930 PM VidStream A Register
  345. volatile DWORD VSAVideoAddress2 ; DWFILL; // 0x5938 PM VidStream A Register
  346. volatile DWORD VSAVideoStride ; DWFILL; // 0x5940 PM VidStream A Register
  347. volatile DWORD VSAVideoStartLine ; DWFILL; // 0x5948 PM VidStream A Register
  348. volatile DWORD VSAVideoEndLine ; DWFILL; // 0x5950 PM VidStream A Register
  349. volatile DWORD VSAVideoStartData ; DWFILL; // 0x5958 PM VidStream A Register
  350. volatile DWORD VSAVideoEndData ; DWFILL; // 0x5960 PM VidStream A Register
  351. // Video Stream A VBI Data
  352. volatile DWORD VSAVBIAddressHost ; DWFILL; // 0x5968 PM VidStream A Register
  353. volatile DWORD VSAVBIAddressIndex ; DWFILL; // 0x5970 PM VidStream A Register
  354. volatile DWORD VSAVBIAddress0 ; DWFILL; // 0x5978 PM VidStream A Register
  355. volatile DWORD VSAVBIAddress1 ; DWFILL; // 0x5980 PM VidStream A Register
  356. volatile DWORD VSAVBIAddress2 ; DWFILL; // 0x5988 PM VidStream A Register
  357. volatile DWORD VSAVBIStride ; DWFILL; // 0x5990 PM VidStream A Register
  358. volatile DWORD VSAVBIStartLine ; DWFILL; // 0x5998 PM VidStream A Register
  359. volatile DWORD VSAVBIEndLine ; DWFILL; // 0x59A0 PM VidStream A Register
  360. volatile DWORD VSAVBIStartData ; DWFILL; // 0x59A8 PM VidStream A Register
  361. volatile DWORD VSAVBIEndData ; DWFILL; // 0x59B0 PM VidStream A Register
  362. volatile DWORD VSAFIFOControl ; DWFILL; // 0x59B8 PM VidStream A Register
  363. // P3 R3 specific VSA registers
  364. volatile DWORD VSATimeStamp0 ; DWFILL; // 0x59C0 P3R3 PM VidStream A Register
  365. volatile DWORD VSATimeStamp1 ; DWFILL; // 0x59C8 P3R3 PM VidStream A Register
  366. volatile DWORD VSATimeStamp2 ; DWFILL; // 0x59D0 P3R3 PM VidStream A Register
  367. volatile DWORD VSADroppedFrames ; DWFILL; // 0x59D8 P3R3 PM VidStream A Register
  368. volatile DWORD Fill7[0x5A00/4 - 0x59E0/4];
  369. // Video Stream B Video Data
  370. volatile DWORD VSBControl ; DWFILL; // 0x5A00 PM VidStream B Register
  371. volatile DWORD VSBInterruptLine ; DWFILL; // 0x5A08 PM VidStream B Register
  372. volatile DWORD VSBCurrentLine ; DWFILL; // 0x5A10 PM VidStream B Register
  373. volatile DWORD VSBVideoAddressHost ; DWFILL; // 0x5A18 PM VidStream B Register
  374. volatile DWORD VSBVideoAddressIndex ; DWFILL; // 0x5A20 PM VidStream B Register
  375. volatile DWORD VSBVideoAddress0 ; DWFILL; // 0x5A28 PM VidStream B Register
  376. volatile DWORD VSBVideoAddress1 ; DWFILL; // 0x5A30 PM VidStream B Register
  377. volatile DWORD VSBVideoAddress2 ; DWFILL; // 0x5A38 PM VidStream B Register
  378. volatile DWORD VSBVideoStride ; DWFILL; // 0x5A40 PM VidStream B Register
  379. volatile DWORD VSBVideoStartLine ; DWFILL; // 0x5A48 PM VidStream B Register
  380. volatile DWORD VSBVideoEndLine ; DWFILL; // 0x5A50 PM VidStream B Register
  381. volatile DWORD VSBVideoStartData ; DWFILL; // 0x5A58 PM VidStream B Register
  382. volatile DWORD VSBVideoEndData ; DWFILL; // 0x5A60 PM VidStream B Register
  383. volatile DWORD VSBVBIAddressHost ; DWFILL; // 0x5A68 PM VidStream B Register
  384. volatile DWORD VSBVBIAddressIndex ; DWFILL; // 0x5A70 PM VidStream B Register
  385. volatile DWORD VSBVBIAddress0 ; DWFILL; // 0x5A78 PM VidStream B Register
  386. volatile DWORD VSBVBIAddress1 ; DWFILL; // 0x5A80 PM VidStream B Register
  387. volatile DWORD VSBVBIAddress2 ; DWFILL; // 0x5A88 PM VidStream B Register
  388. volatile DWORD VSBVBIStride ; DWFILL; // 0x5A90 PM VidStream B Register
  389. volatile DWORD VSBVBIStartLine ; DWFILL; // 0x5A98 PM VidStream B Register
  390. volatile DWORD VSBVBIEndLine ; DWFILL; // 0x5AA0 PM VidStream B Register
  391. volatile DWORD VSBVBIStartData ; DWFILL; // 0x5AA8 PM VidStream B Register
  392. volatile DWORD VSBVBIEndData ; DWFILL; // 0x5AB0 PM VidStream B Register
  393. volatile DWORD VSBFIFOControl ; DWFILL; // 0x5AB8 PM VidStream B Register
  394. // P3 R3 specific VS registers
  395. volatile DWORD VSDMAMode ; DWFILL; // 0x5AC0 P3R3 PM VidStream A Register
  396. volatile DWORD VSDMACommandBase ; DWFILL; // 0x5AC8 P3R3 PM VidStream A Register
  397. volatile DWORD VSDMACommandCount ; DWFILL; // 0x5AD0 P3R3 PM VidStream A Register
  398. volatile DWORD Fill8[0x6000/4 - 0x5AD8/4];
  399. /* 6000h */
  400. volatile DWORD ExtBrdReg ; DWFILL;
  401. volatile DWORD VRAMBankSwitch ; DWFILL;
  402. volatile DWORD Fill9[0x63C0/4 - 0x6010/4] ;
  403. WFILL; // 0x63c0
  404. volatile BYTE WriteMiscOutputReg ; // 0x63c2
  405. volatile BYTE Fill9a ; // 0x63c3
  406. union {
  407. volatile WORD VGASequencerReg ; // 0x63c4
  408. struct {
  409. volatile BYTE VGASequencerIndexReg ; // 0x63c4
  410. volatile BYTE VGASequencerDataReg ; // 0x63c5
  411. };
  412. };
  413. WFILL; // 0x63c6
  414. DWFILL; // 0x63c8
  415. volatile BYTE ReadMiscOutputReg ; // 0x63cc
  416. volatile BYTE Fill9b ; WFILL; // 0x63cd
  417. volatile DWORD Fill10[0x7000/4 - 0x63D0/4] ;
  418. volatile DWORD RacerProUBufB ; DWFILL; // 0x7000 Racer Pro config
  419. volatile DWORD Fill10a[0x8000/4 - 0x7008/4];
  420. /* Graphics Processor */
  421. /* 8000h */
  422. volatile DWORD StartXDom ; DWFILL; /* 0 */
  423. volatile DWORD dXDom ; DWFILL; /* 1 */
  424. volatile DWORD StartXSub ; DWFILL; /* 2 */
  425. volatile DWORD dXSub ; DWFILL; /* 3 */
  426. volatile DWORD StartY ; DWFILL; /* 4 */
  427. volatile DWORD dY ; DWFILL; /* 5 */
  428. volatile DWORD Count ; DWFILL; /* 6 */
  429. volatile DWORD Render ; DWFILL; /* 7 */
  430. volatile DWORD ContinueNewLine ; DWFILL; /* 8 */
  431. volatile DWORD ContinueNewDom ; DWFILL; /* 9 */
  432. volatile DWORD ContinueNewSub ; DWFILL; /* A */
  433. volatile DWORD Continue ; DWFILL; /* B */
  434. volatile DWORD FlushSpan ; DWFILL; /* C */
  435. volatile DWORD BitMaskPattern ; DWFILL; /* D */
  436. DWFILL; DWFILL; DWFILL; DWFILL; /* e-f */
  437. /* 8000h+16*8 */
  438. volatile DWORD PointTable0 ; DWFILL; /* 10 */
  439. volatile DWORD PointTable1 ; DWFILL; /* 11 */
  440. volatile DWORD PointTable2 ; DWFILL; /* 12 */
  441. volatile DWORD PointTable3 ; DWFILL; /* 13 */
  442. volatile DWORD RasterizerMode ; DWFILL; /* 14 */
  443. volatile DWORD YLimits ; DWFILL; /* 15 */
  444. volatile DWORD ScanlineOwnership ; DWFILL; /* 16 */
  445. volatile DWORD WaitForCompletion ; DWFILL; /* 17 */
  446. volatile DWORD PixelSize ; DWFILL; /* 18 */
  447. volatile DWORD XLimits ; DWFILL; /* 19 */
  448. volatile DWORD RectangleOrigin ; DWFILL; /* 1a */
  449. volatile DWORD RectangleSize ; DWFILL; /* 1b */
  450. volatile DWORD Fill11[4*2]; /* 1c-1f */
  451. /* 8000h+32*8 */
  452. volatile DWORD CoverageValue ; DWFILL; /* 20 */
  453. volatile DWORD PrepareToRender ; DWFILL; /* 21 */
  454. volatile DWORD ActiveStepX ; DWFILL; /* 22 */
  455. volatile DWORD PassiveStepX ; DWFILL; /* 23 */
  456. volatile DWORD ActiveStepYDomEdge ; DWFILL; /* 24 */
  457. volatile DWORD PassiveStepYDomEdge ; DWFILL; /* 25 */
  458. volatile DWORD FastBlockLimits ; DWFILL; /* 26 */
  459. volatile DWORD FastBlockFill ; DWFILL; /* 27 */
  460. volatile DWORD SubPixelCorrection ; DWFILL; /* 28 */
  461. volatile DWORD ForceBackgroundColor ; DWFILL; /* 29 */
  462. volatile DWORD PackedDataLimits ; DWFILL; /* 2a */
  463. volatile DWORD SpanStepX ; DWFILL; /* 2b */
  464. volatile DWORD SpanStepYDomEdge ; DWFILL; /* 2c */
  465. volatile DWORD SpanMask ; DWFILL; /* 2d */
  466. volatile DWORD SuspendReads ; DWFILL; /* 2e */
  467. volatile DWORD Fill12[1*2]; /* 2f */
  468. /* 8000h+48*8 */
  469. volatile DWORD ScissorMode ; DWFILL; /* 30 */
  470. volatile DWORD ScissorMinXY ; DWFILL; /* 31 */
  471. volatile DWORD ScissorMaxXY ; DWFILL; /* 32 */
  472. volatile DWORD ScreenSize ; DWFILL; /* 33 */
  473. volatile DWORD AreaStippleMode ; DWFILL; /* 34 */
  474. volatile DWORD LineStippleMode ; DWFILL; /* 35 */
  475. volatile DWORD LoadLineStippleCounters ; DWFILL; /* 36 */
  476. volatile DWORD UpdateLineStippleCounters ; DWFILL; /* 37 */
  477. volatile DWORD SaveLineStippleCounters ; DWFILL; /* 38 */
  478. volatile DWORD WindowOrigin ; DWFILL; /* 39 */
  479. volatile DWORD Fill13[6*2]; /* 3a-3f */
  480. /* 8000h+64*8 */
  481. volatile DWORD AreaStipplePattern0 ; DWFILL; /* 40 */
  482. volatile DWORD AreaStipplePattern1 ; DWFILL; /* 41 */
  483. volatile DWORD AreaStipplePattern2 ; DWFILL; /* 42 */
  484. volatile DWORD AreaStipplePattern3 ; DWFILL; /* 43 */
  485. volatile DWORD AreaStipplePattern4 ; DWFILL; /* 44 */
  486. volatile DWORD AreaStipplePattern5 ; DWFILL; /* 45 */
  487. volatile DWORD AreaStipplePattern6 ; DWFILL; /* 46 */
  488. volatile DWORD AreaStipplePattern7 ; DWFILL; /* 47 */
  489. volatile DWORD AreaStipplePattern8 ; DWFILL; /* 48 */
  490. volatile DWORD AreaStipplePattern9 ; DWFILL; /* 49 */
  491. volatile DWORD AreaStipplePattern10 ; DWFILL; /* 4a */
  492. volatile DWORD AreaStipplePattern11 ; DWFILL; /* 4b */
  493. volatile DWORD AreaStipplePattern12 ; DWFILL; /* 4c */
  494. volatile DWORD AreaStipplePattern13 ; DWFILL; /* 4d */
  495. volatile DWORD AreaStipplePattern14 ; DWFILL; /* 4e */
  496. volatile DWORD AreaStipplePattern15 ; DWFILL; /* 4f */
  497. volatile DWORD AreaStipplePattern16 ; DWFILL; /* 50 */
  498. volatile DWORD AreaStipplePattern17 ; DWFILL; /* 51 */
  499. volatile DWORD AreaStipplePattern18 ; DWFILL; /* 52 */
  500. volatile DWORD AreaStipplePattern19 ; DWFILL; /* 53 */
  501. volatile DWORD AreaStipplePattern20 ; DWFILL; /* 54 */
  502. volatile DWORD AreaStipplePattern21 ; DWFILL; /* 55 */
  503. volatile DWORD AreaStipplePattern22 ; DWFILL; /* 56 */
  504. volatile DWORD AreaStipplePattern23 ; DWFILL; /* 57 */
  505. volatile DWORD AreaStipplePattern24 ; DWFILL; /* 58 */
  506. volatile DWORD AreaStipplePattern25 ; DWFILL; /* 59 */
  507. volatile DWORD AreaStipplePattern26 ; DWFILL; /* 5a */
  508. volatile DWORD AreaStipplePattern27 ; DWFILL; /* 5b */
  509. volatile DWORD AreaStipplePattern28 ; DWFILL; /* 5c */
  510. volatile DWORD AreaStipplePattern29 ; DWFILL; /* 5d */
  511. volatile DWORD AreaStipplePattern30 ; DWFILL; /* 5e */
  512. volatile DWORD AreaStipplePattern31 ; DWFILL; /* 5f */
  513. volatile DWORD Fill14[16*2]; /* 60-6f */
  514. volatile DWORD TextureAddressMode ; DWFILL; /* 70 */
  515. volatile DWORD SStart ; DWFILL; /* 71 */
  516. volatile DWORD dSdx ; DWFILL; /* 72 */
  517. volatile DWORD dSdyDom ; DWFILL; /* 73 */
  518. volatile DWORD TStart ; DWFILL; /* 74 */
  519. volatile DWORD dTdx ; DWFILL; /* 75 */
  520. volatile DWORD dTdyDom ; DWFILL; /* 76 */
  521. volatile DWORD QStart ; DWFILL; /* 77 */
  522. volatile DWORD dQdx ; DWFILL; /* 78 */
  523. volatile DWORD dQdyDom ; DWFILL; /* 79 */
  524. volatile DWORD LOD ; DWFILL; /* 7a */
  525. volatile DWORD dSdy ; DWFILL; /* 7b */
  526. volatile DWORD dTdy ; DWFILL; /* 7c */
  527. volatile DWORD dQdy ; DWFILL; /* 7d */
  528. volatile DWORD Fill15[2*2]; /* 7e-7f */
  529. union {
  530. volatile DWORD TextureAddress ;
  531. volatile DWORD S1Start ;
  532. }; DWFILL; /* 80 */
  533. union {
  534. volatile DWORD TexelCoordUV ;
  535. volatile DWORD dS1dx ;
  536. }; DWFILL; /* 81 */
  537. union {
  538. volatile DWORD TexelCoordU ;
  539. volatile DWORD dS1dyDom ;
  540. }; DWFILL; /* 82 */
  541. union {
  542. volatile DWORD TexelCoordV ;
  543. volatile DWORD T1Start ;
  544. }; DWFILL; /* 83 */
  545. volatile DWORD dT1dx ; DWFILL; // [0x084]
  546. volatile DWORD dT1dyDom ; DWFILL; // [0x085]
  547. volatile DWORD Q1Start ; DWFILL; // [0x086]
  548. volatile DWORD dQ1dx ; DWFILL; // [0x087]
  549. volatile DWORD dQ1dyDom ; DWFILL; // [0x088]
  550. volatile DWORD LOD1 ; DWFILL; // [0x089]
  551. volatile DWORD TextureLODBiasS ; DWFILL; // [0x08A]
  552. volatile DWORD TextureLODBiasT ; DWFILL; // [0x08B]
  553. volatile DWORD Fill16[4*2]; /* 8b-8f */
  554. volatile DWORD TxTextureReadMode ; DWFILL; /* 90 */
  555. volatile DWORD TextureFormat ; DWFILL; /* 91 */
  556. volatile DWORD TextureCacheControl ; DWFILL; /* 92 */
  557. volatile DWORD TexelData0 ; DWFILL; /* 93 */
  558. volatile DWORD TexelData1 ; DWFILL; /* 94 */
  559. volatile DWORD BorderColor ; DWFILL; /* 95 */
  560. volatile DWORD LUTData ; DWFILL; /* 96 */
  561. volatile DWORD LUTDataDirect ; DWFILL; /* 97 */
  562. volatile DWORD TexelLUTIndex ; DWFILL; /* 98 */
  563. volatile DWORD TexelLUTData ; DWFILL; /* 99 */
  564. volatile DWORD TexelLUTAddress ; DWFILL; /* 9a */
  565. volatile DWORD TexelLUTTransfer ; DWFILL; /* 9b */
  566. volatile DWORD TextureFilterMode ; DWFILL; /* 9c */
  567. volatile DWORD TextureChromaUpper ; DWFILL; /* 9d */
  568. volatile DWORD TextureChromaLower ; DWFILL; /* 9e */
  569. volatile DWORD BorderColor1 ; DWFILL; /* 9f */
  570. volatile DWORD TxBaseAddr0 ; DWFILL; /* a0 */
  571. volatile DWORD TxBaseAddr1 ; DWFILL; /* a1 */
  572. volatile DWORD TxBaseAddr2 ; DWFILL; /* a2 */
  573. volatile DWORD TxBaseAddr3 ; DWFILL; /* a3 */
  574. volatile DWORD TxBaseAddr4 ; DWFILL; /* a4 */
  575. volatile DWORD TxBaseAddr5 ; DWFILL; /* a5 */
  576. volatile DWORD TxBaseAddr6 ; DWFILL; /* a6 */
  577. volatile DWORD TxBaseAddr7 ; DWFILL; /* a7 */
  578. volatile DWORD TxBaseAddr8 ; DWFILL; /* a8 */
  579. volatile DWORD TxBaseAddr9 ; DWFILL; /* a9 */
  580. volatile DWORD TxBaseAddr10 ; DWFILL; /* aa */
  581. volatile DWORD TxBaseAddr11 ; DWFILL; /* ab */
  582. volatile DWORD TxBaseAddr12 ; DWFILL; /* ac */
  583. volatile DWORD TxBaseAddr13 ; DWFILL; /* ad */
  584. volatile DWORD TxBaseAddr14 ; DWFILL; /* ae */
  585. volatile DWORD TxBaseAddr15 ; DWFILL; /* af */
  586. // volatile DWORD Fill17[4*2]; /* ac-af */
  587. volatile DWORD TextureBaseAddress ; DWFILL; /* b0 Permedia */
  588. volatile DWORD TextureMapFormat ; DWFILL; /* b1 Permedia */
  589. volatile DWORD TextureDataFormat ; DWFILL; /* b2 Permedia */
  590. volatile DWORD TextureMapWidth3 ; DWFILL; // [0x0B3]
  591. volatile DWORD TextureMapWidth4 ; DWFILL; // [0x0B4]
  592. volatile DWORD TextureReadPad ; DWFILL; /* b5 Permedia */
  593. volatile DWORD TextureMapWidth6 ; DWFILL; // [0x0B6]
  594. volatile DWORD TextureMapWidth7 ; DWFILL; // [0x0B7]
  595. volatile DWORD TextureMapWidth8 ; DWFILL; // [0x0B8]
  596. volatile DWORD TextureMapWidth9 ; DWFILL; // [0x0B9]
  597. volatile DWORD TextureMapWidth10 ; DWFILL; // [0x0BA]
  598. volatile DWORD TextureMapWidth11 ; DWFILL; // [0x0BB]
  599. volatile DWORD TextureMapWidth12 ; DWFILL; // [0x0BC]
  600. volatile DWORD TextureMapWidth13 ; DWFILL; // [0x0BD]
  601. volatile DWORD TextureMapWidth14 ; DWFILL; // [0x0BE]
  602. volatile DWORD TextureMapWidth15 ; DWFILL; // [0x0BF]
  603. /* 8000+192*8 */
  604. union {
  605. volatile DWORD Texel0 ;
  606. volatile DWORD TextureChromaUpper1 ;
  607. }; DWFILL; /* c0 */
  608. union {
  609. volatile DWORD Texel1 ;
  610. volatile DWORD TextureChromaLower1 ;
  611. }; DWFILL; /* c1 */
  612. volatile DWORD Texel2 ; DWFILL; /* c2 */
  613. volatile DWORD Texel3 ; DWFILL; /* c3 */
  614. volatile DWORD Texel4 ; DWFILL; /* c4 */
  615. volatile DWORD Texel5 ; DWFILL; /* c5 */
  616. volatile DWORD Texel6 ; DWFILL; /* c6 */
  617. volatile DWORD Texel7 ; DWFILL; /* c7 */
  618. volatile DWORD Interp0 ; DWFILL; /* c8 */
  619. volatile DWORD Interp1 ; DWFILL; /* c9 */
  620. volatile DWORD Interp2 ; DWFILL; /* ca */
  621. volatile DWORD Interp3 ; DWFILL; /* cb */
  622. volatile DWORD Interp4 ; DWFILL; /* cc */
  623. volatile DWORD TextureFilter ; DWFILL; /* cd */
  624. volatile DWORD FxTextureReadMode ; DWFILL; /* ce */
  625. volatile DWORD TextureLUTMode ; DWFILL; /* cf */
  626. /* 8000h+208*8 */
  627. volatile DWORD TextureColorMode ; DWFILL; /* d0 */
  628. volatile DWORD TextureEnvColor ; DWFILL; /* d1 */
  629. volatile DWORD FogMode ; DWFILL; /* d2 */
  630. volatile DWORD FogColor ; DWFILL; /* d3 */
  631. volatile DWORD FStart ; DWFILL; /* d4 */
  632. volatile DWORD dFdx ; DWFILL; /* d5 */
  633. volatile DWORD dFdyDom ; DWFILL; /* d6 */
  634. union {
  635. volatile DWORD TextureKd ;
  636. volatile DWORD ZFogBias ;
  637. }; DWFILL; /* d7 */
  638. volatile DWORD TextureKs ; DWFILL; /* d8 */
  639. volatile DWORD KsStart ; DWFILL; /* d9 */
  640. volatile DWORD dKsdx ; DWFILL; /* da */
  641. volatile DWORD dKsdyDom ; DWFILL; /* db */
  642. volatile DWORD KdStart ; DWFILL; /* dc */
  643. volatile DWORD dKddx ; DWFILL; /* dd */
  644. volatile DWORD dKddyDom ; DWFILL; /* de */
  645. DWFILL; DWFILL; /* df */
  646. volatile DWORD Fill20[16*2]; /* e0-ef */
  647. /* 8000h+240*8 */
  648. volatile DWORD RStart ; DWFILL; /* f0 */
  649. volatile DWORD dRdx ; DWFILL; /* f1 */
  650. volatile DWORD dRdyDom ; DWFILL; /* f2 */
  651. volatile DWORD GStart ; DWFILL; /* f3 */
  652. volatile DWORD dGdx ; DWFILL; /* f4 */
  653. volatile DWORD dGdyDom ; DWFILL; /* f5 */
  654. volatile DWORD BStart ; DWFILL; /* f6 */
  655. volatile DWORD dBdx ; DWFILL; /* f7 */
  656. volatile DWORD dBdyDom ; DWFILL; /* f8 */
  657. volatile DWORD AStart ; DWFILL; /* f9 */
  658. volatile DWORD dAdx ; DWFILL; /* fa */
  659. volatile DWORD dAdyDom ; DWFILL; /* fb */
  660. volatile DWORD ColorDDAMode ; DWFILL; /* fc */
  661. volatile DWORD ConstantColor ; DWFILL; /* fd */
  662. volatile DWORD Color ; DWFILL; /* fe */
  663. DWFILL; DWFILL; /* ff */
  664. /* 8000h+256*8 */
  665. volatile DWORD AlphaTestMode ; DWFILL; /* 100 */
  666. volatile DWORD AntialiasMode ; DWFILL; /* 101 */
  667. volatile DWORD AlphaBlendMode ; DWFILL; /* 102 */
  668. volatile DWORD DitherMode ; DWFILL; /* 103 */
  669. volatile DWORD FBSoftwareWriteMask ; DWFILL; /* 104 */
  670. volatile DWORD LogicalOpMode ; DWFILL; /* 105 */
  671. volatile DWORD FBWriteData ; DWFILL; /* 105 */
  672. volatile DWORD FBCancelWrite ; DWFILL; /* 107 */
  673. union {
  674. volatile DWORD ActiveColorStepX ; /* 108 */
  675. volatile DWORD RouterMode ; /* 108 */
  676. }; DWFILL;
  677. volatile DWORD ActiveColorStepYDomEdge ; DWFILL; /* 109 */
  678. volatile DWORD Fill21[6*2]; /* 10a-10f */
  679. /* 8000h+272*8 */
  680. volatile DWORD LBReadMode ; DWFILL; /* 110 */
  681. volatile DWORD LBReadFormat ; DWFILL; /* 111 */
  682. volatile DWORD LBSourceOffset ; DWFILL; /* 112 */
  683. volatile DWORD LBData ; DWFILL; /* 113 */
  684. volatile DWORD LBSourceData ; DWFILL; /* 114 */
  685. volatile DWORD LBStencil ; DWFILL; /* 115 */
  686. volatile DWORD LBDepth ; DWFILL; /* 116 */
  687. volatile DWORD LBWindowBase ; DWFILL; /* 117 */
  688. volatile DWORD LBWriteMode ; DWFILL; /* 118 */
  689. volatile DWORD LBWriteFormat ; DWFILL; /* 119 */
  690. volatile DWORD LBWriteBase ; DWFILL; /* 11a */
  691. volatile DWORD LBWriteConfig ; DWFILL; /* 11b */
  692. volatile DWORD LBReadPad ; DWFILL; /* 11c */
  693. volatile DWORD TextureData ; DWFILL; /* 11d */
  694. volatile DWORD TextureDownloadOffset ; DWFILL; /* 11e */
  695. volatile DWORD LBWindowOffset ; DWFILL; /* 11f */
  696. volatile DWORD HostInID ; DWFILL; /* 120 */
  697. volatile DWORD Security ; DWFILL; /* 121 */
  698. volatile DWORD FlushWriteCombining ; DWFILL; /* 122 */
  699. volatile DWORD HostInState ; DWFILL; /* 123 */
  700. volatile DWORD HostInIndex0 ; DWFILL; /* 124 */
  701. volatile DWORD HostInIndex1 ; DWFILL; /* 125 */
  702. volatile DWORD HostInIndex2 ; DWFILL; /* 126 */
  703. volatile DWORD HostInDMAAddress ; DWFILL; /* 127 */
  704. volatile DWORD HostInState2 ; DWFILL; /* 128 */
  705. volatile DWORD Fill22[7*2]; /* 129-12f */
  706. /* 8000h+304*8 */
  707. volatile DWORD Window ; DWFILL; /* 130 */
  708. volatile DWORD StencilMode ; DWFILL; /* 131 */
  709. volatile DWORD StencilData ; DWFILL; /* 132 */
  710. volatile DWORD Stencil ; DWFILL; /* 133 */
  711. volatile DWORD DepthMode ; DWFILL; /* 134 */
  712. volatile DWORD Depth ; DWFILL; /* 135 */
  713. volatile DWORD ZStartU ; DWFILL; /* 136 */
  714. volatile DWORD ZStartL ; DWFILL; /* 137 */
  715. volatile DWORD dZdxU ; DWFILL; /* 138 */
  716. volatile DWORD dZdxL ; DWFILL; /* 139 */
  717. volatile DWORD dZdyDomU ; DWFILL; /* 13a */
  718. volatile DWORD dZdyDomL ; DWFILL; /* 13b */
  719. volatile DWORD FastClearDepth ; DWFILL; /* 13c */
  720. volatile DWORD LBCancelWrite ; DWFILL; /* 13d */
  721. volatile DWORD LBWriteData ; DWFILL; /* 13e */
  722. DWFILL; DWFILL; /* 13f */
  723. volatile DWORD Fill23[16*2]; /* 140-14f */
  724. /* 8000h+336*8 */
  725. volatile DWORD FBReadMode ; DWFILL; /* 150 */
  726. volatile DWORD FBSourceOffset ; DWFILL; /* 151 */
  727. volatile DWORD FBPixelOffset ; DWFILL; /* 152 */
  728. volatile DWORD FBColor ; DWFILL; /* 153 */
  729. volatile DWORD FBData ; DWFILL; /* 154 */
  730. volatile DWORD FBSourceData ; DWFILL; /* 155 */
  731. volatile DWORD FBWindowBase ; DWFILL; /* 156 */
  732. volatile DWORD FBWriteMode ; DWFILL; /* 157 */
  733. volatile DWORD FBHardwareWriteMask ; DWFILL; /* 158 */
  734. volatile DWORD FBBlockColor ; DWFILL; /* 159 */
  735. volatile DWORD FBReadPixel ; DWFILL; /* 15a */
  736. volatile DWORD FBWritePixel ; DWFILL; /* 15b */
  737. volatile DWORD FBWriteBase ; DWFILL; /* 15c */
  738. volatile DWORD FBWriteConfig ; DWFILL; /* 15d */
  739. volatile DWORD FBReadPad ; DWFILL; /* 15e */
  740. volatile DWORD PatternRAMMode ; DWFILL; /* 15f */
  741. volatile DWORD PatternRamData0 ; DWFILL; /* 160 */
  742. volatile DWORD PatternRamData1 ; DWFILL; /* 161 */
  743. volatile DWORD PatternRamData2 ; DWFILL; /* 162 */
  744. volatile DWORD PatternRamData3 ; DWFILL; /* 163 */
  745. volatile DWORD PatternRamData4 ; DWFILL; /* 164 */
  746. volatile DWORD PatternRamData5 ; DWFILL; /* 165 */
  747. volatile DWORD PatternRamData6 ; DWFILL; /* 166 */
  748. volatile DWORD PatternRamData7 ; DWFILL; /* 167 */
  749. volatile DWORD PatternRamData8 ; DWFILL; /* 168 */
  750. volatile DWORD PatternRamData9 ; DWFILL; /* 169 */
  751. volatile DWORD PatternRamData10 ; DWFILL; /* 16a */
  752. volatile DWORD PatternRamData11 ; DWFILL; /* 16b */
  753. volatile DWORD PatternRamData12 ; DWFILL; /* 16c */
  754. volatile DWORD PatternRamData13 ; DWFILL; /* 16d */
  755. volatile DWORD PatternRamData14 ; DWFILL; /* 16e */
  756. volatile DWORD PatternRamData15 ; DWFILL; /* 16f */
  757. volatile DWORD PatternRamData16 ; DWFILL; /* 170 */
  758. volatile DWORD PatternRamData17 ; DWFILL; /* 171 */
  759. volatile DWORD PatternRamData18 ; DWFILL; /* 172 */
  760. volatile DWORD PatternRamData19 ; DWFILL; /* 173 */
  761. volatile DWORD PatternRamData20 ; DWFILL; /* 174 */
  762. volatile DWORD PatternRamData21 ; DWFILL; /* 175 */
  763. volatile DWORD PatternRamData22 ; DWFILL; /* 176 */
  764. volatile DWORD PatternRamData23 ; DWFILL; /* 177 */
  765. volatile DWORD PatternRamData24 ; DWFILL; /* 178 */
  766. volatile DWORD PatternRamData25 ; DWFILL; /* 179 */
  767. volatile DWORD PatternRamData26 ; DWFILL; /* 17a */
  768. volatile DWORD PatternRamData27 ; DWFILL; /* 17b */
  769. volatile DWORD PatternRamData28 ; DWFILL; /* 17c */
  770. volatile DWORD PatternRamData29 ; DWFILL; /* 17d */
  771. volatile DWORD PatternRamData30 ; DWFILL; /* 17e */
  772. volatile DWORD PatternRamData31 ; DWFILL; /* 17f */
  773. /* 8000h+384*8 */
  774. volatile DWORD FilterMode ; DWFILL; /* 180 */
  775. volatile DWORD StatisticMode ; DWFILL; /* 181 */
  776. volatile DWORD MinRegion ; DWFILL; /* 182 */
  777. volatile DWORD MaxRegion ; DWFILL; /* 183 */
  778. volatile DWORD ResetPickResult ; DWFILL; /* 184 */
  779. volatile DWORD MinHitRegion ; DWFILL; /* 185 */
  780. volatile DWORD MaxHitRegion ; DWFILL; /* 186 */
  781. volatile DWORD PickResult ; DWFILL; /* 187 */
  782. volatile DWORD Sync ; DWFILL; /* 188 */
  783. volatile DWORD RLEMask ; DWFILL; // [0x189]
  784. DWFILL; DWFILL; /* 18a */
  785. volatile DWORD FBBlockColorBackU ; DWFILL; // [0x18B]
  786. volatile DWORD FBBlockColorBackL ; DWFILL; // [0x18C]
  787. volatile DWORD FBBlockColorUpper ; DWFILL; /* 18d */
  788. volatile DWORD FBBlockColorLower ; DWFILL; /* 18e */
  789. volatile DWORD SuspendUntilFrameBlank ; DWFILL; /* 18f */
  790. volatile DWORD KsRStart ; DWFILL; /* 190 */
  791. volatile DWORD dKsRdx ; DWFILL; /* 191 */
  792. volatile DWORD dKsRdyDom ; DWFILL; /* 192 */
  793. volatile DWORD KsGStart ; DWFILL; /* 193 */
  794. volatile DWORD dKsGdx ; DWFILL; /* 194 */
  795. volatile DWORD dKsGdyDom ; DWFILL; /* 195 */
  796. volatile DWORD KsBStart ; DWFILL; /* 196 */
  797. volatile DWORD dKsBdx ; DWFILL; /* 197 */
  798. volatile DWORD dKsBdyDom ; DWFILL; /* 198 */
  799. volatile DWORD Fill24[7*2]; /* 199-19f */
  800. volatile DWORD KdRStart ; DWFILL; /* 1a0 */
  801. volatile DWORD dKdRdx ; DWFILL; /* 1a1 */
  802. volatile DWORD dKdRdyDom ; DWFILL; /* 1a2 */
  803. volatile DWORD KdGStart ; DWFILL; /* 1a3 */
  804. volatile DWORD dKdGdx ; DWFILL; /* 1a4 */
  805. volatile DWORD dKdGdyDom ; DWFILL; /* 1a5 */
  806. volatile DWORD KdBStart ; DWFILL; /* 1a6 */
  807. volatile DWORD dKdBdx ; DWFILL; /* 1a7 */
  808. volatile DWORD dKdBdyDom ; DWFILL; /* 1a8 */
  809. volatile DWORD Fill25[15*2]; /* 1a9-1b7 */
  810. volatile DWORD ContextDump ; DWFILL; // 0x1b8
  811. volatile DWORD ContextRestore ; DWFILL; // 0x1b9
  812. volatile DWORD ContextData ; DWFILL; // 0x1ba
  813. volatile DWORD Fill25a[21*2]; /* 1bb-1cf */
  814. volatile DWORD TexelLUT0 ; DWFILL; /* 1d0 */
  815. volatile DWORD TexelLUT1 ; DWFILL; /* 1d1 */
  816. volatile DWORD TexelLUT2 ; DWFILL; /* 1d2 */
  817. volatile DWORD TexelLUT3 ; DWFILL; /* 1d3 */
  818. volatile DWORD TexelLUT4 ; DWFILL; /* 1d4 */
  819. volatile DWORD TexelLUT5 ; DWFILL; /* 1d5 */
  820. volatile DWORD TexelLUT6 ; DWFILL; /* 1d6 */
  821. volatile DWORD TexelLUT7 ; DWFILL; /* 1d7 */
  822. volatile DWORD TexelLUT8 ; DWFILL; /* 1d8 */
  823. volatile DWORD TexelLUT9 ; DWFILL; /* 1d9 */
  824. volatile DWORD TexelLUT10 ; DWFILL; /* 1da */
  825. volatile DWORD TexelLUT11 ; DWFILL; /* 1db */
  826. volatile DWORD TexelLUT12 ; DWFILL; /* 1dc */
  827. volatile DWORD TexelLUT13 ; DWFILL; /* 1dd */
  828. volatile DWORD TexelLUT14 ; DWFILL; /* 1de */
  829. volatile DWORD TexelLUT15 ; DWFILL; /* 1df */
  830. volatile DWORD YUVMode ; DWFILL; /* 1e0 */
  831. volatile DWORD ChromaUpperBound ; DWFILL; /* 1e1 */
  832. volatile DWORD ChromaLowerBound ; DWFILL; /* 1e2 */
  833. volatile DWORD ChromaTestMode ; DWFILL; /* 1e3 */
  834. volatile DWORD Fill26[28*2]; /* 1e4-1ff */
  835. /* 8000h+512*8 DELTA specific */
  836. union {
  837. volatile DWORD V0Fixed0 ; // Glint Delta
  838. volatile DWORD V0FloatS1 ; }; // Permedia3 Delta
  839. DWFILL; /* 0x200 */
  840. union {
  841. volatile DWORD V0Fixed1 ;
  842. volatile DWORD V0FloatT1 ; };
  843. DWFILL; /* 0x201 */
  844. union {
  845. volatile DWORD V0Fixed2 ;
  846. volatile DWORD V0FloatQ1 ; };
  847. DWFILL; /* 0x202 */
  848. volatile DWORD V0Fixed3 ; DWFILL; /* 0x203 */
  849. volatile DWORD V0Fixed4 ; DWFILL; /* 0x204 */
  850. volatile DWORD V0Fixed5 ; DWFILL; /* 0x205 */
  851. volatile DWORD V0Fixed6 ; DWFILL; /* 0x206 */
  852. volatile DWORD V0Fixed7 ; DWFILL; /* 0x207 */
  853. volatile DWORD V0Fixed8 ; DWFILL; /* 0x208 */
  854. volatile DWORD V0Fixed9 ; DWFILL; /* 0x209 */
  855. union {
  856. volatile DWORD V0FixedA ; // Glint Delta
  857. volatile DWORD V0FloatKsR ; }; // Permedia3 Delta
  858. DWFILL; /* 0x20A */
  859. union {
  860. volatile DWORD V0FixedB ; // Glint Delta
  861. volatile DWORD V0FloatKsG ; }; // Permedia3 Delta
  862. DWFILL; /* 0x20B */
  863. union {
  864. volatile DWORD V0FixedC ; // Glint Delta
  865. volatile DWORD V0FloatKsB ; }; // Permedia3 Delta
  866. DWFILL; /* 0x20C */
  867. volatile DWORD V0FloatKdR ; DWFILL; // [0x20D]
  868. volatile DWORD V0FloatKdG ; DWFILL; // [0x20E]
  869. volatile DWORD V0FloatKdB ; DWFILL; // [0x20F]
  870. // volatile DWORD Fill27[3*2];
  871. union {
  872. volatile DWORD V1Fixed0 ;
  873. volatile DWORD V1FloatS1 ; };
  874. DWFILL; /* 0x210 */
  875. union {
  876. volatile DWORD V1Fixed1 ;
  877. volatile DWORD V1FloatT1 ; };
  878. DWFILL; /* 0x211 */
  879. union {
  880. volatile DWORD V1Fixed2 ;
  881. volatile DWORD V1FloatQ1 ; };
  882. DWFILL; /* 0x212 */
  883. volatile DWORD V1Fixed3 ; DWFILL; /* 0x213 */
  884. volatile DWORD V1Fixed4 ; DWFILL; /* 0x214 */
  885. volatile DWORD V1Fixed5 ; DWFILL; /* 0x215 */
  886. volatile DWORD V1Fixed6 ; DWFILL; /* 0x216 */
  887. volatile DWORD V1Fixed7 ; DWFILL; /* 0x217 */
  888. volatile DWORD V1Fixed8 ; DWFILL; /* 0x218 */
  889. volatile DWORD V1Fixed9 ; DWFILL; /* 0x219 */
  890. union {
  891. volatile DWORD V1FixedA ; // Glint Delta
  892. volatile DWORD V1FloatKsR ; }; // Permedia3 Delta
  893. DWFILL; /* 0x21A */
  894. union {
  895. volatile DWORD V1FixedB ; // Glint Delta
  896. volatile DWORD V1FloatKsG ; }; // Permedia3 Delta
  897. DWFILL; /* 0x21B */
  898. union {
  899. volatile DWORD V1FixedC ; // Glint Delta
  900. volatile DWORD V1FloatKsB ; }; // Permedia3 Delta
  901. DWFILL; /* 0x21C */
  902. volatile DWORD V1FloatKdR ; DWFILL; // [0x21D]
  903. volatile DWORD V1FloatKdG ; DWFILL; // [0x21E]
  904. volatile DWORD V1FloatKdB ; DWFILL; // [0x21F]
  905. // volatile DWORD Fill28[3*2];
  906. union {
  907. volatile DWORD V2Fixed0 ;
  908. volatile DWORD V2FloatS1 ; };
  909. DWFILL; /* 0x220 */
  910. union {
  911. volatile DWORD V2Fixed1 ;
  912. volatile DWORD V2FloatT1 ; };
  913. DWFILL; /* 0x221 */
  914. union {
  915. volatile DWORD V2Fixed2 ;
  916. volatile DWORD V2FloatQ1 ; };
  917. DWFILL; /* 0x222 */
  918. volatile DWORD V2Fixed3 ; DWFILL; /* 0x223 */
  919. volatile DWORD V2Fixed4 ; DWFILL; /* 0x224 */
  920. volatile DWORD V2Fixed5 ; DWFILL; /* 0x225 */
  921. volatile DWORD V2Fixed6 ; DWFILL; /* 0x226 */
  922. volatile DWORD V2Fixed7 ; DWFILL; /* 0x227 */
  923. volatile DWORD V2Fixed8 ; DWFILL; /* 0x228 */
  924. volatile DWORD V2Fixed9 ; DWFILL; /* 0x229 */
  925. union {
  926. volatile DWORD V2FixedA ; // Glint Delta
  927. volatile DWORD V2FloatKsR ; }; // Permedia3 Delta
  928. DWFILL; /* 0x22A */
  929. union {
  930. volatile DWORD V2FixedB ; // Glint Delta
  931. volatile DWORD V2FloatKsG ; }; // Permedia3 Delta
  932. DWFILL; /* 0x22B */
  933. union {
  934. volatile DWORD V2FixedC ; // Glint Delta
  935. volatile DWORD V2FloatKsB ; }; // Permedia3 Delta
  936. DWFILL; /* 0x22C */
  937. volatile DWORD V2FloatKdR ; DWFILL; // [0x22D]
  938. volatile DWORD V2FloatKdG ; DWFILL; // [0x22E]
  939. volatile DWORD V2FloatKdB ; DWFILL; // [0x22F]
  940. // volatile DWORD Fill29[3*2];
  941. union {
  942. volatile DWORD V0Float0 ; // Glint Delta
  943. volatile DWORD V0FloatS ; }; // Permedia3 Delta
  944. DWFILL; /* 0x230 */
  945. union {
  946. volatile DWORD V0Float1 ; // Glint Delta
  947. volatile DWORD V0FloatT ; }; // Permedia3 Delta
  948. DWFILL; /* 0x231 */
  949. union {
  950. volatile DWORD V0Float2 ; // Glint Delta
  951. volatile DWORD V0FloatQ ; }; // Permedia3 Delta
  952. DWFILL; /* 0x232 */
  953. volatile DWORD V0Float3 ; DWFILL; /* 0x233 */
  954. volatile DWORD V0Float4 ; DWFILL; /* 0x234 */
  955. union {
  956. volatile DWORD V0Float5 ;
  957. volatile DWORD V0FloatR ; };
  958. DWFILL; /* 0x235 */
  959. union {
  960. volatile DWORD V0Float6 ;
  961. volatile DWORD V0FloatG ; };
  962. DWFILL; /* 0x236 */
  963. union {
  964. volatile DWORD V0Float7 ;
  965. volatile DWORD V0FloatBlue ; };
  966. DWFILL; /* 0x237 */
  967. union {
  968. volatile DWORD V0Float8 ;
  969. volatile DWORD V0FloatAlpha ; };
  970. DWFILL; /* 0x238 */
  971. union {
  972. volatile DWORD V0Float9 ;
  973. volatile DWORD V0FloatF ; };
  974. DWFILL; /* 0x239 */
  975. union {
  976. volatile DWORD V0FloatA ;
  977. volatile DWORD V0FloatX ; };
  978. DWFILL; /* 0x23a */
  979. union {
  980. volatile DWORD V0FloatB ;
  981. volatile DWORD V0FloatY ; };
  982. DWFILL; /* 0x23b */
  983. union {
  984. volatile DWORD V0FloatC ;
  985. volatile DWORD V0FloatZ ; };
  986. DWFILL; /* 0x23c */
  987. volatile DWORD V0FloatW ; DWFILL; // [0x23D]
  988. volatile DWORD V0FloatPackedColour ; DWFILL; // [0x23E]
  989. volatile DWORD V0FloatPackedSpecularFog ; DWFILL; // [0x23F]
  990. // volatile DWORD Fill30[3*2];
  991. union {
  992. volatile DWORD V1Float0 ; // Glint Delta
  993. volatile DWORD V1FloatS ; }; // Permedia3 Delta
  994. DWFILL; /* 0x240 */
  995. union {
  996. volatile DWORD V1Float1 ; // Glint Delta
  997. volatile DWORD V1FloatT ; }; // Permedia3 Delta
  998. DWFILL; /* 0x241 */
  999. union {
  1000. volatile DWORD V1Float2 ; // Glint Delta
  1001. volatile DWORD V1FloatQ ; }; // Permedia3 Delta
  1002. DWFILL; /* 0x242 */
  1003. volatile DWORD V1Float3 ; DWFILL; /* 0x243 */
  1004. volatile DWORD V1Float4 ; DWFILL; /* 0x244 */
  1005. union {
  1006. volatile DWORD V1Float5 ;
  1007. volatile DWORD V1FloatR ; };
  1008. DWFILL; /* 0x245 */
  1009. union {
  1010. volatile DWORD V1Float6 ;
  1011. volatile DWORD V1FloatG ; };
  1012. DWFILL; /* 0x246 */
  1013. union {
  1014. volatile DWORD V1Float7 ;
  1015. volatile DWORD V1FloatBlue ; };
  1016. DWFILL; /* 0x247 */
  1017. union {
  1018. volatile DWORD V1Float8 ;
  1019. volatile DWORD V1FloatAlpha ; };
  1020. DWFILL; /* 0x248 */
  1021. union {
  1022. volatile DWORD V1Float9 ;
  1023. volatile DWORD V1FloatF ; };
  1024. DWFILL; /* 0x249 */
  1025. union {
  1026. volatile DWORD V1FloatA ;
  1027. volatile DWORD V1FloatX ; };
  1028. DWFILL; /* 0x24a */
  1029. union {
  1030. volatile DWORD V1FloatB ;
  1031. volatile DWORD V1FloatY ; };
  1032. DWFILL; /* 0x24b */
  1033. union {
  1034. volatile DWORD V1FloatC ;
  1035. volatile DWORD V1FloatZ ; };
  1036. DWFILL; /* 0x24c */
  1037. volatile DWORD V1FloatW ; DWFILL; // [0x24D]
  1038. volatile DWORD V1FloatPackedColour ; DWFILL; // [0x24E]
  1039. volatile DWORD V1FloatPackedSpecularFog ; DWFILL; // [0x24F]
  1040. // volatile DWORD Fill31[3*2];
  1041. union {
  1042. volatile DWORD V2Float0 ; // Glint Delta
  1043. volatile DWORD V2FloatS ; }; // Permedia3 Delta
  1044. DWFILL; /* 0x250 */
  1045. union {
  1046. volatile DWORD V2Float1 ; // Glint Delta
  1047. volatile DWORD V2FloatT ; }; // Permedia3 Delta
  1048. DWFILL; /* 0x251 */
  1049. union {
  1050. volatile DWORD V2Float2 ; // Glint Delta
  1051. volatile DWORD V2FloatQ ; }; // Permedia3 Delta
  1052. DWFILL; /* 0x252 */
  1053. volatile DWORD V2Float3 ; DWFILL; /* 0x253 */
  1054. volatile DWORD V2Float4 ; DWFILL; /* 0x254 */
  1055. union {
  1056. volatile DWORD V2Float5 ;
  1057. volatile DWORD V2FloatR ; };
  1058. DWFILL; /* 0x255 */
  1059. union {
  1060. volatile DWORD V2Float6 ;
  1061. volatile DWORD V2FloatG ; };
  1062. DWFILL; /* 0x256 */
  1063. union {
  1064. volatile DWORD V2Float7 ;
  1065. volatile DWORD V2FloatBlue ; };
  1066. DWFILL; /* 0x257 */
  1067. union {
  1068. volatile DWORD V2Float8 ;
  1069. volatile DWORD V2FloatAlpha ; };
  1070. DWFILL; /* 0x258 */
  1071. union {
  1072. volatile DWORD V2Float9 ;
  1073. volatile DWORD V2FloatF ; };
  1074. DWFILL; /* 0x259 */
  1075. union {
  1076. volatile DWORD V2FloatA ;
  1077. volatile DWORD V2FloatX ; };
  1078. DWFILL; /* 0x25a */
  1079. union {
  1080. volatile DWORD V2FloatB ;
  1081. volatile DWORD V2FloatY ; };
  1082. DWFILL; /* 0x25b */
  1083. union {
  1084. volatile DWORD V2FloatC ;
  1085. volatile DWORD V2FloatZ ; };
  1086. DWFILL; /* 0x25c */
  1087. volatile DWORD V2FloatW ; DWFILL; // [0x25D]
  1088. volatile DWORD V2FloatPackedColour ; DWFILL; // [0x25E]
  1089. volatile DWORD V2FloatPackedSpecularFog ; DWFILL; // [0x25F]
  1090. // volatile DWORD Fill32[3*2];
  1091. volatile DWORD DeltaMode ; DWFILL; /* 0x260 */
  1092. volatile DWORD DrawTriangle ; DWFILL; /* 0x261 */
  1093. volatile DWORD RepeatTriangle ; DWFILL; /* 0x262 */
  1094. volatile DWORD DrawLine01 ; DWFILL; /* 0x263 */
  1095. volatile DWORD DrawLine10 ; DWFILL; /* 0x264 */
  1096. volatile DWORD RepeatLine ; DWFILL; /* 0x265 */
  1097. DWFILL; DWFILL; // 0x266
  1098. volatile DWORD ProvokingVertex ; DWFILL; // [0x267]
  1099. volatile DWORD TextureLODScale ; DWFILL; // [0x268]
  1100. volatile DWORD TextureLODScale1 ; DWFILL; // [0x269]
  1101. volatile DWORD DeltaControl ; DWFILL; // [0x26A]
  1102. volatile DWORD ProvokingVertexMask ; DWFILL; // [0x26B]
  1103. volatile DWORD Fill33[3*2];
  1104. volatile DWORD BroadcastMask ; DWFILL; /* 0x26F */
  1105. volatile DWORD Fill34[(0x530-0x270)*2];
  1106. volatile DWORD QDMAAddress ; DWFILL; /* 0x530 */
  1107. volatile DWORD QDMACount ; DWFILL; /* 0x531 */
  1108. volatile DWORD Fill35[(0x53f-0x532)*2];
  1109. volatile DWORD QDMAContinue ; DWFILL; /* 0x53f */
  1110. // PERMEDIA 3 Registers - Added Jan99 Mark Cresswell
  1111. volatile DWORD Fill36[(0x5d0-0x540)*2];
  1112. volatile DWORD FBDestReadBufferAddr0 ; DWFILL; // [0x5D0]
  1113. volatile DWORD FBDestReadBufferAddr1 ; DWFILL; // [0x5D1]
  1114. volatile DWORD FBDestReadBufferAddr2 ; DWFILL; // [0x5D2]
  1115. volatile DWORD FBDestReadBufferAddr3 ; DWFILL; // [0x5D3]
  1116. volatile DWORD FBDestReadBufferOffset0 ; DWFILL; // [0x5D4]
  1117. volatile DWORD FBDestReadBufferOffset1 ; DWFILL; // [0x5D5]
  1118. volatile DWORD FBDestReadBufferOffset2 ; DWFILL; // [0x5D6]
  1119. volatile DWORD FBDestReadBufferOffset3 ; DWFILL; // [0x5D7]
  1120. volatile DWORD FBDestReadBufferWidth0 ; DWFILL; // [0x5D8]
  1121. volatile DWORD FBDestReadBufferWidth1 ; DWFILL; // [0x5D9]
  1122. volatile DWORD FBDestReadBufferWidth2 ; DWFILL; // [0x5DA]
  1123. volatile DWORD FBDestReadBufferWidth3 ; DWFILL; // [0x5DB]
  1124. volatile DWORD FBDestReadMode ; DWFILL; // [0x5DC]
  1125. volatile DWORD FBDestReadEnables ; DWFILL; // [0x5DD]
  1126. volatile DWORD Fill37[(0x5e0-0x5de)*2];
  1127. volatile DWORD FBSourceReadMode ; DWFILL; // [0x5E0]
  1128. volatile DWORD FBSourceReadBufferAddr ; DWFILL; // [0x5E1]
  1129. volatile DWORD FBSourceReadBufferOffset ; DWFILL; // [0x5E2]
  1130. volatile DWORD FBSourceReadBufferWidth ; DWFILL; // [0x5E3]
  1131. volatile DWORD Fill38[(0x5e8-0x5e4)*2];
  1132. volatile DWORD PCIWindowBase0 ; DWFILL; // [0x5E8]
  1133. volatile DWORD PCIWindowBase1 ; DWFILL; // [0x5E9]
  1134. volatile DWORD PCIWindowBase2 ; DWFILL; // [0x5EA]
  1135. volatile DWORD PCIWindowBase3 ; DWFILL; // [0x5EB]
  1136. volatile DWORD PCIWindowBase4 ; DWFILL; // [0x5EC]
  1137. volatile DWORD PCIWindowBase5 ; DWFILL; // [0x5ED]
  1138. volatile DWORD PCIWindowBase6 ; DWFILL; // [0x5EE]
  1139. volatile DWORD PCIWindowBase7 ; DWFILL; // [0x5EF]
  1140. volatile DWORD AlphaSourceColor ; DWFILL; // [0x5F0]
  1141. volatile DWORD AlphaDestColor ; DWFILL; // [0x5F1]
  1142. volatile DWORD ChromaPassColor ; DWFILL; // [0x5F2]
  1143. volatile DWORD ChromaFailColor ; DWFILL; // [0x5F3]
  1144. volatile DWORD AlphaBlendColorMode ; DWFILL; // [0x5F4]
  1145. volatile DWORD AlphaBlendAlphaMode ; DWFILL; // [0x5F5]
  1146. volatile DWORD Fill39[(0x600-0x5f6)*2];
  1147. volatile DWORD FBWriteBufferAddr0 ; DWFILL; // [0x600]
  1148. volatile DWORD FBWriteBufferAddr1 ; DWFILL; // [0x601]
  1149. volatile DWORD FBWriteBufferAddr2 ; DWFILL; // [0x602]
  1150. volatile DWORD FBWriteBufferAddr3 ; DWFILL; // [0x603]
  1151. volatile DWORD FBWriteBufferOffset0 ; DWFILL; // [0x604]
  1152. volatile DWORD FBWriteBufferOffset1 ; DWFILL; // [0x605]
  1153. volatile DWORD FBWriteBufferOffset2 ; DWFILL; // [0x606]
  1154. volatile DWORD FBWriteBufferOffset3 ; DWFILL; // [0x607]
  1155. volatile DWORD FBWriteBufferWidth0 ; DWFILL; // [0x608]
  1156. volatile DWORD FBWriteBufferWidth1 ; DWFILL; // [0x609]
  1157. volatile DWORD FBWriteBufferWidth2 ; DWFILL; // [0x60A]
  1158. volatile DWORD FBWriteBufferWidth3 ; DWFILL; // [0x60B]
  1159. volatile DWORD Fill40[(0x614-0x60c)*2];
  1160. volatile DWORD FBBlockColorBack ; DWFILL; // [0x614]
  1161. volatile DWORD Fill41[(0x660-0x615)*2];
  1162. volatile DWORD TextureCompositeMode ; DWFILL; // [0x660]
  1163. volatile DWORD TextureCompositeColorMode0 ; DWFILL; // [0x661]
  1164. volatile DWORD TextureCompositeAlphaMode0 ; DWFILL; // [0x662]
  1165. volatile DWORD TextureCompositeColorMode1 ; DWFILL; // [0x663]
  1166. volatile DWORD TextureCompositeAlphaMode1 ; DWFILL; // [0x664]
  1167. volatile DWORD TextureCompositeFactor0 ; DWFILL; // [0x665]
  1168. volatile DWORD TextureCompositeFactor1 ; DWFILL; // [0x666]
  1169. volatile DWORD TextureIndexMode0 ; DWFILL; // [0x667]
  1170. volatile DWORD TextureIndexMode1 ; DWFILL; // [0x668]
  1171. volatile DWORD LodRange0 ; DWFILL; // [0x669]
  1172. volatile DWORD LodRange1 ; DWFILL; // [0x66A]
  1173. volatile DWORD Fill42[(0x66f-0x66b)*2];
  1174. volatile DWORD LUTMode ; DWFILL; // [0x66F]
  1175. volatile DWORD Fill43[(0x680-0x670)*2];
  1176. volatile DWORD TextureReadMode0 ; DWFILL; // [0x680]
  1177. volatile DWORD TextureReadMode1 ; DWFILL; // [0x681]
  1178. volatile DWORD Fill44[(0x685-0x682)*2];
  1179. volatile DWORD TextureMapSize ; DWFILL; // [0x685]
  1180. volatile DWORD Fill45[(0x690-0x686)*2];
  1181. volatile DWORD HeadPhysicalPageAllocation0; DWFILL; // [0x690]
  1182. volatile DWORD HeadPhysicalPageAllocation1; DWFILL; // [0x691]
  1183. volatile DWORD HeadPhysicalPageAllocation2; DWFILL; // [0x692]
  1184. volatile DWORD HeadPhysicalPageAllocation3; DWFILL; // [0x693]
  1185. volatile DWORD TailPhysicalPageAllocation0; DWFILL; // [0x694]
  1186. volatile DWORD TailPhysicalPageAllocation1; DWFILL; // [0x695]
  1187. volatile DWORD TailPhysicalPageAllocation2; DWFILL; // [0x696]
  1188. volatile DWORD TailPhysicalPageAllocation3; DWFILL; // [0x697]
  1189. volatile DWORD PhysicalPageAllocationTableAddr; DWFILL; // [0x698]
  1190. volatile DWORD BasePageOfWorkingSet; DWFILL; // [0x699]
  1191. volatile DWORD LogicalTexturePageTableAddr; DWFILL; // [0x69a]
  1192. volatile DWORD LogicalTexturePageTableLength; DWFILL; // [0x69b]
  1193. volatile DWORD BasePageOfWorkingSetHost; DWFILL; // [0x69c]
  1194. volatile DWORD Fill46[(0x6A0-0x69d)*2];
  1195. volatile DWORD LBDestReadMode ; DWFILL; // [0x6A0]
  1196. volatile DWORD LBDestReadEnables ; DWFILL; // [0x6A1]
  1197. volatile DWORD LBDestReadBufferAddr ; DWFILL; // [0x6A2]
  1198. volatile DWORD LBDestReadBufferOffset ; DWFILL; // [0x6A3]
  1199. volatile DWORD LBSourceReadMode ; DWFILL; // [0x6A4]
  1200. volatile DWORD LBSourceReadBufferAddr ; DWFILL; // [0x6A5]
  1201. volatile DWORD LBSourceReadBufferOffset ; DWFILL; // [0x6A6]
  1202. volatile DWORD GIDMode ; DWFILL; // [0x6A7]
  1203. volatile DWORD LBWriteBufferAddr ; DWFILL; // [0x6A8]
  1204. volatile DWORD LBWriteBufferOffset ; DWFILL; // [0x6A9]
  1205. volatile DWORD LBClearDataL ; DWFILL; // [0x6AA]
  1206. volatile DWORD LBClearDataU ; DWFILL; // [0x6AB]
  1207. volatile DWORD Fill47[(0x6c0-0x6ac)*2];
  1208. volatile DWORD RectanglePosition ; DWFILL; // [0x6C0]
  1209. volatile DWORD Fill48[(0x6c2-0x6c1)*2];
  1210. volatile DWORD RenderPatchOffset ; DWFILL; // [0x6C2]
  1211. volatile DWORD Fill49[(0x6ca-0x6c3)*2];
  1212. volatile DWORD DownloadTarget ; DWFILL; // [0x6CA]
  1213. volatile DWORD Fill50[(0x6F0-0x6CB)*2];
  1214. volatile DWORD QDMAMemoryControl ; DWFILL; // [0x6F0]
  1215. } GLREG, *PGLREG, far *FPGLREG;