home *** CD-ROM | disk | FTP | other *** search
/ Media Gallery 1995 June / MG6.ISO / spea / install / mirage / mirgen.pm_ / SVGADATA.PMI
Encoding:
Text File  |  1994-09-30  |  31.4 KB  |  1,335 lines

  1. /*
  2.  *    OS/2 2.1 SVGA PMI-File Generator
  3.  */
  4.  
  5. /*
  6.  *    Lock Extended Registers
  7.  */
  8.  
  9. [Lock]
  10. outb(0x3d4, 0x38);
  11. outb(0x3d5, 0x00);
  12. outb(0x3d4, 0x39);
  13. outb(0x3d5, 0x00);
  14.  
  15. /*
  16.  *    Unlock Extended Registers
  17.  */
  18.  
  19. [UnLock]
  20. outb(0x3d4, 0x38);
  21. outb(0x3d5, 0x48);
  22. outb(0x3d4, 0x39);
  23. outb(0x3d5, 0xa0);
  24. outb(0x3b4, 0x38);
  25. outb(0x3b5, 0x48);
  26. outb(0x3b4, 0x39);
  27. outb(0x3b5, 0xa0);
  28.  
  29. [Cleanup]
  30.  
  31. rmww(0x4ae8, 0x4ae8, 0x00, 0x00);
  32. rmwb(0x3d4, 0x3d5, 0x31, 0xf7, 0x00);
  33. rmwb(0x3d4, 0x3d5, 0x34, 0x00, 0x00);
  34. rmwb(0x3d4, 0x3d5, 0x3a, 0xef, 0x00);
  35. rmwb(0x3d4, 0x3d5, 0x40, 0xfe, 0x00);
  36. rmwb(0x3d4, 0x3d5, 0x45, 0xfe, 0x00);
  37. rmwb(0x3d4, 0x3d5, 0x51, 0xf3, 0x00);
  38. rmwb(0x3d4, 0x3d5, 0x58, 0xec, 0x00);
  39. rmwb(0x3d4, 0x3d5, 0x60, 0x00, 0x07);
  40. rmwb(0x3d4, 0x3d5, 0x61, 0x00, 0x80);
  41. rmwb(0x3d4, 0x3d5, 0x62, 0x00, 0xa1);
  42.  
  43. /*
  44.  *    HI-COLOR DAC by S3-GENDAC
  45.  */
  46.  
  47. [comment]
  48.     Graphics Mode: 640 x 480 x 256 colors.
  49.  
  50. [AdapterType]
  51.         S3
  52.  
  53. [ChipSet]
  54.         S386C80X
  55.  
  56. [ModeInfo]
  57.         ModeAttributes   = 0x18
  58.         BytesPerScanLine = 80
  59.         XResolution      = 640
  60.         YResolution      = 480
  61.         TextRows         = 30
  62.         BitsPerPixel     = 8
  63.         NumberOfPlanes   = 1
  64.         PageLength       = 491520
  65.         SaveSize         = 491520
  66.         TotalMemory      = 1048576
  67.         InterlaceMode    = 1
  68.         BufferAddress    = 0x0a0000
  69.  
  70. [TrapRegs]
  71.     0x3c2;
  72.     0x3c4, 0x00-0x04;
  73.     0x3c5;
  74.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  75.     0x3d5;
  76.     0x3c0, 0x00-0x14;
  77.     0x3c1;
  78.     0x3ce, 0x00-0x08;
  79.     0x3cf;
  80.     0x4ae8;
  81.     0xbee8;
  82.     0x96e8;
  83.     0x86e8;
  84.     0x82e8;
  85.  
  86. [SetMode]
  87.  
  88. /*
  89.  *    Set Sequencer Registers
  90.  */
  91.  
  92. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  93. boutb(5, 0x00, 0x3c4, 0x3c5);
  94.  
  95. outw(0x3c4, 0x0300);
  96. /*
  97.  *    Set CRT Registers
  98.  */
  99.  
  100. outw(0x3d4, 0x0e11);
  101. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x52;
  102. r5   = 0x80; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  103. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  104. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0x50;
  105. r20  = 0x60; r21  = 0xe7; r22  = 0x0b; r23  = 0xab; r24  = 0xff;
  106. boutb(25, 0x00, 0x3d4, 0x3d5);
  107.  
  108. r80  = 0x00; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x38;
  109. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  110. r90  = 0x0a; 
  111. boutb(11, 0x50, 0x3d4, 0x3d5);
  112.  
  113. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  114. boutb(3, 0x5c, 0x3d4, 0x3d5);
  115.  
  116. r96  = 0x07; r97  = 0x80; r98  = 0xa1; 
  117. boutb(3, 0x60, 0x3d4, 0x3d5);
  118.  
  119. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  120. boutb(5, 0x31, 0x3d4, 0x3d5);
  121.  
  122. r58  = 0x95; r59  = 0x5a; r60  = 0x40; 
  123. boutb(3, 0x3a, 0x3d4, 0x3d5);
  124.  
  125. r64  = 0x51; 
  126. boutb(1, 0x40, 0x3d4, 0x3d5);
  127.  
  128. r67  = 0x00; 
  129. boutb(1, 0x43, 0x3d4, 0x3d5);
  130.  
  131. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  132. boutb(5, 0x45, 0x3d4, 0x3d5);
  133.  
  134. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  135. boutb(4, 0x4c, 0x3d4, 0x3d5);
  136.  
  137. r66  = 0x02; 
  138. boutb(1, 0x42, 0x3d4, 0x3d5);
  139.  
  140. r103 = 0x02; 
  141. boutb(1, 0x67, 0x3d4, 0x3d5);
  142.  
  143. /*
  144.  *    Set Attribute Registers
  145.  */
  146.  
  147. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  148. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x10; r9   = 0x11;
  149. r10  = 0x12; r11  = 0x13; r12  = 0x14; r13  = 0x15; r14  = 0x16;
  150. r15  = 0x17; r16  = 0x41; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  151. r20  = 0x00; 
  152. boutb(21, 0x00, 0x3c0, 0x3c1);
  153.  
  154. /*
  155.  *    Set GDC Registers
  156.  */
  157.  
  158. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  159. r5   = 0x40; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  160. boutb(9, 0x00, 0x3ce, 0x3cf);
  161.  
  162. /*
  163.  *    Set Enhanced Command Registers
  164.  */
  165.  
  166. outw(0x4ae8, 0x0001);
  167. outw(0xbee8, 0x1000);
  168. outw(0xbee8, 0x33ff);
  169. outw(0xbee8, 0x2000);
  170. outw(0xbee8, 0x43ff);
  171. outw(0xbee8, 0xa000);
  172. outw(0xbee8, 0x03ff);
  173. outw(0x96e8, 0x03ff);
  174. outw(0x86e8, 0x0000);
  175. outw(0x82e8, 0x0000);
  176. [comment]
  177.     Graphics Mode: 640 x 480 x 64K colors.
  178.  
  179. [AdapterType]
  180.         S3
  181.  
  182. [ChipSet]
  183.         S386C80X
  184.  
  185. [ModeInfo]
  186.         ModeAttributes   = 0x18
  187.         BytesPerScanLine = 80
  188.         XResolution      = 640
  189.         YResolution      = 480
  190.         TextRows         = 30
  191.         BitsPerPixel     = 16
  192.         NumberOfPlanes   = 1
  193.         PageLength       = 614400
  194.         SaveSize         = 614400
  195.         TotalMemory      = 1048576
  196.         InterlaceMode    = 1
  197.         BufferAddress    = 0x0a0000
  198.  
  199. [TrapRegs]
  200.     0x3c2;
  201.     0x3c4, 0x00-0x04;
  202.     0x3c5;
  203.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  204.     0x3d5;
  205.     0x3c0, 0x00-0x14;
  206.     0x3c1;
  207.     0x3ce, 0x00-0x08;
  208.     0x3cf;
  209.     0x4ae8;
  210.     0xbee8;
  211.     0x96e8;
  212.     0x86e8;
  213.     0x82e8;
  214.  
  215. [SetMode]
  216.  
  217. /*
  218.  *    Set Sequencer Registers
  219.  */
  220.  
  221. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  222. boutb(5, 0x00, 0x3c4, 0x3c5);
  223.  
  224. outw(0x3c4, 0x0300);
  225. /*
  226.  *    Set CRT Registers
  227.  */
  228.  
  229. outw(0x3d4, 0x0e11);
  230. r0   = 0xc2; r1   = 0x9f; r2   = 0xa0; r3   = 0x85; r4   = 0xa4;
  231. r5   = 0x1f; r6   = 0x0b; r7   = 0x3e; r8   = 0x00; r9   = 0x40;
  232. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  233. r15  = 0x00; r16  = 0xea; r17  = 0x8c; r18  = 0xdf; r19  = 0xa0;
  234. r20  = 0x60; r21  = 0xdf; r22  = 0x0b; r23  = 0xab; r24  = 0xff;
  235. boutb(25, 0x00, 0x3d4, 0x3d5);
  236.  
  237. r80  = 0x50; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x48;
  238. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x18; r89  = 0x00;
  239. r90  = 0x0a; 
  240. boutb(11, 0x50, 0x3d4, 0x3d5);
  241.  
  242. r92  = 0x0a; r93  = 0x00; r94  = 0x00; 
  243. boutb(3, 0x5c, 0x3d4, 0x3d5);
  244.  
  245. r96  = 0x2f; r97  = 0x81; r98  = 0x40; 
  246. boutb(3, 0x60, 0x3d4, 0x3d5);
  247.  
  248. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  249. boutb(5, 0x31, 0x3d4, 0x3d5);
  250.  
  251. r58  = 0x95; r59  = 0xbe; r60  = 0x40; 
  252. boutb(3, 0x3a, 0x3d4, 0x3d5);
  253.  
  254. r64  = 0x51; 
  255. boutb(1, 0x40, 0x3d4, 0x3d5);
  256.  
  257. r67  = 0x00; 
  258. boutb(1, 0x43, 0x3d4, 0x3d5);
  259.  
  260. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  261. boutb(5, 0x45, 0x3d4, 0x3d5);
  262.  
  263. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  264. boutb(4, 0x4c, 0x3d4, 0x3d5);
  265.  
  266. r66  = 0x0a; 
  267. boutb(1, 0x42, 0x3d4, 0x3d5);
  268.  
  269. r103 = 0x0a; 
  270. boutb(1, 0x67, 0x3d4, 0x3d5);
  271.  
  272. /*
  273.  *    Set Attribute Registers
  274.  */
  275.  
  276. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  277. r5   = 0x05; r6   = 0x06; r7   = 0x07; r8   = 0x10; r9   = 0x11;
  278. r10  = 0x12; r11  = 0x13; r12  = 0x14; r13  = 0x15; r14  = 0x16;
  279. r15  = 0x17; r16  = 0x41; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  280. r20  = 0x00; 
  281. boutb(21, 0x00, 0x3c0, 0x3c1);
  282.  
  283. /*
  284.  *    Set GDC Registers
  285.  */
  286.  
  287. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  288. r5   = 0x40; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  289. boutb(9, 0x00, 0x3ce, 0x3cf);
  290.  
  291. /*
  292.  *    Set Enhanced Command Registers
  293.  */
  294.  
  295. outw(0x4ae8, 0x0001);
  296. outw(0xbee8, 0x1000);
  297. outw(0xbee8, 0x33ff);
  298. outw(0xbee8, 0x2000);
  299. outw(0xbee8, 0x43ff);
  300. outw(0xbee8, 0xa000);
  301. outw(0xbee8, 0x03ff);
  302. outw(0x96e8, 0x03ff);
  303. outw(0x86e8, 0x0000);
  304. outw(0x82e8, 0x0000);
  305. [comment]
  306.     Graphics Mode: 800 x 600 x 256 colors.
  307.  
  308. [AdapterType]
  309.         S3
  310.  
  311. [ChipSet]
  312.         S386C80X
  313.  
  314. [ModeInfo]
  315.         ModeAttributes   = 0x18
  316.         BytesPerScanLine = 100
  317.         XResolution      = 800
  318.         YResolution      = 600
  319.         TextRows         = 37
  320.         BitsPerPixel     = 8
  321.         NumberOfPlanes   = 1
  322.         PageLength       = 614400
  323.         SaveSize         = 614400
  324.         TotalMemory      = 1048576
  325.         InterlaceMode    = 1
  326.         BufferAddress    = 0x0a0000
  327.  
  328. [TrapRegs]
  329.     0x3c2;
  330.     0x3c4, 0x00-0x04;
  331.     0x3c5;
  332.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  333.     0x3d5;
  334.     0x3c0, 0x00-0x14;
  335.     0x3c1;
  336.     0x3ce, 0x00-0x08;
  337.     0x3cf;
  338.     0x4ae8;
  339.     0xbee8;
  340.     0x96e8;
  341.     0x86e8;
  342.     0x82e8;
  343.  
  344. [SetMode]
  345.  
  346. /*
  347.  *    Set Sequencer Registers
  348.  */
  349.  
  350. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  351. boutb(5, 0x00, 0x3c4, 0x3c5);
  352.  
  353. outw(0x3c4, 0x0300);
  354. /*
  355.  *    Set CRT Registers
  356.  */
  357.  
  358. outw(0x3d4, 0x0e11);
  359. r0   = 0x7b; r1   = 0x63; r2   = 0x64; r3   = 0x9e; r4   = 0x68;
  360. r5   = 0x90; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  361. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  362. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0x64;
  363. r20  = 0x00; r21  = 0x57; r22  = 0x6f; r23  = 0xe3; r24  = 0xff;
  364. boutb(25, 0x00, 0x3d4, 0x3d5);
  365.  
  366. r80  = 0x00; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x48;
  367. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  368. r90  = 0x0a; 
  369. boutb(11, 0x50, 0x3d4, 0x3d5);
  370.  
  371. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  372. boutb(3, 0x5c, 0x3d4, 0x3d5);
  373.  
  374. r96  = 0x2f; r97  = 0x80; r98  = 0xc9; 
  375. boutb(3, 0x60, 0x3d4, 0x3d5);
  376.  
  377. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  378. boutb(5, 0x31, 0x3d4, 0x3d5);
  379.  
  380. r58  = 0x95; r59  = 0x7b; r60  = 0x00; 
  381. boutb(3, 0x3a, 0x3d4, 0x3d5);
  382.  
  383. r64  = 0x51; 
  384. boutb(1, 0x40, 0x3d4, 0x3d5);
  385.  
  386. r67  = 0x00; 
  387. boutb(1, 0x43, 0x3d4, 0x3d5);
  388.  
  389. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  390. boutb(5, 0x45, 0x3d4, 0x3d5);
  391.  
  392. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  393. boutb(4, 0x4c, 0x3d4, 0x3d5);
  394.  
  395. r66  = 0x02; 
  396. boutb(1, 0x42, 0x3d4, 0x3d5);
  397.  
  398. r103 = 0x02; 
  399. boutb(1, 0x67, 0x3d4, 0x3d5);
  400.  
  401. /*
  402.  *    Set Attribute Registers
  403.  */
  404.  
  405. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  406. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  407. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  408. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  409. r20  = 0x00; 
  410. boutb(21, 0x00, 0x3c0, 0x3c1);
  411.  
  412. /*
  413.  *    Set GDC Registers
  414.  */
  415.  
  416. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  417. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  418. boutb(9, 0x00, 0x3ce, 0x3cf);
  419.  
  420. /*
  421.  *    Set Enhanced Command Registers
  422.  */
  423.  
  424. outw(0x4ae8, 0x0007);
  425. outw(0xbee8, 0x1000);
  426. outw(0xbee8, 0x33ff);
  427. outw(0xbee8, 0x2000);
  428. outw(0xbee8, 0x43ff);
  429. outw(0xbee8, 0xa000);
  430. outw(0xbee8, 0x03ff);
  431. outw(0x96e8, 0x03ff);
  432. outw(0x86e8, 0x0000);
  433. outw(0x82e8, 0x0000);
  434. [comment]
  435.     Graphics Mode: 800 x 600 x 64K colors.
  436.  
  437. [AdapterType]
  438.         S3
  439.  
  440. [ChipSet]
  441.         S386C80X
  442.  
  443. [ModeInfo]
  444.         ModeAttributes   = 0x18
  445.         BytesPerScanLine = 100
  446.         XResolution      = 800
  447.         YResolution      = 600
  448.         TextRows         = 37
  449.         BitsPerPixel     = 16
  450.         NumberOfPlanes   = 1
  451.         PageLength       = 960000
  452.         SaveSize         = 960000
  453.         TotalMemory      = 1048576
  454.         InterlaceMode    = 1
  455.         BufferAddress    = 0x0a0000
  456.  
  457. [TrapRegs]
  458.     0x3c2;
  459.     0x3c4, 0x00-0x04;
  460.     0x3c5;
  461.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  462.     0x3d5;
  463.     0x3c0, 0x00-0x14;
  464.     0x3c1;
  465.     0x3ce, 0x00-0x08;
  466.     0x3cf;
  467.     0x4ae8;
  468.     0xbee8;
  469.     0x96e8;
  470.     0x86e8;
  471.     0x82e8;
  472.  
  473. [SetMode]
  474.  
  475. /*
  476.  *    Set Sequencer Registers
  477.  */
  478.  
  479. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  480. boutb(5, 0x00, 0x3c4, 0x3c5);
  481.  
  482. outw(0x3c4, 0x0300);
  483. /*
  484.  *    Set CRT Registers
  485.  */
  486.  
  487. outw(0x3d4, 0x0e11);
  488. r0   = 0x80; r1   = 0x63; r2   = 0x64; r3   = 0x83; r4   = 0x6a;
  489. r5   = 0x13; r6   = 0x6f; r7   = 0xf0; r8   = 0x00; r9   = 0x60;
  490. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  491. r15  = 0x00; r16  = 0x58; r17  = 0x8a; r18  = 0x57; r19  = 0xc8;
  492. r20  = 0x00; r21  = 0x57; r22  = 0x6f; r23  = 0xa3; r24  = 0xff;
  493. boutb(25, 0x00, 0x3d4, 0x3d5);
  494.  
  495. r80  = 0x90; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x48;
  496. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x18; r89  = 0x00;
  497. r90  = 0x0a; 
  498. boutb(11, 0x50, 0x3d4, 0x3d5);
  499.  
  500. r92  = 0x0a; r93  = 0x00; r94  = 0x00; 
  501. boutb(3, 0x5c, 0x3d4, 0x3d5);
  502.  
  503. r96  = 0x2f; r97  = 0x81; r98  = 0x92; 
  504. boutb(3, 0x60, 0x3d4, 0x3d5);
  505.  
  506. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  507. boutb(5, 0x31, 0x3d4, 0x3d5);
  508.  
  509. r58  = 0x95; r59  = 0xf8; r60  = 0x00; 
  510. boutb(3, 0x3a, 0x3d4, 0x3d5);
  511.  
  512. r64  = 0x51; 
  513. boutb(1, 0x40, 0x3d4, 0x3d5);
  514.  
  515. r67  = 0x80; 
  516. boutb(1, 0x43, 0x3d4, 0x3d5);
  517.  
  518. r69  = 0x80; r70  = 0x80; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  519. boutb(5, 0x45, 0x3d4, 0x3d5);
  520.  
  521. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  522. boutb(4, 0x4c, 0x3d4, 0x3d5);
  523.  
  524. r66  = 0x0a; 
  525. boutb(1, 0x42, 0x3d4, 0x3d5);
  526.  
  527. r103 = 0x0a; 
  528. boutb(1, 0x67, 0x3d4, 0x3d5);
  529.  
  530. /*
  531.  *    Set Attribute Registers
  532.  */
  533.  
  534. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  535. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  536. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  537. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  538. r20  = 0x00; 
  539. boutb(21, 0x00, 0x3c0, 0x3c1);
  540.  
  541. /*
  542.  *    Set GDC Registers
  543.  */
  544.  
  545. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  546. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  547. boutb(9, 0x00, 0x3ce, 0x3cf);
  548.  
  549. /*
  550.  *    Set Enhanced Command Registers
  551.  */
  552.  
  553. outw(0x4ae8, 0x0003);
  554. outw(0xbee8, 0x1000);
  555. outw(0xbee8, 0x33ff);
  556. outw(0xbee8, 0x2000);
  557. outw(0xbee8, 0x43ff);
  558. outw(0xbee8, 0xa000);
  559. outw(0xbee8, 0x03ff);
  560. outw(0x96e8, 0x03ff);
  561. outw(0x86e8, 0x0000);
  562. outw(0x82e8, 0x0000);
  563. [comment]
  564.     Graphics Mode: 1024 x 768 x 256 colors.
  565.  
  566. [AdapterType]
  567.         S3
  568.  
  569. [ChipSet]
  570.         S386C80X
  571.  
  572. [ModeInfo]
  573.         ModeAttributes   = 0x18
  574.         BytesPerScanLine = 128
  575.         XResolution      = 1024
  576.         YResolution      = 768
  577.         TextRows         = 48
  578.         BitsPerPixel     = 8
  579.         NumberOfPlanes   = 1
  580.         PageLength       = 786432
  581.         SaveSize         = 786432
  582.         TotalMemory      = 1048576
  583.         InterlaceMode    = 0
  584.         BufferAddress    = 0x0a0000
  585.  
  586. [TrapRegs]
  587.     0x3c2;
  588.     0x3c4, 0x00-0x04;
  589.     0x3c5;
  590.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  591.     0x3d5;
  592.     0x3c0, 0x00-0x14;
  593.     0x3c1;
  594.     0x3ce, 0x00-0x08;
  595.     0x3cf;
  596.     0x4ae8;
  597.     0xbee8;
  598.     0x96e8;
  599.     0x86e8;
  600.     0x82e8;
  601.  
  602. [SetMode]
  603.  
  604. /*
  605.  *    Set Sequencer Registers
  606.  */
  607.  
  608. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  609. boutb(5, 0x00, 0x3c4, 0x3c5);
  610.  
  611. outw(0x3c4, 0x0300);
  612. /*
  613.  *    Set CRT Registers
  614.  */
  615.  
  616. outw(0x3d4, 0x0e11);
  617. r0   = 0x99; r1   = 0x7f; r2   = 0x7f; r3   = 0x9c; r4   = 0x84;
  618. r5   = 0x19; r6   = 0x97; r7   = 0x1f; r8   = 0x00; r9   = 0x40;
  619. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  620. r15  = 0x00; r16  = 0x81; r17  = 0x83; r18  = 0x7f; r19  = 0x80;
  621. r20  = 0x00; r21  = 0x80; r22  = 0x97; r23  = 0xe3; r24  = 0xff;
  622. boutb(25, 0x00, 0x3d4, 0x3d5);
  623.  
  624. r80  = 0x00; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x48;
  625. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  626. r90  = 0x0a; 
  627. boutb(11, 0x50, 0x3d4, 0x3d5);
  628.  
  629. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  630. boutb(3, 0x5c, 0x3d4, 0x3d5);
  631.  
  632. r96  = 0x2f; r97  = 0x81; r98  = 0x00; 
  633. boutb(3, 0x60, 0x3d4, 0x3d5);
  634.  
  635. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  636. boutb(5, 0x31, 0x3d4, 0x3d5);
  637.  
  638. r58  = 0x95; r59  = 0x94; r60  = 0x48; 
  639. boutb(3, 0x3a, 0x3d4, 0x3d5);
  640.  
  641. r64  = 0x51; 
  642. boutb(1, 0x40, 0x3d4, 0x3d5);
  643.  
  644. r67  = 0x00; 
  645. boutb(1, 0x43, 0x3d4, 0x3d5);
  646.  
  647. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  648. boutb(5, 0x45, 0x3d4, 0x3d5);
  649.  
  650. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  651. boutb(4, 0x4c, 0x3d4, 0x3d5);
  652.  
  653. r66  = 0x22; 
  654. boutb(1, 0x42, 0x3d4, 0x3d5);
  655.  
  656. r103 = 0x22; 
  657. boutb(1, 0x67, 0x3d4, 0x3d5);
  658.  
  659. /*
  660.  *    Set Attribute Registers
  661.  */
  662.  
  663. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  664. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  665. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  666. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  667. r20  = 0x00; 
  668. boutb(21, 0x00, 0x3c0, 0x3c1);
  669.  
  670. /*
  671.  *    Set GDC Registers
  672.  */
  673.  
  674. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  675. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  676. boutb(9, 0x00, 0x3ce, 0x3cf);
  677.  
  678. /*
  679.  *    Set Enhanced Command Registers
  680.  */
  681.  
  682. outw(0x4ae8, 0x0007);
  683. outw(0xbee8, 0x1000);
  684. outw(0xbee8, 0x33ff);
  685. outw(0xbee8, 0x2000);
  686. outw(0xbee8, 0x43ff);
  687. outw(0xbee8, 0xa000);
  688. outw(0xbee8, 0x03ff);
  689. outw(0x96e8, 0x03ff);
  690. outw(0x86e8, 0x0000);
  691. outw(0x82e8, 0x0000);
  692. [comment]
  693.     Graphics Mode: 1152 x 870 x 256 colors.
  694.  
  695. [AdapterType]
  696.         S3
  697.  
  698. [ChipSet]
  699.         S386C80X
  700.  
  701. [ModeInfo]
  702.         ModeAttributes   = 0x18
  703.         BytesPerScanLine = 144
  704.         XResolution      = 1152
  705.         YResolution      = 870
  706.         TextRows         = 54
  707.         BitsPerPixel     = 8
  708.         NumberOfPlanes   = 1
  709.         PageLength       = 1002240
  710.         SaveSize         = 1002240
  711.         TotalMemory      = 1048576
  712.         InterlaceMode    = 0
  713.         BufferAddress    = 0x0a0000
  714.  
  715. [TrapRegs]
  716.     0x3c2;
  717.     0x3c4, 0x00-0x04;
  718.     0x3c5;
  719.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  720.     0x3d5;
  721.     0x3c0, 0x00-0x14;
  722.     0x3c1;
  723.     0x3ce, 0x00-0x08;
  724.     0x3cf;
  725.     0x4ae8;
  726.     0xbee8;
  727.     0x96e8;
  728.     0x86e8;
  729.     0x82e8;
  730.  
  731. [SetMode]
  732.  
  733. /*
  734.  *    Set Sequencer Registers
  735.  */
  736.  
  737. r0   = 0x00; r1   = 0x01; r2   = 0x0f; r3   = 0x00; r4   = 0x0e;
  738. boutb(5, 0x00, 0x3c4, 0x3c5);
  739.  
  740. outw(0x3c4, 0x0300);
  741. /*
  742.  *    Set CRT Registers
  743.  */
  744.  
  745. outw(0x3d4, 0x0e11);
  746. r0   = 0xac; r1   = 0x8f; r2   = 0x90; r3   = 0x8f; r4   = 0x95;
  747. r5   = 0x84; r6   = 0xc8; r7   = 0x1f; r8   = 0x00; r9   = 0x40;
  748. r10  = 0x00; r11  = 0x00; r12  = 0x00; r13  = 0x00; r14  = 0xff;
  749. r15  = 0x00; r16  = 0xb4; r17  = 0x86; r18  = 0xb2; r19  = 0x90;
  750. r20  = 0x00; r21  = 0xb3; r22  = 0xc8; r23  = 0xe3; r24  = 0xff;
  751. boutb(25, 0x00, 0x3d4, 0x3d5);
  752.  
  753. r80  = 0x01; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x48;
  754. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x18; r89  = 0x00;
  755. r90  = 0x0a; 
  756. boutb(11, 0x50, 0x3d4, 0x3d5);
  757.  
  758. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  759. boutb(3, 0x5c, 0x3d4, 0x3d5);
  760.  
  761. r96  = 0x2f; r97  = 0x81; r98  = 0x40; 
  762. boutb(3, 0x60, 0x3d4, 0x3d5);
  763.  
  764. r49  = 0x8d; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  765. boutb(5, 0x31, 0x3d4, 0x3d5);
  766.  
  767. r58  = 0x95; r59  = 0xbb; r60  = 0x60; 
  768. boutb(3, 0x3a, 0x3d4, 0x3d5);
  769.  
  770. r64  = 0x51; 
  771. boutb(1, 0x40, 0x3d4, 0x3d5);
  772.  
  773. r67  = 0x00; 
  774. boutb(1, 0x43, 0x3d4, 0x3d5);
  775.  
  776. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  777. boutb(5, 0x45, 0x3d4, 0x3d5);
  778.  
  779. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  780. boutb(4, 0x4c, 0x3d4, 0x3d5);
  781.  
  782. r66  = 0x22; 
  783. boutb(1, 0x42, 0x3d4, 0x3d5);
  784.  
  785. r103 = 0x22; 
  786. boutb(1, 0x67, 0x3d4, 0x3d5);
  787.  
  788. /*
  789.  *    Set Attribute Registers
  790.  */
  791.  
  792. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  793. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  794. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  795. r15  = 0x3f; r16  = 0x01; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  796. r20  = 0x00; 
  797. boutb(21, 0x00, 0x3c0, 0x3c1);
  798.  
  799. /*
  800.  *    Set GDC Registers
  801.  */
  802.  
  803. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  804. r5   = 0x00; r6   = 0x05; r7   = 0x0f; r8   = 0xff; 
  805. boutb(9, 0x00, 0x3ce, 0x3cf);
  806.  
  807. /*
  808.  *    Set Enhanced Command Registers
  809.  */
  810.  
  811. outw(0x4ae8, 0x0007);
  812. outw(0xbee8, 0x1000);
  813. outw(0xbee8, 0x33ff);
  814. outw(0xbee8, 0x2000);
  815. outw(0xbee8, 0x43ff);
  816. outw(0xbee8, 0xa000);
  817. outw(0xbee8, 0x03ff);
  818. outw(0x96e8, 0x03ff);
  819. outw(0x86e8, 0x0000);
  820. outw(0x82e8, 0x0000);
  821. [comment]
  822.     Text Mode: 40 cols, 25 rows.
  823.  
  824. [AdapterType]
  825.         S3
  826.  
  827. [ChipSet]
  828.         S386C80X
  829.  
  830. [ModeInfo]
  831.         ModeAttributes   = 0x08
  832.         BytesPerScanLine = 40
  833.         XResolution      = 360
  834.         YResolution      = 400
  835.         XCharSize        = 9
  836.         YCharSize        = 16
  837.         TextRows         = 25
  838.         BitsPerPixel     = 4
  839.         NumberOfPlanes   = 1
  840.         PageLength       = 4000
  841.         SaveSize         = 4000
  842.         TotalMemory      = 1048576
  843.         InterlaceMode    = 1
  844.         BufferAddress    = 0x0b8000
  845.  
  846. [TrapRegs]
  847.     0x3c2;
  848.     0x3c4, 0x00-0x04;
  849.     0x3c5;
  850.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  851.     0x3d5;
  852.     0x3c0, 0x00-0x14;
  853.     0x3c1;
  854.     0x3ce, 0x00-0x08;
  855.     0x3cf;
  856.     0x4ae8;
  857.  
  858. [SetMode]
  859.  
  860. /*
  861.  *    Set Sequencer Registers
  862.  */
  863.  
  864. r0   = 0x00; r1   = 0x08; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  865. boutb(5, 0x00, 0x3c4, 0x3c5);
  866.  
  867. outw(0x3c4, 0x0300);
  868. /*
  869.  *    Set CRT Registers
  870.  */
  871.  
  872. outw(0x3d4, 0x0e11);
  873. r0   = 0x2d; r1   = 0x27; r2   = 0x28; r3   = 0x90; r4   = 0x2b;
  874. r5   = 0xa0; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  875. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  876. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x14;
  877. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  878. boutb(25, 0x00, 0x3d4, 0x3d5);
  879.  
  880. r80  = 0x08; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x38;
  881. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  882. r90  = 0x0a; 
  883. boutb(11, 0x50, 0x3d4, 0x3d5);
  884.  
  885. r92  = 0x01; r93  = 0x00; r94  = 0x00; 
  886. boutb(3, 0x5c, 0x3d4, 0x3d5);
  887.  
  888. r96  = 0x07; r97  = 0x80; r98  = 0xa1; 
  889. boutb(3, 0x60, 0x3d4, 0x3d5);
  890.  
  891. r49  = 0x85; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  892. boutb(5, 0x31, 0x3d4, 0x3d5);
  893.  
  894. r58  = 0x85; r59  = 0x5a; r60  = 0x10; 
  895. boutb(3, 0x3a, 0x3d4, 0x3d5);
  896.  
  897. r64  = 0x59; 
  898. boutb(1, 0x40, 0x3d4, 0x3d5);
  899.  
  900. r67  = 0x00; 
  901. boutb(1, 0x43, 0x3d4, 0x3d5);
  902.  
  903. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  904. boutb(5, 0x45, 0x3d4, 0x3d5);
  905.  
  906. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  907. boutb(4, 0x4c, 0x3d4, 0x3d5);
  908.  
  909. r66  = 0x02; 
  910. boutb(1, 0x42, 0x3d4, 0x3d5);
  911.  
  912. r103 = 0x02; 
  913. boutb(1, 0x67, 0x3d4, 0x3d5);
  914.  
  915. /*
  916.  *    Set Attribute Registers
  917.  */
  918.  
  919. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  920. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  921. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  922. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  923. r20  = 0x00; 
  924. boutb(21, 0x00, 0x3c0, 0x3c1);
  925.  
  926. /*
  927.  *    Set GDC Registers
  928.  */
  929.  
  930. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  931. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff; 
  932. boutb(9, 0x00, 0x3ce, 0x3cf);
  933.  
  934. /*
  935.  *    Set CRT Registers
  936.  */
  937.  
  938. rmwb(0x3d4, 0x3d5, 0x40, 0xff, 0x01);
  939. /*
  940.  *    Set Enhanced Command Registers
  941.  */
  942.  
  943. outw(0x4ae8, 0x0000);
  944. rmwb(0x3d4, 0x3d5, 0x40, 0xfe, 0x00);
  945. [comment]
  946.     Text Mode: 80 cols, 25 rows.
  947.  
  948. [AdapterType]
  949.         S3
  950.  
  951. [ChipSet]
  952.         S386C80X
  953.  
  954. [ModeInfo]
  955.         ModeAttributes   = 0x08
  956.         BytesPerScanLine = 80
  957.         XResolution      = 720
  958.         YResolution      = 400
  959.         XCharSize        = 9
  960.         YCharSize        = 16
  961.         TextRows         = 25
  962.         BitsPerPixel     = 4
  963.         NumberOfPlanes   = 1
  964.         PageLength       = 4000
  965.         SaveSize         = 4000
  966.         TotalMemory      = 1048576
  967.         InterlaceMode    = 1
  968.         BufferAddress    = 0x0b8000
  969.  
  970. [TrapRegs]
  971.     0x3c2;
  972.     0x3c4, 0x00-0x04, 0x09-0x18;
  973.     0x3c5;
  974.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  975.     0x3d5;
  976.     0x3c0, 0x00-0x14;
  977.     0x3c1;
  978.     0x3ce, 0x00-0x08;
  979.     0x3cf;
  980.     0x4ae8;
  981.  
  982. [SetMode]
  983.  
  984. /*
  985.  *    Set Sequencer Registers
  986.  */
  987.  
  988. r0   = 0x00; r1   = 0x00; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  989. boutb(5, 0x00, 0x3c4, 0x3c5);
  990.  
  991. outw(0x3c4, 0x0608);
  992. r9   = 0x00; r10  = 0x03; r11  = 0x00; r12  = 0x02; r13  = 0x05;
  993. r14  = 0x06; r15  = 0x07; r16  = 0x03; r17  = 0x00; r18  = 0x03;
  994. r19  = 0x00; r20  = 0x02; r21  = 0x05; r22  = 0x06; r23  = 0x07;
  995. r24  = 0x03; 
  996. boutb(16, 0x09, 0x3c4, 0x3c5);
  997.  
  998. outw(0x3c4, 0x0008);
  999. outw(0x3c4, 0x0300);
  1000. /*
  1001.  *    Set CRT Registers
  1002.  */
  1003.  
  1004. outw(0x3d4, 0x0e11);
  1005. r0   = 0x5f; r1   = 0x4f; r2   = 0x50; r3   = 0x82; r4   = 0x55;
  1006. r5   = 0x81; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  1007. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x00;
  1008. r15  = 0x00; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x28;
  1009. r20  = 0x1f; r21  = 0x96; r22  = 0xb9; r23  = 0xa3; r24  = 0xff;
  1010. boutb(25, 0x00, 0x3d4, 0x3d5);
  1011.  
  1012. r80  = 0x08; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x38;
  1013. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  1014. r90  = 0x0a; 
  1015. boutb(11, 0x50, 0x3d4, 0x3d5);
  1016.  
  1017. r92  = 0x01; r93  = 0x00; r94  = 0x00; 
  1018. boutb(3, 0x5c, 0x3d4, 0x3d5);
  1019.  
  1020. r96  = 0x07; r97  = 0x80; r98  = 0xa1; 
  1021. boutb(3, 0x60, 0x3d4, 0x3d5);
  1022.  
  1023. r49  = 0x85; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  1024. boutb(5, 0x31, 0x3d4, 0x3d5);
  1025.  
  1026. r58  = 0x85; r59  = 0x5a; r60  = 0x10; 
  1027. boutb(3, 0x3a, 0x3d4, 0x3d5);
  1028.  
  1029. r64  = 0x59; 
  1030. boutb(1, 0x40, 0x3d4, 0x3d5);
  1031.  
  1032. r67  = 0x00; 
  1033. boutb(1, 0x43, 0x3d4, 0x3d5);
  1034.  
  1035. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  1036. boutb(5, 0x45, 0x3d4, 0x3d5);
  1037.  
  1038. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  1039. boutb(4, 0x4c, 0x3d4, 0x3d5);
  1040.  
  1041. r66  = 0x02; 
  1042. boutb(1, 0x42, 0x3d4, 0x3d5);
  1043.  
  1044. r103 = 0x02; 
  1045. boutb(1, 0x67, 0x3d4, 0x3d5);
  1046.  
  1047. /*
  1048.  *    Set Attribute Registers
  1049.  */
  1050.  
  1051. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1052. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1053. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1054. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x08;
  1055. r20  = 0x00; 
  1056. boutb(21, 0x00, 0x3c0, 0x3c1);
  1057.  
  1058. /*
  1059.  *    Set GDC Registers
  1060.  */
  1061.  
  1062. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1063. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff; 
  1064. boutb(9, 0x00, 0x3ce, 0x3cf);
  1065.  
  1066. /*
  1067.  *    Set CRT Registers
  1068.  */
  1069.  
  1070. rmwb(0x3d4, 0x3d5, 0x40, 0xff, 0x01);
  1071. /*
  1072.  *    Set Enhanced Command Registers
  1073.  */
  1074.  
  1075. outw(0x4ae8, 0x0000);
  1076. rmwb(0x3d4, 0x3d5, 0x40, 0xfe, 0x00);
  1077. [comment]
  1078.     Text Mode: 132 cols, 25 rows.
  1079.  
  1080. [AdapterType]
  1081.         S3
  1082.  
  1083. [ChipSet]
  1084.         S386C80X
  1085.  
  1086. [ModeInfo]
  1087.         ModeAttributes   = 0x08
  1088.         BytesPerScanLine = 132
  1089.         XResolution      = 1056
  1090.         YResolution      = 400
  1091.         XCharSize        = 8
  1092.         YCharSize        = 16
  1093.         TextRows         = 25
  1094.         BitsPerPixel     = 4
  1095.         NumberOfPlanes   = 1
  1096.         PageLength       = 6600
  1097.         SaveSize         = 6600
  1098.         TotalMemory      = 1048576
  1099.         InterlaceMode    = 1
  1100.         BufferAddress    = 0x0b8000
  1101.  
  1102. [TrapRegs]
  1103.     0x3c2;
  1104.     0x4ae8;
  1105.     0x3c4, 0x00-0x04;
  1106.     0x3c5;
  1107.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  1108.     0x3d5;
  1109.     0x3c0, 0x00-0x14;
  1110.     0x3c1;
  1111.     0x3ce, 0x00-0x08;
  1112.     0x3cf;
  1113.  
  1114. [SetMode]
  1115.  
  1116. /*
  1117.  *    Set Enhanced Command Registers
  1118.  */
  1119.  
  1120. outw(0x4ae8, 0x0000);
  1121. /*
  1122.  *    Set Sequencer Registers
  1123.  */
  1124.  
  1125. r0   = 0x00; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  1126. boutb(5, 0x00, 0x3c4, 0x3c5);
  1127.  
  1128. outw(0x3c4, 0x0300);
  1129. /*
  1130.  *    Set CRT Registers
  1131.  */
  1132.  
  1133. outw(0x3d4, 0x0e11);
  1134. r0   = 0x9a; r1   = 0x83; r2   = 0x86; r3   = 0x9d; r4   = 0x87;
  1135. r5   = 0x1b; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  1136. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x03;
  1137. r15  = 0x9c; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  1138. r20  = 0x1f; r21  = 0x96; r22  = 0xbf; r23  = 0xa3; r24  = 0xff;
  1139. boutb(25, 0x00, 0x3d4, 0x3d5);
  1140.  
  1141. r80  = 0x00; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x38;
  1142. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  1143. r90  = 0x0a; 
  1144. boutb(11, 0x50, 0x3d4, 0x3d5);
  1145.  
  1146. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  1147. boutb(3, 0x5c, 0x3d4, 0x3d5);
  1148.  
  1149. r96  = 0x07; r97  = 0x80; r98  = 0x85; 
  1150. boutb(3, 0x60, 0x3d4, 0x3d5);
  1151.  
  1152. r49  = 0x85; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  1153. boutb(5, 0x31, 0x3d4, 0x3d5);
  1154.  
  1155. r58  = 0x85; r59  = 0x99; r60  = 0x40; 
  1156. boutb(3, 0x3a, 0x3d4, 0x3d5);
  1157.  
  1158. r64  = 0x59; 
  1159. boutb(1, 0x40, 0x3d4, 0x3d5);
  1160.  
  1161. r67  = 0x00; 
  1162. boutb(1, 0x43, 0x3d4, 0x3d5);
  1163.  
  1164. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  1165. boutb(5, 0x45, 0x3d4, 0x3d5);
  1166.  
  1167. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  1168. boutb(4, 0x4c, 0x3d4, 0x3d5);
  1169.  
  1170. r66  = 0x02; 
  1171. boutb(1, 0x42, 0x3d4, 0x3d5);
  1172.  
  1173. r103 = 0x02; 
  1174. boutb(1, 0x67, 0x3d4, 0x3d5);
  1175.  
  1176. /*
  1177.  *    Set Attribute Registers
  1178.  */
  1179.  
  1180. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1181. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1182. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1183. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1184. r20  = 0x00; 
  1185. boutb(21, 0x00, 0x3c0, 0x3c1);
  1186.  
  1187. /*
  1188.  *    Set GDC Registers
  1189.  */
  1190.  
  1191. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1192. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff; 
  1193. boutb(9, 0x00, 0x3ce, 0x3cf);
  1194.  
  1195. /*
  1196.  *    Set CRT Registers
  1197.  */
  1198.  
  1199. rmwb(0x3d4, 0x3d5, 0x40, 0xff, 0x01);
  1200. /*
  1201.  *    Set Enhanced Command Registers
  1202.  */
  1203.  
  1204. outw(0x4ae8, 0x0000);
  1205. rmwb(0x3d4, 0x3d5, 0x40, 0xfe, 0x00);
  1206. [comment]
  1207.     Text Mode: 132 cols, 43 rows.
  1208.  
  1209. [AdapterType]
  1210.         S3
  1211.  
  1212. [ChipSet]
  1213.         S386C80X
  1214.  
  1215. [ModeInfo]
  1216.         ModeAttributes   = 0x08
  1217.         BytesPerScanLine = 132
  1218.         XResolution      = 1056
  1219.         YResolution      = 400
  1220.         XCharSize        = 8
  1221.         YCharSize        = 16
  1222.         TextRows         = 43
  1223.         BitsPerPixel     = 4
  1224.         NumberOfPlanes   = 1
  1225.         PageLength       = 11616
  1226.         SaveSize         = 11616
  1227.         TotalMemory      = 1048576
  1228.         InterlaceMode    = 1
  1229.         BufferAddress    = 0x0b8000
  1230.  
  1231. [TrapRegs]
  1232.     0x3c2;
  1233.     0x4ae8;
  1234.     0x3c4, 0x00-0x04;
  1235.     0x3c5;
  1236.     0x3d4, 0x00-0x18, 0x50-0x5a, 0x5c-0x5e, 0x60-0x62, 0x31-0x35, 0x3a-0x3c, 0x40-0x40, 0x43-0x43, 0x45-0x49, 0x4c-0x4f, 0x42-0x42, 0x67-0x67;
  1237.     0x3d5;
  1238.     0x3c0, 0x00-0x14;
  1239.     0x3c1;
  1240.     0x3ce, 0x00-0x08;
  1241.     0x3cf;
  1242.  
  1243. [SetMode]
  1244.  
  1245. /*
  1246.  *    Set Enhanced Command Registers
  1247.  */
  1248.  
  1249. outw(0x4ae8, 0x0000);
  1250. /*
  1251.  *    Set Sequencer Registers
  1252.  */
  1253.  
  1254. r0   = 0x00; r1   = 0x01; r2   = 0x03; r3   = 0x00; r4   = 0x02;
  1255. boutb(5, 0x00, 0x3c4, 0x3c5);
  1256.  
  1257. outw(0x3c4, 0x0300);
  1258. /*
  1259.  *    Set CRT Registers
  1260.  */
  1261.  
  1262. outw(0x3d4, 0x0e11);
  1263. r0   = 0x9a; r1   = 0x83; r2   = 0x86; r3   = 0x9d; r4   = 0x87;
  1264. r5   = 0x1b; r6   = 0xbf; r7   = 0x1f; r8   = 0x00; r9   = 0x4f;
  1265. r10  = 0x0d; r11  = 0x0e; r12  = 0x00; r13  = 0x00; r14  = 0x03;
  1266. r15  = 0x9c; r16  = 0x9c; r17  = 0x8e; r18  = 0x8f; r19  = 0x42;
  1267. r20  = 0x1f; r21  = 0x96; r22  = 0xbf; r23  = 0xa3; r24  = 0xff;
  1268. boutb(25, 0x00, 0x3d4, 0x3d5);
  1269.  
  1270. r80  = 0x00; r81  = 0x00; r82  = 0x00; r83  = 0x00; r84  = 0x38;
  1271. r85  = 0x00; r86  = 0x00; r87  = 0x00; r88  = 0x08; r89  = 0x00;
  1272. r90  = 0x0a; 
  1273. boutb(11, 0x50, 0x3d4, 0x3d5);
  1274.  
  1275. r92  = 0x02; r93  = 0x00; r94  = 0x00; 
  1276. boutb(3, 0x5c, 0x3d4, 0x3d5);
  1277.  
  1278. r96  = 0x07; r97  = 0x80; r98  = 0x85; 
  1279. boutb(3, 0x60, 0x3d4, 0x3d5);
  1280.  
  1281. r49  = 0x85; r50  = 0x00; r51  = 0x00; r52  = 0x00; r53  = 0x00;
  1282. boutb(5, 0x31, 0x3d4, 0x3d5);
  1283.  
  1284. r58  = 0x85; r59  = 0x99; r60  = 0x40; 
  1285. boutb(3, 0x3a, 0x3d4, 0x3d5);
  1286.  
  1287. r64  = 0x59; 
  1288. boutb(1, 0x40, 0x3d4, 0x3d5);
  1289.  
  1290. r67  = 0x00; 
  1291. boutb(1, 0x43, 0x3d4, 0x3d5);
  1292.  
  1293. r69  = 0x00; r70  = 0x00; r71  = 0xff; r72  = 0xfc; r73  = 0xff;
  1294. boutb(5, 0x45, 0x3d4, 0x3d5);
  1295.  
  1296. r76  = 0xff; r77  = 0xff; r78  = 0xff; r79  = 0xdf; 
  1297. boutb(4, 0x4c, 0x3d4, 0x3d5);
  1298.  
  1299. r66  = 0x02; 
  1300. boutb(1, 0x42, 0x3d4, 0x3d5);
  1301.  
  1302. r103 = 0x02; 
  1303. boutb(1, 0x67, 0x3d4, 0x3d5);
  1304.  
  1305. /*
  1306.  *    Set Attribute Registers
  1307.  */
  1308.  
  1309. r0   = 0x00; r1   = 0x01; r2   = 0x02; r3   = 0x03; r4   = 0x04;
  1310. r5   = 0x05; r6   = 0x14; r7   = 0x07; r8   = 0x38; r9   = 0x39;
  1311. r10  = 0x3a; r11  = 0x3b; r12  = 0x3c; r13  = 0x3d; r14  = 0x3e;
  1312. r15  = 0x3f; r16  = 0x0c; r17  = 0x00; r18  = 0x0f; r19  = 0x00;
  1313. r20  = 0x00; 
  1314. boutb(21, 0x00, 0x3c0, 0x3c1);
  1315.  
  1316. /*
  1317.  *    Set GDC Registers
  1318.  */
  1319.  
  1320. r0   = 0x00; r1   = 0x00; r2   = 0x00; r3   = 0x00; r4   = 0x00;
  1321. r5   = 0x10; r6   = 0x0e; r7   = 0x00; r8   = 0xff; 
  1322. boutb(9, 0x00, 0x3ce, 0x3cf);
  1323.  
  1324. /*
  1325.  *    Set CRT Registers
  1326.  */
  1327.  
  1328. rmwb(0x3d4, 0x3d5, 0x40, 0xff, 0x01);
  1329. /*
  1330.  *    Set Enhanced Command Registers
  1331.  */
  1332.  
  1333. outw(0x4ae8, 0x0000);
  1334. rmwb(0x3d4, 0x3d5, 0x40, 0xfe, 0x00);
  1335.