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.

374 lines
18 KiB

  1. /************************************************************************/
  2. /* */
  3. /* SETUP_M.H */
  4. /* */
  5. /* Aug 27 1993 (c) 1993, ATI Technologies Incorporated. */
  6. /************************************************************************/
  7. /********************** PolyTron RCS Utilities
  8. $Revision: 1.5 $
  9. $Date: 18 May 1995 14:14:34 $
  10. $Author: RWOLFF $
  11. $Log: S:/source/wnt/ms11/miniport/vcs/setup_m.h $
  12. *
  13. * Rev 1.5 18 May 1995 14:14:34 RWOLFF
  14. * No longer uses the memory-mapped form of CLOCK_SEL (sometimes the
  15. * value written wouldn't "take" even though a readback showed the
  16. * correct value).
  17. *
  18. * Rev 1.4 23 Dec 1994 10:48:16 ASHANMUG
  19. * ALPHA/Chrontel-DAC
  20. *
  21. * Rev 1.3 07 Jul 1994 14:00:48 RWOLFF
  22. * Andre Vachon's fix: re-sized DriverMMRange_m[] from NUM_DRIVER_ACCESS_RANGES
  23. * entries to NUM_IO_ACCESS_RANGES entries because this array doesn't need
  24. * a slot for the framebuffer.
  25. *
  26. * Rev 1.2 30 Jun 1994 18:22:38 RWOLFF
  27. * Added prototypes for IsApertureConflict_m() and IsVGAConflict_m(), and
  28. * definitions used by these routines.
  29. *
  30. * Rev 1.1 20 May 1994 14:04:18 RWOLFF
  31. * Ajith's change: removed unused register SRC_CMP_COLOR from lists to be mapped
  32. *
  33. * Rev 1.0 31 Jan 1994 11:49:36 RWOLFF
  34. * Initial revision.
  35. *
  36. * Rev 1.5 14 Jan 1994 15:27:02 RWOLFF
  37. * Added prototype for MemoryMappedEnabled_m()
  38. *
  39. * Rev 1.4 15 Dec 1993 15:32:40 RWOLFF
  40. * No longer claims EISA configuration registers and placeholder for
  41. * the linear framebuffer.
  42. *
  43. * Rev 1.3 05 Nov 1993 13:32:50 RWOLFF
  44. * Added prototype of function to unmap I/O address ranges.
  45. *
  46. * Rev 1.1 08 Oct 1993 11:16:46 RWOLFF
  47. * Added I/O vs. Memory Mapped definitions formerly in ATIMP.H.
  48. *
  49. * Rev 1.0 03 Sep 1993 14:29:26 RWOLFF
  50. * Initial revision.
  51. End of PolyTron RCS section *****************/
  52. #ifdef DOC
  53. SETUP_M.H - Header file for SETUP_M.C
  54. #endif
  55. /*
  56. * Prototypes for functions supplied by SETUP_M.C
  57. */
  58. extern VP_STATUS CompatIORangesUsable_m(void);
  59. extern void CompatMMRangesUsable_m(void);
  60. extern void UnmapIORanges_m(void);
  61. extern BOOL MemoryMappedEnabled_m(void);
  62. extern int WaitForIdle_m(void);
  63. extern void CheckFIFOSpace_m(WORD SpaceNeeded);
  64. extern BOOL IsApertureConflict_m(struct query_structure *QueryPtr);
  65. extern BOOL IsVGAConflict_m(void);
  66. /*
  67. * Definitions used internally by SETUP_M.C
  68. */
  69. #ifdef INCLUDE_SETUP_M
  70. /*
  71. * Avoid runtime bugs due to overflowing the address range arrays
  72. * in the HW_DEVICE_EXTENSION structure.
  73. *
  74. * If more address ranges are added without increasing
  75. * NUM_DRIVER_ACCESS_RANGES, we will get a compile-time error because
  76. * too many entries in DriverIORange[] will be initialized. If
  77. * NUM_DRIVER_ACCESS_RANGES is increased beyond the size of
  78. * the arrays in the HW_DEVICE_EXTENSION structure, the "#if"
  79. * statement will generate a compile-time error.
  80. *
  81. * We can't use an implicit size on DriverIORange[] and define
  82. * NUM_DRIVER_ACCESS_RANGES as sizeof(DriverIORange)/sizeof(VIDEO_ACCESS_RANGE)
  83. * because the expression in a #if statement can't use the
  84. * sizeof() operator.
  85. */
  86. #define NUM_DRIVER_ACCESS_RANGES 20*5+2
  87. #define FRAMEBUFFER_ENTRY NUM_DRIVER_ACCESS_RANGES - 1
  88. #define NUM_IO_ACCESS_RANGES FRAMEBUFFER_ENTRY
  89. /*
  90. * Indicate whether the specified address range is in I/O space or
  91. * memory mapped space. These values are intended to make it easier
  92. * to read the Driver??Range[] structures.
  93. */
  94. #define ISinIO TRUE
  95. #define ISinMEMORY FALSE
  96. //------------------------------------------------------------------
  97. // struct list is address, 0, length, inIOspace, visible, sharable
  98. // this order MATCHES AMACH.H ENUM data structure
  99. // all entries are in INCREASING IO address.
  100. VIDEO_ACCESS_RANGE DriverIORange_m[NUM_DRIVER_ACCESS_RANGES] = {
  101. {IO_DAC_MASK , 0, 1, ISinIO, 1, FALSE}, // Mach DAC registers
  102. {IO_DAC_R_INDEX , 0, 1, ISinIO, 1, FALSE},
  103. {IO_DAC_W_INDEX , 0, 1, ISinIO, 1, FALSE},
  104. {IO_DAC_DATA , 0, 3, ISinIO, 1, FALSE},
  105. {IO_DISP_STATUS , 0, 1, ISinIO, 1, FALSE}, // First Mach register
  106. {IO_OVERSCAN_COLOR_8 , 0, 2, ISinIO, 1, FALSE},
  107. {IO_H_DISP , 0, 2, ISinIO, 1, FALSE},
  108. {IO_OVERSCAN_GREEN_24 , 0, 2, ISinIO, 1, FALSE},
  109. {IO_H_SYNC_STRT , 0, 1, ISinIO, 1, FALSE},
  110. {IO_CURSOR_OFFSET_LO , 0, 2, ISinIO, 1, FALSE},
  111. {IO_H_SYNC_WID , 0, 1, ISinIO, 1, FALSE}, // 10
  112. {IO_CURSOR_OFFSET_HI , 0, 2, ISinIO, 1, FALSE},
  113. {IO_V_TOTAL , 0, 2, ISinIO, 1, FALSE},
  114. {IO_CONFIG_STATUS_1 , 0, 2, ISinIO, 1, FALSE},
  115. {IO_V_DISP , 0, 2, ISinIO, 1, FALSE},
  116. {IO_CONFIG_STATUS_2 , 0, 2, ISinIO, 1, FALSE},
  117. {IO_V_SYNC_STRT , 0, 2, ISinIO, 1, FALSE},
  118. {IO_CURSOR_COLOR_0 , 0, 2, ISinIO, 1, FALSE},
  119. {IO_CURSOR_COLOR_1 , 0, 1, ISinIO, 1, FALSE},
  120. {IO_V_SYNC_WID , 0, 2, ISinIO, 1, FALSE},
  121. {IO_HORZ_CURSOR_OFFSET, 0, 1, ISinIO, 1, FALSE}, // 20
  122. {IO_VERT_CURSOR_OFFSET, 0, 1, ISinIO, 1, FALSE},
  123. {IO_DISP_CNTL , 0, 1, ISinIO, 1, FALSE},
  124. {IO_CRT_PITCH , 0, 2, ISinIO, 1, FALSE},
  125. {IO_CRT_OFFSET_LO , 0, 2, ISinIO, 1, FALSE},
  126. {IO_CRT_OFFSET_HI , 0, 2, ISinIO, 1, FALSE},
  127. {IO_LOCAL_CONTROL , 0, 2, ISinIO, 1, FALSE},
  128. {IO_FIFO_OPT , 0, 2, ISinIO, 1, FALSE},
  129. {IO_EXT_CURSOR_COLOR_0, 0, 2, ISinIO, 1, FALSE},
  130. {IO_EXT_CURSOR_COLOR_1, 0, 2, ISinIO, 1, FALSE},
  131. {IO_SUBSYS_CNTL , 0, 2, ISinIO, 1, FALSE}, // 30
  132. {IO_MEM_BNDRY , 0, 1, ISinIO, 1, FALSE},
  133. {IO_ROM_PAGE_SEL , 0, 2, ISinIO, 1, FALSE},
  134. {IO_SHADOW_CTL , 0, 2, ISinIO, 1, FALSE},
  135. {IO_ADVFUNC_CNTL , 0, 2, ISinIO, 1, FALSE},
  136. {IO_CLOCK_SEL , 0, 2, ISinIO, 1, FALSE},
  137. {IO_ROM_ADDR_1 , 0, 2, ISinIO, 1, FALSE},
  138. {IO_ROM_ADDR_2 , 0, 2, ISinIO, 1, FALSE},
  139. {IO_SHADOW_SET , 0, 2, ISinIO, 1, FALSE},
  140. {IO_MEM_CFG , 0, 2, ISinIO, 1, FALSE},
  141. {IO_EXT_GE_STATUS , 0, 2, ISinIO, 1, FALSE}, // 40
  142. {IO_VERT_OVERSCAN , 0, 2, ISinIO, 1, FALSE},
  143. {IO_MAX_WAITSTATES , 0, 2, ISinIO, 1, FALSE},
  144. {IO_GE_OFFSET_LO , 0, 2, ISinIO, 1, FALSE},
  145. {IO_BOUNDS_LEFT , 0, 2, ISinIO, 1, FALSE},
  146. {IO_BOUNDS_TOP , 0, 2, ISinIO, 1, FALSE},
  147. {IO_BOUNDS_RIGHT , 0, 2, ISinIO, 1, FALSE},
  148. {IO_BOUNDS_BOTTOM , 0, 2, ISinIO, 1, FALSE},
  149. {IO_CUR_Y , 0, 2, ISinIO, 1, FALSE},
  150. {IO_PATT_DATA_INDEX , 0, 2, ISinIO, 1, FALSE},
  151. {IO_CUR_X , 0, 2, ISinIO, 1, FALSE}, // 50
  152. {IO_SRC_Y , 0, 2, ISinIO, 1, FALSE},
  153. {IO_SRC_X , 0, 2, ISinIO, 1, FALSE},
  154. {IO_PATT_DATA , 0, 2, ISinIO, 1, FALSE},
  155. {IO_ERR_TERM , 0, 2, ISinIO, 1, FALSE},
  156. {IO_R_MISC_CNTL , 0, 2, ISinIO, 1, FALSE},
  157. {IO_MAJ_AXIS_PCNT , 0, 2, ISinIO, 1, FALSE},
  158. {IO_BRES_COUNT , 0, 2, ISinIO, 1, FALSE},
  159. {IO_CMD , 0, 2, ISinIO, 1, FALSE},
  160. {IO_LINEDRAW_INDEX , 0, 2, ISinIO, 1, FALSE},
  161. {IO_SHORT_STROKE , 0, 2, ISinIO, 1, FALSE}, // 60
  162. {IO_BKGD_COLOR , 0, 2, ISinIO, 1, FALSE},
  163. {IO_LINEDRAW_OPT , 0, 2, ISinIO, 1, FALSE},
  164. {IO_FRGD_COLOR , 0, 2, ISinIO, 1, FALSE},
  165. {IO_DEST_X_START , 0, 2, ISinIO, 1, FALSE},
  166. {IO_WRT_MASK , 0, 2, ISinIO, 1, FALSE},
  167. {IO_DEST_X_END , 0, 2, ISinIO, 1, FALSE},
  168. {IO_RD_MASK , 0, 2, ISinIO, 1, FALSE},
  169. {IO_DEST_Y_END , 0, 2, ISinIO, 1, FALSE},
  170. {IO_CMP_COLOR , 0, 2, ISinIO, 1, FALSE},
  171. {IO_SRC_X_START , 0, 2, ISinIO, 1, FALSE}, // 70
  172. {IO_BKGD_MIX , 0, 2, ISinIO, 1, FALSE},
  173. {IO_ALU_BG_FN , 0, 2, ISinIO, 1, FALSE},
  174. {IO_FRGD_MIX , 0, 2, ISinIO, 1, FALSE},
  175. {IO_ALU_FG_FN , 0, 2, ISinIO, 1, FALSE},
  176. {IO_MULTIFUNC_CNTL , 0, 2, ISinIO, 1, FALSE},
  177. {IO_SRC_X_END , 0, 2, ISinIO, 1, FALSE},
  178. {IO_SRC_Y_DIR , 0, 2, ISinIO, 1, FALSE},
  179. {IO_EXT_SSV , 0, 2, ISinIO, 1, FALSE},
  180. {IO_SCAN_X , 0, 2, ISinIO, 1, FALSE},
  181. {IO_DP_CONFIG , 0, 2, ISinIO, 1, FALSE}, // 80
  182. {IO_PATT_LENGTH , 0, 2, ISinIO, 1, FALSE},
  183. {IO_PATT_INDEX , 0, 2, ISinIO, 1, FALSE},
  184. {IO_EXT_SCISSOR_L , 0, 2, ISinIO, 1, FALSE},
  185. {IO_EXT_SCISSOR_T , 0, 2, ISinIO, 1, FALSE},
  186. {IO_PIX_TRANS , 0, 2, ISinIO, 1, FALSE},
  187. {IO_PIX_TRANS_HI , 0, 1, ISinIO, 1, FALSE},
  188. {IO_EXT_SCISSOR_R , 0, 2, ISinIO, 1, FALSE},
  189. {IO_EXT_SCISSOR_B , 0, 2, ISinIO, 1, FALSE},
  190. {IO_DEST_CMP_FN , 0, 2, ISinIO, 1, FALSE},
  191. {IO_ASIC_ID , 0, 2, ISinIO, 1, FALSE}, // 90
  192. {IO_LINEDRAW , 0, 2, ISinIO, 1, FALSE},
  193. {IO_SEQ_IND , 0, 1, ISinIO, 1, TRUE}, // VGA
  194. {IO_HI_SEQ_ADDR , 0, 2, ISinIO, TRUE, TRUE},
  195. {IO_SEQ_DATA , 0, 1, ISinIO, TRUE, TRUE},
  196. {VGA_BASE_IO_PORT , 0, VGA_START_BREAK_PORT - VGA_BASE_IO_PORT + 1, ISinIO, TRUE, TRUE},
  197. {VGA_END_BREAK_PORT , 0, VGA_MAX_IO_PORT - VGA_END_BREAK_PORT + 1, ISinIO, TRUE, TRUE},
  198. {0x000001ce , 0, 1, ISinIO, TRUE, TRUE}, /* VGAWonder uses these ports for bank switching */
  199. {0x000001cf , 0, 1, ISinIO, TRUE, TRUE},
  200. {IO_EXT_CUR_Y , 0, 2, ISinIO, 1, FALSE},
  201. {0x000003CE , 0, 2, ISinIO, TRUE, TRUE}, // 100
  202. {0x00000000, 0, 0, ISinMEMORY, TRUE, FALSE}
  203. };
  204. #if NUM_DRIVER_ACCESS_RANGES > NUM_ADDRESS_RANGES_ALLOWED
  205. Insufficient address ranges for 8514/A-compatible graphics cards.
  206. #endif
  207. #define DONT_USE -1 /* Shows that this register is not memory mapped */
  208. /* struct list is address, 0, length, inIOspace, visible, sharable */
  209. // this order MATCHES AMACH.H ENUM data structure
  210. VIDEO_ACCESS_RANGE DriverMMRange_m[NUM_IO_ACCESS_RANGES] = {
  211. {FALSE , DONT_USE , 4, ISinMEMORY , TRUE , FALSE}, // Mach DAC registers
  212. {FALSE , DONT_USE , 4, ISinMEMORY , TRUE , FALSE},
  213. {FALSE , DONT_USE , 4, ISinMEMORY , TRUE , FALSE},
  214. {FALSE , DONT_USE , 4, ISinMEMORY , TRUE , FALSE},
  215. {MM_DISP_STATUS , 0 , 4, ISinMEMORY , TRUE , FALSE}, // First Mach register
  216. {FALSE , DONT_USE , 2, ISinMEMORY , TRUE , FALSE},
  217. {FALSE , DONT_USE , 2, ISinMEMORY , TRUE , FALSE},
  218. {FALSE , DONT_USE , 2, ISinMEMORY , TRUE , FALSE},
  219. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , FALSE},
  220. {MM_CURSOR_OFFSET_LO , 0 , 4, ISinMEMORY , TRUE , FALSE},
  221. {FALSE , DONT_USE , 1, ISinIO , TRUE , FALSE}, // 10
  222. {MM_CURSOR_OFFSET_HI , 0 , 4, ISinMEMORY , TRUE , FALSE},
  223. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  224. {MM_CONFIG_STATUS_1 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  225. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  226. {MM_CONFIG_STATUS_2 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  227. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  228. {MM_CURSOR_COLOR_0 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  229. {MM_CURSOR_COLOR_1 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  230. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  231. {MM_HORZ_CURSOR_OFFSET , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 20
  232. {MM_VERT_CURSOR_OFFSET , 0 , 4, ISinMEMORY , TRUE , FALSE},
  233. {MM_DISP_CNTL , 0 , 4, ISinMEMORY , TRUE , FALSE},
  234. {MM_CRT_PITCH , 0 , 4, ISinMEMORY , TRUE , FALSE},
  235. {MM_CRT_OFFSET_LO , 0 , 4, ISinMEMORY , TRUE , FALSE},
  236. {MM_CRT_OFFSET_HI , 0 , 4, ISinMEMORY , TRUE , FALSE},
  237. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  238. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  239. {MM_EXT_CURSOR_COLOR_0 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  240. {MM_EXT_CURSOR_COLOR_1 , 0 , 4, ISinMEMORY , TRUE , FALSE},
  241. {MM_SUBSYS_CNTL , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 30
  242. {FALSE , DONT_USE , 1, ISinIO , TRUE , FALSE},
  243. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  244. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  245. {MM_ADVFUNC_CNTL , 0 , 4, ISinMEMORY , TRUE , FALSE},
  246. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  247. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  248. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  249. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  250. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  251. {MM_EXT_GE_STATUS , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 40
  252. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  253. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  254. {MM_GE_OFFSET_LO , 0 , 4, ISinMEMORY , TRUE , FALSE},
  255. {MM_BOUNDS_LEFT , 0 , 4, ISinMEMORY , TRUE , FALSE},
  256. {MM_BOUNDS_TOP , 0 , 4, ISinMEMORY , TRUE , FALSE},
  257. {MM_BOUNDS_RIGHT , 0 , 4, ISinMEMORY , TRUE , FALSE},
  258. {MM_BOUNDS_BOTTOM , 0 , 4, ISinMEMORY , TRUE , FALSE},
  259. {MM_CUR_Y , 0 , 4, ISinMEMORY , TRUE , FALSE},
  260. {MM_PATT_DATA_INDEX , 0 , 4, ISinMEMORY , TRUE , FALSE},
  261. {MM_CUR_X , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 50
  262. {MM_SRC_Y , 0 , 4, ISinMEMORY , TRUE , FALSE},
  263. {MM_SRC_X , 0 , 4, ISinMEMORY , TRUE , FALSE},
  264. {MM_PATT_DATA , 0 , 4, ISinMEMORY , TRUE , FALSE},
  265. {MM_ERR_TERM , 0 , 4, ISinMEMORY , TRUE , FALSE},
  266. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  267. {MM_MAJ_AXIS_PCNT , 0 , 4, ISinMEMORY , TRUE , FALSE},
  268. {MM_BRES_COUNT , 0 , 4, ISinMEMORY , TRUE , FALSE},
  269. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE},
  270. {MM_LINEDRAW_INDEX , 0 , 4, ISinMEMORY , TRUE , FALSE},
  271. {MM_SHORT_STROKE , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 60
  272. {MM_BKGD_COLOR , 0 , 4, ISinMEMORY , TRUE , FALSE},
  273. {MM_LINEDRAW_OPT , 0 , 4, ISinMEMORY , TRUE , FALSE},
  274. {MM_FRGD_COLOR , 0 , 4, ISinMEMORY , TRUE , FALSE},
  275. {MM_DEST_X_START , 0 , 4, ISinMEMORY , TRUE , FALSE},
  276. {MM_WRT_MASK , 0 , 4, ISinMEMORY , TRUE , FALSE},
  277. {MM_DEST_X_END , 0 , 4, ISinMEMORY , TRUE , FALSE},
  278. {MM_RD_MASK , 0 , 4, ISinMEMORY , TRUE , FALSE},
  279. {MM_DEST_Y_END , 0 , 4, ISinMEMORY , TRUE , FALSE},
  280. {MM_CMP_COLOR , 0 , 4, ISinMEMORY , TRUE , FALSE},
  281. {MM_SRC_X_START , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 70
  282. {MM_BKGD_MIX , 0 , 4, ISinMEMORY , TRUE , FALSE},
  283. {MM_ALU_BG_FN , 0 , 4, ISinMEMORY , TRUE , FALSE},
  284. {MM_FRGD_MIX , 0 , 4, ISinMEMORY , TRUE , FALSE},
  285. {MM_ALU_FG_FN , 0 , 4, ISinMEMORY , TRUE , FALSE},
  286. {MM_MULTIFUNC_CNTL , 0 , 4, ISinMEMORY , TRUE , FALSE},
  287. {MM_SRC_X_END , 0 , 4, ISinMEMORY , TRUE , FALSE},
  288. {MM_SRC_Y_DIR , 0 , 4, ISinMEMORY , TRUE , FALSE},
  289. {MM_EXT_SSV , 0 , 4, ISinMEMORY , TRUE , FALSE},
  290. {MM_SCAN_X , 0 , 4, ISinMEMORY , TRUE , FALSE},
  291. {MM_DP_CONFIG , 0 , 4, ISinMEMORY , TRUE , FALSE}, // 80
  292. {MM_PATT_LENGTH , 0 , 4, ISinMEMORY , TRUE , FALSE},
  293. {MM_PATT_INDEX , 0 , 4, ISinMEMORY , TRUE , FALSE},
  294. {MM_EXT_SCISSOR_L , 0 , 4, ISinMEMORY , TRUE , FALSE},
  295. {MM_EXT_SCISSOR_T , 0 , 4, ISinMEMORY , TRUE , FALSE},
  296. {MM_PIX_TRANS , 0 , 4, ISinMEMORY , TRUE , FALSE},
  297. {MM_PIX_TRANS_HI , 0 , 4, ISinMEMORY , TRUE , FALSE},
  298. {MM_EXT_SCISSOR_R , 0 , 4, ISinMEMORY , TRUE , FALSE},
  299. {MM_EXT_SCISSOR_B , 0 , 4, ISinMEMORY , TRUE , FALSE},
  300. {MM_DEST_CMP_FN , 0 , 4, ISinMEMORY , TRUE , FALSE},
  301. {FALSE , DONT_USE , 2, ISinIO , TRUE , FALSE}, // 90
  302. {MM_LINEDRAW , 0 , 4, ISinMEMORY , TRUE , FALSE},
  303. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE}, // VGA
  304. {FALSE , DONT_USE , 2, ISinMEMORY , TRUE , TRUE},
  305. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE},
  306. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE},
  307. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE},
  308. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE},
  309. {FALSE , DONT_USE , 1, ISinMEMORY , TRUE , TRUE},
  310. {MM_EXT_CUR_Y , 0 , 4, ISinMEMORY , TRUE , FALSE},
  311. {FALSE , DONT_USE , 2, ISinIO , TRUE , TRUE} // 100
  312. };
  313. #endif /* defined INCLUDE_SETUP_M */