| 1 | /***************************************************************************** | 
|---|
| 2 | * | 
|---|
| 3 | * SOURCE FILE NAME = SVGADEFS.H | 
|---|
| 4 | * | 
|---|
| 5 | * DESCRIPTIVE NAME = | 
|---|
| 6 | * | 
|---|
| 7 | * Copyright : COPYRIGHT IBM CORPORATION, 1991, 1992 | 
|---|
| 8 | *             Copyright Microsoft Corporation, 1990 | 
|---|
| 9 | *             LICENSED MATERIAL - PROGRAM PROPERTY OF IBM | 
|---|
| 10 | *             REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083 | 
|---|
| 11 | *             RESTRICTED MATERIALS OF IBM | 
|---|
| 12 | *             IBM CONFIDENTIAL | 
|---|
| 13 | * | 
|---|
| 14 | * VERSION = V2.0 | 
|---|
| 15 | * | 
|---|
| 16 | * DATE | 
|---|
| 17 | * | 
|---|
| 18 | * DESCRIPTION  Contains SVGA definitions. | 
|---|
| 19 | * | 
|---|
| 20 | * FUNCTIONS | 
|---|
| 21 | * | 
|---|
| 22 | * NOTES        When included into VVID sources, #ifdef SVGA | 
|---|
| 23 | *              must be used before #include! | 
|---|
| 24 | * | 
|---|
| 25 | * STRUCTURES | 
|---|
| 26 | * | 
|---|
| 27 | * EXTERNAL REFERENCES | 
|---|
| 28 | * | 
|---|
| 29 | * EXTERNAL FUNCTIONS | 
|---|
| 30 | * | 
|---|
| 31 | * CHANGE ACTIVITY = | 
|---|
| 32 | *   DATE      FLAG        APAR   CHANGE DESCRIPTION | 
|---|
| 33 | *   --------  ----------  -----  -------------------------------------- | 
|---|
| 34 | *   mm/dd/yy  @Vr.mpppxx   xxxxx xxxxxxx | 
|---|
| 35 | *   12/29/92  @V2.0SEN00         Created. | 
|---|
| 36 | *   03/12/93  @V2.0SEN01         OEMINFO structure changed. | 
|---|
| 37 | *   08/31/93  @V2.1YEE02         Recognize Cirrus Logic GD5428 chip | 
|---|
| 38 | *   10/28/93  @V2.1MNH00         Recognize Additional Adapters | 
|---|
| 39 | *   12/06/93  @V2.1YEE05 D 76476 Add ID for Chips & Technologies | 
|---|
| 40 | *   12/15/93  @V2.1YEE06 D 76685 Add Artist Graphics manufacturer | 
|---|
| 41 | *   02/21/94  @V2.1MNH01 D 79562 Recognize Additional Adapters/Chips | 
|---|
| 42 | *   04/14/94  @V2.1MNH05 D 81883 WD90C24 allow more unlocks | 
|---|
| 43 | *   04/26/94  @V2.1MNH08 D 82003 WD90C24 preserve locks for BIOS setmodes | 
|---|
| 44 | *   05/12/94  @V2.1YEE08         Add more Cirrus chipsets | 
|---|
| 45 | *   05/13/94  @V2.1MNH13 F 74819 ATI Mach8/32 check in files | 
|---|
| 46 | *   05/18/94  @V2.1MNH14         WD90C33 Parse new style PMI | 
|---|
| 47 | *   06/22/94  @V2.1JWK02 D 87347 Define Tseng Chip Names for consistant use | 
|---|
| 48 | *   07/25/94  @V2.1JWK03 D 89911 Define Tseng W32xD Revisions | 
|---|
| 49 | *   07/28/94  @V2.1YEE09 D 88172 Define a Chips and Technologies chiptype | 
|---|
| 50 | *   08/02/94  @V2.1MNH25 D 91551 Fix various DAC programming problems | 
|---|
| 51 | *   08/19/94  @V2.1MNH37 D 94209 Add more DAC detection | 
|---|
| 52 | *   09/01/94  @V2.1YEE10 D 89853 Add support for S3864 with ICD2061 clock chip | 
|---|
| 53 | *   09/10/94  @V2.2TSU00 D 86373 Weitek: PCI screen01 incorrect | 
|---|
| 54 | *   09/15/94  @V2.1YEE11         Identify DAC as RGB (blue first) or BGR (red first) | 
|---|
| 55 | *   09/17/94  @V2.2DAI01 D 92593 Adding monitor configuration enhancements. | 
|---|
| 56 | *   09/26/94  @V2.2SEN05 D 97637 Changing Music DAC 4910 from BGR to RGB. | 
|---|
| 57 | *   10/05/94  @V2.1MNH51 D101610 Increase size of CLEANDATA for MACH32 | 
|---|
| 58 | *   10/25/94  @V2.2JWK23 D103192 TSENG Rev D wont install | 
|---|
| 59 | *   11/30/94  @V3.0YEE01 D105950 Support S3 964 | 
|---|
| 60 | *   01/20/95  @V3.0YEE02 D 99391 Support TBird-Enhanced (800x600 flat panel) | 
|---|
| 61 | *   01/16/95  @V3.0YEE03 D114992 Add new chip manufacturers | 
|---|
| 62 | *   01/24/95  @V3.0ITO01         ThinkPad 230 Support (IBM-J local) | 
|---|
| 63 | *   04/19/95  @V3.0DAI01 D119247 Add DevEscape functions and structures for extra capability support | 
|---|
| 64 | *   04/28/95  @V3.0YEE04 D120303 Treat ICS5342 unique from ICS5341 | 
|---|
| 65 | *   05/17/95  @V3.0JWK04 D113889 Add Toshiba manufacturer and models | 
|---|
| 66 | *   05/30/95  @V3.0JWK11 D123835 allow displayless machines to init.  Requires | 
|---|
| 67 | *                                /nodisplay on device driver statement in config.sys | 
|---|
| 68 | *   07/25/95  @IBMJ-S3GEN   D386 More S3 chips support | 
|---|
| 69 | *   07/27/95  @V3.0JWK18 D131213 fix AT&T 408/409/499 DAC programming | 
|---|
| 70 | *   08/02/95  @V3.0JWK21 D131829 Identify and Support ATI MACH64 version 'CT' | 
|---|
| 71 | *   09/11/95  @V3.2SEN01 D133791 Adding real mode software interrupt support to | 
|---|
| 72 | *                                VIDEOPMI. | 
|---|
| 73 | *   09/14/95  @V3.0JWK25 D126118 NEC C24 prevent 800x600x64k.  Add NEC Manufacturer and model | 
|---|
| 74 | *   11/10/95  @V3.2JWK09 D143505 provide compatability with new VIDEO_ADAPTER structures | 
|---|
| 75 | *   12/15/95  @V3.0TSU00         Make videopmi backward compatible | 
|---|
| 76 | *   02/12/96  @V3.1MNH01 D148203 Merge DBCS-J source w/SBCS source | 
|---|
| 77 | *   02/14/96  @V3.2TSU00 D148283 Merlin PBE, support linear aperture | 
|---|
| 78 | *   02/16/96  @V3.0YEE06 D148329 APM support | 
|---|
| 79 | *   05/14/96  @V3.1MNH10 D151513 S3 Trio Chips Identification | 
|---|
| 80 | *****************************************************************************/ | 
|---|
| 81 |  | 
|---|
| 82 | /* NOINC */ | 
|---|
| 83 |  | 
|---|
| 84 | #include <svgapmi.h> | 
|---|
| 85 |  | 
|---|
| 86 | /* INC */ | 
|---|
| 87 |  | 
|---|
| 88 | #define INCL_DOSERRORS | 
|---|
| 89 | #define MAX_LOCKUNLOCKCMD       40                              /*@V2.1MNH08*/ | 
|---|
| 90 | #define MAX_CLEANDATA          200      /* Includes DACs */     /*@V3.0YEE01*/ | 
|---|
| 91 | #define MAX_SETBANK_CMD         25                              /*@V2.1MNH14*/ | 
|---|
| 92 | #define MAX_GETBANK_CMD         20                              /*@V2.1MNH14*/ | 
|---|
| 93 | #define MAX_MODESET_CMD         84                              /*@V2.1MNH14*/ | 
|---|
| 94 |  | 
|---|
| 95 |  | 
|---|
| 96 | #define DEFAULT_ADAPTER       (-1) | 
|---|
| 97 | #define UNKNOWN_ADAPTER         0 | 
|---|
| 98 | #define VIDEO7_ADAPTER          1       /* bugbug line up with cleanups! */ | 
|---|
| 99 | #define TRIDENT_ADAPTER         2 | 
|---|
| 100 | #define TSENG_ADAPTER           3 | 
|---|
| 101 | #define WESTERNDIG_ADAPTER      4 | 
|---|
| 102 | #define ATI_ADAPTER             5 | 
|---|
| 103 | #define IBM_ADAPTER             6 | 
|---|
| 104 | #define CIRRUS_ADAPTER          7 | 
|---|
| 105 | #define S3_ADAPTER              8 | 
|---|
| 106 | #define CHIPS_ADAPTER           9                      /* @V2.1YEE05 */ | 
|---|
| 107 | #define WEITEK_ADAPTER          10                     /* @V2.1MNH00 */ | 
|---|
| 108 | #define NUMBER9_ADAPTER         11                     /* @V2.1YEE10 */ | 
|---|
| 109 | #define GENERIC_PCISVGA_ADAPTER 12                      //@senja | 
|---|
| 110 | #define OAK_ADAPTER             13                     /* @V3.0YEE03 */ | 
|---|
| 111 | #define MATROX_ADAPTER          14                     /* @V3.0YEE03 */ | 
|---|
| 112 | #define BROOKTREE_ADAPTER       15                     /* @V3.0YEE03 */ | 
|---|
| 113 | #define NVIDIA_ADAPTER          16                     /* @V3.0YEE03 */ | 
|---|
| 114 | #define ALLIANCE_ADAPTER        17                     /* @V3.0YEE03 */ | 
|---|
| 115 | #define AVANCE_ADAPTER          18                     /* @V3.0YEE03 */ | 
|---|
| 116 | #define MEDIAVISION_ADAPTER     19                     /* @V3.0YEE03 */ | 
|---|
| 117 | #define ARKLOGIC_ADAPTER        20                     /* @V3.0YEE03 */ | 
|---|
| 118 | #define RADIUS_ADAPTER          21                     /* @V3.0YEE03 */ | 
|---|
| 119 | #define THREE_D_LABS_ADAPTER    22                     /* @V3.0YEE03 */ | 
|---|
| 120 | #define NCR_ADAPTER             23                     /* @V3.0YEE03 */ | 
|---|
| 121 | #define IIT_ADAPTER             24                     /* @V3.0YEE03 */ | 
|---|
| 122 | #define APPIAN_ADAPTER          25                     /* @V3.0YEE03 */ | 
|---|
| 123 | #define SIERRA_ADAPTER          26                     /* @V3.0YEE03 */ | 
|---|
| 124 | #define CORNERSTONE_ADAPTER     27                     /* @V3.0YEE03 */ | 
|---|
| 125 | #define DIGITAL_ADAPTER         28                     /* @V3.0YEE03 */ | 
|---|
| 126 | #define COMPAQ_ADAPTER          29                     /* @V3.0YEE03 */ | 
|---|
| 127 | #define INFOTRONIC_ADAPTER      30                     /* @V3.0YEE03 */ | 
|---|
| 128 | #define OPTI_ADAPTER            31                     /* @V3.0YEE03 */ | 
|---|
| 129 | #define NULL_ADAPTER            32                     /* @V3.0JWK11 */ | 
|---|
| 130 | /* remember to update SVGA_LASTADAPTER when adding new adapter support */ | 
|---|
| 131 |  | 
|---|
| 132 | #define SVGA_FIRSTADAPTER       VIDEO7_ADAPTER         /* @V2.1YEE03 */ | 
|---|
| 133 | #define SVGA_LASTADAPTER        NULL_ADAPTER           /* @V3.0JWK11 */ | 
|---|
| 134 |  | 
|---|
| 135 | /* @V2.1MNH13 start */ | 
|---|
| 136 | #ifdef FAMILY2 | 
|---|
| 137 | #define ORCHID_MC_ADAPTER     2       /* @V2.0SEN06 */ | 
|---|
| 138 | #define ORCHID_MC_ID          0x86    /* @V2.0SEN06 */ | 
|---|
| 139 | #endif | 
|---|
| 140 |  | 
|---|
| 141 | /* | 
|---|
| 142 | ** DAC types | 
|---|
| 143 | */ | 
|---|
| 144 |  | 
|---|
| 145 | #define VGA_DAC           0                                     /*@V2.1MNH23*/ | 
|---|
| 146 | #define DEFAULT_DAC       VGA_DAC                               /*@V2.1MNH23*/ | 
|---|
| 147 | #define HICOLOR_DAC       1      /* Unidentified */             /*@V2.1MNH17*/ | 
|---|
| 148 | #define WINBOND_DAC       HICOLOR_DAC                           /*@V2.1MNH23*/ | 
|---|
| 149 | #define BT485_DAC         2      /* Brooktree 485 */            /*@V2.1MNH20*/ | 
|---|
| 150 | #define Weitek_BT485DAC   3      /* BT485 used by Weitek      */ | 
|---|
| 151 | #define SC15025_DAC       4      /* SC15025                   */ | 
|---|
| 152 | #define SierraDAC         SC15025_DAC /* Use more specific name! */ | 
|---|
| 153 | #define ATT490_DAC        5 | 
|---|
| 154 | #define ATTDAC            ATT490_DAC /* Use more specific name! */ | 
|---|
| 155 | #define MU9C1880_DAC      6      /* MU9C4870, MU9C1880, SS2410*/ | 
|---|
| 156 | #define MU9C4870_DAC      MU9C1880_DAC                          /*@V2.1MNH23*/ | 
|---|
| 157 |  | 
|---|
| 158 | #define TRUECOLOR_DAC     7                                     /*@V2.1MNH17*/ | 
|---|
| 159 | #define IMSG173_DAC       8      /*These DACS identified, but not programmed*/ | 
|---|
| 160 | #define InmosDAC          IMSG173_DAC /* Use more specific name! */ | 
|---|
| 161 | #define CH8398_DAC        9 | 
|---|
| 162 | #define ChrontelDAC       CH8398_DAC /* Use more specific name! */ | 
|---|
| 163 | #define CIRRUS_DAC       10 | 
|---|
| 164 | #define ICS5341_DAC      11 | 
|---|
| 165 | #define SGS1702_DAC      12 | 
|---|
| 166 | #define SGSThomsonDAC16  SGS1702_DAC /* Use more specific name! */ | 
|---|
| 167 | #define SGS1703_DAC      13                                     /*@V2.1MNH23*/ | 
|---|
| 168 | #define MU9C4910_DAC     14      /* MU9C4910 (blue byte first) */ | 
|---|
| 169 | /*  note that the MU9C1880 is also true color, but */ | 
|---|
| 170 | /*       it does not need to be identified because */ | 
|---|
| 171 | /*       behaves like the others in its group      */ | 
|---|
| 172 | #define MusicDAC16RGB    MU9C4910_DAC /* Use more specific name! */ | 
|---|
| 173 | #define ATI68830_DAC     15      /* ATI 68830 & compatible  @V2.1MNH29  */ | 
|---|
| 174 | #define S3SDAC_DAC       16      /* S3 SDAC                 @V2.1MNH29  */ | 
|---|
| 175 | #define ATT498_DAC       17      /* AT&T 498 CLOCKDAC ID=$98 no programmable clocks      @V2.1MNH29  */ | 
|---|
| 176 | #define SGS1700_DAC      18      /* SGS 1700 DAC            @V2.1MNH29  */ | 
|---|
| 177 | #define TLC34075_DAC     19      /* Texas Instruments TLC34075*/ | 
|---|
| 178 | #define ATI68875_DAC     TLC34075_DAC | 
|---|
| 179 | #define BT476_DAC        20      /* Brooktree 476/478       @V2.1MNH29  */ | 
|---|
| 180 | #define BT478_DAC        BT476_DAC | 
|---|
| 181 | #define BT481_DAC        21      /* Brooktree 481/482       @V2.1MNH29  */ | 
|---|
| 182 | #define BT482_DAC        BT481_DAC | 
|---|
| 183 | #define ATI68860_DAC     22      /* ATI 68860/68880         @V2.1MNH29  */ | 
|---|
| 184 | #define MU9CBUG_DAC      23 | 
|---|
| 185 | #define CH8391_DAC       24 | 
|---|
| 186 | #define W82C490_DAC      25 | 
|---|
| 187 | #define ATT491_DAC       26 | 
|---|
| 188 | #define ATT492_DAC       27 | 
|---|
| 189 | #define ATT493_DAC       28 | 
|---|
| 190 | #define ATT497_DAC       29 | 
|---|
| 191 | #define WD90C24_DAC      30 | 
|---|
| 192 | #define MU9C9910_DAC     31      /* (blue byte first) */ | 
|---|
| 193 | #define ATT409_DAC       32          //ID=$09 16 bit pixel I/O | 
|---|
| 194 | #define ATT499_DAC       33          //ID=$99 24 bit Pixel I/0  /*@V3.0YEE03*/ | 
|---|
| 195 | #define TI3025_DAC       34      /* TI Viewpoint 3025 CLOCKDAC*//*@V3.0YEE01*/ | 
|---|
| 196 | #define TI3020_DAC       35      /* TI Viewpoint 3020 CLOCKDAC*//*@V3.0YEE03*/ | 
|---|
| 197 | #define ICS5342_DAC      36                                     /*@V3.0YEE04*/ | 
|---|
| 198 | #define ATT408_DAC       ATT409_DAC  //ID=$09 HW pinouts diff   /*@V3.0JWK18*/ | 
|---|
| 199 | #define NULL_DAC         37                                     /*@V3.0JWK11*/ | 
|---|
| 200 | #define IMBEDDED_DAC     38      //ATI MACH64 'CT'              /*@V3.0JWK21*/ | 
|---|
| 201 | #define S3TRIO_DAC       39      /* S3 TRIO DAC               *//*@V3.0YEE05*/ | 
|---|
| 202 | #define MAX_DAC          40                                     /*@V3.0JWK21*/ | 
|---|
| 203 |  | 
|---|
| 204 | #define VGADAC_NAME     "VGA_RGB"                               /*@V2.1MNH23*/ | 
|---|
| 205 | #define HICOLOR_NAME    "HICOLOR_RGB"                           /*@V2.1MNH17*/ | 
|---|
| 206 | #define BT485_NAME      "BT485_RGB"                             /*@V2.1MNH20*/ | 
|---|
| 207 | #define VIPER_NAME      "BT485_RGB" | 
|---|
| 208 | #define SC15025_NAME    "SC15025_RGB" | 
|---|
| 209 | #define ATT490_NAME     "ATT20C490_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 210 | #define MU9C1880_NAME   "MU9C1880_BGR" | 
|---|
| 211 | #define TRUECOLOR_NAME  "TRUECOLOR_RGB"                         /*@V2.1MNH17*/ | 
|---|
| 212 | #define IMSG173_NAME    "IMSG173_RGB" | 
|---|
| 213 | #define CH8398_NAME     "CH8398_RGB" | 
|---|
| 214 | #define CIRRUS_NAME     "CIRRUS_RGB" | 
|---|
| 215 | #define ICS5341_NAME    "ICS5341_RGB" | 
|---|
| 216 | #define SGS1702_NAME    "SGS1702_RGB" | 
|---|
| 217 | #define SGS1703_NAME    "SGS1703_RGB"                           /*@V2.1MNH23*/ | 
|---|
| 218 | #define MU9C4910_NAME   "MU9C4910_RGB"  /* was BGR */           /*@V2.2SEN05*/ | 
|---|
| 219 | #define ATI68830_NAME   "ATI68830_RGB"                          /*@V2.1MNH20*/ | 
|---|
| 220 | #define S3SDAC_NAME     "S3SDAC_RGB"                            /*@V2.1YEE02*/ | 
|---|
| 221 | #define ATT498_NAME     "ATT20C498_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 222 | #define SGS1700_NAME    "SGS1700_RGB"                           /*@V2.1YEE02*/ | 
|---|
| 223 | #define TLC34075_NAME   "TLC34075_RGB"                          /*@V2.1MNH20*/ | 
|---|
| 224 | #define ATI68875_NAME   "ATI68875_RGB"                          /*@V2.1MNH20*/ | 
|---|
| 225 | #define BT476_NAME      "BT476_RGB"                             /*@V2.1MNH20*/ | 
|---|
| 226 | #define BT481_NAME      "BT481_RGB"                             /*@V2.1MNH20*/ | 
|---|
| 227 | #define ATI68860_NAME   "ATI68860_RGB"                          /*@V2.1MNH20*/ | 
|---|
| 228 | #define MU9CBUG_NAME    "MU9C1880BUG_BGR"                       /*@V2.1MNH29*/ | 
|---|
| 229 | #define CH8391_NAME     "CH8391_RGB"                            /*@V2.1MNH29*/ | 
|---|
| 230 | #define W82C490_NAME    "W82C490_RGB"                           /*@V2.1MNH29*/ | 
|---|
| 231 | #define ATT491_NAME     "ATT20C491_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 232 | #define ATT492_NAME     "ATT20C492_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 233 | #define ATT493_NAME     "ATT20C493_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 234 | #define ATT497_NAME     "ATT20C497_RGB"                         /*@V2.1MNH29*/ | 
|---|
| 235 | #define WD90C24_NAME    "WD90C24_RGB"                           /*@V2.1MNH35*/ | 
|---|
| 236 | #define MU9C9910_NAME   "MU9C9910_RGB"                          /*@V2.1MNH37*/ | 
|---|
| 237 | #define ATT499_NAME     "ATT20C499_RGB"                         /*@V3.0JWK18*/ | 
|---|
| 238 | #define ATT498_NAME     "ATT20C498_RGB"                         /*@V3.0JWK18*/ | 
|---|
| 239 | #define ATT409_NAME     "ATT20C409_RGB"                         /*@V2.1YEE10*/ | 
|---|
| 240 | #define TI3025_NAME     "TVP3025_RGB" /* TI Viewpoint 3025 DAC*//*@V3.0YEE01*/ | 
|---|
| 241 | #define TI3020_NAME     "TVP3020_RGB" /* TI Viewpoint 3020 DAC*//*@V3.0YEE03*/ | 
|---|
| 242 | #define ICS5342_NAME    "ICS5342_RGB"                           /*@V3.0YEE04*/ | 
|---|
| 243 | #define NULL_DAC_NAME   "NULLDAC_RGB"                           /*@V3.0JWK11*/ | 
|---|
| 244 | #define IMBEDDED_NAME   "IMBEDDED_RGB"/*ATI MACH64CT internal *//*@V3.0JWK21*/ | 
|---|
| 245 | #define S3TRIODAC_NAME  "S3_RGB"      /* S3 TRIO DAC          *//*@V3.0YEE05*/ | 
|---|
| 246 |  | 
|---|
| 247 | /* NOINC */ | 
|---|
| 248 | typedef struct _DACINFO {       /* dac */ | 
|---|
| 249 | USHORT        DACFamily; | 
|---|
| 250 | USHORT        DACType; | 
|---|
| 251 | } DACINFO; | 
|---|
| 252 |  | 
|---|
| 253 | /* INC */ | 
|---|
| 254 |  | 
|---|
| 255 | #define WEITEK_P9000_INCREMENT  0x0040 //Spacing between potential bases. | 
|---|
| 256 | #define WEITEK_P9000_REGISTERS  0x0010 //Base address offset for registers. | 
|---|
| 257 | #define WEITEK_P9000_VRAM       0x0020 //Base address offset for VRAM. | 
|---|
| 258 | #define WEITEK_P9000_SYSCONFIG  0x0004 //Offset for config reg | 
|---|
| 259 | #define WEITEK_P9000_INTERRUPT  0x0008 //Offset for interrupt reg | 
|---|
| 260 | #define WEITEK_P9000_ENABLE     0x000c //Offset for interrupt enable reg | 
|---|
| 261 | #define WEITEK_P9000_MEMCONFIG  0x0184 //Offset for memory config reg | 
|---|
| 262 | #define WEITEK_P9000_REGLENGTH  0x2000 //Length for register addressability | 
|---|
| 263 | /* @V2.1MNH13 end   */ | 
|---|
| 264 |  | 
|---|
| 265 | #define UNKNOWN_CHIP            0 | 
|---|
| 266 |  | 
|---|
| 267 | #define VIDEO7_HT205_CHIP       1 | 
|---|
| 268 | #define VIDEO7_HT208_CHIP       2 | 
|---|
| 269 | #define VIDEO7_HT209_CHIP       3 | 
|---|
| 270 | #define MAX_VIDEO7_CHIP         VIDEO7_HT209_CHIP               /*@V2.1MNH01*/ | 
|---|
| 271 |  | 
|---|
| 272 | #define VIDEO7_HT205_NAME       "HT205"                         /*@V2.1MNH20*/ | 
|---|
| 273 | #define VIDEO7_HT208_NAME       "HT208"                         /*@V2.1MNH20*/ | 
|---|
| 274 | #define VIDEO7_HT209_NAME       "HT209"                         /*@V2.1MNH20*/ | 
|---|
| 275 |  | 
|---|
| 276 | #define TRIDENT_8800_CHIP       1 | 
|---|
| 277 | #define TRIDENT_8900_CHIP       2 | 
|---|
| 278 | #define MAX_TRIDENT_CHIP        TRIDENT_8900_CHIP               /*@V2.1MNH01*/ | 
|---|
| 279 |  | 
|---|
| 280 | #define TRIDENT_8800_NAME       "TR8800"                        /*@V2.1MNH20*/ | 
|---|
| 281 | #define TRIDENT_8900_NAME       "TR8900"                        /*@V2.1MNH20*/ | 
|---|
| 282 |  | 
|---|
| 283 |  | 
|---|
| 284 | #define TSENG_ET3000_CHIP       1 | 
|---|
| 285 | #define TSENG_ET4000_CHIP       2 | 
|---|
| 286 | #define TSENG_ET4000W32_CHIP    3    /* w32                   @V2.1MNH01*/ | 
|---|
| 287 | #define TSENG_ET4000W32I_CHIP   4    /* w32i (level a)        @V2.1JWK01*/ | 
|---|
| 288 | #define TSENG_ET4000W32IB_CHIP  5    /* w32i level b          @V2.1JWK01*/ | 
|---|
| 289 | #define TSENG_ET4000W32IC_CHIP  6    /* w32i level c          @V2.1JWK01*/ | 
|---|
| 290 | #define TSENG_ET4000W32PA_CHIP  7    /* w32p level a          @V2.1JWK01*/ | 
|---|
| 291 | #define TSENG_ET4000W32PB_CHIP  8    /* w32p level b          @V2.1JWK01*/ | 
|---|
| 292 | #define TSENG_ET4000W32PC_CHIP  9    /* w32p level c          @V2.1JWK01*/ | 
|---|
| 293 | #define TSENG_ET4000W32ID_CHIP 10    /* w32i level d          @V2.1JWK03*/ | 
|---|
| 294 | #define TSENG_ET4000W32PD_CHIP 11    /* w32p level d          @V2.1JWK03*/ | 
|---|
| 295 | #define TSENG_ET4000W32PX_CHIP 12    /* all others            @V2.1JWK23*/ | 
|---|
| 296 | #define MAX_TSENG_CHIP         12 | 
|---|
| 297 |  | 
|---|
| 298 | #define TSENG_ET3000_NAME       "ET3000"                        /*@V2.1JWK02*/ | 
|---|
| 299 | #define TSENG_ET4000_NAME       "ET4000"                        /*@V2.1JWK02*/ | 
|---|
| 300 | #define TSENG_ET4000W32_NAME    "ET4000W32"                     /*@V2.1JWK02*/ | 
|---|
| 301 | #define TSENG_ET4000W32I_NAME   "ET4000W32IREVA"                /*@V2.1JWK02*/ | 
|---|
| 302 | #define TSENG_ET4000W32IB_NAME  "ET4000W32IREVB"                /*@V2.1JWK02*/ | 
|---|
| 303 | #define TSENG_ET4000W32IC_NAME  "ET4000W32IREVC"                /*@V2.1JWK02*/ | 
|---|
| 304 | #define TSENG_ET4000W32PA_NAME  "ET4000W32PREVA"                /*@V2.1JWK02*/ | 
|---|
| 305 | #define TSENG_ET4000W32PB_NAME  "ET4000W32PREVB"                /*@V2.1JWK02*/ | 
|---|
| 306 | #define TSENG_ET4000W32PC_NAME  "ET4000W32PREVC"                /*@V2.1JWK02*/ | 
|---|
| 307 | #define TSENG_ET4000W32ID_NAME  "ET4000W32IREVD"                /*@V2.1JWK03*/ | 
|---|
| 308 | #define TSENG_ET4000W32PD_NAME  "ET4000W32PREVD"                /*@V2.1JWK03*/ | 
|---|
| 309 | #define TSENG_ET4000W32PX_NAME  "ET4000W32PREVC_COMPATABLE"     /*@V2.1JWK23*/ | 
|---|
| 310 |  | 
|---|
| 311 | #define WESTERNDIG_PVGA1A_CHIP  1 | 
|---|
| 312 | #define WESTERNDIG_WD9000_CHIP  2 /* PVGA1B */ | 
|---|
| 313 | #define WESTERNDIG_WD9011_CHIP  3 /* PVGA1C */ | 
|---|
| 314 | #define WESTERNDIG_WD9030_CHIP  4 /* PVGA1D */ | 
|---|
| 315 | #define WESTERNDIG_WD9026_CHIP  5 /* PVGA1F */                  /*@V2.1MNH01*/ | 
|---|
| 316 | #define WESTERNDIG_WD9027_CHIP  6                               /*@V2.1MNH01*/ | 
|---|
| 317 | #define WESTERNDIG_WD9031_CHIP  7 /* PVGA1DW */                 /*@V2.1MNH01*/ | 
|---|
| 318 | #define WESTERNDIG_WD9024_CHIP  8                               /*@V2.1MNH01*/ | 
|---|
| 319 | #define WESTERNDIG_WD9033_CHIP  9 /* PVGA2DW */                 /*@V2.1MNH01*/ | 
|---|
| 320 | #define MAX_WESTERNDIG_CHIP     WESTERNDIG_WD9033_CHIP          /*@V2.1MNH01*/ | 
|---|
| 321 |  | 
|---|
| 322 | #define WESTERNDIG_PVGA1A_NAME  "PVGA1A"                        /*@V2.1MNH20*/ | 
|---|
| 323 | #define WESTERNDIG_WD9000_NAME  "PVGA1B"                        /*@V2.1MNH20*/ | 
|---|
| 324 | #define WESTERNDIG_WD9011_NAME  "PVGA1C"                        /*@V2.1MNH20*/ | 
|---|
| 325 | #define WESTERNDIG_WD9030_NAME  "PVGA1D"                        /*@V2.1MNH20*/ | 
|---|
| 326 | #define WESTERNDIG_WD9026_NAME  "WD90C26"                       /*@V2.1MNH20*/ | 
|---|
| 327 | #define WESTERNDIG_WD9027_NAME  "WD90C27"                       /*@V2.1MNH20*/ | 
|---|
| 328 | #define WESTERNDIG_WD9031_NAME  "WD90C31"                       /*@V2.1MNH20*/ | 
|---|
| 329 | #define WESTERNDIG_WD9024_NAME  "WD90C24"                       /*@V2.1MNH20*/ | 
|---|
| 330 | #define WESTERNDIG_WD9033_NAME  "WD90C33"                       /*@V2.1MNH20*/ | 
|---|
| 331 |  | 
|---|
| 332 | #define ATI_18800_CHIP          1 /*VGAWONDER*/ | 
|---|
| 333 | #define ATI_28800_CHIP          2 /*VGAWONDER+/XL*/ | 
|---|
| 334 | #define ATI_38800_CHIP          3 /*MACH8/GraphicsUltra*/       /*@V2.1MNH01*/ | 
|---|
| 335 | #define ATI_68800_CHIP          4 /*MACH32/GraphicsUltraPro*/   /*@V2.1MNH01*/ | 
|---|
| 336 | #define ATI_88800_CHIP          5 /*MACH64*/                    /*@V2.1MNH01*/ | 
|---|
| 337 | #define ATI_88800CT_CHIP        6 /*MACH64CT*/                  /*@V3.0JWK21*/ | 
|---|
| 338 | #define MAX_ATI_CHIP            ATI_88800CT_CHIP                /*@V3.0JWK21*/ | 
|---|
| 339 |  | 
|---|
| 340 | #define ATI_18800_NAME          "ATI18800"                      /*@V2.1MNH20*/ | 
|---|
| 341 | #define ATI_28800_NAME          "ATI28800"                      /*@V2.1MNH20*/ | 
|---|
| 342 | #define ATI_38800_NAME          "ATI38800MACH8"                 /*@V2.1MNH21*/ | 
|---|
| 343 | #define ATI_68800_NAME          "ATI68800MACH32"                /*@V2.1MNH21*/ | 
|---|
| 344 | #define ATI_88800_NAME          "ATI88800MACH64"                /*@V2.1MNH21*/ | 
|---|
| 345 | #define ATI_88800CT_NAME        "ATI88800MACH64CT"              /*@V3.0JWK21*/ | 
|---|
| 346 |  | 
|---|
| 347 | #define IBM_SVGA_CHIP           1 | 
|---|
| 348 | #define MAX_IBM_CHIP            IBM_SVGA_CHIP                   /*@V2.1MNH01*/ | 
|---|
| 349 |  | 
|---|
| 350 | #define IBM_SVGA_NAME           "IBMSVGA"                       /*@V2.1MNH20*/ | 
|---|
| 351 |  | 
|---|
| 352 | #define CIRRUS_5420_CHIP        1                               /*@V2.1YEE08*/ | 
|---|
| 353 | #define CIRRUS_5422_CHIP        2 | 
|---|
| 354 | #define CIRRUS_5424_CHIP        3 | 
|---|
| 355 | #define CIRRUS_5426_CHIP        4 | 
|---|
| 356 | #define CIRRUS_5428_CHIP        5                               /*@V2.1YEE02*/ | 
|---|
| 357 | #define CIRRUS_5429_CHIP        6                               /*@V2.1YEE08*/ | 
|---|
| 358 | #define CIRRUS_543X_CHIP        7                               /*@V2.1YEE08*/ | 
|---|
| 359 | #define CIRRUS_5434_CHIP        8                               /*@V2.1YEE08*/ | 
|---|
| 360 | #define CIRRUS_6235_CHIP        9                               /*@V3.0ITO01*/ | 
|---|
| 361 | #define MAX_CIRRUS_CHIP         CIRRUS_6235_CHIP                /*@V3.0ITO01*/ | 
|---|
| 362 |  | 
|---|
| 363 | #define CIRRUS_5420_NAME        "GD5420"                        /*@V2.1MNH20*/ | 
|---|
| 364 | #define CIRRUS_5422_NAME        "GD5422"                        /*@V2.1MNH20*/ | 
|---|
| 365 | #define CIRRUS_5424_NAME        "GD5424"                        /*@V2.1MNH20*/ | 
|---|
| 366 | #define CIRRUS_5426_NAME        "GD5426"                        /*@V2.1MNH20*/ | 
|---|
| 367 | #define CIRRUS_5428_NAME        "GD5428"                        /*@V2.1MNH20*/ | 
|---|
| 368 | #define CIRRUS_5429_NAME        "GD5429"                        /*@V2.1MNH20*/ | 
|---|
| 369 | #define CIRRUS_543X_NAME        "GD543X"                        /*@V2.1MNH20*/ | 
|---|
| 370 | #define CIRRUS_5434_NAME        "GD5434"                        /*@V2.1MNH20*/ | 
|---|
| 371 | #define CIRRUS_6235_NAME        "GD6235"                        /*@V3.0ITO01*/ | 
|---|
| 372 |  | 
|---|
| 373 | #define S3_86C805_CHIP          1           /* 801 or 805 */ | 
|---|
| 374 | #define S3_86C928_CHIP          2 | 
|---|
| 375 | #define S3_86C911_CHIP          3           /* @V2.1YEE04 */ | 
|---|
| 376 | #define S3_86C864_CHIP          4                               /*@V2.1MNH01*/ | 
|---|
| 377 | //#define S3_DXP_CHIP              S3_86C864_CHIP               /*@IBMJ-S3GEN*/ | 
|---|
| 378 | #define S3_86C964_CHIP          5                               /*@V2.1MNH01*/ | 
|---|
| 379 | //#define S3_VXP_CHIP              S3_86C964_CHIP               /*@IBMJ-S3GEN*/ | 
|---|
| 380 |  | 
|---|
| 381 | /* These chip IDs added by S3 */                                /*@V3.1MNH10*/ | 
|---|
| 382 | #define S3_86C868_CHIP          6                               /*@V3.1MNH10*/ | 
|---|
| 383 | //#define S3_V868_CHIP             S3_86C868_CHIP               /*@V3.1MNH10*/ | 
|---|
| 384 | #define S3_86C968_CHIP          7                               /*@V3.1MNH10*/ | 
|---|
| 385 | //#define S3_V968_CHIP             S3_86C968_CHIP               /*@V3.1MNH10*/ | 
|---|
| 386 | #define S3_86C732_CHIP          8                               /*@V3.1MNH10*/ | 
|---|
| 387 | //#define S3_Trio32_CHIP           S3_86C732_CHIP               /*@V3.1MNH10*/ | 
|---|
| 388 | #define S3_86C764_CHIP          9                               /*@V3.1MNH10*/ | 
|---|
| 389 | //#define S3_Trio64_CHIP           S3_86C764_CHIP               /*@V3.1MNH10*/ | 
|---|
| 390 | #define S3_86C765_CHIP         10                               /*@V3.1MNH10*/ | 
|---|
| 391 | //#define S3_V765_CHIP             S3_86C765_CHIP               /*@V3.1MNH10*/ | 
|---|
| 392 | #define S3_86CM65_CHIP         11 /* Aurora64V */               /*@V3.1MNH10*/ | 
|---|
| 393 | #define S3_86C325_CHIP         12 /* ViRGE */                   /*@V3.1MNH10*/ | 
|---|
| 394 | #define S3_86C988_CHIP         13 /* ViRGE/vX chip */           /*@V3.1MNH10*/ | 
|---|
| 395 | #define S3_86C767_CHIP         14 /* Trio64UV+ */               /*@V3.1MNH10*/ | 
|---|
| 396 | #define S3_86C765_FAMILY       15 /* Trio65V+ family compat */  /*@V3.1MNH10*/ | 
|---|
| 397 |  | 
|---|
| 398 | #define S3_86C924_CHIP         16                               /*@V3.1MNH10*/ | 
|---|
| 399 | #define S3_86C866_CHIP         17                               /*@V3.1MNH10*/ | 
|---|
| 400 | //#define S3_V866_CHIP             S3_86C866_CHIP               /*@V3.1MNH10*/ | 
|---|
| 401 | #define S3_86C928PCI_CHIP      18                               /*@V3.1MNH10*/ | 
|---|
| 402 | #define MAX_S3_CHIP              S3_86C928PCI_CHIP              /*@V3.1MNH10*/ | 
|---|
| 403 |  | 
|---|
| 404 | #define S3_86C805_NAME          "S386C80X"                      /*@V2.1MNH20*/ | 
|---|
| 405 | #define S3_86C928_NAME          "S386C928"                      /*@V2.1MNH20*/ | 
|---|
| 406 | #define S3_86C911_NAME          "S386C911"                      /*@V2.1MNH20*/ | 
|---|
| 407 | #define S3_86C864_NAME          "VISION864"       /* S386C864 *//*@V3.1MNH10*/ | 
|---|
| 408 | #define S3_86C964_NAME          "VISION964"       /* S386C964 *//*@V3.1MNH10*/ | 
|---|
| 409 |  | 
|---|
| 410 | #define S3_86C868_NAME          "VISION868"                     /*@V3.1MNH10*/ | 
|---|
| 411 | //#define S3_V868_NAME            S3_86C868_NAME                /*@V3.1MNH10*/ | 
|---|
| 412 | #define S3_86C968_NAME          "VISION968"                     /*@V3.1MNH10*/ | 
|---|
| 413 | //#define S3_V968_NAME            S3_86C968_NAME                /*@V3.1MNH10*/ | 
|---|
| 414 | #define S3_86C732_NAME          "S3TRIO32"                      /*@V3.1MNH10*/ | 
|---|
| 415 | //#define S3_Trio32_NAME          S3_86C764_NAME                /*@V3.1MNH10*/ | 
|---|
| 416 | #define S3_86C764_NAME          "S3TRIO64"                      /*@V3.1MNH10*/ | 
|---|
| 417 | //#define S3_Trio64_NAME          S3_86C732_NAME                /*@V3.1MNH10*/ | 
|---|
| 418 | #define S3_86C765_NAME          "S3TRIO64V+"                    /*@V3.1MNH10*/ | 
|---|
| 419 | //#define S3_V765_NAME            S3_86C765_NAME                /*@V3.1MNH10*/ | 
|---|
| 420 | #define S3_86CM65_NAME          "S3AURORA64V+"                  /*@V3.1MNH10*/ | 
|---|
| 421 | #define S3_86C325_NAME          "S3VIRGE"                       /*@V3.1MNH10*/ | 
|---|
| 422 | #define S3_86C988_NAME          "S3VIRGE/VX"                    /*@V3.1MNH10*/ | 
|---|
| 423 | #define S3_86C767_NAME          "S3TRIO64UV+"                   /*@V3.1MNH10*/ | 
|---|
| 424 | #define S3_86C765_FAMILY_NAME   "S3TRIO64V+COMPATIBLE"          /*@V3.1MNH10*/ | 
|---|
| 425 |  | 
|---|
| 426 | #define S3_86C924_NAME          "S386C924"                      /*@IBMJ-S3GEN*/ | 
|---|
| 427 | #define S3_86C866_NAME          "S386C866"                      /*@V3.1MNH10*/ | 
|---|
| 428 | //#define S3_V866_NAME            S3_86C866_NAME                /*@V3.1MNH10*/ | 
|---|
| 429 |  | 
|---|
| 430 | #define S3_86C928PCI_NAME       "S386C928PCI"                   /*@IBMJ-S3GEN*/ | 
|---|
| 431 |  | 
|---|
| 432 | #define CHIPS_FIRST_CHIP        1                /* bogus chip    @V2.1YEE09*/ | 
|---|
| 433 | #define MAX_CHIPS_CHIP          1                               /*@V2.1YEE09*/ | 
|---|
| 434 |  | 
|---|
| 435 | #define WEITEK_P9000_CHIP       1                               /*@V2.1MNH01*/ | 
|---|
| 436 | #define WEITEK_W5186_CHIP       2                               /*@V2.1MNH01*/ | 
|---|
| 437 | #define WEITEK_W5286_CHIP       3                               /*@V2.1MNH01*/ | 
|---|
| 438 | #define WEITEK_P9100_CHIP       4                               /*@V2.2TSU00*/ | 
|---|
| 439 | #define MAX_WEITEK_CHIP         WEITEK_P9100_CHIP               /*@V2.2TSU00*/ | 
|---|
| 440 |  | 
|---|
| 441 | #define WEITEK_P9000_NAME       "P9000"                         /*@V2.1MNH20*/ | 
|---|
| 442 | #define WEITEK_W5186_NAME       "W5186"                         /*@V2.1MNH20*/ | 
|---|
| 443 | #define WEITEK_W5286_NAME       "W5286"                         /*@V2.1MNH20*/ | 
|---|
| 444 |  | 
|---|
| 445 | #define NULL_CHIP               1                               /*@V3.0JWK11*/ | 
|---|
| 446 | #define MAX_NULL_CHIP           NULL_CHIP                       /*@V3.0JWK11*/ | 
|---|
| 447 | /*@V3.0JWK11*/ | 
|---|
| 448 | #define NULL_NAME               "NULL"                          /*@V3.0JWK11*/ | 
|---|
| 449 |  | 
|---|
| 450 | /* | 
|---|
| 451 | ** OEM manufacturer defines. | 
|---|
| 452 | */ | 
|---|
| 453 |  | 
|---|
| 454 | #define UNKNOWN_MANUFACTURER    0                               /*@V2.1MNH13*/ | 
|---|
| 455 | #define DIAMOND_MANUFACTURER    1                               /*@V2.1YEE01*/ | 
|---|
| 456 | #define ORCHID_MANUFACTURER     2                               /*@V2.1MNH01*/ | 
|---|
| 457 | #define NUMBER9_MANUFACTURER    3                               /*@V2.1YEE04*/ | 
|---|
| 458 | #define ARTIST_MANUFACTURER     4                               /*@V2.1YEE07*/ | 
|---|
| 459 | #define LACUNA_MANUFACTURER     5                               /*@V2.1YEE07*/ | 
|---|
| 460 | #define STB_MANUFACTURER        6                               /*@V2.2SEN02*/ | 
|---|
| 461 | #define S3_MANUFACTURER         7                               /*@V2.1YEE10*/ | 
|---|
| 462 | #define CIRRUS_MANUFACTURER     8 | 
|---|
| 463 | #define MIROCRYSTAL_MANUFACTURER   9                            /*@V2.1YEE11*/ | 
|---|
| 464 | #define VIDEOLOGIC_MANUFACTURER    10                           /*@V2.1YEE11*/ | 
|---|
| 465 | #define THINKPAD_MANUFACTURER  11                               /*@V3.0YEE02*/ | 
|---|
| 466 | #define TOSHIBA_MANUFACTURER   12                               /*@V3.0JWK04*/ | 
|---|
| 467 | #define NEC_MANUFACTURER       13                               /*@V3.0JWK25*/ | 
|---|
| 468 | #define IBM_VISION_MANUFACTURER    14                           /*@V3.1MNH01*/ | 
|---|
| 469 | #define MANUFACTURER_MAX        IBM_VISION_MANUFACTURER         /*@V3.0MUT02*/ | 
|---|
| 470 | #define DEFAULT_MANUFACTURER    UNKNOWN_MANUFACTURER            /*@V2.2SEN02*/ | 
|---|
| 471 |  | 
|---|
| 472 | /* | 
|---|
| 473 | ** OEM manufacturer MODEL defines. | 
|---|
| 474 | */ | 
|---|
| 475 |  | 
|---|
| 476 | #define UNKNOWN_MODEL           0                               /*@V3.0JWK04*/ | 
|---|
| 477 | #define TOSHIBA_6600_MODEL      1                               /*@V3.0JWK04*/ | 
|---|
| 478 | #define TOSHIBA_2100_MODEL      2                               /*@V3.0JWK04*/ | 
|---|
| 479 | #define TOSHIBA_2100CS_MODEL    3                               /*@V3.0JWK04*/ | 
|---|
| 480 | #define TOSHIBA_2100CT_MODEL    4                               /*@V3.0JWK04*/ | 
|---|
| 481 | #define TOSHIBA_4700CS_MODEL    5                               /*@V3.0JWK04*/ | 
|---|
| 482 | #define TOSHIBA_4700CT_MODEL    6                               /*@V3.0JWK04*/ | 
|---|
| 483 | #define TOSHIBA_4800CT_MODEL    7                               /*@V3.0JWK04*/ | 
|---|
| 484 | #define TOSHIBA_4850CT_MODEL    8                               /*@V3.0JWK04*/ | 
|---|
| 485 |  | 
|---|
| 486 | #define NEC_VERSA_MODEL         1                               /*@V3.0JWK25*/ | 
|---|
| 487 |  | 
|---|
| 488 |  | 
|---|
| 489 | /* NOINC */ | 
|---|
| 490 | typedef struct _ADAPTERS {      /* adp */ | 
|---|
| 491 | CHAR  *Name; | 
|---|
| 492 | CHAR  *Manufacturer; | 
|---|
| 493 | INT    ID; | 
|---|
| 494 | }ADAPTERS; | 
|---|
| 495 |  | 
|---|
| 496 | typedef CHAR *CHIPNAMES; | 
|---|
| 497 | typedef CHIPNAMES *PCHIPNAMES; | 
|---|
| 498 |  | 
|---|
| 499 | /* | 
|---|
| 500 | * define CHIPS_INCL to include the following definitions. | 
|---|
| 501 | */ | 
|---|
| 502 | #ifdef CHIPS_INCL | 
|---|
| 503 | /* | 
|---|
| 504 | ** This table contains adapter ID's as not to depend on the changes to | 
|---|
| 505 | ** the ID's and their order. The ChipsetName table should be kept in sync | 
|---|
| 506 | ** with the Adapters table. | 
|---|
| 507 | */ | 
|---|
| 508 | ADAPTERS Adapters [SVGA_LASTADAPTER + 0x01] =          /* @V2.2SENJA */ | 
|---|
| 509 | { | 
|---|
| 510 | {"UNKNOWN","Unknown",                         UNKNOWN_ADAPTER}, | 
|---|
| 511 | {"VIDEO7","Headland Technology, Inc.",        VIDEO7_ADAPTER}, | 
|---|
| 512 | {"TRIDENT","Trident Microsystems, Inc.",      TRIDENT_ADAPTER}, | 
|---|
| 513 | {"TSENG","Tseng Labs, Inc.",                  TSENG_ADAPTER}, | 
|---|
| 514 | {"WESTERNDIGITAL","Western Digital Corporation",WESTERNDIG_ADAPTER}, | 
|---|
| 515 | {"ATI","ATI Technologies Inc.",               ATI_ADAPTER}, | 
|---|
| 516 | {"IBM","IBM Corporation",                     IBM_ADAPTER}, | 
|---|
| 517 | {"CIRRUS","Cirrus Logic, Inc.",               CIRRUS_ADAPTER}, | 
|---|
| 518 | {"S3","S3 Incorporated",                      S3_ADAPTER}, | 
|---|
| 519 | {"CHIPS","Chips and Techologies",             CHIPS_ADAPTER}, | 
|---|
| 520 | {"WEITEK","WEITEK Corporation",               WEITEK_ADAPTER}, | 
|---|
| 521 | {"NUMBER9","Number Nine Corporation",         NUMBER9_ADAPTER}, | 
|---|
| 522 | {"GENERICPCI","Unknown",                      GENERIC_PCISVGA_ADAPTER}, | 
|---|
| 523 | {"OAK","Oak Technology, Inc",                 OAK_ADAPTER},         /* @V3.0YEE03 */ | 
|---|
| 524 | {"MATROX","Matrox",                           MATROX_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 525 | {"BROOKTREE","Brooktree Corporation",         BROOKTREE_ADAPTER},   /* @V3.0YEE03 */ | 
|---|
| 526 | {"NVIDIA","nVIDIA",                           NVIDIA_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 527 | {"ALLIANCE","Alliance Semiconductor Corporation", ALLIANCE_ADAPTER},/* @V3.0YEE03 */ | 
|---|
| 528 | {"AVANCE","Avance Logic",                     AVANCE_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 529 | {"MEDIAVISION","Media Vision",                MEDIAVISION_ADAPTER}, /* @V3.0YEE03 */ | 
|---|
| 530 | {"ARKLOGIC","Ark Logic, Inc.",                ARKLOGIC_ADAPTER},    /* @V3.0YEE03 */ | 
|---|
| 531 | {"RADIUS","Radius",                           RADIUS_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 532 | {"3DLABS","3D Labs Inc.",                     THREE_D_LABS_ADAPTER},/* @V3.0YEE03 */ | 
|---|
| 533 | {"NCR","NCR Corporation",                     NCR_ADAPTER},         /* @V3.0YEE03 */ | 
|---|
| 534 | {"IIT","IIT",                                 IIT_ADAPTER},         /* @V3.0YEE03 */ | 
|---|
| 535 | {"APPIAN","Appian Technology",                APPIAN_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 536 | {"SIERRA","Sierra Semiconductor Inc.",        SIERRA_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 537 | {"CORNERSTONE","Cornerstone Technology",      CORNERSTONE_ADAPTER}, /* @V3.0YEE03 */ | 
|---|
| 538 | {"DIGITAL","Digital Equipment Corporation",   DIGITAL_ADAPTER},     /* @V3.0YEE03 */ | 
|---|
| 539 | {"COMPAQ","Compaq Computer Corporation",      COMPAQ_ADAPTER},      /* @V3.0YEE03 */ | 
|---|
| 540 | {"INFOTRONIC","INFOTRONIC",                   INFOTRONIC_ADAPTER},  /* @V3.0YEE03 */ | 
|---|
| 541 | {"OPTI","OPTi, Inc.",                         OPTI_ADAPTER},        /* @V3.0YEE03 */ | 
|---|
| 542 | {"NULL","null",                               NULL_ADAPTER},        /* @V3.0JWK11 */ | 
|---|
| 543 | }; | 
|---|
| 544 | CHIPNAMES ppszUnknownChipNames [1] = | 
|---|
| 545 | { | 
|---|
| 546 | "UNKNOWN", | 
|---|
| 547 | }; | 
|---|
| 548 | CHIPNAMES ppszVideo7ChipNames [MAX_VIDEO7_CHIP] =               /*@V2.1MNH20*/ | 
|---|
| 549 | { /* Video 7==Headland Technology */                          /*@V2.1MNH01*/ | 
|---|
| 550 | VIDEO7_HT205_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 551 | VIDEO7_HT208_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 552 | VIDEO7_HT209_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 553 | }; | 
|---|
| 554 | CHIPNAMES ppszTridentChipNames [MAX_TRIDENT_CHIP] =             /*@V2.1MNH20*/ | 
|---|
| 555 | { /* Trident */                                               /*@V2.1MNH01*/ | 
|---|
| 556 | TRIDENT_8800_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 557 | TRIDENT_8900_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 558 | }; | 
|---|
| 559 | CHIPNAMES ppszTsengChipNames [MAX_TSENG_CHIP] =                 /*@V2.1MNH20*/ | 
|---|
| 560 | { /* Tseng */ | 
|---|
| 561 | TSENG_ET3000_NAME,                                          /*@V2.1MNH01*/ | 
|---|
| 562 | TSENG_ET4000_NAME, | 
|---|
| 563 | TSENG_ET4000W32_NAME, | 
|---|
| 564 | TSENG_ET4000W32I_NAME, | 
|---|
| 565 | TSENG_ET4000W32IB_NAME, | 
|---|
| 566 | TSENG_ET4000W32IC_NAME,                                     /*@V2.1JWK01*/ | 
|---|
| 567 | TSENG_ET4000W32PA_NAME,                                     /*@V2.1JWK01*/ | 
|---|
| 568 | TSENG_ET4000W32PB_NAME,                                     /*@V2.1JWK01*/ | 
|---|
| 569 | TSENG_ET4000W32PC_NAME,                                     /*@V2.2JWK03*/ | 
|---|
| 570 | TSENG_ET4000W32ID_NAME,                                     /*@V2.2JWK03*/ | 
|---|
| 571 | TSENG_ET4000W32PD_NAME,                                     /*@V2.2JWK03*/ | 
|---|
| 572 | TSENG_ET4000W32PX_NAME,                                     /*@V3.0JWK23*/ | 
|---|
| 573 | }; | 
|---|
| 574 | CHIPNAMES ppszWDChipNames [MAX_WESTERNDIG_CHIP] =               /*@V2.1MNH20*/ | 
|---|
| 575 | { /* Western Digital */                                       /*@V2.1MNH01*/ | 
|---|
| 576 | WESTERNDIG_PVGA1A_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 577 | WESTERNDIG_WD9000_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 578 | WESTERNDIG_WD9011_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 579 | WESTERNDIG_WD9030_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 580 | WESTERNDIG_WD9026_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 581 | WESTERNDIG_WD9027_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 582 | WESTERNDIG_WD9031_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 583 | WESTERNDIG_WD9024_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 584 | WESTERNDIG_WD9033_NAME,                                     /*@V2.1MNH20*/ | 
|---|
| 585 | }; | 
|---|
| 586 | CHIPNAMES ppszATIChipNames [MAX_ATI_CHIP] =                     /*@V2.1MNH20*/ | 
|---|
| 587 | { /* ATI */                                                   /*@V2.1MNH01*/ | 
|---|
| 588 | ATI_18800_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 589 | ATI_28800_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 590 | ATI_38800_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 591 | ATI_68800_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 592 | ATI_88800_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 593 | ATI_88800CT_NAME,                                           /*@V3.0JWK21*/ | 
|---|
| 594 | }; | 
|---|
| 595 | CHIPNAMES ppszIBMChipNames [MAX_IBM_CHIP] =                     /*@V2.1MNH20*/ | 
|---|
| 596 | { /* IBM */                                                   /*@V2.1MNH01*/ | 
|---|
| 597 | IBM_SVGA_NAME,                                              /*@V2.1MNH20*/ | 
|---|
| 598 | }; | 
|---|
| 599 | CHIPNAMES ppszCirrusChipNames [MAX_CIRRUS_CHIP] =               /*@V2.1MNH20*/ | 
|---|
| 600 | { /* Cirrus Logic */                                          /*@V2.1MNH01*/ | 
|---|
| 601 | CIRRUS_5420_NAME,                                           /*@V2.1YEE31*/ | 
|---|
| 602 | CIRRUS_5422_NAME, | 
|---|
| 603 | CIRRUS_5424_NAME, | 
|---|
| 604 | CIRRUS_5426_NAME, | 
|---|
| 605 | CIRRUS_5428_NAME,                                           /*@V2.1MNH01*/ | 
|---|
| 606 | CIRRUS_5429_NAME,                                           /*@V2.1YEE31*/ | 
|---|
| 607 | CIRRUS_543X_NAME,                                           /*@V2.1YEE31*/ | 
|---|
| 608 | CIRRUS_5434_NAME, | 
|---|
| 609 | CIRRUS_6235_NAME,                                           /*@V3.0ITO01*/ | 
|---|
| 610 | }; | 
|---|
| 611 | CHIPNAMES ppszS3ChipNames [MAX_S3_CHIP] =                       /*@V2.1MNH20*/ | 
|---|
| 612 | { /* S3 */                                                    /*@V2.1MNH01*/ | 
|---|
| 613 | S3_86C805_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 614 | S3_86C928_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 615 | S3_86C911_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 616 | S3_86C864_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 617 | S3_86C964_NAME,                                             /*@V2.1MNH20*/ | 
|---|
| 618 |  | 
|---|
| 619 | S3_86C868_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 620 | S3_86C968_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 621 | S3_86C732_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 622 | S3_86C764_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 623 | S3_86C765_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 624 | S3_86CM65_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 625 | S3_86C325_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 626 | S3_86C988_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 627 | S3_86C767_NAME,                                             /*@V3.1MNH10*/ | 
|---|
| 628 | S3_86C765_FAMILY_NAME,                                      /*@V3.1MNH10*/ | 
|---|
| 629 |  | 
|---|
| 630 | S3_86C924_NAME,                                             /*@IBMJ-S3GEN*/ | 
|---|
| 631 | S3_86C928PCI_NAME,                                          /*@IBMJ-S3GEN*/ | 
|---|
| 632 | }; | 
|---|
| 633 | CHIPNAMES ppszWeitekChipNames [MAX_WEITEK_CHIP] =               /*@V2.1MNH20*/ | 
|---|
| 634 | { /* Weitek */                                                /*@V2.1MNH01*/ | 
|---|
| 635 | WEITEK_P9000_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 636 | WEITEK_W5186_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 637 | WEITEK_W5286_NAME,                                          /*@V2.1MNH20*/ | 
|---|
| 638 | }; | 
|---|
| 639 | PCHIPNAMES ChipsetName [SVGA_LASTADAPTER + 0x01] =              /*@V2.1MNH20*/ | 
|---|
| 640 | { | 
|---|
| 641 | ppszUnknownChipNames,                                         /*@V2.1MNH20*/ | 
|---|
| 642 | ppszVideo7ChipNames,                                          /*@V2.1MNH20*/ | 
|---|
| 643 | ppszTridentChipNames,                                         /*@V2.1MNH20*/ | 
|---|
| 644 | ppszTsengChipNames,                                           /*@V2.1MNH20*/ | 
|---|
| 645 | ppszWDChipNames,                                              /*@V2.1MNH20*/ | 
|---|
| 646 | ppszATIChipNames,                                             /*@V2.1MNH20*/ | 
|---|
| 647 | ppszIBMChipNames,                                             /*@V2.1MNH20*/ | 
|---|
| 648 | ppszCirrusChipNames,                                          /*@V2.1MNH20*/ | 
|---|
| 649 | ppszS3ChipNames,                                              /*@V2.1MNH20*/ | 
|---|
| 650 | ppszUnknownChipNames,                                         /*@V2.1MNH20*/ | 
|---|
| 651 | ppszWeitekChipNames,                                          /*@V2.1MNH20*/ | 
|---|
| 652 | }; | 
|---|
| 653 | #endif | 
|---|
| 654 | /* | 
|---|
| 655 | ** DIF subsystem defines | 
|---|
| 656 | */ | 
|---|
| 657 | typedef struct _MONMODEINFO { /* mmi */ | 
|---|
| 658 | USHORT            usXResolution; | 
|---|
| 659 | USHORT            usYResolution; | 
|---|
| 660 | BYTE              bVertRefresh; | 
|---|
| 661 | BYTE              bHorizRefresh; | 
|---|
| 662 | BYTE              bVPolarityPos; | 
|---|
| 663 | BYTE              bHPolarityPos; | 
|---|
| 664 | } MONMODEINFO; | 
|---|
| 665 | #define MAX_PATH_NAME  256 | 
|---|
| 666 | #define MAX_MONITOR_LEN   128   /* length of name string */ | 
|---|
| 667 | #define MAX_MONITOR_MODES 10    /* up to 10 modes per monitor */ | 
|---|
| 668 | typedef struct _MonInfo { /* mi */ | 
|---|
| 669 | CHAR             szMonitor[MAX_MONITOR_LEN]; | 
|---|
| 670 | MONMODEINFO      ModeInfo[MAX_MONITOR_MODES]; | 
|---|
| 671 | } MONITORINFO, FAR *PMONITORINFO; | 
|---|
| 672 |  | 
|---|
| 673 | #define DIF_SERVICE_DLL_NAME   "VIDEOCFG" | 
|---|
| 674 | #define VCFG_RESOURCE_DLL_NAME "VCFGMRI" | 
|---|
| 675 |  | 
|---|
| 676 | #define SVGA_DATAFNAME         "svgadata.pmi" | 
|---|
| 677 | #define VIDEO_CFGFNAME         "video.cfg" | 
|---|
| 678 | #define MONITOR_FNAME          "monitor.dif" | 
|---|
| 679 | #define PRIVATE_MONITOR_FNAME  "private.dif"                    /*@V3.0DAI01*/ | 
|---|
| 680 |  | 
|---|
| 681 | /* | 
|---|
| 682 | **  DevEscape functions and structure for driver extra capabilities that need | 
|---|
| 683 | **  to be configured by VIDEOCFG.DLL | 
|---|
| 684 | */ | 
|---|
| 685 |  | 
|---|
| 686 | #define  DEVESC_QUERYDRIVERCAPS      40010L                     /*@V3.0DAI01*/ | 
|---|
| 687 | #define  DEVESC_QUERYDRIVERCAPSLIST  40011L                     /*@V3.0DAI01*/ | 
|---|
| 688 | #define  DEVESC_SETDRIVERCAPSVALUE   40012L                     /*@V3.0DAI01*/ | 
|---|
| 689 | /*@V3.0DAI01*/ | 
|---|
| 690 | #define CAPSTYPE_BOOLEAN                 1L                     /*@V3.0DAI01*/ | 
|---|
| 691 | #define CAPSTYPE_AGGREGATE_INT           2L                     /*@V3.0DAI01*/ | 
|---|
| 692 | #define CAPSTYPE_AGGREGATE_STRING        3L                     /*@V3.0DAI01*/ | 
|---|
| 693 | /*@V3.0DAI01*/ | 
|---|
| 694 | typedef struct _DRIVERCAPS                                      /*@V3.0DAI01*/ | 
|---|
| 695 | {                                                               /*@V3.0DAI01*/ | 
|---|
| 696 | ULONG  ulCb;                                                 /*@V3.0DAI01*/ | 
|---|
| 697 | CHAR   szCapsDesc[256];                                      /*@V3.0DAI01*/ | 
|---|
| 698 | CHAR   szHelpFileName[256];                                  /*@V3.0DAI01*/ | 
|---|
| 699 | ULONG  ulHelpId;                                             /*@V3.0DAI01*/ | 
|---|
| 700 | ULONG  ulCapsType;                                           /*@V3.0DAI01*/ | 
|---|
| 701 | ULONG  ulValueMemberSize;                                    /*@V3.0DAI01*/ | 
|---|
| 702 | ULONG  ulNumValueMember;                                     /*@V3.0DAI01*/ | 
|---|
| 703 | PVOID  pValueList;                                           /*@V3.0DAI01*/ | 
|---|
| 704 | PVOID  pCurrentValue;                                        /*@V3.0DAI01*/ | 
|---|
| 705 | PVOID  pDefaultValue;                                        /*@V3.0DAI01*/ | 
|---|
| 706 | BOOL   bDefaultValueSupported;                               /*@V3.0DAI01*/ | 
|---|
| 707 | BOOL   bStaticCaps;                                          /*@V3.0DAI01*/ | 
|---|
| 708 | } DRIVERCAPS, *PDRIVERCAPS;                                     /*@V3.0DAI01*/ | 
|---|
| 709 |  | 
|---|
| 710 | /* | 
|---|
| 711 | ** Functions exported by VIDEOCFG.DLL. | 
|---|
| 712 | */ | 
|---|
| 713 |  | 
|---|
| 714 | /* Begin @V2.2DAI01                                                    */ | 
|---|
| 715 | /* These functions are exported only to PM aware apps. Include PMWIN.H */ | 
|---|
| 716 | #ifdef MRESULT | 
|---|
| 717 | BOOL EXPENTRY QueryScreenPageData(PHMODULE phmodResourceMRI, | 
|---|
| 718 | PUSHORT  pusDlgId, | 
|---|
| 719 | PSZ      pszName, | 
|---|
| 720 | PUSHORT  pusHelpId, | 
|---|
| 721 | PSZ      pszDlgProcName, | 
|---|
| 722 | BOOL     bPaletteManagedDisplay); | 
|---|
| 723 | BOOL EXPENTRY QueryDisplayTypePageData(PHMODULE phmodResourceMRI, | 
|---|
| 724 | PUSHORT  pusDlgId, | 
|---|
| 725 | PSZ      pszName, | 
|---|
| 726 | PUSHORT  pusHelpId, | 
|---|
| 727 | PSZ      pszDlgProcName); | 
|---|
| 728 | MRESULT EXPENTRY ScreenDlgProc(HWND hwndDlg, USHORT msg, MPARAM mp1, MPARAM mp2); | 
|---|
| 729 | MRESULT EXPENTRY DIF_DisplayTypeDlgProc(HWND hwndDlg, USHORT msg, MPARAM mp1, MPARAM mp2); | 
|---|
| 730 | MRESULT EXPENTRY DMQS_DisplayTypeDlgProc(HWND hwndDlg, USHORT msg, MPARAM mp1, MPARAM mp2); | 
|---|
| 731 | #endif | 
|---|
| 732 | /* End @V2.2DAI01 */ | 
|---|
| 733 |  | 
|---|
| 734 | APIRET EXPENTRY QueryNumMonitors(ULONG *pulNumMonitors); | 
|---|
| 735 | APIRET EXPENTRY GetAllMonitors(MONITORINFO *pMonitors); | 
|---|
| 736 | APIRET EXPENTRY AddMonitorData(PSZ pszMonitorFileName, MONITORINFO *pNewMonitor);    /* @V3.0DAI01 */ | 
|---|
| 737 | APIRET EXPENTRY GetCurrentCfg(ADAPTERINFO *pAdapter,MONITORINFO *pMonitor); | 
|---|
| 738 | APIRET EXPENTRY SetCurrentCfg(ADAPTERINFO *pAdapter,MONITORINFO *pMonitor); | 
|---|
| 739 | BOOL   EXPENTRY GetCurrentDesktopMode(PVIDEO_ADAPTER pVideoAdapter);                 /* @V3.0DAI01 */ | 
|---|
| 740 | /* | 
|---|
| 741 | ** 16 entry point into the VIDEOCFG.DLL | 
|---|
| 742 | */ | 
|---|
| 743 | APIRET VIDEOAPI VCFG16Request(PVOID pIn,ULONG function,PVOID pOut1,PVOID pOut2); | 
|---|
| 744 | typedef APIRET (VIDEOAPI  FNCFG16REQUEST)(PVOID, ULONG, PVOID, PVOID); | 
|---|
| 745 | typedef FNCFG16REQUEST *PFNCFG16REQUEST; | 
|---|
| 746 | /* | 
|---|
| 747 | ** functions exported to 16 bit | 
|---|
| 748 | */ | 
|---|
| 749 | #define VCFG_GET_CURRENT_CONFIG 0       //pIn = NULL, pOut1 = pAdapter, pOut2 = pMonitor | 
|---|
| 750 |  | 
|---|
| 751 | /* INC */ | 
|---|
| 752 |  | 
|---|
| 753 |  | 
|---|
| 754 | /* | 
|---|
| 755 | ** APM constants          @V3.0YEE06 | 
|---|
| 756 | */ | 
|---|
| 757 | #define APM_RESUME              1 | 
|---|
| 758 | #define APM_SUSPEND             2 | 
|---|
| 759 | #define APM_DISABLED            4 | 
|---|
| 760 |  | 
|---|
| 761 | /* this IOCTL is used internally between videopmi and screendd @V3.0YEE06 */ | 
|---|
| 762 | #define SCREENDD_SVGA_APM               0x10    /* Wait for APM    @V3.0YEE06 */ | 
|---|
| 763 |  | 
|---|
| 764 | #ifndef INCL_DOSDEVIOCTL                //@senja: bsedev.h can't be used by vvid | 
|---|
| 765 | #ifndef BSEDEV_INCLUDED                 //don't define if bsedev already included | 
|---|
| 766 | #define SCREENDD_SVGA_ID                0x08    /* Get SVGA info IOCTL */ | 
|---|
| 767 | #define SCREENDD_SVGA_OEM               0x09    /* Get OEM info IOCTL */ | 
|---|
| 768 | /* #define SCREENDD_SVGA_APM            0x10       Wait for APM    @V3.0YEE06 */ | 
|---|
| 769 | #define SCREENDD_CATEGORY               0x80 | 
|---|
| 770 | #define SCREENDD_NAME                   "SCREEN$" | 
|---|
| 771 | /* SCREENDD_SVGA_ID */ | 
|---|
| 772 | typedef struct _OEMSVGAINFO { /* */ | 
|---|
| 773 | USHORT AdapterType; | 
|---|
| 774 | USHORT ChipType; | 
|---|
| 775 | ULONG  Memory; | 
|---|
| 776 | } OEMSVGAINFO; | 
|---|
| 777 | /* SCREENDD_SVGA_OEM */ | 
|---|
| 778 | typedef struct _OEMINFO {    /* */ | 
|---|
| 779 | ULONG  OEMLength; | 
|---|
| 780 | USHORT Manufacturer; | 
|---|
| 781 | ULONG  ManufacturerData; | 
|---|
| 782 | USHORT ManufacturerModel;                               /*@V3.0JWK04*/ | 
|---|
| 783 | } OEMINFO; | 
|---|
| 784 | #endif | 
|---|
| 785 | #endif | 
|---|