home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 33 VDrivers / 33-VDrivers.zip / os221ep.zip / SVGADATA.PMI < prev    next >
INI File  |  1993-10-27  |  64KB  |  2,640 lines

  1. [comment]
  2.         Graphics Mode: 640 x 480 x 16 colours.
  3.  
  4. [AdapterType]
  5.         NCR
  6.  
  7. [ChipSet]
  8.         NCR77C22
  9.  
  10. [ModeInfo]
  11.         ModeAttributes   = 0x18
  12.         BytesPerScanLine = 80
  13.         XResolution      = 640
  14.         YResolution      = 480
  15.         TextRows         = 34
  16.         BitsPerPixel     = 4
  17.         NumberOfPlanes   = 4
  18.         PageLength       = 38400
  19.         SaveSize         = 153600
  20.         InterlaceMode    = 0
  21.         BufferAddress    = 0x0a0000
  22.  
  23. [TrapRegs]
  24.         0x3c2;
  25.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  26.         0x3c5;
  27.         0x3d4, 0x00-0x18, 0x30-0x31;
  28.         0x3d5;
  29.         0x3c0, 0x00-0x14;
  30.         0x3c1;
  31.         0x3ce, 0x00-0x08;
  32.         0x3cf;
  33.  
  34. [Cleanup]
  35.  
  36. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  37. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  38. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  39. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  40. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  41. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  42. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  43. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  44. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  45. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  46. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  47. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  48. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  49.  
  50. [Lock]
  51. /*
  52.  *      Lock Extended Registers
  53.  */
  54.  
  55. outb(0x3c4, 0x05);
  56. outb(0x3c5, 0x00);
  57.  
  58. [UnLock]
  59. /*
  60.  *      Unlock Extended Registers
  61.  */
  62.  
  63. outb(0x3c4, 0x05);
  64. outb(0x3c5, 0x01);
  65.  
  66. [SetMode]
  67.  
  68. /*
  69.  *      Set Miscellaneous Output Register
  70.  */
  71.  
  72. outb(0x3c2, 0xe3);
  73.  
  74.  
  75. /*
  76.  *      Unlock Extended Registers
  77.  */
  78.  
  79. outb(0x3c4, 0x05);
  80. outb(0x3c5, 0x01);
  81.  
  82. /*
  83.  *      Set Sequencer Registers
  84.  */
  85.  
  86. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  87. boutb(5, 0x00, 0x3c4, 0x3c5);
  88.  
  89. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  90. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  91. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  92. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  93. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  94. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  95. boutb(30, 0x0a, 0x3c4, 0x3c5);
  96.  
  97. /*
  98.  *      Set CRT Registers
  99.  */
  100.  
  101. r17 = 0x0e;
  102. boutb(1, 17, 0x3d4, 0x3d5);
  103. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x54;
  104. r5   = 0x80; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  105. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  106. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x28;
  107. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  108. boutb(25, 0x00, 0x3d4, 0x3d5);
  109.  
  110. r48  = 0x00; r49  = 0x00;
  111. boutb(2, 0x30, 0x3d4, 0x3d5);
  112.  
  113. /*
  114.  *      Set Attribute Registers
  115.  */
  116.  
  117. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  118. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  119. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  120. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  121. r20  = 0x00;
  122. boutb(21, 0x00, 0x3c0, 0x3c1);
  123.  
  124. /*
  125.  *      Set GDC Registers
  126.  */
  127.  
  128. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  129. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  130. boutb(9, 0x00, 0x3ce, 0x3cf);
  131.  
  132. /*
  133.  *      Set Sequencer Registers
  134.  */
  135.  
  136. r5   = 0x01;
  137. boutb(1, 0x05, 0x3c4, 0x3c5);
  138.  
  139. [comment]
  140.         Graphics Mode: 640 x 480 x 256 colours.
  141.  
  142. [AdapterType]
  143.         NCR
  144.  
  145. [ChipSet]
  146.         NCR77C22
  147.  
  148. [ModeInfo]
  149.         ModeAttributes   = 0x18
  150.         BytesPerScanLine = 80
  151.         XResolution      = 640
  152.         YResolution      = 480
  153.         TextRows         = 30
  154.         BitsPerPixel     = 8
  155.         NumberOfPlanes   = 1
  156.         PageLength       = 307200
  157.         SaveSize         = 307200
  158.         InterlaceMode    = 0
  159.         BufferAddress    = 0x0a0000
  160.  
  161. [TrapRegs]
  162.         0x3c2;
  163.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  164.         0x3c5;
  165.         0x3d4, 0x00-0x18, 0x30-0x31;
  166.         0x3d5;
  167.         0x3c0, 0x00-0x14;
  168.         0x3c1;
  169.         0x3ce, 0x00-0x08;
  170.         0x3cf;
  171.  
  172. [Cleanup]
  173.  
  174. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  175. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  176. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  177. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  178. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  179. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  180. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  181. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  182. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  183. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  184. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  185. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  186. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  187.  
  188. [Lock]
  189. /*
  190.  *      Lock Extended Registers
  191.  */
  192.  
  193. outb(0x3c4, 0x05);
  194. outb(0x3c5, 0x00);
  195.  
  196. [UnLock]
  197. /*
  198.  *      Unlock Extended Registers
  199.  */
  200.  
  201. outb(0x3c4, 0x05);
  202. outb(0x3c5, 0x01);
  203.  
  204. [SetMode]
  205.  
  206. /*
  207.  *      Set Miscellaneous Output Register
  208.  */
  209.  
  210. outb(0x3c2, 0xe3);
  211.  
  212.  
  213. /*
  214.  *      Unlock Extended Registers
  215.  */
  216.  
  217. outb(0x3c4, 0x05);
  218. outb(0x3c5, 0x01);
  219.  
  220. /*
  221.  *      Set Sequencer Registers
  222.  */
  223.  
  224. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  225. boutb(5, 0x00, 0x3c4, 0x3c5);
  226.  
  227. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  228. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  229. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  230. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  231. r30  = 0x1d; r31  = 0x10; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  232. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  233. boutb(30, 0x0a, 0x3c4, 0x3c5);
  234.  
  235. /*
  236.  *      Set CRT Registers
  237.  */
  238.  
  239. r17 = 0x0e;
  240. boutb(1, 17, 0x3d4, 0x3d5);
  241. r0   = 0xc3; r1   = 0x9f; r2   = 0xa1; r3   = 0x85; r4   = 0xa9;
  242. r5   = 0x01; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  243. r10  = 0x10; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  244. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x50;
  245. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  246. boutb(25, 0x00, 0x3d4, 0x3d5);
  247.  
  248. r48  = 0x00; r49  = 0x00;
  249. boutb(2, 0x30, 0x3d4, 0x3d5);
  250.  
  251. /*
  252.  *      Set Attribute Registers
  253.  */
  254.  
  255. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  256. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  257. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  258. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  259. r20  = 0x00;
  260. boutb(21, 0x00, 0x3c0, 0x3c1);
  261.  
  262. /*
  263.  *      Set GDC Registers
  264.  */
  265.  
  266. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  267. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  268. boutb(9, 0x00, 0x3ce, 0x3cf);
  269.  
  270. /*
  271.  *      Set Sequencer Registers
  272.  */
  273.  
  274. r5   = 0x01;
  275. boutb(1, 0x05, 0x3c4, 0x3c5);
  276.  
  277. [comment]
  278.         Graphics Mode: 800 x 600 x 16 colours.
  279.  
  280. [AdapterType]
  281.         NCR
  282.  
  283. [ChipSet]
  284.         NCR77C22
  285.  
  286. [ModeInfo]
  287.         ModeAttributes   = 0x18
  288.         BytesPerScanLine = 100
  289.         XResolution      = 800
  290.         YResolution      = 600
  291.         TextRows         = 37
  292.         BitsPerPixel     = 4
  293.         NumberOfPlanes   = 4
  294.         PageLength       = 60000
  295.         SaveSize         = 240000
  296.         InterlaceMode    = 0
  297.         BufferAddress    = 0x0a0000
  298.  
  299. [TrapRegs]
  300.         0x3c2;
  301.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  302.         0x3c5;
  303.         0x3d4, 0x00-0x18, 0x30-0x31;
  304.         0x3d5;
  305.         0x3c0, 0x00-0x14;
  306.         0x3c1;
  307.         0x3ce, 0x00-0x08;
  308.         0x3cf;
  309.  
  310. [Cleanup]
  311.  
  312. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  313. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  314. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  315. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  316. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  317. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  318. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  319. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  320. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  321. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  322. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  323. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  324. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  325.  
  326. [Lock]
  327. /*
  328.  *      Lock Extended Registers
  329.  */
  330.  
  331. outb(0x3c4, 0x05);
  332. outb(0x3c5, 0x00);
  333.  
  334. [UnLock]
  335. /*
  336.  *      Unlock Extended Registers
  337.  */
  338.  
  339. outb(0x3c4, 0x05);
  340. outb(0x3c5, 0x01);
  341.  
  342. [SetMode]
  343.  
  344. /*
  345.  *      Set Miscellaneous Output Register
  346.  */
  347.  
  348. outb(0x3c2, 0xeb);
  349.  
  350.  
  351. /*
  352.  *      Unlock Extended Registers
  353.  */
  354.  
  355. outb(0x3c4, 0x05);
  356. outb(0x3c5, 0x01);
  357.  
  358. /*
  359.  *      Set Sequencer Registers
  360.  */
  361.  
  362. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  363. boutb(5, 0x00, 0x3c4, 0x3c5);
  364.  
  365. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  366. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  367. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  368. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  369. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  370. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  371. boutb(30, 0x0a, 0x3c4, 0x3c5);
  372.  
  373. /*
  374.  *      Set CRT Registers
  375.  */
  376.  
  377. r17 = 0x0e;
  378. boutb(1, 17, 0x3d4, 0x3d5);
  379. r0   = 0x7b; r1   = 0x63; r2   = 0x64; r3   = 0x9e; r4   = 0x69;
  380. r5   = 0x92; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  381. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  382. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x32;
  383. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  384. boutb(25, 0x00, 0x3d4, 0x3d5);
  385.  
  386. r48  = 0x00; r49  = 0x00;
  387. boutb(2, 0x30, 0x3d4, 0x3d5);
  388.  
  389. /*
  390.  *      Set Attribute Registers
  391.  */
  392.  
  393. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  394. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  395. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  396. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  397. r20  = 0x00;
  398. boutb(21, 0x00, 0x3c0, 0x3c1);
  399.  
  400. /*
  401.  *      Set GDC Registers
  402.  */
  403.  
  404. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  405. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  406. boutb(9, 0x00, 0x3ce, 0x3cf);
  407.  
  408. /*
  409.  *      Set Sequencer Registers
  410.  */
  411.  
  412. r5   = 0x01;
  413. boutb(1, 0x05, 0x3c4, 0x3c5);
  414.  
  415. [comment]
  416.         Graphics Mode: 800 x 600 x 256 colours.
  417.  
  418. [AdapterType]
  419.         NCR
  420.  
  421. [ChipSet]
  422.         NCR77C22
  423.  
  424. [ModeInfo]
  425.         ModeAttributes   = 0x18
  426.         BytesPerScanLine = 100
  427.         XResolution      = 800
  428.         YResolution      = 600
  429.         TextRows         = 37
  430.         BitsPerPixel     = 8
  431.         NumberOfPlanes   = 1
  432.         PageLength       = 480000
  433.         SaveSize         = 480000
  434.         InterlaceMode    = 0
  435.         BufferAddress    = 0x0a0000
  436.  
  437. [TrapRegs]
  438.         0x3c2;
  439.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  440.         0x3c5;
  441.         0x3d4, 0x00-0x18, 0x30-0x31;
  442.         0x3d5;
  443.         0x3c0, 0x00-0x14;
  444.         0x3c1;
  445.         0x3ce, 0x00-0x08;
  446.         0x3cf;
  447.  
  448. [Cleanup]
  449.  
  450. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  451. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  452. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  453. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  454. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  455. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  456. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  457. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  458. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  459. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  460. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  461. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  462. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  463.  
  464. [Lock]
  465. /*
  466.  *      Lock Extended Registers
  467.  */
  468.  
  469. outb(0x3c4, 0x05);
  470. outb(0x3c5, 0x00);
  471.  
  472. [UnLock]
  473. /*
  474.  *      Unlock Extended Registers
  475.  */
  476.  
  477. outb(0x3c4, 0x05);
  478. outb(0x3c5, 0x01);
  479.  
  480. [SetMode]
  481.  
  482. /*
  483.  *      Set Miscellaneous Output Register
  484.  */
  485.  
  486. outb(0x3c2, 0xeb);
  487.  
  488.  
  489. /*
  490.  *      Unlock Extended Registers
  491.  */
  492.  
  493. outb(0x3c4, 0x05);
  494. outb(0x3c5, 0x01);
  495.  
  496. /*
  497.  *      Set Sequencer Registers
  498.  */
  499.  
  500. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  501. boutb(5, 0x00, 0x3c4, 0x3c5);
  502.  
  503. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  504. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  505. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  506. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  507. r30  = 0x1d; r31  = 0x10; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  508. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  509. boutb(30, 0x0a, 0x3c4, 0x3c5);
  510.  
  511. /*
  512.  *      Set CRT Registers
  513.  */
  514.  
  515. r17 = 0x0e;
  516. boutb(1, 17, 0x3d4, 0x3d5);
  517. r0   = 0xfb; r1   = 0xc7; r2   = 0xc9; r3   = 0x9d; r4   = 0xd1;
  518. r5   = 0x83; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  519. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  520. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x64;
  521. r20  = 0x00; r21  = 0x58; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  522. boutb(25, 0x00, 0x3d4, 0x3d5);
  523.  
  524. r48  = 0x00; r49  = 0x00;
  525. boutb(2, 0x30, 0x3d4, 0x3d5);
  526.  
  527. /*
  528.  *      Set Attribute Registers
  529.  */
  530.  
  531. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  532. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  533. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  534. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  535. r20  = 0x00;
  536. boutb(21, 0x00, 0x3c0, 0x3c1);
  537.  
  538. /*
  539.  *      Set GDC Registers
  540.  */
  541.  
  542. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  543. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  544. boutb(9, 0x00, 0x3ce, 0x3cf);
  545.  
  546. /*
  547.  *      Set Sequencer Registers
  548.  */
  549.  
  550. r5   = 0x01;
  551. boutb(1, 0x05, 0x3c4, 0x3c5);
  552.  
  553. [comment]
  554.         Graphics Mode: 1024 x 768 x 16 colours.
  555.  
  556. [AdapterType]
  557.         NCR
  558.  
  559. [ChipSet]
  560.         NCR77C22
  561.  
  562. [ModeInfo]
  563.         ModeAttributes   = 0x18
  564.         BytesPerScanLine = 128
  565.         XResolution      = 1024
  566.         YResolution      = 768
  567.         TextRows         = 48
  568.         BitsPerPixel     = 4
  569.         NumberOfPlanes   = 4
  570.         PageLength       = 98304
  571.         SaveSize         = 393216
  572.         InterlaceMode    = 0
  573.         BufferAddress    = 0x0a0000
  574.  
  575. [TrapRegs]
  576.         0x3c2;
  577.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  578.         0x3c5;
  579.         0x3d4, 0x00-0x18, 0x30-0x31;
  580.         0x3d5;
  581.         0x3c0, 0x00-0x14;
  582.         0x3c1;
  583.         0x3ce, 0x00-0x08;
  584.         0x3cf;
  585.  
  586. [Cleanup]
  587.  
  588. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  589. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  590. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  591. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  592. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  593. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  594. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  595. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  596. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  597. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  598. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  599. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  600. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  601.  
  602. [Lock]
  603. /*
  604.  *      Lock Extended Registers
  605.  */
  606.  
  607. outb(0x3c4, 0x05);
  608. outb(0x3c5, 0x00);
  609.  
  610. [UnLock]
  611. /*
  612.  *      Unlock Extended Registers
  613.  */
  614.  
  615. outb(0x3c4, 0x05);
  616. outb(0x3c5, 0x01);
  617.  
  618. [SetMode]
  619.  
  620. /*
  621.  *      Set Miscellaneous Output Register
  622.  */
  623.  
  624. outb(0x3c2, 0x2f);
  625.  
  626.  
  627. /*
  628.  *      Unlock Extended Registers
  629.  */
  630.  
  631. outb(0x3c4, 0x05);
  632. outb(0x3c5, 0x01);
  633.  
  634. /*
  635.  *      Set Sequencer Registers
  636.  */
  637.  
  638. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  639. boutb(5, 0x00, 0x3c4, 0x3c5);
  640.  
  641. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  642. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  643. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  644. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  645. r30  = 0x1d; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  646. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  647. boutb(30, 0x0a, 0x3c4, 0x3c5);
  648.  
  649. /*
  650.  *      Set CRT Registers
  651.  */
  652.  
  653. r17 = 0x0e;
  654. boutb(1, 17, 0x3d4, 0x3d5);
  655. r0   = 0xa4; r1   = 0x7f; r2   = 0x80; r3   = 0x86; r4   = 0x88;
  656. r5   = 0x8f; r6   = 0x20; r7   = 0xfd; r8   = 0x00; r9   = 0x60;
  657. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  658. r15  = 0x00; r16  = 0x01; r17  = 0x85; r18  = 0xff; r19  = 0x40;
  659. r20  = 0x00; r21  = 0x00; r22  = 0x1f; r23  = 0xe3; r24  = 0xff;
  660. boutb(25, 0x00, 0x3d4, 0x3d5);
  661.  
  662. r48  = 0x00; r49  = 0x00;
  663. boutb(2, 0x30, 0x3d4, 0x3d5);
  664.  
  665. /*
  666.  *      Set Attribute Registers
  667.  */
  668.  
  669. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  670. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  671. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  672. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  673. r20  = 0x00;
  674. boutb(21, 0x00, 0x3c0, 0x3c1);
  675.  
  676. /*
  677.  *      Set GDC Registers
  678.  */
  679.  
  680. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  681. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  682. boutb(9, 0x00, 0x3ce, 0x3cf);
  683.  
  684. /*
  685.  *      Set Sequencer Registers
  686.  */
  687.  
  688. r5   = 0x01;
  689. boutb(1, 0x05, 0x3c4, 0x3c5);
  690.  
  691. [comment]
  692.         Text Mode: 40 cols, 25 rows.
  693.  
  694. [AdapterType]
  695.         NCR
  696.  
  697. [ChipSet]
  698.         NCR77C22
  699.  
  700. [ModeInfo]
  701.         ModeAttributes   = 0x08
  702.         BytesPerScanLine = 40
  703.         XResolution      = 360
  704.         YResolution      = 400
  705.         XCharSize        = 9
  706.         YCharSize        = 16
  707.         TextRows         = 25
  708.         BitsPerPixel     = 4
  709.         NumberOfPlanes   = 1
  710.         PageLength       = 4000
  711.         SaveSize         = 4000
  712.         InterlaceMode    = 0
  713.         BufferAddress    = 0x0b8000
  714.  
  715. [TrapRegs]
  716.         0x3c2;
  717.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  718.         0x3c5;
  719.         0x3d4, 0x00-0x18, 0x30-0x31;
  720.         0x3d5;
  721.         0x3c0, 0x00-0x14;
  722.         0x3c1;
  723.         0x3ce, 0x00-0x08;
  724.         0x3cf;
  725.  
  726. [Cleanup]
  727.  
  728. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  729. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  730. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  731. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  732. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  733. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  734. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  735. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  736. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  737. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  738. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  739. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  740. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  741.  
  742. [Lock]
  743. /*
  744.  *      Lock Extended Registers
  745.  */
  746.  
  747. outb(0x3c4, 0x05);
  748. outb(0x3c5, 0x00);
  749.  
  750. [UnLock]
  751. /*
  752.  *      Unlock Extended Registers
  753.  */
  754.  
  755. outb(0x3c4, 0x05);
  756. outb(0x3c5, 0x01);
  757.  
  758. [SetMode]
  759.  
  760. /*
  761.  *      Set Miscellaneous Output Register
  762.  */
  763.  
  764. outb(0x3c2, 0x67);
  765.  
  766.  
  767. /*
  768.  *      Unlock Extended Registers
  769.  */
  770.  
  771. outb(0x3c4, 0x05);
  772. outb(0x3c5, 0x01);
  773.  
  774. /*
  775.  *      Set Sequencer Registers
  776.  */
  777.  
  778. r0   = 0x03; r1   = 0x08; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  779. boutb(5, 0x00, 0x3c4, 0x3c5);
  780.  
  781. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  782. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  783. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  784. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  785. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  786. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  787. boutb(30, 0x0a, 0x3c4, 0x3c5);
  788.  
  789. /*
  790.  *      Set CRT Registers
  791.  */
  792.  
  793. r17 = 0x0e;
  794. boutb(1, 17, 0x3d4, 0x3d5);
  795. r0   = 0x2d; r1   = 0x27; r2   = 0x28; r3   = 0x90; r4   = 0x2b;
  796. r5   = 0xa0; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  797. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  798. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x14;
  799. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  800. boutb(25, 0x00, 0x3d4, 0x3d5);
  801.  
  802. r48  = 0x00; r49  = 0x00;
  803. boutb(2, 0x30, 0x3d4, 0x3d5);
  804.  
  805. /*
  806.  *      Set Attribute Registers
  807.  */
  808.  
  809. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  810. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  811. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  812. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  813. r20  = 0x00;
  814. boutb(21, 0x00, 0x3c0, 0x3c1);
  815.  
  816. /*
  817.  *      Set GDC Registers
  818.  */
  819.  
  820. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  821. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  822. boutb(9, 0x00, 0x3ce, 0x3cf);
  823.  
  824. /*
  825.  *      Set Sequencer Registers
  826.  */
  827.  
  828. r5   = 0x01;
  829. boutb(1, 0x05, 0x3c4, 0x3c5);
  830.  
  831. [comment]
  832.         Text Mode: 80 cols, 25 rows.
  833.  
  834. [AdapterType]
  835.         NCR
  836.  
  837. [ChipSet]
  838.         NCR77C22
  839.  
  840. [ModeInfo]
  841.         ModeAttributes   = 0x08
  842.         BytesPerScanLine = 80
  843.         XResolution      = 720
  844.         YResolution      = 400
  845.         XCharSize        = 9
  846.         YCharSize        = 16
  847.         TextRows         = 25
  848.         BitsPerPixel     = 4
  849.         NumberOfPlanes   = 1
  850.         PageLength       = 4000
  851.         SaveSize         = 4000
  852.         InterlaceMode    = 0
  853.         BufferAddress    = 0x0b8000
  854.  
  855. [TrapRegs]
  856.         0x3c2;
  857.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  858.         0x3c5;
  859.         0x3d4, 0x00-0x18, 0x30-0x31;
  860.         0x3d5;
  861.         0x3c0, 0x00-0x14;
  862.         0x3c1;
  863.         0x3ce, 0x00-0x08;
  864.         0x3cf;
  865.  
  866. [Cleanup]
  867.  
  868. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  869. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  870. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  871. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  872. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  873. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  874. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  875. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  876. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  877. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  878. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  879. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  880. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  881.  
  882. [Lock]
  883. /*
  884.  *      Lock Extended Registers
  885.  */
  886.  
  887. outb(0x3c4, 0x05);
  888. outb(0x3c5, 0x00);
  889.  
  890. [UnLock]
  891. /*
  892.  *      Unlock Extended Registers
  893.  */
  894.  
  895. outb(0x3c4, 0x05);
  896. outb(0x3c5, 0x01);
  897.  
  898. [SetMode]
  899.  
  900. /*
  901.  *      Set Miscellaneous Output Register
  902.  */
  903.  
  904. outb(0x3c2, 0x67);
  905.  
  906.  
  907. /*
  908.  *      Unlock Extended Registers
  909.  */
  910.  
  911. outb(0x3c4, 0x05);
  912. outb(0x3c5, 0x01);
  913.  
  914. /*
  915.  *      Set Sequencer Registers
  916.  */
  917.  
  918. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  919. boutb(5, 0x00, 0x3c4, 0x3c5);
  920.  
  921. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  922. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  923. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  924. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  925. r30  = 0x11; r31  = 0x00; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  926. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  927. boutb(30, 0x0a, 0x3c4, 0x3c5);
  928.  
  929. /*
  930.  *      Set CRT Registers
  931.  */
  932.  
  933. r17 = 0x0e;
  934. boutb(1, 17, 0x3d4, 0x3d5);
  935. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x55;
  936. r5   = 0x81; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  937. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  938. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x28;
  939. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  940. boutb(25, 0x00, 0x3d4, 0x3d5);
  941.  
  942. r48  = 0x00; r49  = 0x00;
  943. boutb(2, 0x30, 0x3d4, 0x3d5);
  944.  
  945. /*
  946.  *      Set Attribute Registers
  947.  */
  948.  
  949. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  950. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  951. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  952. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  953. r20  = 0x00;
  954. boutb(21, 0x00, 0x3c0, 0x3c1);
  955.  
  956. /*
  957.  *      Set GDC Registers
  958.  */
  959.  
  960. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  961. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  962. boutb(9, 0x00, 0x3ce, 0x3cf);
  963.  
  964. /*
  965.  *      Set Sequencer Registers
  966.  */
  967.  
  968. r5   = 0x01;
  969. boutb(1, 0x05, 0x3c4, 0x3c5);
  970.  
  971. [comment]
  972.         Text Mode: 132 cols, 25 rows.
  973.  
  974. [AdapterType]
  975.         NCR
  976.  
  977. [ChipSet]
  978.         NCR77C22
  979.  
  980. [ModeInfo]
  981.         ModeAttributes   = 0x08
  982.         BytesPerScanLine = 132
  983.         XResolution      = 1056
  984.         YResolution      = 400
  985.         XCharSize        = 8
  986.         YCharSize        = 16
  987.         TextRows         = 25
  988.         BitsPerPixel     = 4
  989.         NumberOfPlanes   = 1
  990.         PageLength       = 6600
  991.         SaveSize         = 6600
  992.         InterlaceMode    = 0
  993.         BufferAddress    = 0x0b8000
  994.  
  995. [TrapRegs]
  996.         0x3c2;
  997.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  998.         0x3c5;
  999.         0x3d4, 0x00-0x18, 0x30-0x31;
  1000.         0x3d5;
  1001.         0x3c0, 0x00-0x14;
  1002.         0x3c1;
  1003.         0x3ce, 0x00-0x08;
  1004.         0x3cf;
  1005.  
  1006. [Cleanup]
  1007.  
  1008. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1009. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1010. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1011. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  1012. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  1013. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1014. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1015. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  1016. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  1017. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1018. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1019. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  1020. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  1021.  
  1022. [Lock]
  1023. /*
  1024.  *      Lock Extended Registers
  1025.  */
  1026.  
  1027. outb(0x3c4, 0x05);
  1028. outb(0x3c5, 0x00);
  1029.  
  1030. [UnLock]
  1031. /*
  1032.  *      Unlock Extended Registers
  1033.  */
  1034.  
  1035. outb(0x3c4, 0x05);
  1036. outb(0x3c5, 0x01);
  1037.  
  1038. [SetMode]
  1039.  
  1040. /*
  1041.  *      Set Miscellaneous Output Register
  1042.  */
  1043.  
  1044. outb(0x3c2, 0x6b);
  1045.  
  1046.  
  1047. /*
  1048.  *      Unlock Extended Registers
  1049.  */
  1050.  
  1051. outb(0x3c4, 0x05);
  1052. outb(0x3c5, 0x01);
  1053.  
  1054. /*
  1055.  *      Set Sequencer Registers
  1056.  */
  1057.  
  1058. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  1059. boutb(5, 0x00, 0x3c4, 0x3c5);
  1060.  
  1061. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  1062. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  1063. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1064. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1065. r30  = 0x11; r31  = 0x11; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1066. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  1067. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1068.  
  1069. /*
  1070.  *      Set CRT Registers
  1071.  */
  1072.  
  1073. r17 = 0x0e;
  1074. boutb(1, 17, 0x3d4, 0x3d5);
  1075. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  1076. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  1077. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1078. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  1079. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  1080. boutb(25, 0x00, 0x3d4, 0x3d5);
  1081.  
  1082. r48  = 0x00; r49  = 0x00;
  1083. boutb(2, 0x30, 0x3d4, 0x3d5);
  1084.  
  1085. /*
  1086.  *      Set Attribute Registers
  1087.  */
  1088.  
  1089. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1090. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1091. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1092. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1093. r20  = 0x00;
  1094. boutb(21, 0x00, 0x3c0, 0x3c1);
  1095.  
  1096. /*
  1097.  *      Set GDC Registers
  1098.  */
  1099.  
  1100. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1101. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  1102. boutb(9, 0x00, 0x3ce, 0x3cf);
  1103.  
  1104. /*
  1105.  *      Set Sequencer Registers
  1106.  */
  1107.  
  1108. r5   = 0x01;
  1109. boutb(1, 0x05, 0x3c4, 0x3c5);
  1110.  
  1111. [comment]
  1112.         Text Mode: 132 cols, 43 rows.
  1113.  
  1114. [AdapterType]
  1115.         NCR
  1116.  
  1117. [ChipSet]
  1118.         NCR77C22
  1119.  
  1120. [ModeInfo]
  1121.         ModeAttributes   = 0x08
  1122.         BytesPerScanLine = 132
  1123.         XResolution      = 1056
  1124.         YResolution      = 387
  1125.         XCharSize        = 8
  1126.         YCharSize        = 8
  1127.         TextRows         = 43
  1128.         BitsPerPixel     = 4
  1129.         NumberOfPlanes   = 1
  1130.         PageLength       = 11352
  1131.         SaveSize         = 11352
  1132.         InterlaceMode    = 0
  1133.         BufferAddress    = 0x0b8000
  1134.  
  1135. [TrapRegs]
  1136.         0x3c2;
  1137.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1138.         0x3c5;
  1139.         0x3d4, 0x00-0x18, 0x30-0x31;
  1140.         0x3d5;
  1141.         0x3c0, 0x00-0x14;
  1142.         0x3c1;
  1143.         0x3ce, 0x00-0x08;
  1144.         0x3cf;
  1145.  
  1146. [Cleanup]
  1147.  
  1148. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1149. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1150. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1151. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x11);
  1152. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x00);
  1153. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1154. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1155. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x22);
  1156. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x24);
  1157. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1158. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1159. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0xdf);
  1160. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x28);
  1161.  
  1162. [Lock]
  1163. /*
  1164.  *      Lock Extended Registers
  1165.  */
  1166.  
  1167. outb(0x3c4, 0x05);
  1168. outb(0x3c5, 0x00);
  1169.  
  1170. [UnLock]
  1171. /*
  1172.  *      Unlock Extended Registers
  1173.  */
  1174.  
  1175. outb(0x3c4, 0x05);
  1176. outb(0x3c5, 0x01);
  1177.  
  1178. [SetMode]
  1179.  
  1180. /*
  1181.  *      Set Miscellaneous Output Register
  1182.  */
  1183.  
  1184. outb(0x3c2, 0x6b);
  1185.  
  1186.  
  1187. /*
  1188.  *      Unlock Extended Registers
  1189.  */
  1190.  
  1191. outb(0x3c4, 0x05);
  1192. outb(0x3c5, 0x01);
  1193.  
  1194. /*
  1195.  *      Set Sequencer Registers
  1196.  */
  1197.  
  1198. r0   = 0x03; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  1199. boutb(5, 0x00, 0x3c4, 0x3c5);
  1200.  
  1201. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0xfd;
  1202. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x1f; r19  = 0xff;
  1203. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1204. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1205. r30  = 0x11; r31  = 0x11; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1206. r35  = 0x22; r36  = 0xff; r37  = 0x55; r38  = 0x24; r39  = 0x27;
  1207. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1208.  
  1209. /*
  1210.  *      Set CRT Registers
  1211.  */
  1212.  
  1213. r17 = 0x0e;
  1214. boutb(1, 17, 0x3d4, 0x3d5);
  1215. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  1216. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x48;
  1217. r10  = 0x07; r11  = 0x08; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1218. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  1219. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  1220. boutb(25, 0x00, 0x3d4, 0x3d5);
  1221.  
  1222. r48  = 0x00; r49  = 0x00;
  1223. boutb(2, 0x30, 0x3d4, 0x3d5);
  1224.  
  1225. /*
  1226.  *      Set Attribute Registers
  1227.  */
  1228.  
  1229. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1230. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1231. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1232. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1233. r20  = 0x00;
  1234. boutb(21, 0x00, 0x3c0, 0x3c1);
  1235.  
  1236. /*
  1237.  *      Set GDC Registers
  1238.  */
  1239.  
  1240. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1241. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  1242. boutb(9, 0x00, 0x3ce, 0x3cf);
  1243.  
  1244. /*
  1245.  *      Set Sequencer Registers
  1246.  */
  1247.  
  1248. r5   = 0x01;
  1249. boutb(1, 0x05, 0x3c4, 0x3c5);
  1250.  
  1251.  
  1252. [comment]
  1253.         Graphics Mode: 640 x 480 x 16 colours.
  1254.  
  1255. [AdapterType]
  1256.         NCR
  1257.  
  1258. [ChipSet]
  1259.         NCR77C22E
  1260.  
  1261. [ModeInfo]
  1262.         ModeAttributes   = 0x18
  1263.         BytesPerScanLine = 80
  1264.         XResolution      = 640
  1265.         YResolution      = 480
  1266.         TextRows         = 34
  1267.         BitsPerPixel     = 4
  1268.         NumberOfPlanes   = 4
  1269.         PageLength       = 38400
  1270.         SaveSize         = 153600
  1271.         InterlaceMode    = 0
  1272.         BufferAddress    = 0x0a0000
  1273.  
  1274. [TrapRegs]
  1275.         0x3c2;
  1276.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1277.         0x3c5;
  1278.         0x3d4, 0x00-0x18, 0x30-0x31;
  1279.         0x3d5;
  1280.         0x3c0, 0x00-0x14;
  1281.         0x3c1;
  1282.         0x3ce, 0x00-0x08;
  1283.         0x3cf;
  1284.  
  1285. [Cleanup]
  1286.  
  1287. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1288. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1289. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1290. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1291. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1292. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1293. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1294. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1295. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1296. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1297. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1298. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1299. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1300.  
  1301. [Lock]
  1302. /*
  1303.  *      Lock Extended Registers
  1304.  */
  1305.  
  1306. outb(0x3c4, 0x05);
  1307. outb(0x3c5, 0x00);
  1308.  
  1309. [UnLock]
  1310. /*
  1311.  *      Unlock Extended Registers
  1312.  */
  1313.  
  1314. outb(0x3c4, 0x05);
  1315. outb(0x3c5, 0x01);
  1316.  
  1317. [SetMode]
  1318.  
  1319. /*
  1320.  *      Set Miscellaneous Output Register
  1321.  */
  1322.  
  1323. outb(0x3c2, 0xe3);
  1324.  
  1325.  
  1326. /*
  1327.  *      Unlock Extended Registers
  1328.  */
  1329.  
  1330. outb(0x3c4, 0x05);
  1331. outb(0x3c5, 0x01);
  1332.  
  1333. /*
  1334.  *      Set Sequencer Registers
  1335.  */
  1336.  
  1337. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1338. boutb(5, 0x00, 0x3c4, 0x3c5);
  1339.  
  1340. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  1341. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1342. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1343. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1344. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1345. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1346. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1347.  
  1348. /*
  1349.  *      Set CRT Registers
  1350.  */
  1351.  
  1352. r17 = 0x0e;
  1353. boutb(1, 17, 0x3d4, 0x3d5);
  1354. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x54;
  1355. r5   = 0x80; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  1356. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1357. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x28;
  1358. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  1359. boutb(25, 0x00, 0x3d4, 0x3d5);
  1360.  
  1361. r48  = 0x00; r49  = 0x00;
  1362. boutb(2, 0x30, 0x3d4, 0x3d5);
  1363.  
  1364. /*
  1365.  *      Set Attribute Registers
  1366.  */
  1367.  
  1368. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1369. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1370. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1371. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1372. r20  = 0x00;
  1373. boutb(21, 0x00, 0x3c0, 0x3c1);
  1374.  
  1375. /*
  1376.  *      Set GDC Registers
  1377.  */
  1378.  
  1379. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1380. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1381. boutb(9, 0x00, 0x3ce, 0x3cf);
  1382.  
  1383. /*
  1384.  *      Set Sequencer Registers
  1385.  */
  1386.  
  1387. r5   = 0x01;
  1388. boutb(1, 0x05, 0x3c4, 0x3c5);
  1389.  
  1390. [comment]
  1391.         Graphics Mode: 640 x 480 x 256 colours.
  1392.  
  1393. [AdapterType]
  1394.         NCR
  1395.  
  1396. [ChipSet]
  1397.         NCR77C22E
  1398.  
  1399. [ModeInfo]
  1400.         ModeAttributes   = 0x18
  1401.         BytesPerScanLine = 80
  1402.         XResolution      = 640
  1403.         YResolution      = 480
  1404.         TextRows         = 30
  1405.         BitsPerPixel     = 8
  1406.         NumberOfPlanes   = 1
  1407.         PageLength       = 307200
  1408.         SaveSize         = 307200
  1409.         InterlaceMode    = 0
  1410.         BufferAddress    = 0x0a0000
  1411.  
  1412. [TrapRegs]
  1413.         0x3c2;
  1414.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1415.         0x3c5;
  1416.         0x3d4, 0x00-0x18, 0x30-0x31;
  1417.         0x3d5;
  1418.         0x3c0, 0x00-0x14;
  1419.         0x3c1;
  1420.         0x3ce, 0x00-0x08;
  1421.         0x3cf;
  1422.  
  1423. [Cleanup]
  1424.  
  1425. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1426. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1427. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1428. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1429. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1430. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1431. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1432. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1433. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1434. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1435. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1436. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1437. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1438.  
  1439. [Lock]
  1440. /*
  1441.  *      Lock Extended Registers
  1442.  */
  1443.  
  1444. outb(0x3c4, 0x05);
  1445. outb(0x3c5, 0x00);
  1446.  
  1447. [UnLock]
  1448. /*
  1449.  *      Unlock Extended Registers
  1450.  */
  1451.  
  1452. outb(0x3c4, 0x05);
  1453. outb(0x3c5, 0x01);
  1454.  
  1455. [SetMode]
  1456.  
  1457. /*
  1458.  *      Set Miscellaneous Output Register
  1459.  */
  1460.  
  1461. outb(0x3c2, 0xe3);
  1462.  
  1463.  
  1464. /*
  1465.  *      Unlock Extended Registers
  1466.  */
  1467.  
  1468. outb(0x3c4, 0x05);
  1469. outb(0x3c5, 0x01);
  1470.  
  1471. /*
  1472.  *      Set Sequencer Registers
  1473.  */
  1474.  
  1475. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1476. boutb(5, 0x00, 0x3c4, 0x3c5);
  1477.  
  1478. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  1479. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1480. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1481. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1482. r30  = 0x1d; r31  = 0x30; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  1483. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1484. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1485.  
  1486. /*
  1487.  *      Set CRT Registers
  1488.  */
  1489.  
  1490. r17 = 0x0e;
  1491. boutb(1, 17, 0x3d4, 0x3d5);
  1492. r0   = 0xc3; r1   = 0x9f; r2   = 0xa1; r3   = 0x85; r4   = 0xa9;
  1493. r5   = 0x01; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  1494. r10  = 0x10; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1495. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x50;
  1496. r20  = 0x00; r21  = 0xe7; r22  = 0x04; r23  = 0xe3; r24  = 0xff;
  1497. boutb(25, 0x00, 0x3d4, 0x3d5);
  1498.  
  1499. r48  = 0x00; r49  = 0x00;
  1500. boutb(2, 0x30, 0x3d4, 0x3d5);
  1501.  
  1502. /*
  1503.  *      Set Attribute Registers
  1504.  */
  1505.  
  1506. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1507. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  1508. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  1509. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1510. r20  = 0x00;
  1511. boutb(21, 0x00, 0x3c0, 0x3c1);
  1512.  
  1513. /*
  1514.  *      Set GDC Registers
  1515.  */
  1516.  
  1517. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1518. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1519. boutb(9, 0x00, 0x3ce, 0x3cf);
  1520.  
  1521. /*
  1522.  *      Set Sequencer Registers
  1523.  */
  1524.  
  1525. r5   = 0x01;
  1526. boutb(1, 0x05, 0x3c4, 0x3c5);
  1527.  
  1528. [comment]
  1529.         Graphics Mode: 800 x 600 x 16 colours.
  1530.  
  1531. [AdapterType]
  1532.         NCR
  1533.  
  1534. [ChipSet]
  1535.         NCR77C22E
  1536.  
  1537. [ModeInfo]
  1538.         ModeAttributes   = 0x18
  1539.         BytesPerScanLine = 100
  1540.         XResolution      = 800
  1541.         YResolution      = 600
  1542.         TextRows         = 37
  1543.         BitsPerPixel     = 4
  1544.         NumberOfPlanes   = 4
  1545.         PageLength       = 60000
  1546.         SaveSize         = 240000
  1547.         InterlaceMode    = 0
  1548.         BufferAddress    = 0x0a0000
  1549.  
  1550. [TrapRegs]
  1551.         0x3c2;
  1552.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1553.         0x3c5;
  1554.         0x3d4, 0x00-0x18, 0x30-0x31;
  1555.         0x3d5;
  1556.         0x3c0, 0x00-0x14;
  1557.         0x3c1;
  1558.         0x3ce, 0x00-0x08;
  1559.         0x3cf;
  1560.  
  1561. [Cleanup]
  1562.  
  1563. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1564. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1565. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1566. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1567. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1568. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1569. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1570. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1571. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1572. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1573. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1574. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1575. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1576.  
  1577. [Lock]
  1578. /*
  1579.  *      Lock Extended Registers
  1580.  */
  1581.  
  1582. outb(0x3c4, 0x05);
  1583. outb(0x3c5, 0x00);
  1584.  
  1585. [UnLock]
  1586. /*
  1587.  *      Unlock Extended Registers
  1588.  */
  1589.  
  1590. outb(0x3c4, 0x05);
  1591. outb(0x3c5, 0x01);
  1592.  
  1593. [SetMode]
  1594.  
  1595. /*
  1596.  *      Set Miscellaneous Output Register
  1597.  */
  1598.  
  1599. outb(0x3c2, 0x27);
  1600.  
  1601.  
  1602. /*
  1603.  *      Unlock Extended Registers
  1604.  */
  1605.  
  1606. outb(0x3c4, 0x05);
  1607. outb(0x3c5, 0x01);
  1608.  
  1609. /*
  1610.  *      Set Sequencer Registers
  1611.  */
  1612.  
  1613. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1614. boutb(5, 0x00, 0x3c4, 0x3c5);
  1615.  
  1616. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  1617. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1618. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1619. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1620. r30  = 0x01; r31  = 0x60; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1621. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1622. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1623.  
  1624. /*
  1625.  *      Set CRT Registers
  1626.  */
  1627.  
  1628. r17 = 0x0e;
  1629. boutb(1, 17, 0x3d4, 0x3d5);
  1630. r0   = 0x7d; r1   = 0x63; r2   = 0x64; r3   = 0x80; r4   = 0x6d;
  1631. r5   = 0x1c; r6   = 0x98; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  1632. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1633. r15  = 0x00; r16  = 0x7c; r17  = 0x82; r18  = 0x57; r19  = 0x32;
  1634. r20  = 0x00; r21  = 0x58; r22  = 0x98; r23  = 0xe3; r24  = 0xff;
  1635. boutb(25, 0x00, 0x3d4, 0x3d5);
  1636.  
  1637. r48  = 0x00; r49  = 0x00;
  1638. boutb(2, 0x30, 0x3d4, 0x3d5);
  1639.  
  1640. /*
  1641.  *      Set Attribute Registers
  1642.  */
  1643.  
  1644. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1645. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1646. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1647. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1648. r20  = 0x00;
  1649. boutb(21, 0x00, 0x3c0, 0x3c1);
  1650.  
  1651. /*
  1652.  *      Set GDC Registers
  1653.  */
  1654.  
  1655. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1656. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1657. boutb(9, 0x00, 0x3ce, 0x3cf);
  1658.  
  1659. /*
  1660.  *      Set Sequencer Registers
  1661.  */
  1662.  
  1663. r5   = 0x01;
  1664. boutb(1, 0x05, 0x3c4, 0x3c5);
  1665.  
  1666. [comment]
  1667.         Graphics Mode: 800 x 600 x 256 colours.
  1668.  
  1669. [AdapterType]
  1670.         NCR
  1671.  
  1672. [ChipSet]
  1673.         NCR77C22E
  1674.  
  1675. [ModeInfo]
  1676.         ModeAttributes   = 0x18
  1677.         BytesPerScanLine = 100
  1678.         XResolution      = 800
  1679.         YResolution      = 600
  1680.         TextRows         = 37
  1681.         BitsPerPixel     = 8
  1682.         NumberOfPlanes   = 1
  1683.         PageLength       = 480000
  1684.         SaveSize         = 480000
  1685.         InterlaceMode    = 0
  1686.         BufferAddress    = 0x0a0000
  1687.  
  1688. [TrapRegs]
  1689.         0x3c2;
  1690.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1691.         0x3c5;
  1692.         0x3d4, 0x00-0x18, 0x30-0x31;
  1693.         0x3d5;
  1694.         0x3c0, 0x00-0x14;
  1695.         0x3c1;
  1696.         0x3ce, 0x00-0x08;
  1697.         0x3cf;
  1698.  
  1699. [Cleanup]
  1700.  
  1701. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1702. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1703. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1704. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1705. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1706. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1707. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1708. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1709. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1710. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1711. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1712. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1713. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1714.  
  1715. [Lock]
  1716. /*
  1717.  *      Lock Extended Registers
  1718.  */
  1719.  
  1720. outb(0x3c4, 0x05);
  1721. outb(0x3c5, 0x00);
  1722.  
  1723. [UnLock]
  1724. /*
  1725.  *      Unlock Extended Registers
  1726.  */
  1727.  
  1728. outb(0x3c4, 0x05);
  1729. outb(0x3c5, 0x01);
  1730.  
  1731. [SetMode]
  1732.  
  1733. /*
  1734.  *      Set Miscellaneous Output Register
  1735.  */
  1736.  
  1737. outb(0x3c2, 0x27);
  1738.  
  1739.  
  1740. /*
  1741.  *      Unlock Extended Registers
  1742.  */
  1743.  
  1744. outb(0x3c4, 0x05);
  1745. outb(0x3c5, 0x01);
  1746.  
  1747. /*
  1748.  *      Set Sequencer Registers
  1749.  */
  1750.  
  1751. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1752. boutb(5, 0x00, 0x3c4, 0x3c5);
  1753.  
  1754. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  1755. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1756. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1757. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1758. r30  = 0x1d; r31  = 0x70; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  1759. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1760. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1761.  
  1762. /*
  1763.  *      Set CRT Registers
  1764.  */
  1765.  
  1766. r17 = 0x0e;
  1767. boutb(1, 17, 0x3d4, 0x3d5);
  1768. r0   = 0xff; r1   = 0xc7; r2   = 0xc8; r3   = 0x82; r4   = 0xd9;
  1769. r5   = 0x17; r6   = 0x98; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  1770. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1771. r15  = 0x00; r16  = 0x7c; r17  = 0x82; r18  = 0x57; r19  = 0x64;
  1772. r20  = 0x00; r21  = 0x58; r22  = 0x98; r23  = 0xe3; r24  = 0xff;
  1773. boutb(25, 0x00, 0x3d4, 0x3d5);
  1774.  
  1775. r48  = 0x00; r49  = 0x00;
  1776. boutb(2, 0x30, 0x3d4, 0x3d5);
  1777.  
  1778. /*
  1779.  *      Set Attribute Registers
  1780.  */
  1781.  
  1782. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1783. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  1784. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  1785. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1786. r20  = 0x00;
  1787. boutb(21, 0x00, 0x3c0, 0x3c1);
  1788.  
  1789. /*
  1790.  *      Set GDC Registers
  1791.  */
  1792.  
  1793. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1794. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1795. boutb(9, 0x00, 0x3ce, 0x3cf);
  1796.  
  1797. /*
  1798.  *      Set Sequencer Registers
  1799.  */
  1800.  
  1801. r5   = 0x01;
  1802. boutb(1, 0x05, 0x3c4, 0x3c5);
  1803.  
  1804. [comment]
  1805.         Graphics Mode: 1024 x 768 x 16 colours.
  1806.  
  1807. [AdapterType]
  1808.         NCR
  1809.  
  1810. [ChipSet]
  1811.         NCR77C22E
  1812.  
  1813. [ModeInfo]
  1814.         ModeAttributes   = 0x18
  1815.         BytesPerScanLine = 128
  1816.         XResolution      = 1024
  1817.         YResolution      = 768
  1818.         TextRows         = 48
  1819.         BitsPerPixel     = 4
  1820.         NumberOfPlanes   = 4
  1821.         PageLength       = 98304
  1822.         SaveSize         = 393216
  1823.         InterlaceMode    = 0
  1824.         BufferAddress    = 0x0a0000
  1825.  
  1826. [TrapRegs]
  1827.         0x3c2;
  1828.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1829.         0x3c5;
  1830.         0x3d4, 0x00-0x18, 0x30-0x31;
  1831.         0x3d5;
  1832.         0x3c0, 0x00-0x14;
  1833.         0x3c1;
  1834.         0x3ce, 0x00-0x08;
  1835.         0x3cf;
  1836.  
  1837. [Cleanup]
  1838.  
  1839. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1840. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1841. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1842. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1843. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1844. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1845. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1846. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1847. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1848. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1849. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1850. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1851. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1852.  
  1853. [Lock]
  1854. /*
  1855.  *      Lock Extended Registers
  1856.  */
  1857.  
  1858. outb(0x3c4, 0x05);
  1859. outb(0x3c5, 0x00);
  1860.  
  1861. [UnLock]
  1862. /*
  1863.  *      Unlock Extended Registers
  1864.  */
  1865.  
  1866. outb(0x3c4, 0x05);
  1867. outb(0x3c5, 0x01);
  1868.  
  1869. [SetMode]
  1870.  
  1871. /*
  1872.  *      Set Miscellaneous Output Register
  1873.  */
  1874.  
  1875. outb(0x3c2, 0x2f);
  1876.  
  1877.  
  1878. /*
  1879.  *      Unlock Extended Registers
  1880.  */
  1881.  
  1882. outb(0x3c4, 0x05);
  1883. outb(0x3c5, 0x01);
  1884.  
  1885. /*
  1886.  *      Set Sequencer Registers
  1887.  */
  1888.  
  1889. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  1890. boutb(5, 0x00, 0x3c4, 0x3c5);
  1891.  
  1892. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  1893. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  1894. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  1895. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  1896. r30  = 0x1d; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  1897. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  1898. boutb(30, 0x0a, 0x3c4, 0x3c5);
  1899.  
  1900. /*
  1901.  *      Set CRT Registers
  1902.  */
  1903.  
  1904. r17 = 0x0e;
  1905. boutb(1, 17, 0x3d4, 0x3d5);
  1906. r0   = 0xa4; r1   = 0x7f; r2   = 0x80; r3   = 0x86; r4   = 0x88;
  1907. r5   = 0x8f; r6   = 0x20; r7   = 0xfd; r8   = 0x00; r9   = 0x60;
  1908. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1909. r15  = 0x00; r16  = 0x01; r17  = 0x85; r18  = 0xff; r19  = 0x40;
  1910. r20  = 0x00; r21  = 0x00; r22  = 0x1f; r23  = 0xe3; r24  = 0xff;
  1911. boutb(25, 0x00, 0x3d4, 0x3d5);
  1912.  
  1913. r48  = 0x00; r49  = 0x00;
  1914. boutb(2, 0x30, 0x3d4, 0x3d5);
  1915.  
  1916. /*
  1917.  *      Set Attribute Registers
  1918.  */
  1919.  
  1920. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1921. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1922. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1923. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1924. r20  = 0x00;
  1925. boutb(21, 0x00, 0x3c0, 0x3c1);
  1926.  
  1927. /*
  1928.  *      Set GDC Registers
  1929.  */
  1930.  
  1931. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1932. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff;
  1933. boutb(9, 0x00, 0x3ce, 0x3cf);
  1934.  
  1935. /*
  1936.  *      Set Sequencer Registers
  1937.  */
  1938.  
  1939. r5   = 0x01;
  1940. boutb(1, 0x05, 0x3c4, 0x3c5);
  1941.  
  1942. [comment]
  1943.         Graphics Mode: 1024 x 768 x 256 colours.
  1944.  
  1945. [AdapterType]
  1946.         NCR
  1947.  
  1948. [ChipSet]
  1949.         NCR77C22E
  1950.  
  1951. [ModeInfo]
  1952.         ModeAttributes   = 0x18
  1953.         BytesPerScanLine = 128
  1954.         XResolution      = 1024
  1955.         YResolution      = 768
  1956.         TextRows         = 48
  1957.         BitsPerPixel     = 8
  1958.         NumberOfPlanes   = 1
  1959.         PageLength       = 786432
  1960.         SaveSize         = 786432
  1961.         InterlaceMode    = 0
  1962.         BufferAddress    = 0x0a0000
  1963.  
  1964. [TrapRegs]
  1965.         0x3c2;
  1966.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  1967.         0x3c5;
  1968.         0x3d4, 0x00-0x18, 0x30-0x31;
  1969.         0x3d5;
  1970.         0x3c0, 0x00-0x14;
  1971.         0x3c1;
  1972.         0x3ce, 0x00-0x08;
  1973.         0x3cf;
  1974.  
  1975. [Cleanup]
  1976.  
  1977. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  1978. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  1979. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  1980. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  1981. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  1982. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  1983. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  1984. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  1985. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  1986. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  1987. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  1988. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  1989. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  1990.  
  1991. [Lock]
  1992. /*
  1993.  *      Lock Extended Registers
  1994.  */
  1995.  
  1996. outb(0x3c4, 0x05);
  1997. outb(0x3c5, 0x00);
  1998.  
  1999. [UnLock]
  2000. /*
  2001.  *      Unlock Extended Registers
  2002.  */
  2003.  
  2004. outb(0x3c4, 0x05);
  2005. outb(0x3c5, 0x01);
  2006.  
  2007. [SetMode]
  2008.  
  2009. /*
  2010.  *      Set Miscellaneous Output Register
  2011.  */
  2012.  
  2013. outb(0x3c2, 0x2f);
  2014.  
  2015.  
  2016. /*
  2017.  *      Unlock Extended Registers
  2018.  */
  2019.  
  2020. outb(0x3c4, 0x05);
  2021. outb(0x3c5, 0x01);
  2022.  
  2023. /*
  2024.  *      Set Sequencer Registers
  2025.  */
  2026.  
  2027. r0   = 0x03; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x06;
  2028. boutb(5, 0x00, 0x3c4, 0x3c5);
  2029.  
  2030. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  2031. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2032. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2033. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2034. r30  = 0x1d; r31  = 0x30; r32  = 0x02; r33  = 0x01; r34  = 0x03;
  2035. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2036. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2037.  
  2038. /*
  2039.  *      Set CRT Registers
  2040.  */
  2041.  
  2042. r17 = 0x0e;
  2043. boutb(1, 17, 0x3d4, 0x3d5);
  2044. r0   = 0x4b; r1   = 0xff; r2   = 0x07; r3   = 0x87; r4   = 0x0d;
  2045. r5   = 0x0d; r6   = 0x24; r7   = 0xfd; r8   = 0x00; r9   = 0x60;
  2046. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2047. r15  = 0x00; r16  = 0x07; r17  = 0x8c; r18  = 0xff; r19  = 0x80;
  2048. r20  = 0x00; r21  = 0x07; r22  = 0x1d; r23  = 0xe3; r24  = 0xff;
  2049. boutb(25, 0x00, 0x3d4, 0x3d5);
  2050.  
  2051. r48  = 0x0d; r49  = 0x00;
  2052. boutb(2, 0x30, 0x3d4, 0x3d5);
  2053.  
  2054. /*
  2055.  *      Set Attribute Registers
  2056.  */
  2057.  
  2058. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2059. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x08; r9   = 0x09;
  2060. r10  = 0x0a; r11  = 0x0b; r12  = 0x0c; r13  = 0x0d; r14  = 0x0e;
  2061. r15  = 0x0f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  2062. r20  = 0x00;
  2063. boutb(21, 0x00, 0x3c0, 0x3c1);
  2064.  
  2065. /*
  2066.  *      Set GDC Registers
  2067.  */
  2068.  
  2069. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2070. r5   = 0x00; r6   = 0x05; r7   = 0xff; r8   = 0xff;
  2071. boutb(9, 0x00, 0x3ce, 0x3cf);
  2072.  
  2073. /*
  2074.  *      Set Sequencer Registers
  2075.  */
  2076.  
  2077. r5   = 0x01;
  2078. boutb(1, 0x05, 0x3c4, 0x3c5);
  2079.  
  2080. [comment]
  2081.         Text Mode: 40 cols, 25 rows.
  2082.  
  2083. [AdapterType]
  2084.         NCR
  2085.  
  2086. [ChipSet]
  2087.         NCR77C22E
  2088.  
  2089. [ModeInfo]
  2090.         ModeAttributes   = 0x08
  2091.         BytesPerScanLine = 40
  2092.         XResolution      = 360
  2093.         YResolution      = 400
  2094.         XCharSize        = 9
  2095.         YCharSize        = 16
  2096.         TextRows         = 25
  2097.         BitsPerPixel     = 4
  2098.         NumberOfPlanes   = 1
  2099.         PageLength       = 4000
  2100.         SaveSize         = 4000
  2101.         InterlaceMode    = 0
  2102.         BufferAddress    = 0x0b8000
  2103.  
  2104. [TrapRegs]
  2105.         0x3c2;
  2106.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2107.         0x3c5;
  2108.         0x3d4, 0x00-0x18, 0x30-0x31;
  2109.         0x3d5;
  2110.         0x3c0, 0x00-0x14;
  2111.         0x3c1;
  2112.         0x3ce, 0x00-0x08;
  2113.         0x3cf;
  2114.  
  2115. [Cleanup]
  2116.  
  2117. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2118. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2119. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2120. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2121. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2122. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2123. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2124. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2125. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2126. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2127. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2128. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2129. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2130.  
  2131. [Lock]
  2132. /*
  2133.  *      Lock Extended Registers
  2134.  */
  2135.  
  2136. outb(0x3c4, 0x05);
  2137. outb(0x3c5, 0x00);
  2138.  
  2139. [UnLock]
  2140. /*
  2141.  *      Unlock Extended Registers
  2142.  */
  2143.  
  2144. outb(0x3c4, 0x05);
  2145. outb(0x3c5, 0x01);
  2146.  
  2147. [SetMode]
  2148.  
  2149. /*
  2150.  *      Set Miscellaneous Output Register
  2151.  */
  2152.  
  2153. outb(0x3c2, 0x67);
  2154.  
  2155.  
  2156. /*
  2157.  *      Unlock Extended Registers
  2158.  */
  2159.  
  2160. outb(0x3c4, 0x05);
  2161. outb(0x3c5, 0x01);
  2162.  
  2163. /*
  2164.  *      Set Sequencer Registers
  2165.  */
  2166.  
  2167. r0   = 0x03; r1   = 0x08; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2168. boutb(5, 0x00, 0x3c4, 0x3c5);
  2169.  
  2170. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  2171. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2172. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2173. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2174. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2175. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2176. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2177.  
  2178. /*
  2179.  *      Set CRT Registers
  2180.  */
  2181.  
  2182. r17 = 0x0e;
  2183. boutb(1, 17, 0x3d4, 0x3d5);
  2184. r0   = 0x2d; r1   = 0x27; r2   = 0x28; r3   = 0x90; r4   = 0x2b;
  2185. r5   = 0xa0; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2186. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2187. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x14;
  2188. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2189. boutb(25, 0x00, 0x3d4, 0x3d5);
  2190.  
  2191. r48  = 0x00; r49  = 0x00;
  2192. boutb(2, 0x30, 0x3d4, 0x3d5);
  2193.  
  2194. /*
  2195.  *      Set Attribute Registers
  2196.  */
  2197.  
  2198. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2199. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2200. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2201. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  2202. r20  = 0x00;
  2203. boutb(21, 0x00, 0x3c0, 0x3c1);
  2204.  
  2205. /*
  2206.  *      Set GDC Registers
  2207.  */
  2208.  
  2209. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2210. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2211. boutb(9, 0x00, 0x3ce, 0x3cf);
  2212.  
  2213. /*
  2214.  *      Set Sequencer Registers
  2215.  */
  2216.  
  2217. r5   = 0x01;
  2218. boutb(1, 0x05, 0x3c4, 0x3c5);
  2219.  
  2220. [comment]
  2221.         Text Mode: 80 cols, 25 rows.
  2222.  
  2223. [AdapterType]
  2224.         NCR
  2225.  
  2226. [ChipSet]
  2227.         NCR77C22E
  2228.  
  2229. [ModeInfo]
  2230.         ModeAttributes   = 0x08
  2231.         BytesPerScanLine = 80
  2232.         XResolution      = 720
  2233.         YResolution      = 400
  2234.         XCharSize        = 9
  2235.         YCharSize        = 16
  2236.         TextRows         = 25
  2237.         BitsPerPixel     = 4
  2238.         NumberOfPlanes   = 1
  2239.         PageLength       = 4000
  2240.         SaveSize         = 4000
  2241.         InterlaceMode    = 0
  2242.         BufferAddress    = 0x0b8000
  2243.  
  2244. [TrapRegs]
  2245.         0x3c2;
  2246.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2247.         0x3c5;
  2248.         0x3d4, 0x00-0x18, 0x30-0x31;
  2249.         0x3d5;
  2250.         0x3c0, 0x00-0x14;
  2251.         0x3c1;
  2252.         0x3ce, 0x00-0x08;
  2253.         0x3cf;
  2254.  
  2255. [Cleanup]
  2256.  
  2257. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2258. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2259. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2260. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2261. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2262. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2263. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2264. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2265. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2266. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2267. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2268. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2269. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2270.  
  2271. [Lock]
  2272. /*
  2273.  *      Lock Extended Registers
  2274.  */
  2275.  
  2276. outb(0x3c4, 0x05);
  2277. outb(0x3c5, 0x00);
  2278.  
  2279. [UnLock]
  2280. /*
  2281.  *      Unlock Extended Registers
  2282.  */
  2283.  
  2284. outb(0x3c4, 0x05);
  2285. outb(0x3c5, 0x01);
  2286.  
  2287. [SetMode]
  2288.  
  2289. /*
  2290.  *      Set Miscellaneous Output Register
  2291.  */
  2292.  
  2293. outb(0x3c2, 0x67);
  2294.  
  2295.  
  2296. /*
  2297.  *      Unlock Extended Registers
  2298.  */
  2299.  
  2300. outb(0x3c4, 0x05);
  2301. outb(0x3c5, 0x01);
  2302.  
  2303. /*
  2304.  *      Set Sequencer Registers
  2305.  */
  2306.  
  2307. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2308. boutb(5, 0x00, 0x3c4, 0x3c5);
  2309.  
  2310. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  2311. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2312. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2313. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2314. r30  = 0x01; r31  = 0x20; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2315. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2316. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2317.  
  2318. /*
  2319.  *      Set CRT Registers
  2320.  */
  2321.  
  2322. r17 = 0x0e;
  2323. boutb(1, 17, 0x3d4, 0x3d5);
  2324. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x55;
  2325. r5   = 0x81; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2326. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2327. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x28;
  2328. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2329. boutb(25, 0x00, 0x3d4, 0x3d5);
  2330.  
  2331. r48  = 0x00; r49  = 0x00;
  2332. boutb(2, 0x30, 0x3d4, 0x3d5);
  2333.  
  2334. /*
  2335.  *      Set Attribute Registers
  2336.  */
  2337.  
  2338. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2339. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2340. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2341. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  2342. r20  = 0x00;
  2343. boutb(21, 0x00, 0x3c0, 0x3c1);
  2344.  
  2345. /*
  2346.  *      Set GDC Registers
  2347.  */
  2348.  
  2349. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2350. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2351. boutb(9, 0x00, 0x3ce, 0x3cf);
  2352.  
  2353. /*
  2354.  *      Set Sequencer Registers
  2355.  */
  2356.  
  2357. r5   = 0x01;
  2358. boutb(1, 0x05, 0x3c4, 0x3c5);
  2359.  
  2360. [comment]
  2361.         Text Mode: 132 cols, 25 rows.
  2362.  
  2363. [AdapterType]
  2364.         NCR
  2365.  
  2366. [ChipSet]
  2367.         NCR77C22E
  2368.  
  2369. [ModeInfo]
  2370.         ModeAttributes   = 0x08
  2371.         BytesPerScanLine = 132
  2372.         XResolution      = 1056
  2373.         YResolution      = 400
  2374.         XCharSize        = 8
  2375.         YCharSize        = 16
  2376.         TextRows         = 25
  2377.         BitsPerPixel     = 4
  2378.         NumberOfPlanes   = 1
  2379.         PageLength       = 6600
  2380.         SaveSize         = 6600
  2381.         InterlaceMode    = 0
  2382.         BufferAddress    = 0x0b8000
  2383.  
  2384. [TrapRegs]
  2385.         0x3c2;
  2386.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2387.         0x3c5;
  2388.         0x3d4, 0x00-0x18, 0x30-0x31;
  2389.         0x3d5;
  2390.         0x3c0, 0x00-0x14;
  2391.         0x3c1;
  2392.         0x3ce, 0x00-0x08;
  2393.         0x3cf;
  2394.  
  2395. [Cleanup]
  2396.  
  2397. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2398. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2399. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2400. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2401. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2402. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2403. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2404. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2405. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2406. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2407. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2408. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2409. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2410.  
  2411. [Lock]
  2412. /*
  2413.  *      Lock Extended Registers
  2414.  */
  2415.  
  2416. outb(0x3c4, 0x05);
  2417. outb(0x3c5, 0x00);
  2418.  
  2419. [UnLock]
  2420. /*
  2421.  *      Unlock Extended Registers
  2422.  */
  2423.  
  2424. outb(0x3c4, 0x05);
  2425. outb(0x3c5, 0x01);
  2426.  
  2427. [SetMode]
  2428.  
  2429. /*
  2430.  *      Set Miscellaneous Output Register
  2431.  */
  2432.  
  2433. outb(0x3c2, 0x6b);
  2434.  
  2435.  
  2436. /*
  2437.  *      Unlock Extended Registers
  2438.  */
  2439.  
  2440. outb(0x3c4, 0x05);
  2441. outb(0x3c5, 0x01);
  2442.  
  2443. /*
  2444.  *      Set Sequencer Registers
  2445.  */
  2446.  
  2447. r0   = 0x03; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2448. boutb(5, 0x00, 0x3c4, 0x3c5);
  2449.  
  2450. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  2451. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2452. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2453. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2454. r30  = 0x01; r31  = 0x31; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2455. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2456. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2457.  
  2458. /*
  2459.  *      Set CRT Registers
  2460.  */
  2461.  
  2462. r17 = 0x0e;
  2463. boutb(1, 17, 0x3d4, 0x3d5);
  2464. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  2465. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  2466. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2467. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  2468. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2469. boutb(25, 0x00, 0x3d4, 0x3d5);
  2470.  
  2471. r48  = 0x00; r49  = 0x00;
  2472. boutb(2, 0x30, 0x3d4, 0x3d5);
  2473.  
  2474. /*
  2475.  *      Set Attribute Registers
  2476.  */
  2477.  
  2478. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2479. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2480. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2481. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  2482. r20  = 0x00;
  2483. boutb(21, 0x00, 0x3c0, 0x3c1);
  2484.  
  2485. /*
  2486.  *      Set GDC Registers
  2487.  */
  2488.  
  2489. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2490. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2491. boutb(9, 0x00, 0x3ce, 0x3cf);
  2492.  
  2493. /*
  2494.  *      Set Sequencer Registers
  2495.  */
  2496.  
  2497. r5   = 0x01;
  2498. boutb(1, 0x05, 0x3c4, 0x3c5);
  2499.  
  2500. [comment]
  2501.         Text Mode: 132 cols, 43 rows.
  2502.  
  2503. [AdapterType]
  2504.         NCR
  2505.  
  2506. [ChipSet]
  2507.         NCR77C22E
  2508.  
  2509. [ModeInfo]
  2510.         ModeAttributes   = 0x08
  2511.         BytesPerScanLine = 132
  2512.         XResolution      = 1056
  2513.         YResolution      = 387
  2514.         XCharSize        = 8
  2515.         YCharSize        = 8
  2516.         TextRows         = 43
  2517.         BitsPerPixel     = 4
  2518.         NumberOfPlanes   = 1
  2519.         PageLength       = 11352
  2520.         SaveSize         = 11352
  2521.         InterlaceMode    = 0
  2522.         BufferAddress    = 0x0b8000
  2523.  
  2524. [TrapRegs]
  2525.         0x3c2;
  2526.         0x3c4, 0x00-0x04, 0x0a-0x27, 0x05-0x05;
  2527.         0x3c5;
  2528.         0x3d4, 0x00-0x18, 0x30-0x31;
  2529.         0x3d5;
  2530.         0x3c0, 0x00-0x14;
  2531.         0x3c1;
  2532.         0x3ce, 0x00-0x08;
  2533.         0x3cf;
  2534.  
  2535. [Cleanup]
  2536.  
  2537. rmwb(0x3c4, 0x3c5, 0x0c, 0x00, 0x00);
  2538. rmwb(0x3c4, 0x3c5, 0x18, 0x00, 0x00);
  2539. rmwb(0x3c4, 0x3c5, 0x19, 0x00, 0x00);
  2540. rmwb(0x3c4, 0x3c5, 0x1e, 0x00, 0x01);
  2541. rmwb(0x3c4, 0x3c5, 0x1f, 0x00, 0x20);
  2542. rmwb(0x3c4, 0x3c5, 0x20, 0x00, 0x00);
  2543. rmwb(0x3c4, 0x3c5, 0x21, 0x00, 0x00);
  2544. rmwb(0x3c4, 0x3c5, 0x23, 0x7f, 0x04);
  2545. rmwb(0x3c4, 0x3c5, 0x26, 0x00, 0x00);
  2546. rmwb(0x3d4, 0x3d5, 0x30, 0x00, 0x00);
  2547. rmwb(0x3d4, 0x3d5, 0x31, 0x00, 0x00);
  2548. rmwb(0x3d4, 0x3d5, 0x32, 0x00, 0x00);
  2549. rmwb(0x3d4, 0x3d5, 0x33, 0x00, 0x00);
  2550.  
  2551. [Lock]
  2552. /*
  2553.  *      Lock Extended Registers
  2554.  */
  2555.  
  2556. outb(0x3c4, 0x05);
  2557. outb(0x3c5, 0x00);
  2558.  
  2559. [UnLock]
  2560. /*
  2561.  *      Unlock Extended Registers
  2562.  */
  2563.  
  2564. outb(0x3c4, 0x05);
  2565. outb(0x3c5, 0x01);
  2566.  
  2567. [SetMode]
  2568.  
  2569. /*
  2570.  *      Set Miscellaneous Output Register
  2571.  */
  2572.  
  2573. outb(0x3c2, 0x6b);
  2574.  
  2575.  
  2576. /*
  2577.  *      Unlock Extended Registers
  2578.  */
  2579.  
  2580. outb(0x3c4, 0x05);
  2581. outb(0x3c5, 0x01);
  2582.  
  2583. /*
  2584.  *      Set Sequencer Registers
  2585.  */
  2586.  
  2587. r0   = 0x03; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  2588. boutb(5, 0x00, 0x3c4, 0x3c5);
  2589.  
  2590. r10  = 0xff; r11  = 0xff; r12  = 0x00; r13  = 0x07; r14  = 0x02;
  2591. r15  = 0x03; r16  = 0xff; r17  = 0x1f; r18  = 0x7f; r19  = 0xff;
  2592. r20  = 0xff; r21  = 0xff; r22  = 0xff; r23  = 0xff; r24  = 0x00;
  2593. r25  = 0x00; r26  = 0x00; r27  = 0x00; r28  = 0x00; r29  = 0x00;
  2594. r30  = 0x01; r31  = 0x31; r32  = 0x00; r33  = 0x00; r34  = 0x03;
  2595. r35  = 0x04; r36  = 0xff; r37  = 0x00; r38  = 0x00; r39  = 0x00;
  2596. boutb(30, 0x0a, 0x3c4, 0x3c5);
  2597.  
  2598. /*
  2599.  *      Set CRT Registers
  2600.  */
  2601.  
  2602. r17 = 0x0e;
  2603. boutb(1, 17, 0x3d4, 0x3d5);
  2604. r0   = 0x9e; r1   = 0x83; r2   = 0x84; r3   = 0x81; r4   = 0x8a;
  2605. r5   = 0x9e; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x48;
  2606. r10  = 0x07; r11  = 0x08; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  2607. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  2608. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  2609. boutb(25, 0x00, 0x3d4, 0x3d5);
  2610.  
  2611. r48  = 0x00; r49  = 0x00;
  2612. boutb(2, 0x30, 0x3d4, 0x3d5);
  2613.  
  2614. /*
  2615.  *      Set Attribute Registers
  2616.  */
  2617.  
  2618. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  2619. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  2620. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  2621. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  2622. r20  = 0x00;
  2623. boutb(21, 0x00, 0x3c0, 0x3c1);
  2624.  
  2625. /*
  2626.  *      Set GDC Registers
  2627.  */
  2628.  
  2629. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  2630. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff;
  2631. boutb(9, 0x00, 0x3ce, 0x3cf);
  2632.  
  2633. /*
  2634.  *      Set Sequencer Registers
  2635.  */
  2636.  
  2637. r5   = 0x01;
  2638. boutb(1, 0x05, 0x3c4, 0x3c5);
  2639.  
  2640.