home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Examples / DriverKit / ATI / ATI_reloc.tproj / ATIModes.c < prev    next >
Text File  |  1993-09-28  |  6KB  |  152 lines

  1. /* Copyright (c) 1992, 1993 NeXT Computer, Inc.  All rights reserved. 
  2.  *
  3.  * ATIModes.c - Mode definitions for the ATi display driver.
  4.  *
  5.  * HISTORY
  6.  * 07 Oct 92    Joe Pasqua
  7.  *      Created. 
  8.  * 01 June 93    Mike Paquette
  9.  *    Rewrite: Convert from Corsair device driver to general MACH32 chipset
  10.  *         driver. Add support for multiple DACs and CRT setups.
  11.  *        Add 8 bit monochrome support.  Add support for non-Cosair
  12.  *        implementations.
  13.  *  7 July 1993    Derek B Clegg
  14.  *    Cleaned up for external release.
  15.  */
  16. #import "ATIModes.h"
  17.  
  18. const ATI_DACSetup ATI_DAC_Setup_15BPP = {
  19.     0, 1, 0x0d, 0x402A, 0x00, 0x03, 0xA0, IO_15BitsPerPixel
  20. };
  21.  
  22. const ATI_DACSetup ATI_DAC_Setup_8BPP = {
  23.     0, 0x30, 0x2d, 0x401A, 0xFF, 0x03, 0x00, IO_8BitsPerPixel
  24. };
  25.  
  26. /* 800 x 600, 60Hz, noninterlaced for slow/double clocked DACS (Bt481,ATT491)
  27.  * Note that this programs an 80 MHz dot clock, the current maximum. */
  28. static const ATI_CRTCSetup ATI_crt_800_60_SlowDAC = {
  29.     800, 600, 0x83, 0x63, 0x68, 0x10, 0x4E3, 0x4ab, 0x4B0, 0x04, 0x23,
  30.     0x062C, 0,
  31. };
  32.  
  33. /* 800 x 600, 72Hz, noninterlaced. */
  34. static const ATI_CRTCSetup ATI_crt_800_72 = {
  35.     800, 600, 0x82, 0x63, 0x6A, 0x0F, 0x537, 0x4ab, 0x4F8, 0x06, 0x23,
  36.     0x0610, 0,
  37. };
  38.  
  39. /* 800 x 600, 60Hz, noninterlaced. */
  40. static const ATI_CRTCSetup ATI_crt_800_60 = {
  41.     800, 600, 0x83, 0x63, 0x68, 0x10, 0x4E3, 0x4ab, 0x4B0, 0x04, 0x23,
  42.     0x0630, 0,
  43. };
  44.  
  45. /* 1024 x 768, 76Hz, noninterlaced. */
  46. static const ATI_CRTCSetup ATI_crt_1024_76 = {
  47.     1024, 768, 0xa2, 0x7f, 0x87, 0x0B, 0x64A, 0x5ff, 0x60B, 0x04, 0x23,
  48.     0x062c, 0,
  49. };
  50.  
  51. /* 1024 x 768, 72Hz, noninterlaced. */
  52. static const ATI_CRTCSetup ATI_crt_1024_72 = {
  53.     1024, 768, 0xa1, 0x7f, 0x82, 0x10, 0x649, 0x5ff, 0x602, 0x26, 0x23,
  54.     0x0638, 0,
  55. };
  56.  
  57. /* 1024 x 768, 60Hz, noninterlaced. */
  58. static const ATI_CRTCSetup ATI_crt_1024_60 = {
  59.     1024, 768, 0xa7, 0x7f, 0x85, 0x08, 0x63B, 0x5ff, 0x600, 0x04, 0x23,
  60.     0x063C, 0,
  61. };
  62.  
  63. /* 1120 x 832, 60Hz, noninterlaced. */
  64. static const ATI_CRTCSetup ATI_crt_1120_60 = {
  65.     1120, 832, 0xAB, 0x8B, 0x91, 0x0C, 0x6E8, 0x67F, 0x685, 0x0C, 0x23,
  66.     0x0638, 0,
  67. };
  68.  
  69. /* 1120 x 832, 68Hz, noninterlaced. */
  70. static const ATI_CRTCSetup ATI_crt_1120_68 = {
  71.     1120, 832, 0xAB, 0x8B, 0x91, 0x0C, 0x6C8, 0x67F, 0x681, 0x06, 0x23,
  72.     0x062C, 0,
  73. };
  74.  
  75. /* 1280 x 1024, 60Hz, noninterlaced. */
  76. static const ATI_CRTCSetup ATI_crt_1280_60 = {
  77.     1280, 1024, 0xD6, 0x9f, 0xA9, 0x2E, 0x852, 0x7ff, 0x800, 0x25, 0x23,
  78.     0x0628, 1,
  79. };
  80.  
  81. #if 0
  82.  
  83. /* These values are provided for reference only.  Current DACs exhibit
  84.  * instability when driven at these high rates. */
  85.  
  86. /* 1280 x 1024, 74Hz, noninterlaced. */
  87. static const ATI_CRTCSetup ATI_crt_1280_74 = {
  88.     1280, 1024, 0xD5, 0x9f, 0xA3, 0x12, 0x84B, 0x7ff, 0x7FF, 0x05, 0x23,
  89.     0x0620, 1,
  90. };
  91.  
  92. /* 1280 x 1024, 70Hz, noninterlaced. */
  93. static const ATI_CRTCSetup ATI_crt_1280_70 = {
  94.     1280, 1024, 0xD2, 0x9f, 0xA9, 0x0E, 0x851, 0x7ff, 0x800, 0x05, 0x23,
  95.     0x0604, 1,
  96. };
  97.  
  98. #endif
  99.  
  100. const IODisplayInfo ATIMode[] = {
  101.     {  800, 600, 800, 1600, 72, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  102.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_800_72 },
  103.     {  800, 600, 800, 1600, 60, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  104.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_800_60 },
  105.     { 1024, 768, 1024, 2048, 76, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  106.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_1024_76 },
  107.     { 1024, 768, 1024, 2048, 72, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  108.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_1024_72 },
  109.     { 1024, 768, 1024, 2048, 60, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  110.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_1024_60 },
  111.     { 1120, 832, 1120, 2240, 68, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  112.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_1120_68 },
  113.     { 1120, 832, 1120, 2240, 60, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  114.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_1120_60 },
  115.     {  800, 600, 800, 800, 72, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  116.     "WWWWWWWW", 0, (void *)&ATI_crt_800_72 },
  117.     {  800, 600, 800, 800, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  118.     "WWWWWWWW", 0, (void *)&ATI_crt_800_60 },
  119.     { 1024, 768, 1024, 1024, 76, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  120.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_76 },
  121.     { 1024, 768, 1024, 1024, 72, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  122.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_72 },
  123.     { 1024, 768, 1024, 1024, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  124.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_60 },
  125.     { 1120, 832, 1120, 1120, 68, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  126.     "WWWWWWWW", 0, (void *)&ATI_crt_1120_68 },
  127.     { 1120, 832, 1120, 1120, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  128.     "WWWWWWWW", 0, (void *)&ATI_crt_1120_60 },
  129.     { 1280, 1024, 1280, 1280, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  130.     "WWWWWWWW", 0, (void *)&ATI_crt_1280_60 },
  131. };
  132.  
  133. const int ATIModeCount = (sizeof(ATIMode)/sizeof(ATIMode[0]));
  134.  
  135. const IODisplayInfo ATISlowDACMode[] = {
  136.     {  800, 600, 800, 1600, 60, 0, IO_15BitsPerPixel, IO_RGBColorSpace,
  137.     "-RRRRRGGGGGBBBBB", 0, (void *)&ATI_crt_800_60_SlowDAC },
  138.     {  800, 600, 800, 800, 72, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  139.     "WWWWWWWW", 0, (void *)&ATI_crt_800_72 },
  140.     {  800, 600, 800, 800, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  141.     "WWWWWWWW", 0, (void *)&ATI_crt_800_60 },
  142.     { 1024, 768, 1024, 1024, 76, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  143.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_76 },
  144.     { 1024, 768, 1024, 1024, 72, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  145.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_72 },
  146.     { 1024, 768, 1024, 1024, 60, 0, IO_8BitsPerPixel, IO_OneIsWhiteColorSpace,
  147.     "WWWWWWWW", 0, (void *)&ATI_crt_1024_60 },
  148. };
  149.  
  150. const int ATISlowDACModeCount =
  151.     (sizeof(ATISlowDACMode)/sizeof(ATISlowDACMode[0]));
  152.