Source code of Windows XP (NT5)
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.

1794 lines
68 KiB

  1. /*++
  2. Copyright (c) 1992 Microsoft Corporation
  3. Copyright (c) 1993 Compaq Computer Corporation
  4. Module Name:
  5. modeqv.h
  6. Abstract:
  7. This module contains the mode information to set the individual
  8. modes for the QVision card. This module also contains the CRTC
  9. register information for a monitor set.
  10. Environment:
  11. Kernel mode
  12. Revision History:
  13. $0005 - MikeD - 02/08/94
  14. . modified to work with build 547's new display.cpl
  15. $0004
  16. miked: 1/26/1994
  17. . Added third party monitor support to force a 76Hz refresh rate
  18. Adrian Crisan - First version 4/4/93.
  19. --*/
  20. //
  21. // Constants
  22. //
  23. //
  24. // QVision register definitions
  25. //
  26. // port in mono mode
  27. #define ATT_INITIALIZE_PORT_MONO INPUT_STATUS_1_MONO
  28. // Register to read to reset
  29. // Attribute Controller index/data
  30. // toggle in mono mode
  31. #define ATT_INITIALIZE_PORT_COLOR INPUT_STATUS_1_COLOR
  32. // Register to read to reset
  33. // Attribute Controller index/data
  34. // toggle in color mode
  35. // Aries Specific register equates
  36. #define ARIES_CTL_1 0x63CA // Aries BitBlt Control Register 1
  37. #define DAC_CMD_2 0x13C9 // Aries DAC Command Register 2
  38. #define OVERFLOW_REG_1 0x42 // Aries Gfx Ctrl Overflow Reg 1
  39. #define OVERFLOW_REG_2 0x51 // Aries Gfx Ctrl Overflow Reg 2
  40. #define CO_COLOR_WRITE 0x83C8 // Aries Cursor/Overscan Write Index Reg
  41. #define CO_COLOR_DATA 0x83c9 // Aries Cursor/Overscan Data Reg
  42. #define HIGH_ADDR_MAP 0x48 // Index for High Addr Map register
  43. //
  44. // Graphics Miscellaneous Register - Index 0x06
  45. //
  46. #define MISC_REG 0x06 // Graphics Miscellaneous Register
  47. #define MISC_A0000_128K 0x00 // 128K video ram starting at A0000
  48. #define MISC_A0000_64K 0x04 // 64K video ram starting at A0000
  49. #define MISC_B0000_32K 0x08 // 32K video ram starting at B0000
  50. #define MISC_B8000_32K 0x0C // 32K video ram starting at B8000
  51. //
  52. // Register defines for the QVClearScreen code which uses the BitBLT engin
  53. //
  54. #define ROPSELECT_NO_ROPS 0x00
  55. #define PIXELMASK_ONLY 0x00
  56. #define PLANARMASK_NONE_0XFF 0x04
  57. #define SRC_IS_PATTERN_REGS 0x02
  58. #define PREG_0 0x33CA
  59. #define PREG_1 0x33CB
  60. #define PREG_2 0x33CC
  61. #define PREG_3 0x33CD
  62. #define PREG_4 0x33CA
  63. #define PREG_5 0x33CB
  64. #define PREG_6 0x33CC
  65. #define PREG_7 0x33CD
  66. #define BLT_DEST_ADDR_LO 0x63CC
  67. #define BLT_DEST_ADDR_HI 0x63CE
  68. #define BITMAP_WIDTH 0x23C2
  69. #define BITMAP_HEIGHT 0x23C4
  70. #define BLT_CMD_0 0x33CE
  71. #define BLT_CMD_1 0x33CF
  72. #define XY_SRC_ADDR 0x40
  73. #define XY_DEST_ADDR 0x80
  74. #define BLT_FORWARD 0x00
  75. #define BLT_START 0x01
  76. #define GLOBAL_BUSY_BIT 0x40
  77. //
  78. // QVision indexed register indexes.
  79. //
  80. #define IND_CURSOR_START 0x0A // index in CRTC of the Cursor Start
  81. #define IND_CURSOR_END 0x0B // and End registers
  82. #define IND_CURSOR_HIGH_LOC 0x0E // index in CRTC of the Cursor Location
  83. #define IND_CURSOR_LOW_LOC 0x0F // High and Low Registers
  84. #define IND_VSYNC_END 0x11 // index in CRTC of the Vertical Sync
  85. // End register, which has the bit
  86. // that protects/unprotects CRTC
  87. // index registers 0-7
  88. #define IND_READ_MAP 0x04 // index of Read Map reg in Graph Ctlr
  89. #define IND_BIT_MASK 0x08 // index of Bit Mask reg in Graph Ctlr
  90. #define IND_SYNC_RESET 0x00 // index of Sync Reset reg in Seq
  91. #define IND_MEMORY_MODE 0x04 // index of Memory Mode reg in Seq
  92. #define START_SYNC_RESET_VALUE 0x01 // value for Sync Reset reg to start
  93. // synchronous reset
  94. #define END_SYNC_RESET_VALUE 0x03 // value for Sync Reset reg to end
  95. #define MEMORY_MAP_BASE 0x23c6 // Juniper memory map base register
  96. #define CTRL_REG_2 0x23c7 // Juniper control register 2
  97. #define CTRL_REG_3 0x63cb // Juniper control register 3
  98. //
  99. // Global Variables
  100. //
  101. //
  102. // Mode commands for inidividual modes.
  103. //
  104. #define VALID_MODE 0x01 // monitor supports mode index
  105. #define INVALID_MODE 0x00 // monitor does not support mode index
  106. //////////////////////////////////////////////////////////////
  107. // Mode index 0
  108. // Color text mode 3+, 720x400, 9x16 char cell (VGA)
  109. // BIOS mode: 0x03
  110. //////////////////////////////////////////////////////////////
  111. #define QV_TEXT_720x400x4_INDEX 0
  112. USHORT QV_TEXT_720x400x4[] = {
  113. OW, // start sync reset
  114. SEQ_ADDRESS_PORT,
  115. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  116. OWM,
  117. SEQ_ADDRESS_PORT,
  118. 4,
  119. 0x0001,0x0302,0x0003,0x0204, // program up sequencer
  120. //
  121. // Set the Miscellaneous Output register to establish color/mono addressing
  122. // and select clocks and sync polarities.
  123. // Synchronous reset must be in effect while this register is being set,
  124. // because it contains clock control bits.
  125. //
  126. OB, // output a byte
  127. MISC_OUTPUT_REG_WRITE_PORT, // at this address
  128. 0x67, // with this value
  129. OW,
  130. GRAPH_ADDRESS_PORT,
  131. 0x0e06,
  132. OW, // End sync reset
  133. SEQ_ADDRESS_PORT,
  134. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  135. OW, // unlock extended registers
  136. GRAPH_ADDRESS_PORT,
  137. 0x050f,
  138. OW, // enable BitBlt engine
  139. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  140. 0x2810,
  141. QVNEW+ARIES, // make sure this is an aries mode
  142. QVCMD+BYTE2PORT, // setup DAC control registers
  143. DAC_CMD_0, // 83c6
  144. 0x01,
  145. 0x00,
  146. QVCMD+BYTE2PORT, // setup DAC control registers
  147. DAC_CMD_1,
  148. 0x01,
  149. 0x00,
  150. QVCMD+BYTE2PORT, // setup DAC control registers
  151. DAC_CMD_2,
  152. 0x01,
  153. 0x20,
  154. OW,
  155. CRTC_ADDRESS_PORT_COLOR,
  156. 0x0511,
  157. //
  158. // Set all 25 CRT Controller registers.
  159. //
  160. METAOUT+INDXOUT, // program crtc registers
  161. CRTC_ADDRESS_PORT_COLOR,
  162. VGA_NUM_CRTC_PORTS, // count
  163. 0, // start index
  164. 0x5F,0x4f,0x50,0x82,
  165. 0x55,0x81,0xbf,0x1f,
  166. 0x00,0x4f,0x0d,0x0e,
  167. 0x00,0x00,0x00,0x00,
  168. 0x9c,0xBe,0x8f,0x28,
  169. 0x1f,0x96,0xb9,0xa3,
  170. 0xFF,
  171. IB, // prepare atc for writing
  172. INPUT_STATUS_1_COLOR,
  173. METAOUT+ATCOUT, //
  174. ATT_ADDRESS_PORT, // port
  175. VGA_NUM_ATTRIB_CONT_PORTS, // count
  176. 0, // start index
  177. 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  178. 0x04,0x0,0x0F,0x08,0x0,
  179. METAOUT+INDXOUT, //
  180. GRAPH_ADDRESS_PORT, // port
  181. VGA_NUM_GRAPH_CONT_PORTS, // count
  182. 0, // start index
  183. 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0xFF,
  184. OB,
  185. DAC_PIXEL_MASK_PORT,
  186. 0xFF,
  187. IB, // prepare atc for writing
  188. INPUT_STATUS_1_COLOR,
  189. OB, // turn video on.
  190. ATT_ADDRESS_PORT,
  191. VIDEO_ENABLE,
  192. EOD
  193. }; // QV_TEXT_720x400x4
  194. //////////////////////////////////////////////////////////////
  195. // Mode index 1
  196. // Color text mode 3, 640x350, 8x14 char cell (EGA)
  197. // BIOS mode:0x10
  198. //////////////////////////////////////////////////////////////
  199. #define QV_TEXT_640x350x4_INDEX 1
  200. USHORT QV_TEXT_640x350x4[] = {
  201. OW, // start sync reset
  202. SEQ_ADDRESS_PORT,
  203. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  204. OWM,
  205. SEQ_ADDRESS_PORT,
  206. 4,
  207. 0x0101,0x0302,0x0003,0x0204, // program up sequencer
  208. OB,
  209. MISC_OUTPUT_REG_WRITE_PORT,
  210. 0xA3,
  211. OW,
  212. GRAPH_ADDRESS_PORT,
  213. 0x0e06,
  214. OW, // end sync reset
  215. SEQ_ADDRESS_PORT,
  216. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  217. OW, // unlock extended registers
  218. GRAPH_ADDRESS_PORT,
  219. 0x050f,
  220. OW, // enable BitBlt engine
  221. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  222. 0x2810,
  223. QVNEW+ARIES, // make sure this is an aries mode
  224. QVCMD+BYTE2PORT, // setup DAC control registers
  225. DAC_CMD_0, // 83c6
  226. 0x01,
  227. 0x00,
  228. QVCMD+BYTE2PORT, // setup DAC control registers
  229. DAC_CMD_1,
  230. 0x01,
  231. 0x00,
  232. QVCMD+BYTE2PORT, // setup DAC control registers
  233. DAC_CMD_2,
  234. 0x01,
  235. 0x20,
  236. OW,
  237. CRTC_ADDRESS_PORT_COLOR,
  238. 0x0511,
  239. METAOUT+INDXOUT, // program crtc registers
  240. CRTC_ADDRESS_PORT_COLOR,
  241. VGA_NUM_CRTC_PORTS, // count
  242. 0, // start index
  243. 0x5F,0x4f,0x50,0x82,
  244. 0x55,0x81,0xbf,0x1f,
  245. 0x00,0x4d,0x0b,0x0c,
  246. 0x00,0x00,0x00,0x00,
  247. 0x83,0xB5,0x5d,0x28,
  248. 0x1f,0x63,0xba,0xa3,
  249. 0xFF,
  250. IB, // prepare atc for writing
  251. INPUT_STATUS_1_COLOR,
  252. METAOUT+ATCOUT, //
  253. ATT_ADDRESS_PORT, // port
  254. VGA_NUM_ATTRIB_CONT_PORTS, // count
  255. 0, // start index
  256. 0x00,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  257. 0x00,0x00,0x0F,0x00,0x00,
  258. METAOUT+INDXOUT, //
  259. GRAPH_ADDRESS_PORT, // port
  260. VGA_NUM_GRAPH_CONT_PORTS, // count
  261. 0, // start index
  262. 0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x0FF,
  263. OB,
  264. DAC_PIXEL_MASK_PORT,
  265. 0xFF,
  266. IB, // prepare atc for writing
  267. INPUT_STATUS_1_COLOR,
  268. OB, // turn video on.
  269. ATT_ADDRESS_PORT,
  270. VIDEO_ENABLE,
  271. EOD
  272. }; // QV_TEXT_640x350x4
  273. //////////////////////////////////////////////////////////////
  274. // Mode index 2
  275. // Standard VGA Color graphics, 640x480x4 - 16 colors
  276. // BIOS mode: 0x12
  277. //////////////////////////////////////////////////////////////
  278. #define QV_TEXT_640x480x4_INDEX 2
  279. USHORT QV_TEXT_640x480x4[] = {
  280. OW, // start sync reset
  281. SEQ_ADDRESS_PORT,
  282. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  283. OWM,
  284. SEQ_ADDRESS_PORT,
  285. 4,
  286. 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
  287. OB,
  288. MISC_OUTPUT_REG_WRITE_PORT,
  289. 0xe3,
  290. OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
  291. GRAPH_ADDRESS_PORT,
  292. 0x0506,
  293. OW, // End Sync reset
  294. SEQ_ADDRESS_PORT,
  295. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  296. OW, // unlock extended registers
  297. GRAPH_ADDRESS_PORT,
  298. 0x050f,
  299. OW, // enable BitBlt engine
  300. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  301. 0x2810,
  302. QVNEW+ARIES, // make sure this is an aries mode
  303. QVCMD+BYTE2PORT, // setup DAC control registers
  304. DAC_CMD_0, // 83c6
  305. 0x01,
  306. 0x00,
  307. QVCMD+BYTE2PORT, // setup DAC control registers
  308. DAC_CMD_1,
  309. 0x01,
  310. 0x00,
  311. QVCMD+BYTE2PORT, // setup DAC control registers
  312. DAC_CMD_2,
  313. 0x01,
  314. 0x20,
  315. OW,
  316. CRTC_ADDRESS_PORT_COLOR,
  317. 0x0511,
  318. METAOUT+INDXOUT, // program crtc registers
  319. CRTC_ADDRESS_PORT_COLOR,
  320. VGA_NUM_CRTC_PORTS, // count
  321. 0, // start index
  322. 0x5F,0x4F,0x50,0x82,
  323. 0x54,0x80,0x0B,0x3E,
  324. 0x00,0x40,0x00,0x00,
  325. 0x00,0x00,0x00,0x00,
  326. 0xEA,0xBC,0xDF,0x28,
  327. 0x00,0xE7,0x04,0xE3,
  328. 0xFF,
  329. IB, // prepare atc for writing
  330. INPUT_STATUS_1_COLOR,
  331. METAOUT+ATCOUT, //
  332. ATT_ADDRESS_PORT, // port
  333. VGA_NUM_ATTRIB_CONT_PORTS, // count
  334. 0, // start index
  335. 0x00,0x01,0x02,0x03,0x04,
  336. 0x05,0x14,0x07,0x38,0x39,
  337. 0x3A,0x3B,0x3C,0x3D,0x3E,
  338. 0x3F,0x01,0x00,0x0F,0x00,0x00,
  339. METAOUT+INDXOUT, //
  340. GRAPH_ADDRESS_PORT, // port
  341. VGA_NUM_GRAPH_CONT_PORTS, // count
  342. 0, // start index
  343. 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
  344. OB,
  345. DAC_PIXEL_MASK_PORT,
  346. 0xFF,
  347. IB, // prepare atc for writing
  348. INPUT_STATUS_1_COLOR,
  349. OB, // turn video on.
  350. ATT_ADDRESS_PORT,
  351. VIDEO_ENABLE,
  352. EOD
  353. }; // QV_TEXT_640x480x4
  354. //////////////////////////////////////////////////////////////
  355. // Mode index 3
  356. // VGA Color graphics, 640x480x8 - 256 colors
  357. // BIOS mode: 0x32
  358. //////////////////////////////////////////////////////////////
  359. #define QV_640x480x8_INDEX 3
  360. USHORT QV_640x480x8[] = {
  361. QVNEW+SETRAM, // set aries videoram
  362. OW, // unlock extended registers
  363. GRAPH_ADDRESS_PORT,
  364. 0x050f,
  365. OW, // start sync reset
  366. SEQ_ADDRESS_PORT,
  367. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  368. OWM,
  369. SEQ_ADDRESS_PORT,
  370. 4,
  371. 0x0101,0xff02,0x0003,0x0e04, // program up sequencer
  372. OW, // set seq memory register 4 to 0x0e
  373. SEQ_ADDRESS_PORT,
  374. 0x0e04,
  375. OB, // FIX VGA BUG
  376. SEQ_ADDRESS_PORT,
  377. 0x07,
  378. IB,
  379. MISC_OUTPUT_REG_WRITE_OFFSET,
  380. OW, // END FIX VGA BUG
  381. CRTC_ADDRESS_COLOR_OFFSET,
  382. 0x013f,
  383. OW, // end synch reset
  384. SEQ_ADDRESS_PORT,
  385. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  386. OW, // unlock extended registers
  387. GRAPH_ADDRESS_PORT,
  388. 0x050f,
  389. OW, // Set AVGA mode
  390. GRAPH_ADDRESS_PORT, // 3ce
  391. 0x0140,
  392. OW, // set pixel write mask reg to ff
  393. SEQ_ADDRESS_PORT, // 3c4
  394. 0xFF02, // enable 256 colors again
  395. OW, // enable BitBlt engine
  396. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  397. 0x2810,
  398. QVCMD+BYTE2PORT, // enable 8BPP Aries Mode
  399. ARIES_CTL_1,
  400. 0x01,
  401. 0x03,
  402. QVNEW+ARIES, // make sure this is an aries mode
  403. QVCMD+SETMISCOUT, // set MISC OUT registers based
  404. // on monitor type
  405. QVCMD+BYTE2PORT, // setup DAC control registers
  406. DAC_CMD_0,
  407. 0x01,
  408. 0x00,
  409. QVCMD+BYTE2PORT, // setup DAC control registers
  410. DAC_CMD_1,
  411. 0x01,
  412. 0x40,
  413. QVCMD+BYTE2PORT, // setup DAC control registers
  414. DAC_CMD_2,
  415. 0x01,
  416. 0x20,
  417. OW, // unlock the CRTC registers
  418. CRTC_ADDRESS_PORT_COLOR,
  419. 0x0011,
  420. QVCMD+SETMONCRTC, // Set monitor specific CRTC registers
  421. QVCMD+SETMONOVFLW, // Set monitor specific overflow register
  422. OW, // write 0 to Overflow_reg_1
  423. GRAPH_ADDRESS_PORT, // register (index 42)
  424. 0x0042,
  425. QVCMD+BYTE2PORT, // setup DAC control registers
  426. CO_COLOR_WRITE,
  427. 0x01,
  428. 0x00,
  429. QVCMD+BYTE2PORT, // setup DAC control registers
  430. CO_COLOR_DATA,
  431. 0x01,
  432. 0x00,
  433. QVCMD+BYTE2PORT, // setup DAC control registers
  434. CO_COLOR_DATA,
  435. 0x01,
  436. 0x00,
  437. QVCMD+BYTE2PORT, // setup DAC control registers
  438. CO_COLOR_DATA,
  439. 0x01,
  440. 0x00,
  441. IB, // prepare atc for writing
  442. INPUT_STATUS_1_COLOR,
  443. METAOUT+ATCOUT, //
  444. ATT_ADDRESS_PORT, // port
  445. VGA_NUM_ATTRIB_CONT_PORTS, // count
  446. 0, // start index
  447. 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  448. 0x41,0x00,0x0F,0x00,0x00,
  449. OWM, // program the graphics controller
  450. GRAPH_ADDRESS_PORT,
  451. VGA_NUM_GRAPH_CONT_PORTS,
  452. 0x0000, 0x0001, 0x0002, 0x0003,
  453. 0x0004, 0x0005, 0x0506, 0x0f07,
  454. 0xFF08,
  455. OB,
  456. DAC_PIXEL_MASK_PORT,
  457. 0xFF,
  458. IB, // prepare atc for writing
  459. INPUT_STATUS_1_COLOR,
  460. OB, // turn video on.
  461. ATT_ADDRESS_PORT,
  462. VIDEO_ENABLE,
  463. EOD
  464. }; // QV_640x480x8
  465. //////////////////////////////////////////////////////////////
  466. // Mode index 4
  467. // SVGA color graphics, 800x600x8 - 256 colors
  468. // BIOS Mode: 0x34.
  469. //////////////////////////////////////////////////////////////
  470. #define QV_800x600x8_INDEX 4
  471. USHORT QV_800x600x8[] = {
  472. QVNEW+SETRAM, // set aries videoram
  473. OW, // unlock extended registers
  474. GRAPH_ADDRESS_PORT,
  475. 0x050f,
  476. OW, // start synch reset
  477. SEQ_ADDRESS_PORT,
  478. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  479. OWM,
  480. SEQ_ADDRESS_PORT,
  481. 4,
  482. 0x0101,0xff02,0x0003,0x0e04, // program up sequencer
  483. OW, // set seq memory register 4 to 0x0e
  484. SEQ_ADDRESS_PORT,
  485. 0x0e04,
  486. OB, // FIX VGA BUG
  487. SEQ_ADDRESS_PORT,
  488. 0x07,
  489. IB,
  490. MISC_OUTPUT_REG_WRITE_OFFSET,
  491. OW, // END FIX VGA BUG
  492. CRTC_ADDRESS_COLOR_OFFSET,
  493. 0x013f,
  494. OW, // End sync reset
  495. SEQ_ADDRESS_PORT,
  496. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  497. OW, // unlock extended registers
  498. GRAPH_ADDRESS_PORT,
  499. 0x050f,
  500. OW, // Set AVGA mode
  501. GRAPH_ADDRESS_PORT, // 3ce
  502. 0x0140,
  503. OW, // set pixel write mask reg to ff
  504. SEQ_ADDRESS_PORT, // 3c4
  505. 0xFF02,
  506. OW, // enable BitBlt engine
  507. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  508. 0x2810,
  509. QVCMD+BYTE2PORT, // enable 8BPP Aries Mode
  510. ARIES_CTL_1,
  511. 0x01,
  512. 0x03,
  513. QVNEW+ARIES, // make sure this is an aries mode
  514. QVCMD+SETMISCOUT, // set MISC OUT registers based
  515. // on monitor type
  516. QVCMD+BYTE2PORT, // setup DAC control registers
  517. DAC_CMD_0,
  518. 0x01,
  519. 0x00,
  520. QVCMD+BYTE2PORT, // setup DAC control registers
  521. DAC_CMD_1,
  522. 0x01,
  523. 0x40,
  524. QVCMD+BYTE2PORT, // setup DAC control registers
  525. DAC_CMD_2,
  526. 0x01,
  527. 0x20,
  528. OW, // unlock the CRTC registers
  529. CRTC_ADDRESS_PORT_COLOR,
  530. 0x0011,
  531. QVCMD+SETMONCRTC, // Set monitor specific CRTC registers
  532. QVCMD+SETMONOVFLW, // Set monitor specific overflow register
  533. OW, // write 0 to Overflow_reg_1
  534. GRAPH_ADDRESS_PORT, // register (index 42)
  535. 0x0042,
  536. QVCMD+BYTE2PORT, // setup DAC control registers
  537. CO_COLOR_WRITE,
  538. 0x01,
  539. 0x00,
  540. QVCMD+BYTE2PORT, // setup DAC control registers
  541. CO_COLOR_DATA,
  542. 0x01,
  543. 0x00,
  544. QVCMD+BYTE2PORT, // setup DAC control registers
  545. CO_COLOR_DATA,
  546. 0x01,
  547. 0x00,
  548. QVCMD+BYTE2PORT, // setup DAC control registers
  549. CO_COLOR_DATA,
  550. 0x01,
  551. 0x00,
  552. IB, // prepare atc for writing
  553. INPUT_STATUS_1_COLOR,
  554. METAOUT+ATCOUT, //
  555. ATT_ADDRESS_PORT, // port
  556. VGA_NUM_ATTRIB_CONT_PORTS, // count
  557. 0, // start index
  558. 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  559. 0x41,0x00,0x0F,0x00,0x00,
  560. OWM, // program the graphics controller
  561. GRAPH_ADDRESS_PORT,
  562. VGA_NUM_GRAPH_CONT_PORTS,
  563. 0x0000, 0x0001, 0x0002, 0x0003,
  564. 0x0004, 0x0005, 0x0506, 0x0F07,
  565. 0xFF08,
  566. OB,
  567. DAC_PIXEL_MASK_PORT,
  568. 0xFF,
  569. IB, // prepare atc for writing
  570. INPUT_STATUS_1_COLOR,
  571. OB, // turn video on.
  572. ATT_ADDRESS_PORT,
  573. VIDEO_ENABLE,
  574. EOD
  575. }; // QV_800x600x8
  576. //////////////////////////////////////////////////////////////
  577. // Mode index 5
  578. // SVGA color graphics, 1024x768x8 - 256 colors
  579. // BIOS mode:0x38
  580. //////////////////////////////////////////////////////////////
  581. #define QV_1024x768x8_INDEX 5
  582. USHORT QV_1024x768x8[] = {
  583. QVNEW+SETRAM, // set aries videoram
  584. OW, // unlock extended registers
  585. GRAPH_ADDRESS_PORT,
  586. 0x050f,
  587. OW, // start synch reset
  588. SEQ_ADDRESS_PORT,
  589. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  590. OWM,
  591. SEQ_ADDRESS_PORT,
  592. 4,
  593. 0x0101,0xff02,0x0003,0x0e04, // program up sequencer
  594. OW, // set seq memory register 4 to 0x0e
  595. SEQ_ADDRESS_PORT,
  596. 0x0e04,
  597. OB, // FIX VGA BUG
  598. SEQ_ADDRESS_PORT,
  599. 0x07,
  600. IB,
  601. MISC_OUTPUT_REG_WRITE_OFFSET,
  602. OW, // END FIX VGA BUG
  603. CRTC_ADDRESS_COLOR_OFFSET,
  604. 0x013f,
  605. OW, // end synch reset
  606. SEQ_ADDRESS_PORT,
  607. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  608. OW, // unlock extended registers
  609. GRAPH_ADDRESS_PORT,
  610. 0x050f,
  611. OW, // Set AVGA mode
  612. GRAPH_ADDRESS_PORT, // 3ce
  613. 0x0140,
  614. OW, // set pixel write mask reg to ff
  615. SEQ_ADDRESS_PORT, // 3c4
  616. 0xFF02,
  617. OW, // enable BitBlt engine
  618. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  619. 0x2810,
  620. QVCMD+BYTE2PORT, // setup DAC control registers
  621. ARIES_CTL_1, // 63ca
  622. 0x01,
  623. 0x03,
  624. QVNEW+ARIES, // make sure this is an aries mode
  625. QVCMD+SETMISCOUT, // set MISC_OUT register according
  626. // to the connected monitor.
  627. QVCMD+BYTE2PORT, // setup DAC control registers
  628. DAC_CMD_0, // 83c6
  629. 0x01,
  630. 0x00,
  631. QVCMD+BYTE2PORT, // setup DAC control registers
  632. DAC_CMD_1, // 13c8
  633. 0x01,
  634. 0x40,
  635. QVCMD+BYTE2PORT, // setup DAC control registers
  636. DAC_CMD_2, // 13c9
  637. 0x01,
  638. 0x20,
  639. OW, // unlock the CRTC registers
  640. CRTC_ADDRESS_PORT_COLOR,
  641. 0x0011,
  642. QVCMD+SETMONCRTC, // Set monitor specific CRTC registers
  643. QVCMD+SETMONOVFLW, // Set monitor specific overflow register
  644. OW, // Set the Overflow_reg_1
  645. GRAPH_ADDRESS_PORT,
  646. 0x0042,
  647. QVCMD+BYTE2PORT, // setup DAC control registers
  648. CO_COLOR_WRITE, // 83c8
  649. 0x01,
  650. 0x00,
  651. QVCMD+BYTE2PORT, // setup DAC control registers
  652. CO_COLOR_DATA, // 83c9
  653. 0x01,
  654. 0x00,
  655. QVCMD+BYTE2PORT, // setup DAC control registers
  656. CO_COLOR_DATA, // 83c9
  657. 0x01,
  658. 0x00,
  659. QVCMD+BYTE2PORT, // setup DAC control registers
  660. CO_COLOR_DATA, // 83c9
  661. 0x01,
  662. 0x00,
  663. IB, // prepare atc for writing
  664. INPUT_STATUS_1_COLOR,
  665. METAOUT+ATCOUT, //
  666. ATT_ADDRESS_PORT, // port
  667. VGA_NUM_ATTRIB_CONT_PORTS, // count
  668. 0, // start index
  669. 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  670. 0x41,0x00,0x0F,0x00,0x00,
  671. OWM, // program the graphics controller
  672. GRAPH_ADDRESS_PORT,
  673. VGA_NUM_GRAPH_CONT_PORTS,
  674. 0x0000, 0x0001, 0x0002, 0x0003,
  675. 0x0004, 0x0005, 0x0506, 0x0F07,
  676. 0xFF08,
  677. OB,
  678. DAC_PIXEL_MASK_PORT,
  679. 0xFF,
  680. IB, // prepare atc for writing
  681. INPUT_STATUS_1_COLOR,
  682. OB, // turn video on.
  683. ATT_ADDRESS_PORT,
  684. VIDEO_ENABLE,
  685. EOD
  686. }; // QV_1024x768x8
  687. //////////////////////////////////////////////////////////////
  688. // Mode index 6
  689. // SVGA color graphics, 1280x1024x8 - 256 colors
  690. // BIOS mode:0x3A
  691. //////////////////////////////////////////////////////////////
  692. #define QV_1280x1024x8_INDEX 6
  693. USHORT QV_1280x1024x8[] = {
  694. QVNEW+SETRAM, // set aries videoram
  695. OW, // unlock extended registers
  696. GRAPH_ADDRESS_PORT,
  697. 0x050f,
  698. OW, // start synch reset
  699. SEQ_ADDRESS_PORT,
  700. IND_SYNC_RESET + (START_SYNC_RESET_VALUE << 8),
  701. OWM,
  702. SEQ_ADDRESS_PORT,
  703. 4,
  704. 0x0101,0xff02,0x0003,0x0e04, // program up sequencer
  705. OW, // set seq memory register 4 to 0x0e
  706. SEQ_ADDRESS_PORT,
  707. 0x0e04,
  708. OB, // FIX VGA BUG
  709. SEQ_ADDRESS_PORT,
  710. 0x07,
  711. IB,
  712. MISC_OUTPUT_REG_WRITE_OFFSET,
  713. OW, // END FIX VGA BUG
  714. CRTC_ADDRESS_COLOR_OFFSET,
  715. 0x013f,
  716. OW, // end synch reset
  717. SEQ_ADDRESS_PORT,
  718. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  719. OW, // unlock extended registers
  720. GRAPH_ADDRESS_PORT,
  721. 0x050f,
  722. OW, // Set ORION mode
  723. GRAPH_ADDRESS_PORT, // 3ce
  724. 0x0140,
  725. OW, // set pixel write mask reg to ff
  726. SEQ_ADDRESS_PORT, // 3c4
  727. 0xFF02,
  728. OW, // enable BitBlt engine
  729. GRAPH_ADDRESS_PORT, // and disable IRQ 9
  730. 0x2810,
  731. QVCMD+BYTE2PORT, // setup DAC control registers
  732. ARIES_CTL_1, // 63ca
  733. 0x01,
  734. 0x03,
  735. QVNEW+V32, // Set board in V32 mode
  736. QVCMD+SETMISCOUT, // set MISC_OUT register according
  737. // to the connected monitor.
  738. QVCMD+BYTE2PORT, // setup DAC control registers
  739. DAC_CMD_0, // 83c6
  740. 0x01,
  741. 0x80,
  742. QVCMD+BYTE2PORT, // setup DAC control registers
  743. DAC_CMD_1, // 13c8
  744. 0x01,
  745. 0x40,
  746. // VidalL 04/25/93
  747. //
  748. // IMPORTANT: DAC Command register 2 should really be included in the
  749. // ========= CRTC parameters because of the following:
  750. // Qvision 200 monitors (at 76Hz) require the use of pixel
  751. // clock 2, which means value 30. However, the 68Hz
  752. // and 60Hz timings require pixel clock 1, which means
  753. // value 20. So, when 60 and 68Hz timings are used, default
  754. // to value 20. But if a Qvision monitor is being used
  755. // (CPQ MON), then must changed this value to 30 !!!
  756. // Otherwise, the screen will NOT sync in 1280 resolution
  757. //
  758. // DAC_CMD_2 is set by the QVNEW+V32 command. It must NOT
  759. // be set later in this stream !!! Otherwise, 1280 may
  760. // may not sync on the monitor.
  761. //
  762. // VidalL 04/25/93
  763. // QVCMD+BYTE2PORT, // setup DAC control registers
  764. // DAC_CMD_2, // 13c9
  765. // 0x01,
  766. // 0x30 or 0x20,
  767. QVCMD+BYTE2PORT, // setup DAC control registers
  768. DAC_STATUS_REG, // 13c6
  769. 0x01,
  770. 0x08,
  771. OW, // unlock the CRTC registers
  772. CRTC_ADDRESS_PORT_COLOR,
  773. 0x0011,
  774. QVCMD+SETMONCRTC, // Set monitor specific CRTC registers
  775. QVCMD+SETMONOVFLW, // Set monitor specific overflow register
  776. OW, // Set the Overflow_reg_1
  777. GRAPH_ADDRESS_PORT,
  778. 0x0142,
  779. QVCMD+BYTE2PORT, // setup DAC control registers
  780. CO_COLOR_WRITE, // 83c8
  781. 0x01,
  782. 0x00,
  783. QVCMD+BYTE2PORT, // setup DAC control registers
  784. CO_COLOR_DATA, // 83c9
  785. 0x01,
  786. 0x00,
  787. QVCMD+BYTE2PORT, // setup DAC control registers
  788. CO_COLOR_DATA, // 83c9
  789. 0x01,
  790. 0x00,
  791. QVCMD+BYTE2PORT, // setup DAC control registers
  792. CO_COLOR_DATA, // 83c9
  793. 0x01,
  794. 0x00,
  795. IB, // prepare atc for writing
  796. INPUT_STATUS_1_COLOR,
  797. METAOUT+ATCOUT, //
  798. ATT_ADDRESS_PORT, // port
  799. VGA_NUM_ATTRIB_CONT_PORTS, // count
  800. 0, // start index
  801. 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  802. 0x41,0x00,0x0F,0x00,0x00,
  803. OWM, // program the graphics controller
  804. GRAPH_ADDRESS_PORT,
  805. VGA_NUM_GRAPH_CONT_PORTS,
  806. 0x0000, 0x0001, 0x0002, 0x0003,
  807. 0x0004, 0x0005, 0x0506, 0x0F07,
  808. 0xFF08,
  809. OB,
  810. DAC_PIXEL_MASK_PORT,
  811. 0xFF,
  812. IB, // prepare atc for writing
  813. INPUT_STATUS_1_COLOR,
  814. OB, // turn video on.
  815. ATT_ADDRESS_PORT,
  816. VIDEO_ENABLE,
  817. EOD
  818. }; // QV_1280x1024x8
  819. //
  820. //
  821. // The MonData is an array of bytes of the following format:
  822. // MONCLASS, ModeIndex, Validity, MiscOut, Overflow,
  823. // 25 CRT register values.
  824. //
  825. // MONCLASS = The monitor type from the structure
  826. // ModeIndex = index of the mode (look above)
  827. // Validity = 1 if this MONCLASS supports mode.
  828. // MiscOut = Misc Out register value for this mode.
  829. // Overflow = Overflow 2 register value for this mode.
  830. // The rest are register values for consecutive CRT registers.
  831. //
  832. // If the mode is INVALID_MODE then the CRT registers are
  833. // not put in the array. This will allow us to move
  834. // quickly through an array which contains many invalid modes.
  835. // We know that if the mode is VALID_MODE, we will have 25
  836. // register values after the Validity value for that mode.
  837. //
  838. // An INVALID_MODE does not necessarily mean that the
  839. // particular mode index is not support on the monitor.
  840. // It only means that for that particular mode we do not
  841. // have to program the CRTC registers.
  842. //
  843. //
  844. //$DEL$//USHORT usMonData[] = {
  845. //$DEL$// Monitor_Vga, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  846. //$DEL$// Monitor_Vga, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  847. //$DEL$// Monitor_Vga, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  848. //$DEL$// Monitor_Vga, QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  849. //$DEL$// 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  850. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  851. //$DEL$// 0x00, 0xe5, 0x03, 0xe3, 0xff,
  852. //$DEL$// Monitor_Vga, QV_800x600x8_INDEX, INVALID_MODE,
  853. //$DEL$// Monitor_Vga, QV_1024x768x8_INDEX, INVALID_MODE,
  854. //$DEL$// Monitor_Vga, QV_1280x1024x8_INDEX, INVALID_MODE,
  855. //$DEL$//
  856. //$DEL$// Monitor_AG1024, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  857. //$DEL$// Monitor_AG1024, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  858. //$DEL$// Monitor_AG1024, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  859. //$DEL$// Monitor_AG1024, QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  860. //$DEL$// 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  861. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  862. //$DEL$// 0x00, 0xe5, 0x03, 0xe3, 0xff,
  863. //$DEL$// Monitor_AG1024, QV_800x600x8_INDEX, INVALID_MODE,
  864. //$DEL$// Monitor_AG1024, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  865. //$DEL$// 0xa9, 0x7f, 0x7f, 0x0a, 0x87, 0x9f, 0x2e, 0xf5, 0x00, 0x60,
  866. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xba, 0xff, 0x80,
  867. //$DEL$// 0x00, 0xff, 0x2c, 0xe3, 0xff,
  868. //$DEL$// Monitor_AG1024, QV_1280x1024x8_INDEX, INVALID_MODE,
  869. //$DEL$//
  870. //$DEL$// Monitor_Qvision, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  871. //$DEL$// Monitor_Qvision, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  872. //$DEL$// Monitor_Qvision, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  873. //$DEL$// Monitor_Qvision, QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  874. //$DEL$// 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  875. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  876. //$DEL$// 0x00, 0xe5, 0x03, 0xe3, 0xff,
  877. //$DEL$// Monitor_Qvision, QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  878. //$DEL$// 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  879. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  880. //$DEL$// 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  881. //$DEL$// Monitor_Qvision, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  882. //$DEL$// 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  883. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  884. //$DEL$// 0x00, 0xff, 0x1e, 0xe3, 0xff,
  885. //$DEL$// Monitor_Qvision, QV_1280x1024x8_INDEX, INVALID_MODE,
  886. //$DEL$//
  887. //$DEL$// Monitor_1280, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  888. //$DEL$// Monitor_1280, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  889. //$DEL$// Monitor_1280, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  890. //$DEL$// Monitor_1280, QV_640x480x8_INDEX, VALID_MODE, 0xf3, 0x28,
  891. //$DEL$// 0x69, 0x4f, 0x55, 0x86, 0x58, 0x80, 0x56, 0xb2, 0x00, 0x60,
  892. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xb3, 0xdf, 0x80,
  893. //$DEL$// 0x00, 0x01, 0x32, 0xe3, 0xff,
  894. //$DEL$// Monitor_1280, QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  895. //$DEL$// 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  896. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  897. //$DEL$// 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  898. //$DEL$// Monitor_1280, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  899. //$DEL$// 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  900. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  901. //$DEL$// 0x00, 0xff, 0x1e, 0xe3, 0xff,
  902. //$DEL$// Monitor_1280, QV_1280x1024x8_INDEX, VALID_MODE, 0x27, 0xe8,
  903. //$DEL$// 0xca, 0x9f, 0x9f, 0x8d, 0xa6, 0x1a, 0x24, 0x5a, 0x00, 0x60,
  904. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb5, 0xff, 0x00,
  905. //$DEL$// 0x00, 0xff, 0x24, 0xe3, 0xff,
  906. //$DEL$//
  907. //$DEL$// Monitor_SVGA, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  908. //$DEL$// Monitor_SVGA, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  909. //$DEL$// Monitor_SVGA, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  910. //$DEL$// Monitor_SVGA, QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  911. //$DEL$// 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  912. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  913. //$DEL$// 0x00, 0xe5, 0x03, 0xe3, 0xff,
  914. //$DEL$// Monitor_SVGA, QV_800x600x8_INDEX, VALID_MODE, 0xf3, 0x20,
  915. //$DEL$// 0x7f, 0x63, 0x64, 0x80, 0x68, 0x19, 0x73, 0xf0, 0x00, 0x60,
  916. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbc, 0x57, 0x80,
  917. //$DEL$// 0x00, 0x58, 0x72, 0xe3, 0xff,
  918. //$DEL$// Monitor_SVGA, QV_1024x768x8_INDEX, INVALID_MODE,
  919. //$DEL$// Monitor_SVGA, QV_1280x1024x8_INDEX, INVALID_MODE,
  920. //$DEL$//
  921. //$DEL$// Monitor_60Hz, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  922. //$DEL$// Monitor_60Hz, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  923. //$DEL$// Monitor_60Hz, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  924. //$DEL$// Monitor_60Hz, QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  925. //$DEL$// 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  926. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  927. //$DEL$// 0x00, 0xe5, 0x03, 0xe3, 0xff,
  928. //$DEL$// Monitor_60Hz, QV_800x600x8_INDEX, VALID_MODE, 0xf3, 0x20,
  929. //$DEL$// 0x7f, 0x63, 0x64, 0x80, 0x68, 0x19, 0x73, 0xf0, 0x00, 0x60,
  930. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbc, 0x57, 0x80,
  931. //$DEL$// 0x00, 0x58, 0x72, 0xe3, 0xff,
  932. //$DEL$// Monitor_60Hz, QV_1024x768x8_INDEX, VALID_MODE, 0xe3, 0x00,
  933. //$DEL$// 0x9b, 0x7f, 0x7f, 0x9e, 0x87, 0x17, 0x31, 0xf5, 0x00, 0x60,
  934. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb4, 0xff, 0x80,
  935. //$DEL$// 0x00, 0xff, 0x31, 0xe3, 0xff,
  936. //$DEL$// Monitor_60Hz, QV_1280x1024x8_INDEX, VALID_MODE, 0x23, 0xc8,
  937. //$DEL$// 0xed, 0x9f, 0x9f, 0x10, 0xae, 0x90, 0x2a, 0x5a, 0x00, 0x60,
  938. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xb7, 0xff, 0x00,
  939. //$DEL$// 0x00, 0xff, 0x2a, 0xe3, 0xff,
  940. //$DEL$//
  941. //$DEL$// Monitor_66Hz, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  942. //$DEL$// Monitor_66Hz, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  943. //$DEL$// Monitor_66Hz, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  944. //$DEL$// Monitor_66Hz, QV_640x480x8_INDEX, INVALID_MODE,
  945. //$DEL$// Monitor_66Hz, QV_800x600x8_INDEX, INVALID_MODE,
  946. //$DEL$// Monitor_66Hz, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  947. //$DEL$// 0xa9, 0x7f, 0x7f, 0x0a, 0x87, 0x9f, 0x2e, 0xf5, 0x00, 0x60,
  948. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xba, 0xff, 0x80,
  949. //$DEL$// 0x00, 0xff, 0x2c, 0xe3, 0xff,
  950. //$DEL$// Monitor_66Hz, QV_1280x1024x8_INDEX, INVALID_MODE,
  951. //$DEL$//
  952. //$DEL$// Monitor_68Hz, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  953. //$DEL$// Monitor_68Hz, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  954. //$DEL$// Monitor_68Hz, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  955. //$DEL$// Monitor_68Hz, QV_640x480x8_INDEX, INVALID_MODE,
  956. //$DEL$// Monitor_68Hz, QV_800x600x8_INDEX, INVALID_MODE,
  957. //$DEL$// Monitor_68Hz, QV_1024x768x8_INDEX, INVALID_MODE,
  958. //$DEL$// Monitor_68Hz, QV_1280x1024x8_INDEX, VALID_MODE, 0x23, 0xe8,
  959. //$DEL$// 0xcf, 0x9f, 0x9f, 0x12, 0xa4, 0x19, 0x2e, 0x5a, 0x00, 0x60,
  960. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xbb, 0xff, 0x00,
  961. //$DEL$// 0x00, 0xff, 0x2e, 0xe3, 0xff,
  962. //$DEL$//
  963. //$DEL$// Monitor_72Hz, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  964. //$DEL$// Monitor_72Hz, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  965. //$DEL$// Monitor_72Hz, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  966. //$DEL$// Monitor_72Hz, QV_640x480x8_INDEX, INVALID_MODE,
  967. //$DEL$// Monitor_72Hz, QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  968. //$DEL$// 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  969. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  970. //$DEL$// 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  971. //$DEL$// Monitor_72Hz, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  972. //$DEL$// 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  973. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  974. //$DEL$// 0x00, 0xff, 0x1e, 0xe3, 0xff,
  975. //$DEL$// Monitor_72Hz, QV_1280x1024x8_INDEX, INVALID_MODE,
  976. //$DEL$//
  977. //$DEL$// Monitor_75Hz, QV_TEXT_720x400x4_INDEX, INVALID_MODE,
  978. //$DEL$// Monitor_75Hz, QV_TEXT_640x350x4_INDEX, INVALID_MODE,
  979. //$DEL$// Monitor_75Hz, QV_TEXT_640x480x4_INDEX, INVALID_MODE,
  980. //$DEL$// Monitor_75Hz, QV_640x480x8_INDEX, INVALID_MODE,
  981. //$DEL$// Monitor_75Hz, QV_800x600x8_INDEX, INVALID_MODE,
  982. //$DEL$// Monitor_75Hz, QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  983. //$DEL$// 0x97, 0x7f, 0x7f, 0x9a, 0x82, 0x0f, 0x1f, 0xf1, 0x00, 0x60,
  984. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb4, 0xff, 0x80,
  985. //$DEL$// 0x00, 0xfe, 0x1f, 0xe3, 0x00,
  986. //$DEL$//
  987. //$DEL$// // Monitor_75Hz, QV_1280x1024x8_INDEX, INVALID_MODE,
  988. //$DEL$//
  989. //$DEL$// //
  990. //$DEL$// // $0004 ************ miked 1/26/1994 *****************************
  991. //$DEL$// //
  992. //$DEL$// //Added third party monitor support to force a 76Hz refresh rate
  993. //$DEL$// //using the same timings as the QV200 timings.
  994. //$DEL$// //
  995. //$DEL$// //Note: The MonClass entry for 75Hz was used, because it was available
  996. //$DEL$// // and much less overhead than adding a new level to the array
  997. //$DEL$// // of monitor timings; so even though the "Monitor_75Hz" is used
  998. //$DEL$// // here, it really maps to 76Hz.
  999. //$DEL$// //
  1000. //$DEL$// // ***************************************************************
  1001. //$DEL$// Monitor_75Hz, QV_1280x1024x8_INDEX, VALID_MODE, 0x27, 0xe8,
  1002. //$DEL$// 0xca, 0x9f, 0x9f, 0x8d, 0xa6, 0x1a, 0x24, 0x5a, 0x00, 0x60,
  1003. //$DEL$// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb5, 0xff, 0x00,
  1004. //$DEL$// 0x00, 0xff, 0x24, 0xe3, 0xff,
  1005. //$DEL$//}; // usMonData
  1006. //
  1007. // $0005 - MikeD - 02/08/94
  1008. // Daytona - new monitor data structure array
  1009. //
  1010. MONTYPE MonData[] = {
  1011. //
  1012. // Monitor_Vga
  1013. //
  1014. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1015. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1016. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1017. 0x00, 0x00, 0x00, 0x00, 0x00,
  1018. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1019. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1020. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1021. 0x00, 0x00, 0x00, 0x00, 0x00,
  1022. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1023. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1024. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1025. 0x00, 0x00, 0x00, 0x00, 0x00,
  1026. QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  1027. 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  1028. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  1029. 0x00, 0xe5, 0x03, 0xe3, 0xff,
  1030. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1031. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1032. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1033. 0x00, 0x00, 0x00, 0x00, 0x00,
  1034. QV_1024x768x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1035. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1036. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1037. 0x00, 0x00, 0x00, 0x00, 0x00,
  1038. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1039. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1040. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1041. 0x00, 0x00, 0x00, 0x00, 0x00,
  1042. //
  1043. // Monitor_AG1024
  1044. //
  1045. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1046. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1047. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1048. 0x00, 0x00, 0x00, 0x00, 0x00,
  1049. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1050. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1051. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1052. 0x00, 0x00, 0x00, 0x00, 0x00,
  1053. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1054. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1055. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1056. 0x00, 0x00, 0x00, 0x00, 0x00,
  1057. QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  1058. 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  1059. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  1060. 0x00, 0xe5, 0x03, 0xe3, 0xff,
  1061. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1062. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1063. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1064. 0x00, 0x00, 0x00, 0x00, 0x00,
  1065. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1066. 0xa9, 0x7f, 0x7f, 0x0a, 0x87, 0x9f, 0x2e, 0xf5, 0x00, 0x60,
  1067. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xba, 0xff, 0x80,
  1068. 0x00, 0xff, 0x2c, 0xe3, 0xff,
  1069. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1070. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1071. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1072. 0x00, 0x00, 0x00, 0x00, 0x00,
  1073. //
  1074. // Monitor_Qvision
  1075. //
  1076. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1077. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1078. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1079. 0x00, 0x00, 0x00, 0x00, 0x00,
  1080. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1081. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1082. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1083. 0x00, 0x00, 0x00, 0x00, 0x00,
  1084. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1085. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1086. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1087. 0x00, 0x00, 0x00, 0x00, 0x00,
  1088. QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  1089. 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  1090. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  1091. 0x00, 0xe5, 0x03, 0xe3, 0xff,
  1092. QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  1093. 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  1094. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  1095. 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  1096. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1097. 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  1098. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  1099. 0x00, 0xff, 0x1e, 0xe3, 0xff,
  1100. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1101. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1102. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1103. 0x00, 0x00, 0x00, 0x00, 0x00,
  1104. //
  1105. // Monitor_1280
  1106. //
  1107. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1108. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1109. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1110. 0x00, 0x00, 0x00, 0x00, 0x00,
  1111. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1112. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1113. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1114. 0x00, 0x00, 0x00, 0x00, 0x00,
  1115. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1116. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1117. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1118. 0x00, 0x00, 0x00, 0x00, 0x00,
  1119. QV_640x480x8_INDEX, VALID_MODE, 0xf3, 0x28,
  1120. 0x69, 0x4f, 0x55, 0x86, 0x58, 0x80, 0x56, 0xb2, 0x00, 0x60,
  1121. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xb3, 0xdf, 0x80,
  1122. 0x00, 0x01, 0x32, 0xe3, 0xff,
  1123. QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  1124. 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  1125. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  1126. 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  1127. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1128. 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  1129. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  1130. 0x00, 0xff, 0x1e, 0xe3, 0xff,
  1131. QV_1280x1024x8_INDEX, VALID_MODE, 0x27, 0xe8,
  1132. 0xca, 0x9f, 0x9f, 0x8d, 0xa6, 0x1a, 0x24, 0x5a, 0x00, 0x60,
  1133. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb5, 0xff, 0x00,
  1134. 0x00, 0xff, 0x24, 0xe3, 0xff,
  1135. //
  1136. // Monitor_SVGA
  1137. //
  1138. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1139. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1140. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1141. 0x00, 0x00, 0x00, 0x00, 0x00,
  1142. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1143. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1144. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1145. 0x00, 0x00, 0x00, 0x00, 0x00,
  1146. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1147. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1148. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1149. 0x00, 0x00, 0x00, 0x00, 0x00,
  1150. QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  1151. 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  1152. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  1153. 0x00, 0xe5, 0x03, 0xe3, 0xff,
  1154. QV_800x600x8_INDEX, VALID_MODE, 0xf3, 0x20,
  1155. 0x7f, 0x63, 0x64, 0x80, 0x68, 0x19, 0x73, 0xf0, 0x00, 0x60,
  1156. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbc, 0x57, 0x80,
  1157. 0x00, 0x58, 0x72, 0xe3, 0xff,
  1158. QV_1024x768x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1159. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1160. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1161. 0x00, 0x00, 0x00, 0x00, 0x00,
  1162. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1163. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1164. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1165. 0x00, 0x00, 0x00, 0x00, 0x00,
  1166. //
  1167. // Monitor_60Hz
  1168. //
  1169. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1170. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1171. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1172. 0x00, 0x00, 0x00, 0x00, 0x00,
  1173. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1174. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1175. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1176. 0x00, 0x00, 0x00, 0x00, 0x00,
  1177. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1178. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1179. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1180. 0x00, 0x00, 0x00, 0x00, 0x00,
  1181. QV_640x480x8_INDEX, VALID_MODE, 0xef, 0x08,
  1182. 0x5f, 0x4f, 0x50, 0x81, 0x53, 0x9f, 0x0b, 0x3e, 0x00, 0x40,
  1183. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xbc, 0xdf, 0x80,
  1184. 0x00, 0xe5, 0x03, 0xe3, 0xff,
  1185. QV_800x600x8_INDEX, VALID_MODE, 0xf3, 0x20,
  1186. 0x7f, 0x63, 0x64, 0x80, 0x68, 0x19, 0x73, 0xf0, 0x00, 0x60,
  1187. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbc, 0x57, 0x80,
  1188. 0x00, 0x58, 0x72, 0xe3, 0xff,
  1189. QV_1024x768x8_INDEX, VALID_MODE, 0xe3, 0x00,
  1190. 0x9b, 0x7f, 0x7f, 0x9e, 0x87, 0x17, 0x31, 0xf5, 0x00, 0x60,
  1191. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb4, 0xff, 0x80,
  1192. 0x00, 0xff, 0x31, 0xe3, 0xff,
  1193. QV_1280x1024x8_INDEX, VALID_MODE, 0x23, 0xc8,
  1194. 0xed, 0x9f, 0x9f, 0x10, 0xae, 0x90, 0x2a, 0x5a, 0x00, 0x60,
  1195. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xb7, 0xff, 0x00,
  1196. 0x00, 0xff, 0x2a, 0xe3, 0xff,
  1197. //
  1198. // Monitor_66Hz
  1199. //
  1200. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1201. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1202. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1203. 0x00, 0x00, 0x00, 0x00, 0x00,
  1204. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1205. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1206. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1207. 0x00, 0x00, 0x00, 0x00, 0x00,
  1208. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1209. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1210. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1211. 0x00, 0x00, 0x00, 0x00, 0x00,
  1212. QV_640x480x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1213. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1214. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1215. 0x00, 0x00, 0x00, 0x00, 0x00,
  1216. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1217. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1218. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1219. 0x00, 0x00, 0x00, 0x00, 0x00,
  1220. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1221. 0xa9, 0x7f, 0x7f, 0x0a, 0x87, 0x9f, 0x2e, 0xf5, 0x00, 0x60,
  1222. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xba, 0xff, 0x80,
  1223. 0x00, 0xff, 0x2c, 0xe3, 0xff,
  1224. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1225. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1226. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1227. 0x00, 0x00, 0x00, 0x00, 0x00,
  1228. //
  1229. // Monitor_68Hz
  1230. //
  1231. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1232. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1233. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1234. 0x00, 0x00, 0x00, 0x00, 0x00,
  1235. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1236. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1237. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1238. 0x00, 0x00, 0x00, 0x00, 0x00,
  1239. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1240. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1241. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1242. 0x00, 0x00, 0x00, 0x00, 0x00,
  1243. QV_640x480x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1244. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1245. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1246. 0x00, 0x00, 0x00, 0x00, 0x00,
  1247. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1248. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1249. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1250. 0x00, 0x00, 0x00, 0x00, 0x00,
  1251. QV_1024x768x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1252. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1253. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1254. 0x00, 0x00, 0x00, 0x00, 0x00,
  1255. QV_1280x1024x8_INDEX, VALID_MODE, 0x23, 0xe8,
  1256. 0xcf, 0x9f, 0x9f, 0x12, 0xa4, 0x19, 0x2e, 0x5a, 0x00, 0x60,
  1257. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xbb, 0xff, 0x00,
  1258. 0x00, 0xff, 0x2e, 0xe3, 0xff,
  1259. //
  1260. // Monitor_72Hz
  1261. //
  1262. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1263. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1264. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1265. 0x00, 0x00, 0x00, 0x00, 0x00,
  1266. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1267. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1268. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1269. 0x00, 0x00, 0x00, 0x00, 0x00,
  1270. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1271. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1272. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1273. 0x00, 0x00, 0x00, 0x00, 0x00,
  1274. QV_640x480x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1275. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1276. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1277. 0x00, 0x00, 0x00, 0x00, 0x00,
  1278. QV_800x600x8_INDEX, VALID_MODE, 0x23, 0x20,
  1279. 0x8b, 0x63, 0x66, 0x8b, 0x6d, 0x1d, 0xe9, 0xf0, 0x00, 0x60,
  1280. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xba, 0x57, 0x80,
  1281. 0x00, 0x6e, 0xd1, 0xe3, 0xff,
  1282. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1283. 0x9e, 0x7f, 0x7f, 0x81, 0x83, 0x93, 0x1e, 0xf1, 0x00, 0x60,
  1284. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0xff, 0x80,
  1285. 0x00, 0xff, 0x1e, 0xe3, 0xff,
  1286. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1287. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1288. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1289. 0x00, 0x00, 0x00, 0x00, 0x00,
  1290. //
  1291. // Monitor_75Hz
  1292. //
  1293. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1294. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1295. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1296. 0x00, 0x00, 0x00, 0x00, 0x00,
  1297. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1298. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1299. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1300. 0x00, 0x00, 0x00, 0x00, 0x00,
  1301. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1302. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1303. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1304. 0x00, 0x00, 0x00, 0x00, 0x00,
  1305. QV_640x480x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1306. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1307. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1308. 0x00, 0x00, 0x00, 0x00, 0x00,
  1309. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1310. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1311. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1312. 0x00, 0x00, 0x00, 0x00, 0x00,
  1313. QV_1024x768x8_INDEX, VALID_MODE, 0x2b, 0x00,
  1314. 0x97, 0x7f, 0x7f, 0x9a, 0x82, 0x0f, 0x1f, 0xf1, 0x00, 0x60,
  1315. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb4, 0xff, 0x80,
  1316. 0x00, 0xfe, 0x1f, 0xe3, 0x00,
  1317. QV_1280x1024x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1318. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1319. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1320. 0x00, 0x00, 0x00, 0x00, 0x00,
  1321. //
  1322. // Monitor_76Hz
  1323. //
  1324. QV_TEXT_720x400x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1325. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1326. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1327. 0x00, 0x00, 0x00, 0x00, 0x00,
  1328. QV_TEXT_640x350x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1329. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1330. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1331. 0x00, 0x00, 0x00, 0x00, 0x00,
  1332. QV_TEXT_640x480x4_INDEX, INVALID_MODE, 0x00, 0x00,
  1333. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1334. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1335. 0x00, 0x00, 0x00, 0x00, 0x00,
  1336. QV_640x480x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1337. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1338. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1339. 0x00, 0x00, 0x00, 0x00, 0x00,
  1340. QV_800x600x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1341. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1342. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1343. 0x00, 0x00, 0x00, 0x00, 0x00,
  1344. QV_1024x768x8_INDEX, INVALID_MODE, 0x00, 0x00,
  1345. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1346. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1347. 0x00, 0x00, 0x00, 0x00, 0x00,
  1348. QV_1280x1024x8_INDEX, VALID_MODE, 0x27, 0xe8,
  1349. 0xca, 0x9f, 0x9f, 0x8d, 0xa6, 0x1a, 0x24, 0x5a, 0x00, 0x60,
  1350. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb5, 0xff, 0x00,
  1351. 0x00, 0xff, 0x24, 0xe3, 0xff,
  1352. }; // MonData
  1353. //
  1354. // This array contains a set of boolean values with the
  1355. // following properties.
  1356. // If a monitor supports a specified mode, the value
  1357. // is TRUE. If the monitor does not support the mode,
  1358. // the value is FALSE.
  1359. // +++++++++++++++++++++++++++++++++++++
  1360. // ++++++++++++++ IMPORTANT ++++++++++++
  1361. // +++++++++++++++++++++++++++++++++++++
  1362. // The NUM_VIDEO_MODES value must be hardcoded because
  1363. // a non constant value cannot be the index of an
  1364. // array.
  1365. // This value must be changed when new modes are added.
  1366. // Currently, the QVISION BIOS does not support 800x600x8 so
  1367. // we set these modes to be invalid if INT10 is chosen
  1368. // as the initialization avenue.
  1369. //
  1370. #define NUM_VIDEO_MODES 7 // must be hardcoded for the fValidMode array.
  1371. BOOLEAN fValidMode[NUM_MONITOR_CLASSES][NUM_VIDEO_MODES] = {
  1372. //////////////////////////////////////////////////////////////
  1373. // Monitor_Vga
  1374. //////////////////////////////////////////////////////////////
  1375. TRUE, // text 640x350 (EGA)
  1376. TRUE, // text 640x480 (VGA)
  1377. TRUE, // text 720x400 (VGA)
  1378. TRUE, // 640x480x8
  1379. #ifdef INIT_INT10 // The Qvision hardware does not
  1380. FALSE, // support 800x600x8 in BIOS
  1381. #else // so we always set this mode
  1382. FALSE, // to be invalid. (for now)
  1383. #endif
  1384. FALSE, // 1024x768x8
  1385. FALSE, // 1280x1024x8
  1386. //////////////////////////////////////////////////////////////
  1387. // Monitor_AG1024
  1388. //////////////////////////////////////////////////////////////
  1389. TRUE, // text 640x350 (EGA)
  1390. TRUE, // text 640x480 (VGA)
  1391. TRUE, // text 720x400 (VGA)
  1392. TRUE, // 640x480x8
  1393. #ifdef INIT_INT10 // The Qvision hardware does not
  1394. FALSE, // support 800x600x8 in BIOS
  1395. #else // so we always set this mode
  1396. FALSE, // to be invalid. (for now)
  1397. #endif
  1398. TRUE, // 1024x768x8
  1399. FALSE, // 1280x1024x8
  1400. //////////////////////////////////////////////////////////////
  1401. // Monitor_Qvision
  1402. //////////////////////////////////////////////////////////////
  1403. TRUE, // text 640x350 (EGA)
  1404. TRUE, // text 640x480 (VGA)
  1405. TRUE, // text 720x400 (VGA)
  1406. TRUE, // 640x480x8
  1407. #ifdef INIT_INT10 // The Qvision hardware does not
  1408. FALSE, // support 800x600x8 in BIOS
  1409. #else // so we always set this mode
  1410. TRUE, // to be invalid. (for now)
  1411. #endif
  1412. TRUE, // 1024x768x8
  1413. FALSE, // 1280x1024x8
  1414. //////////////////////////////////////////////////////////////
  1415. // Monitor_1280
  1416. //////////////////////////////////////////////////////////////
  1417. TRUE, // text 640x350 (EGA)
  1418. TRUE, // text 640x480 (VGA)
  1419. TRUE, // text 720x400 (VGA)
  1420. TRUE, // 640x480x8
  1421. #ifdef INIT_INT10 // The Qvision hardware does not
  1422. FALSE, // support 800x600x8 in BIOS
  1423. #else // so we always set this mode
  1424. TRUE, // to be invalid. (for now)
  1425. #endif
  1426. TRUE, // 1024x768x8
  1427. TRUE, // 1280x1024x8
  1428. //////////////////////////////////////////////////////////////
  1429. // Monitor_SVGA
  1430. //////////////////////////////////////////////////////////////
  1431. TRUE, // text 640x350 (EGA)
  1432. TRUE, // text 640x480 (VGA)
  1433. TRUE, // text 720x400 (VGA)
  1434. TRUE, // 640x480x8
  1435. #ifdef INIT_INT10 // The Qvision hardware does not
  1436. FALSE, // support 800x600x8 in BIOS
  1437. #else // so we always set this mode
  1438. TRUE, // to be invalid. (for now)
  1439. #endif
  1440. FALSE, // 1024x768x8
  1441. FALSE, // 1280x1024x8
  1442. //////////////////////////////////////////////////////////////
  1443. // Monitor_60Hz
  1444. //////////////////////////////////////////////////////////////
  1445. TRUE, // text 640x350 (EGA)
  1446. TRUE, // text 640x480 (VGA)
  1447. TRUE, // text 720x400 (VGA)
  1448. TRUE, // 640x480x8
  1449. #ifdef INIT_INT10 // The Qvision hardware does not
  1450. FALSE, // support 800x600x8 in BIOS
  1451. #else // so we always set this mode
  1452. TRUE, // to be invalid. (for now)
  1453. #endif
  1454. TRUE, // 1024x768x8
  1455. TRUE, // 1280x1024x8
  1456. //////////////////////////////////////////////////////////////
  1457. // Monitor_66Hz
  1458. //////////////////////////////////////////////////////////////
  1459. TRUE, // text 640x350 (EGA)
  1460. TRUE, // text 640x480 (VGA)
  1461. TRUE, // text 720x400 (VGA)
  1462. FALSE, // 640x480x8
  1463. #ifdef INIT_INT10 // The Qvision hardware does not
  1464. FALSE, // support 800x600x8 in BIOS
  1465. #else // so we always set this mode
  1466. FALSE, // to be invalid. (for now)
  1467. #endif
  1468. TRUE, // 1024x768x8
  1469. FALSE, // 1280x1024x8
  1470. //////////////////////////////////////////////////////////////
  1471. // Monitor_68Hz
  1472. //////////////////////////////////////////////////////////////
  1473. TRUE, // text 640x350 (EGA)
  1474. TRUE, // text 640x480 (VGA)
  1475. TRUE, // text 720x400 (VGA)
  1476. FALSE, // 640x480x8
  1477. #ifdef INIT_INT10 // The Qvision hardware does not
  1478. FALSE, // support 800x600x8 in BIOS
  1479. #else // so we always set this mode
  1480. FALSE, // to be invalid. (for now)
  1481. #endif
  1482. FALSE, // 1024x768x8
  1483. TRUE, // 1280x1024x8
  1484. //////////////////////////////////////////////////////////////
  1485. // Monitor_72Hz
  1486. //////////////////////////////////////////////////////////////
  1487. TRUE, // text 640x350 (EGA)
  1488. TRUE, // text 640x480 (VGA)
  1489. TRUE, // text 720x400 (VGA)
  1490. FALSE, // 640x480x8
  1491. #ifdef INIT_INT10 // The Qvision hardware does not
  1492. FALSE, // support 800x600x8 in BIOS
  1493. #else // so we always set this mode
  1494. TRUE, // to be invalid. (for now)
  1495. #endif
  1496. TRUE, // 1024x768x8
  1497. FALSE, // 1280x1024x8
  1498. //////////////////////////////////////////////////////////////
  1499. // Monitor_75Hz
  1500. //////////////////////////////////////////////////////////////
  1501. TRUE, // text 640x350 (EGA)
  1502. TRUE, // text 640x480 (VGA)
  1503. TRUE, // text 720x400 (VGA)
  1504. FALSE, // 640x480x8
  1505. #ifdef INIT_INT10 // The Qvision hardware does not
  1506. FALSE, // support 800x600x8 in BIOS
  1507. #else // so we always set this mode
  1508. FALSE, // to be invalid. (for now)
  1509. #endif
  1510. TRUE, // 1024x768x8
  1511. FALSE, // 1280x1024x8
  1512. //////////////////////////////////////////////////////////////
  1513. // Monitor_76Hz
  1514. //////////////////////////////////////////////////////////////
  1515. TRUE, // text 640x350 (EGA)
  1516. TRUE, // text 640x480 (VGA)
  1517. TRUE, // text 720x400 (VGA)
  1518. FALSE, // 640x480x8
  1519. #ifdef INIT_INT10 // The Qvision hardware does not
  1520. FALSE, // support 800x600x8 in BIOS
  1521. #else // so we always set this mode
  1522. FALSE, // to be invalid. (for now)
  1523. #endif
  1524. FALSE, // 1024x768x8
  1525. TRUE // 1280x1024x8
  1526. }; // fValidMode
  1527. 
  1528.