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.

743 lines
22 KiB

  1. /*++
  2. Copyright (c) 1992 Cirrus Logic, Inc.
  3. Module Name:
  4. Mode6410.h
  5. Abstract:
  6. This module contains all the global data used by the Cirrus Logic
  7. CL-6410 driver.
  8. Environment:
  9. Kernel mode
  10. Revision History:
  11. --*/
  12. //
  13. // The first set of tables are for the CL6410
  14. // Note that only 640x480 and 800x600 are supported.
  15. //
  16. // Color graphics mode 0x12, 640x480 16 colors.
  17. //
  18. USHORT CL6410_640x480_crt[] = {
  19. // Unlock Key for color mode
  20. OW, // GR0A = 0xEC opens extension registers
  21. GRAPH_ADDRESS_PORT,
  22. 0xec0a,
  23. #ifndef INT10_MODE_SET
  24. OWM,
  25. SEQ_ADDRESS_PORT,
  26. 5,
  27. 0x0100, // start synch reset
  28. 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
  29. OB,
  30. MISC_OUTPUT_REG_WRITE_PORT,
  31. 0xe3,
  32. OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
  33. GRAPH_ADDRESS_PORT,
  34. 0x0506,
  35. // EndSyncResetCmd
  36. OW,
  37. SEQ_ADDRESS_PORT,
  38. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  39. OW,
  40. CRTC_ADDRESS_PORT_COLOR,
  41. 0x0111,
  42. METAOUT+INDXOUT, // program crtc registers
  43. CRTC_ADDRESS_PORT_COLOR,
  44. VGA_NUM_CRTC_PORTS, // count
  45. 0, // start index
  46. 0x5F,0x4F,0x50,0x82,
  47. 0x54,0x80,0x0B,0x3E,
  48. 0x00,0x40,0x00,0x00,
  49. 0x00,0x00,0x00,0x00,
  50. 0xEA,0xAC,0xDF,0x28,
  51. 0x00,0xE7,0x04,0xE3,
  52. 0xFF,
  53. // extension registers
  54. OWM,
  55. GRAPH_ADDRESS_PORT,
  56. 16,
  57. 0x0262, // ER62 horz. display end extension
  58. 0x8064, // ER64 horz. retrace end extension
  59. 0x0079, // ER79 vertical overflow
  60. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  61. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  62. 0x007c, // ER7c screen A start addr. extension
  63. 0x0081, // ER81 display mode
  64. 0x0082, // ER82 character clock selection
  65. 0x1084, // ER84 clock select extension
  66. 0x0090, // ER90 display memory control
  67. 0x0091, // ER91 CRT-circular buffer policy select
  68. 0x0095, // ER95 CRT-circular buffer delta & burst
  69. 0x0096, // ER96 display memory control test
  70. 0x12a0, // ERa0 bus interface unit control
  71. 0x00a1, // ERa1 three-state and test control
  72. 0x00c8, // ERc8 RAMDAC control
  73. IB, // prepare atc for writing
  74. INPUT_STATUS_1_COLOR,
  75. METAOUT+ATCOUT, //
  76. ATT_ADDRESS_PORT, // port
  77. VGA_NUM_ATTRIB_CONT_PORTS, // count
  78. 0, // start index
  79. 0x00,0x01,0x02,0x03,0x04,
  80. 0x05,0x14,0x07,0x38,0x39,
  81. 0x3A,0x3B,0x3C,0x3D,0x3E,
  82. 0x3F,0x01,0x00,0x0F,0x00,0x00,
  83. METAOUT+INDXOUT, //
  84. GRAPH_ADDRESS_PORT, // port
  85. VGA_NUM_GRAPH_CONT_PORTS, // count
  86. 0, // start index
  87. 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
  88. OB, // turn video on.
  89. ATT_ADDRESS_PORT,
  90. VIDEO_ENABLE,
  91. #endif
  92. // disable banking
  93. OWM,
  94. GRAPH_ADDRESS_PORT,
  95. 3,
  96. 0x030d, // ER0D = Paging control: 1 64K page,
  97. 0x000e, // ER0E page A address = 0
  98. 0x000f, // ER0F page B address = 0
  99. OB,
  100. DAC_PIXEL_MASK_PORT,
  101. 0xFF,
  102. EOD
  103. };
  104. USHORT CL6410_640x480_panel[] = {
  105. // Unlock Key for color mode
  106. OW, // GR0A = 0xEC opens extension registers
  107. GRAPH_ADDRESS_PORT,
  108. 0xec0a,
  109. #ifndef INT10_MODE_SET
  110. OWM,
  111. SEQ_ADDRESS_PORT,
  112. 5,
  113. 0x0100, // start synch reset
  114. 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
  115. OB,
  116. MISC_OUTPUT_REG_WRITE_PORT,
  117. 0xe3,
  118. OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
  119. GRAPH_ADDRESS_PORT,
  120. 0x0506,
  121. // EndSyncResetCmd
  122. OW,
  123. SEQ_ADDRESS_PORT,
  124. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  125. OW,
  126. CRTC_ADDRESS_PORT_COLOR,
  127. 0x0111,
  128. METAOUT+INDXOUT, // program crtc registers
  129. CRTC_ADDRESS_PORT_COLOR,
  130. VGA_NUM_CRTC_PORTS, // count
  131. 0, // start index
  132. 0x5F,0x4F,0x50,0x82,
  133. 0x54,0x80,0x0B,0x3E,
  134. 0x00,0x40,0x00,0x00,
  135. 0x00,0x00,0x00,0x00,
  136. 0xEA,0xAC,0xDF,0x28,
  137. 0x00,0xE7,0x04,0xE3,
  138. 0xFF,
  139. // extension registers
  140. OWM,
  141. GRAPH_ADDRESS_PORT,
  142. 16,
  143. 0x0262, // ER62 horz. display end extension
  144. 0x8064, // ER64 horz. retrace end extension
  145. 0x0079, // ER79 vertical overflow
  146. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  147. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  148. 0x007c, // ER7c screen A start addr. extension
  149. 0x0181, // ER81 display mode
  150. 0x8982, // ER82 character clock selection
  151. 0xa684, // ER84 clock select extension
  152. 0x0090, // ER90 display memory control
  153. 0x0091, // ER91 CRT-circular buffer policy select
  154. 0x0095, // ER95 CRT-circular buffer delta & burst
  155. 0x0096, // ER96 display memory control test
  156. 0x12a0, // ERa0 bus interface unit control
  157. 0x00a1, // ERa1 three-state and test control
  158. 0xa0c8, // ERc8 RAMDAC control
  159. IB, // prepare atc for writing
  160. INPUT_STATUS_1_COLOR,
  161. METAOUT+ATCOUT, //
  162. ATT_ADDRESS_PORT, // port
  163. VGA_NUM_ATTRIB_CONT_PORTS, // count
  164. 0, // start index
  165. 0x00,0x01,0x02,0x03,0x04,
  166. 0x05,0x14,0x07,0x38,0x39,
  167. 0x3A,0x3B,0x3C,0x3D,0x3E,
  168. 0x3F,0x01,0x00,0x0F,0x00,0x00,
  169. METAOUT+INDXOUT, //
  170. GRAPH_ADDRESS_PORT, // port
  171. VGA_NUM_GRAPH_CONT_PORTS, // count
  172. 0, // start index
  173. 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
  174. OB, // turn video on.
  175. ATT_ADDRESS_PORT,
  176. VIDEO_ENABLE,
  177. #endif
  178. // disable banking
  179. OWM,
  180. GRAPH_ADDRESS_PORT,
  181. 3,
  182. 0x030d, // ER0D = Paging control: 1 64K page,
  183. 0x000e, // ER0E page A address = 0
  184. 0x000f, // ER0F page B address = 0
  185. OB,
  186. DAC_PIXEL_MASK_PORT,
  187. 0xFF,
  188. EOD
  189. };
  190. //
  191. // Cirrus color graphics mode 0x64, 800x600 16 colors.
  192. //
  193. USHORT CL6410_800x600_crt[] = {
  194. // Unlock Key for color mode
  195. OW, // GR0A = 0xEC opens extension registers
  196. GRAPH_ADDRESS_PORT,
  197. 0xec0a,
  198. #ifndef INT10_MODE_SET
  199. OWM,
  200. SEQ_ADDRESS_PORT,
  201. 5,
  202. 0x0100, // start synch reset
  203. 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
  204. OB,
  205. MISC_OUTPUT_REG_WRITE_PORT,
  206. 0x2f,
  207. OWM,
  208. GRAPH_ADDRESS_PORT,
  209. 3,
  210. 0x0506,
  211. 0x0f07,
  212. 0xff08,
  213. // EndSyncResetCmd
  214. OW,
  215. SEQ_ADDRESS_PORT,
  216. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  217. OW,
  218. CRTC_ADDRESS_PORT_COLOR,
  219. 0x0E11,
  220. METAOUT+INDXOUT, // program crtc registers
  221. CRTC_ADDRESS_PORT_COLOR,
  222. VGA_NUM_CRTC_PORTS, // count
  223. 0, // start index
  224. 0x7b,0x63,0x64,0x9e,
  225. 0x69,0x92,0x6f,0xf0,
  226. 0x00,0x60,0x00,0x00,
  227. 0x00,0x00,0x00,0x00,
  228. 0x58,0xaa,0x57,0x32,
  229. 0x00,0x58,0x6f,0xe3,
  230. 0xFF,
  231. // extension registers
  232. OWM,
  233. GRAPH_ADDRESS_PORT,
  234. 16,
  235. 0x1e62, // ER62 horz. display end extension
  236. 0x9264, // ER64 horz. retrace end extension
  237. 0x0079, // ER79 vertical overflow
  238. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  239. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  240. 0x007c, // ER7c screen A start addr. extension
  241. 0x0081, // ER81 display mode
  242. 0x0082, // ER82 character clock selection
  243. 0xac84, // ER84 clock select extension
  244. 0x0090, // ER90 display memory control
  245. 0x0391, // ER91 CRT-circular buffer policy select
  246. 0x0a95, // ER95 CRT-circular buffer delta & burst
  247. 0x0096, // ER96 display memory control test
  248. 0x12a0, // ERa0 bus interface unit control
  249. 0x00a1, // ERa1 three-state and test control
  250. 0x00c8, // ERc8 RAMDAC control
  251. IB, // prepare atc for writing
  252. INPUT_STATUS_1_COLOR,
  253. METAOUT+ATCOUT, //
  254. ATT_ADDRESS_PORT, // port
  255. VGA_NUM_ATTRIB_CONT_PORTS, // count
  256. 0, // start index
  257. 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
  258. 0x01,0x0,0x0F,0x0,0x0,
  259. METAOUT+INDXOUT, //
  260. GRAPH_ADDRESS_PORT, // port
  261. VGA_NUM_GRAPH_CONT_PORTS, // count
  262. 0, // start index
  263. 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
  264. OB, // turn video on.
  265. ATT_ADDRESS_PORT,
  266. VIDEO_ENABLE,
  267. #endif
  268. // disable banking
  269. OWM,
  270. GRAPH_ADDRESS_PORT,
  271. 3,
  272. 0x030d, // ER0D = Paging control: 1 64K page,
  273. 0x000e, // ER0E page A address = 0
  274. 0x000f, // ER0F page B address = 0
  275. OB,
  276. DAC_PIXEL_MASK_PORT,
  277. 0xFF,
  278. EOD
  279. };
  280. //-----------------------------
  281. // standard VGA text modes here
  282. //-----------------------------
  283. USHORT CL6410_80x25_14_Text_crt[] = {
  284. // Unlock Key for color mode
  285. OW, // GR0A = 0xEC opens extension registers
  286. GRAPH_ADDRESS_PORT,
  287. 0xec0a,
  288. #ifndef INT10_MODE_SET
  289. OWM,
  290. SEQ_ADDRESS_PORT,
  291. 5,
  292. 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
  293. OB,
  294. MISC_OUTPUT_REG_WRITE_PORT,
  295. 0x67,
  296. OW,
  297. GRAPH_ADDRESS_PORT,
  298. 0x0e06,
  299. // EndSyncResetCmd
  300. OW,
  301. SEQ_ADDRESS_PORT,
  302. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  303. OW,
  304. CRTC_ADDRESS_PORT_COLOR,
  305. 0x0511,
  306. METAOUT+INDXOUT, // program crtc registers
  307. CRTC_ADDRESS_PORT_COLOR,
  308. VGA_NUM_CRTC_PORTS, // count
  309. 0, // start index
  310. 0x5F,0x4f,0x50,0x82,
  311. 0x55,0x81,0xbf,0x1f,
  312. 0x00,0x4f,0x0d,0x0e,
  313. 0x00,0x00,0x01,0xe0,
  314. 0x9c,0xae,0x8f,0x28,
  315. 0x1f,0x96,0xb9,0xa3,
  316. 0xFF,
  317. // extension registers
  318. OWM,
  319. GRAPH_ADDRESS_PORT,
  320. 16,
  321. 0x0262, // ER62 horz. display end extension
  322. 0x8164, // ER64 horz. retrace end extension
  323. 0x0079, // ER79 vertical overflow
  324. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  325. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  326. 0x007c, // ER7c screen A start addr. extension
  327. 0x0081, // ER81 display mode
  328. 0x0082, // ER82 character clock selection
  329. 0x1084, // ER84 clock select extension
  330. 0x0090, // ER90 display memory control
  331. 0x0391, // ER91 CRT-circular buffer policy select
  332. 0x0095, // ER95 CRT-circular buffer delta & burst
  333. 0x0096, // ER96 display memory control test
  334. 0x12a0, // ERa0 bus interface unit control
  335. 0x00a1, // ERa1 three-state and test control
  336. 0x00c8, // ERc8 RAMDAC control
  337. IB, // prepare atc for writing
  338. INPUT_STATUS_1_COLOR,
  339. METAOUT+ATCOUT, //
  340. ATT_ADDRESS_PORT, // port
  341. VGA_NUM_ATTRIB_CONT_PORTS, // count
  342. 0, // start index
  343. 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  344. 0x00,0x0,0x0F,0x0,0x0,
  345. METAOUT+INDXOUT, //
  346. GRAPH_ADDRESS_PORT, // port
  347. VGA_NUM_GRAPH_CONT_PORTS, // count
  348. 0, // start index
  349. 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF,
  350. IB, // prepare atc for writing
  351. INPUT_STATUS_1_COLOR,
  352. OB, // turn video on.
  353. ATT_ADDRESS_PORT,
  354. VIDEO_ENABLE,
  355. #endif
  356. // disable banking
  357. OWM,
  358. GRAPH_ADDRESS_PORT,
  359. 3,
  360. 0x030d, // ER0D = Paging control: 1 64K page,
  361. 0x000e, // ER0E page A address = 0
  362. 0x000f, // ER0F page B address = 0
  363. OB,
  364. DAC_PIXEL_MASK_PORT,
  365. 0xFF,
  366. EOD
  367. };
  368. //
  369. // 80x25 and 720 x 400
  370. //
  371. USHORT CL6410_80x25_14_Text_panel[] = {
  372. // Unlock Key for color mode
  373. OW, // GR0A = 0xEC opens extension registers
  374. GRAPH_ADDRESS_PORT,
  375. 0xec0a,
  376. #ifndef INT10_MODE_SET
  377. OWM,
  378. SEQ_ADDRESS_PORT,
  379. 5,
  380. 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
  381. OWM,
  382. SEQ_ADDRESS_PORT,
  383. 2,
  384. 0x0006,0x0fc07, // program up sequencer
  385. OB,
  386. MISC_OUTPUT_REG_WRITE_PORT,
  387. 0x67,
  388. OW,
  389. GRAPH_ADDRESS_PORT,
  390. 0x0e06,
  391. // EndSyncResetCmd
  392. OW,
  393. SEQ_ADDRESS_PORT,
  394. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  395. OW,
  396. CRTC_ADDRESS_PORT_COLOR,
  397. 0x0E11,
  398. METAOUT+INDXOUT, // program crtc registers
  399. CRTC_ADDRESS_PORT_COLOR,
  400. VGA_NUM_CRTC_PORTS, // count
  401. 0, // start index
  402. 0x5F,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0xd,0xe,0x0,0x0,0x0,0x0,
  403. 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xFF,
  404. // extension registers
  405. OWM,
  406. GRAPH_ADDRESS_PORT,
  407. 16,
  408. 0x1e62, // ER62 horz. display end extension
  409. 0x9264, // ER64 horz. retrace end extension
  410. 0x0079, // ER79 vertical overflow
  411. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  412. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  413. 0x007c, // ER7c screen A start addr. extension
  414. 0x0081, // ER81 display mode
  415. 0x0082, // ER82 character clock selection
  416. 0xac84, // ER84 clock select extension
  417. 0x0090, // ER90 display memory control
  418. 0x0391, // ER91 CRT-circular buffer policy select
  419. 0x0a95, // ER95 CRT-circular buffer delta & burst
  420. 0x0096, // ER96 display memory control test
  421. 0x12a0, // ERa0 bus interface unit control
  422. 0x00a1, // ERa1 three-state and test control
  423. 0x00c8, // ERc8 RAMDAC control
  424. IB, // prepare atc for writing
  425. INPUT_STATUS_1_COLOR,
  426. METAOUT+ATCOUT, //
  427. ATT_ADDRESS_PORT, // port
  428. VGA_NUM_ATTRIB_CONT_PORTS, // count
  429. 0, // start index
  430. 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  431. 0x04,0x0,0x0F,0x8,0x0,
  432. METAOUT+INDXOUT, //
  433. GRAPH_ADDRESS_PORT, // port
  434. VGA_NUM_GRAPH_CONT_PORTS, // count
  435. 0, // start index
  436. 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF,
  437. OB, // turn video on.
  438. ATT_ADDRESS_PORT,
  439. VIDEO_ENABLE,
  440. #endif
  441. // disable banking
  442. OWM,
  443. GRAPH_ADDRESS_PORT,
  444. 3,
  445. 0x030d, // ER0D = Paging control: 1 64K page,
  446. 0x000e, // ER0E page A address = 0
  447. 0x000f, // ER0F page B address = 0
  448. OB,
  449. DAC_PIXEL_MASK_PORT,
  450. 0xFF,
  451. EOD
  452. };
  453. USHORT CL6410_80x25Text_crt[] = {
  454. // Unlock Key for color mode
  455. OW, // GR0A = 0xEC opens extension registers
  456. GRAPH_ADDRESS_PORT,
  457. 0xec0a,
  458. #ifndef INT10_MODE_SET
  459. OWM,
  460. SEQ_ADDRESS_PORT,
  461. 5,
  462. 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
  463. OB,
  464. MISC_OUTPUT_REG_WRITE_PORT,
  465. 0x67,
  466. OW,
  467. GRAPH_ADDRESS_PORT,
  468. 0x0e06,
  469. // EndSyncResetCmd
  470. OW,
  471. SEQ_ADDRESS_PORT,
  472. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  473. OW,
  474. CRTC_ADDRESS_PORT_COLOR,
  475. 0x0511,
  476. METAOUT+INDXOUT, // program crtc registers
  477. CRTC_ADDRESS_PORT_COLOR,
  478. VGA_NUM_CRTC_PORTS, // count
  479. 0, // start index
  480. 0x5F,0x4f,0x50,0x82,
  481. 0x55,0x81,0xbf,0x1f,
  482. 0x00,0x4f,0x0d,0x0e,
  483. 0x00,0x00,0x01,0xe0,
  484. 0x9c,0xae,0x8f,0x28,
  485. 0x1f,0x96,0xb9,0xa3,
  486. 0xFF,
  487. // extension registers
  488. OWM,
  489. GRAPH_ADDRESS_PORT,
  490. 16,
  491. 0x0262, // ER62 horz. display end extension
  492. 0x8164, // ER64 horz. retrace end extension
  493. 0x0079, // ER79 vertical overflow
  494. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  495. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  496. 0x007c, // ER7c screen A start addr. extension
  497. 0x0081, // ER81 display mode
  498. 0x0082, // ER82 character clock selection
  499. 0x1084, // ER84 clock select extension
  500. 0x0090, // ER90 display memory control
  501. 0x0391, // ER91 CRT-circular buffer policy select
  502. 0x0095, // ER95 CRT-circular buffer delta & burst
  503. 0x0096, // ER96 display memory control test
  504. 0x12a0, // ERa0 bus interface unit control
  505. 0x00a1, // ERa1 three-state and test control
  506. 0x00c8, // ERc8 RAMDAC control
  507. IB, // prepare atc for writing
  508. INPUT_STATUS_1_COLOR,
  509. METAOUT+ATCOUT, //
  510. ATT_ADDRESS_PORT, // port
  511. VGA_NUM_ATTRIB_CONT_PORTS, // count
  512. 0, // start index
  513. 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  514. 0x00,0x0,0x0F,0x0,0x0,
  515. METAOUT+INDXOUT, //
  516. GRAPH_ADDRESS_PORT, // port
  517. VGA_NUM_GRAPH_CONT_PORTS, // count
  518. 0, // start index
  519. 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF,
  520. IB, // prepare atc for writing
  521. INPUT_STATUS_1_COLOR,
  522. OB, // turn video on.
  523. ATT_ADDRESS_PORT,
  524. VIDEO_ENABLE,
  525. #endif
  526. // disable banking
  527. OWM,
  528. GRAPH_ADDRESS_PORT,
  529. 3,
  530. 0x030d, // ER0D = Paging control: 1 64K page,
  531. 0x000e, // ER0E page A address = 0
  532. 0x000f, // ER0F page B address = 0
  533. OB,
  534. DAC_PIXEL_MASK_PORT,
  535. 0xFF,
  536. EOD
  537. };
  538. //
  539. // 80x25 and 720 x 400
  540. //
  541. USHORT CL6410_80x25Text_panel[] = {
  542. // Unlock Key for color mode
  543. OW, // GR0A = 0xEC opens extension registers
  544. GRAPH_ADDRESS_PORT,
  545. 0xec0a,
  546. #ifndef INT10_MODE_SET
  547. OWM,
  548. SEQ_ADDRESS_PORT,
  549. 5,
  550. 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
  551. OWM,
  552. SEQ_ADDRESS_PORT,
  553. 2,
  554. 0x0006,0x0fc07, // program up sequencer
  555. OB,
  556. MISC_OUTPUT_REG_WRITE_PORT,
  557. 0x67,
  558. OW,
  559. GRAPH_ADDRESS_PORT,
  560. 0x0e06,
  561. // EndSyncResetCmd
  562. OW,
  563. SEQ_ADDRESS_PORT,
  564. IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
  565. OW,
  566. CRTC_ADDRESS_PORT_COLOR,
  567. 0x0E11,
  568. METAOUT+INDXOUT, // program crtc registers
  569. CRTC_ADDRESS_PORT_COLOR,
  570. VGA_NUM_CRTC_PORTS, // count
  571. 0, // start index
  572. 0x5F,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0xd,0xe,0x0,0x0,0x0,0x0,
  573. 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xFF,
  574. // extension registers
  575. OWM,
  576. GRAPH_ADDRESS_PORT,
  577. 16,
  578. 0x1e62, // ER62 horz. display end extension
  579. 0x9264, // ER64 horz. retrace end extension
  580. 0x0079, // ER79 vertical overflow
  581. 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
  582. 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
  583. 0x007c, // ER7c screen A start addr. extension
  584. 0x0081, // ER81 display mode
  585. 0x0082, // ER82 character clock selection
  586. 0xac84, // ER84 clock select extension
  587. 0x0090, // ER90 display memory control
  588. 0x0391, // ER91 CRT-circular buffer policy select
  589. 0x0a95, // ER95 CRT-circular buffer delta & burst
  590. 0x0096, // ER96 display memory control test
  591. 0x12a0, // ERa0 bus interface unit control
  592. 0x00a1, // ERa1 three-state and test control
  593. 0x00c8, // ERc8 RAMDAC control
  594. IB, // prepare atc for writing
  595. INPUT_STATUS_1_COLOR,
  596. METAOUT+ATCOUT, //
  597. ATT_ADDRESS_PORT, // port
  598. VGA_NUM_ATTRIB_CONT_PORTS, // count
  599. 0, // start index
  600. 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
  601. 0x04,0x0,0x0F,0x8,0x0,
  602. METAOUT+INDXOUT, //
  603. GRAPH_ADDRESS_PORT, // port
  604. VGA_NUM_GRAPH_CONT_PORTS, // count
  605. 0, // start index
  606. 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF,
  607. OB, // turn video on.
  608. ATT_ADDRESS_PORT,
  609. VIDEO_ENABLE,
  610. #endif
  611. // disable banking
  612. OWM,
  613. GRAPH_ADDRESS_PORT,
  614. 3,
  615. 0x030d, // ER0D = Paging control: 1 64K page,
  616. 0x000e, // ER0E page A address = 0
  617. 0x000f, // ER0F page B address = 0
  618. OB,
  619. DAC_PIXEL_MASK_PORT,
  620. 0xFF,
  621. EOD
  622. };