| 1 | /***************************************************************************** | 
|---|
| 2 | * | 
|---|
| 3 | * SOURCE FILE NAME = SVGAPMI.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 VIDEOPMI specific defintions | 
|---|
| 19 | * | 
|---|
| 20 | * FUNCTIONS | 
|---|
| 21 | * | 
|---|
| 22 | * NOTES | 
|---|
| 23 | * | 
|---|
| 24 | * STRUCTURES | 
|---|
| 25 | * | 
|---|
| 26 | * EXTERNAL REFERENCES | 
|---|
| 27 | * | 
|---|
| 28 | * EXTERNAL FUNCTIONS | 
|---|
| 29 | * | 
|---|
| 30 | * CHANGE ACTIVITY = | 
|---|
| 31 | *   DATE      FLAG        APAR   CHANGE DESCRIPTION | 
|---|
| 32 | *   --------  ----------  -----  -------------------------------------- | 
|---|
| 33 | *   mm/dd/yy  @Vr.mpppxx  xxxxx  xxxxxxx | 
|---|
| 34 | *   02/14/96  @V3.2TSU00 148283  Merlin PBE, support linear aperture | 
|---|
| 35 | *   04/18/96  @V3.2TSU01 150783  Add flags for _int10handler | 
|---|
| 36 | *   07/15/96  @V3.2TSU02 160023  Use the old VIDEO_ADAPTER & VIDEOMDOEINFO | 
|---|
| 37 | * | 
|---|
| 38 | *****************************************************************************/ | 
|---|
| 39 |  | 
|---|
| 40 |  | 
|---|
| 41 | /* | 
|---|
| 42 | * This flag is used to set the linear aperture mode. | 
|---|
| 43 | * the pIn passed in PMIREQUEST_SETMODE will be the pointer to | 
|---|
| 44 | * (mode number | SET_LINEAR_BUFFER_MODE). | 
|---|
| 45 | */ | 
|---|
| 46 | #define SET_LINEAR_BUFFER_MODE  0x80000000 | 
|---|
| 47 |  | 
|---|
| 48 | /* | 
|---|
| 49 | * definitions of bus type | 
|---|
| 50 | */ | 
|---|
| 51 | #define ISA_BUS    0 | 
|---|
| 52 | #define VLB_BUS    1 | 
|---|
| 53 | #define PCI_BUS    2 | 
|---|
| 54 | #define EISA_BUS   3 | 
|---|
| 55 | #define PCMCIA_BUS 4 | 
|---|
| 56 | #define MCA_BUS    5 | 
|---|
| 57 |  | 
|---|
| 58 | /* | 
|---|
| 59 | * endian type | 
|---|
| 60 | */ | 
|---|
| 61 | #define LITTLE_ENDIAN  0 | 
|---|
| 62 | #define BIG_ENDIAN     1 | 
|---|
| 63 |  | 
|---|
| 64 |  | 
|---|
| 65 | /* | 
|---|
| 66 | ** VIDEOPMI.DLL prototypes. | 
|---|
| 67 | */ | 
|---|
| 68 | /* NOINC */ | 
|---|
| 69 | #define HVIDEO   PVOID | 
|---|
| 70 | typedef HVIDEO  *PHVIDEO; | 
|---|
| 71 |  | 
|---|
| 72 | #ifndef APIENTRY | 
|---|
| 73 | #define APIENTRY /* nothing */ | 
|---|
| 74 | #endif | 
|---|
| 75 |  | 
|---|
| 76 | #ifndef APIRET | 
|---|
| 77 | #define APIRET ULONG | 
|---|
| 78 | #endif | 
|---|
| 79 |  | 
|---|
| 80 | typedef ULONG       MODEID; | 
|---|
| 81 | typedef MODEID FAR *PMODEID; | 
|---|
| 82 |  | 
|---|
| 83 | /* | 
|---|
| 84 | ** PMIREQUEST_SOFTWAREINT structures @V3.2SEN01 | 
|---|
| 85 | */ | 
|---|
| 86 | typedef struct { | 
|---|
| 87 | ULONG ulFlags;           //VDM initialization type | 
|---|
| 88 | #define VDM_POSTLOAD    0x1  //adapter just loaded, used internally for initialization | 
|---|
| 89 | #define VDM_INITIALIZE  0x2  //force initialization of a permanently open VDM, even if previously initialized | 
|---|
| 90 | #define VDM_TERMINATE_POSTINITIALIZE   0x6  //start VDM with initialization, but close it afterwards (includes VDM_INITIALIZE) | 
|---|
| 91 | #define VDM_QUERY_CAPABILITY     0x10  // query the current int 10 capability | 
|---|
| 92 | #define VDM_FULL_VDM_CREATED     0x20  // a full VDM is created | 
|---|
| 93 | #define VDM_MINI_VDM_CREATED     0x40  // a mini VDM is created | 
|---|
| 94 | #define VDM_MINI_VDM_SUPPORTED   0x80  // mini VDM support is available | 
|---|
| 95 | PCHAR szName;            //VDM initialization program | 
|---|
| 96 | PCHAR szArgs;            //VDM initialization arguments | 
|---|
| 97 | }INITVDM; | 
|---|
| 98 |  | 
|---|
| 99 | /* | 
|---|
| 100 | * Don't change these structures without | 
|---|
| 101 | * changing the kernel dos\dosinc\vdmint10.h ! | 
|---|
| 102 | */ | 
|---|
| 103 | typedef struct { | 
|---|
| 104 | BYTE bBufferType;        // input vs output buffer | 
|---|
| 105 | #define BUFFER_NONE     0 | 
|---|
| 106 | #define INPUT_BUFFER    1 | 
|---|
| 107 | #define OUTPUT_BUFFER   2 | 
|---|
| 108 | BYTE bReserved; | 
|---|
| 109 | BYTE bSelCRF;           // CRF flag for the selector: ulong index into the CRF | 
|---|
| 110 | BYTE bOffCRF;           // CRF flag for the offset: ulong index into the CRF | 
|---|
| 111 | PVOID pAddress;         // linear address of the buffer | 
|---|
| 112 | ULONG ulSize; | 
|---|
| 113 | }BUFFER, *PBUFFER; | 
|---|
| 114 |  | 
|---|
| 115 | // CRF taken from kmode.h | 
|---|
| 116 | typedef struct vcrf_s { | 
|---|
| 117 |  | 
|---|
| 118 | ULONG reg_eax; | 
|---|
| 119 | ULONG reg_ebx; | 
|---|
| 120 | ULONG reg_ecx; | 
|---|
| 121 | ULONG reg_edx; | 
|---|
| 122 | ULONG reg_ebp; | 
|---|
| 123 | ULONG reg_esi; | 
|---|
| 124 | ULONG reg_edi; | 
|---|
| 125 | ULONG reg_ds; | 
|---|
| 126 | ULONG reg_es; | 
|---|
| 127 | ULONG reg_fs; | 
|---|
| 128 | ULONG reg_gs; | 
|---|
| 129 | ULONG reg_cs; | 
|---|
| 130 | ULONG reg_eip; | 
|---|
| 131 | ULONG reg_eflag; | 
|---|
| 132 | ULONG reg_ss; | 
|---|
| 133 | ULONG reg_esp; | 
|---|
| 134 | }VCRF; | 
|---|
| 135 |  | 
|---|
| 136 |  | 
|---|
| 137 | typedef struct { | 
|---|
| 138 | ULONG ulBIOSIntNo;      /* 0x10 for INT10 calls */ | 
|---|
| 139 | VCRF aCRF; | 
|---|
| 140 | BUFFER pB[2]; | 
|---|
| 141 | }INTCRF; | 
|---|
| 142 | #define VPRPMI "VPRPMI$" | 
|---|
| 143 | #define VPRSYSREQ_INT10HANDLER      1 | 
|---|
| 144 | #define VPRSYSREQ_INT10WAITFORPDB   2 | 
|---|
| 145 | #define VPRSYSREQ_MARKINT10VDM      3 | 
|---|
| 146 | #define VPRSYSREQ_MAX               VPRSYSREQ_MARKINT10VDM | 
|---|
| 147 | /* @V3.2SEN01 end */ | 
|---|
| 148 | /* | 
|---|
| 149 | ** Structures passed as input and output parameters. | 
|---|
| 150 | */ | 
|---|
| 151 |  | 
|---|
| 152 | typedef struct _VIDEOMODEINFO { /* vmi */ | 
|---|
| 153 | MODEID  miModeId;               /* used to make setmode request     */ | 
|---|
| 154 |  | 
|---|
| 155 | #define MODE_FLAG_NOT_MONO      0x0001  /* Mono-compatible                  */ | 
|---|
| 156 | #define MODE_FLAG_GRAPHICS      0x0002  /* Text mode, Graphics              */ | 
|---|
| 157 | #define MODE_FLAG_NO_CLR_BRST   0x0004  /* Disable Color burst              */ | 
|---|
| 158 | #define MODE_FLAG_NATIVE        0x0008  /* Native (advanced function) mode  */ | 
|---|
| 159 | #define IGNORE_CLR_BRST         0x0010  /* Disable color burst doesn't make */ | 
|---|
| 160 | /* sense for this mode              */ | 
|---|
| 161 | #define NOT_PLASMA              0x0020  /* @V2.2TSU00 won't work on plasma  */ | 
|---|
| 162 | /* display                          */ | 
|---|
| 163 | #define MODE_FLAG_VGA_ENTRY     0x0040  /* VGA mode, need clean up          */ | 
|---|
| 164 |  | 
|---|
| 165 | #define MODE_FLAG_LINEAR_BUFFER 0x0100  /* flat frame buffer is supported   */ | 
|---|
| 166 |  | 
|---|
| 167 | #define MODE_FLAG_DIRECT_RGB    0x1000  /* direct color RGB                 */ | 
|---|
| 168 | #define MODE_FLAG_DIRECT_BGR    0x2000  /* direct color BGR                 */ | 
|---|
| 169 | #define MODE_FLAG_YUV           0x4000  /* YUV color format                 */ | 
|---|
| 170 |  | 
|---|
| 171 | USHORT  usType;                 /* mode type bits                   */ | 
|---|
| 172 | USHORT  usInt10ModeSet;         /* int 10 mode                      */ | 
|---|
| 173 | USHORT  usXResolution;          /* horizontal pels                  */ | 
|---|
| 174 | USHORT  usYResolution;          /* vertical scan lines              */ | 
|---|
| 175 | ULONG   ulBufferAddress;        /* physical address of VRAM         */ | 
|---|
| 176 | ULONG   ulApertureSize;         /* VRAM aperture                    */ | 
|---|
| 177 | BYTE    bBitsPerPixel;          /* no of colors                     */ | 
|---|
| 178 | BYTE    bBitPlanes;             /* number of planes                 */ | 
|---|
| 179 | BYTE    bXCharSize;             /* font width                       */ | 
|---|
| 180 | BYTE    bYCharSize;             /* font height                      */ | 
|---|
| 181 | USHORT  usBytesPerScanLine;     /* logical line length in bytes     */ | 
|---|
| 182 | USHORT  usTextRows;             /* text rows                        */ | 
|---|
| 183 | ULONG   ulPageLength;           /* no of bytes to save a plane      */ | 
|---|
| 184 | ULONG   ulSaveSize;             /* total bytes of VRAM to save      */ | 
|---|
| 185 | /* | 
|---|
| 186 | * Monitor Info | 
|---|
| 187 | */ | 
|---|
| 188 | BYTE    bVrtRefresh; | 
|---|
| 189 | BYTE    bHrtRefresh; | 
|---|
| 190 | BYTE    bVrtPolPos; | 
|---|
| 191 | BYTE    bHrtPolPos; | 
|---|
| 192 | /* | 
|---|
| 193 | * Direct Color Fields. The same definitions as VESA 1.2 and up. | 
|---|
| 194 | */ | 
|---|
| 195 | CHAR    bRedMaskSize;               // @V3.2TSU02 | 
|---|
| 196 | CHAR    bRedFieldPosition;          // @V3.2TSU02 | 
|---|
| 197 | CHAR    bGreenMaskSize;             // @V3.2TSU02 | 
|---|
| 198 | CHAR    bGreenFieldPosition;        // @V3.2TSU02 | 
|---|
| 199 | CHAR    bBlueMaskSize;              // @V3.2TSU02 | 
|---|
| 200 | CHAR    bBlueFieldPosition;         // @V3.2TSU02 | 
|---|
| 201 | CHAR    bRsvdMaskSize;              // @V3.2TSU02 | 
|---|
| 202 | CHAR    bRsvdFieldPosition;         // @V3.2TSU02 | 
|---|
| 203 |  | 
|---|
| 204 | /* | 
|---|
| 205 | * The number of colors can be derived from MaskSize fields. | 
|---|
| 206 | */ | 
|---|
| 207 | ULONG   ulColors;             // @V3.2TSU02 | 
|---|
| 208 |  | 
|---|
| 209 | ULONG   ulReserved[3];        // @V3.2TSU02 | 
|---|
| 210 |  | 
|---|
| 211 | //        USHORT  usScrnTop;           @V3.2TSU02 | 
|---|
| 212 | //        USHORT  usScrnBottom;        @V3.2TSU02 | 
|---|
| 213 | //        USHORT  usScrnLeft;          @V3.2TSU02 | 
|---|
| 214 | //        USHORT  usScrnRight;         @V3.2TSU02 | 
|---|
| 215 |  | 
|---|
| 216 | //        CHAR    szColorFormat[8];    @V3.2TSU02 | 
|---|
| 217 | //        CHAR    szColorWeight[8];    @V3.2TSU02 | 
|---|
| 218 | #ifndef VIDEOPMI_30_LEVEL | 
|---|
| 219 | /* | 
|---|
| 220 | ** The assumption is that all of the base video components | 
|---|
| 221 | ** are built together and shipped in unison. | 
|---|
| 222 | ** In order to build a back-level 3.0 base video component | 
|---|
| 223 | ** (VIDEOPMI, BVHSVGA, VIDEOCFG, IBMGPMI), define macro | 
|---|
| 224 | ** VIDEOPMI_30_LEVEL. | 
|---|
| 225 | */ | 
|---|
| 226 | //        ULONG   ulColors;               /* @V3.2SEN01 @V3.2TSU02 */ | 
|---|
| 227 | #endif | 
|---|
| 228 |  | 
|---|
| 229 | } VIDEOMODEINFO; | 
|---|
| 230 | typedef VIDEOMODEINFO FAR *PVIDEOMODEINFO; | 
|---|
| 231 |  | 
|---|
| 232 | typedef struct _SVGARGB { /* rgb */ | 
|---|
| 233 | BYTE    bR; | 
|---|
| 234 | BYTE    bG; | 
|---|
| 235 | BYTE    bB; | 
|---|
| 236 | BYTE    bUnused; | 
|---|
| 237 | } SVGARGB; | 
|---|
| 238 | typedef SVGARGB FAR *PSVGARGB; | 
|---|
| 239 |  | 
|---|
| 240 | #define EIGHT_BIT_DAC   0x00010000      /* over load ulRGBCount to tell     */ | 
|---|
| 241 | /* videopmi the dac values are for  */ | 
|---|
| 242 | /* 8 bit DAC.                       */ | 
|---|
| 243 |  | 
|---|
| 244 | typedef struct _CLUTDATA { /* clt */ | 
|---|
| 245 | ULONG   ulRGBCount;             /* No of aRGB entries that follow   */ | 
|---|
| 246 | ULONG   ulRGBStart;             /* Start index for RGB triplets     */ | 
|---|
| 247 | SVGARGB aRGB[1];                /* One defined, ulRGBCount entries  */ | 
|---|
| 248 | } CLUTDATA; | 
|---|
| 249 | typedef CLUTDATA FAR *PCLUTDATA; | 
|---|
| 250 |  | 
|---|
| 251 | typedef struct _PALETTEDATA { /* pal */ | 
|---|
| 252 | ULONG   ulPalCount;             /* No of bPal.. entries that follow */ | 
|---|
| 253 | ULONG   ulPalStart;             /* Start index for data             */ | 
|---|
| 254 | BYTE    bPaletteData[1];        /* One defined, ulPalCount entries  */ | 
|---|
| 255 | } PALETTEDATA; | 
|---|
| 256 | typedef PALETTEDATA FAR *PPALETTEDATA; | 
|---|
| 257 |  | 
|---|
| 258 | typedef struct _FONTDATA { /* font */ | 
|---|
| 259 | ULONG   ulCharCount;            /* No of chars in font              */ | 
|---|
| 260 | ULONG   ulFontHeight;           /* No of scanlines per character    */ | 
|---|
| 261 | ULONG   ulFontWidth;            /* No of columns per character      */ | 
|---|
| 262 | BYTE    bFontData[1];           /* ulCharCount*ulFontHeight entries */ | 
|---|
| 263 | } FONTDATA; | 
|---|
| 264 | typedef FONTDATA FAR *PFONTDATA; | 
|---|
| 265 |  | 
|---|
| 266 | typedef BYTE FAR *PVRAMDATA; | 
|---|
| 267 |  | 
|---|
| 268 | typedef struct _CLEANDATA { /* clean */ | 
|---|
| 269 | USHORT  Command; | 
|---|
| 270 | USHORT  IndexPort; | 
|---|
| 271 | USHORT  DataPort; | 
|---|
| 272 | USHORT  Index; | 
|---|
| 273 | USHORT  ANDMask; | 
|---|
| 274 | USHORT  ORMask; | 
|---|
| 275 | } CLEANDATA; | 
|---|
| 276 |  | 
|---|
| 277 | typedef struct _BANKDATA { /* bank */ | 
|---|
| 278 | MODEID  miBank;                 /*                                  */ | 
|---|
| 279 | ULONG   ulBank;                 /*                                  */ | 
|---|
| 280 | } BANKDATA; | 
|---|
| 281 | typedef BANKDATA FAR *PBANKDATA; | 
|---|
| 282 |  | 
|---|
| 283 | #define MAX_OEM_STRING  128 | 
|---|
| 284 | #define MAX_DAC_STRING  128 | 
|---|
| 285 | #define MAX_VERSION     128 | 
|---|
| 286 |  | 
|---|
| 287 | typedef struct _ADAPTERINFO {   /* adi */ | 
|---|
| 288 | ULONG       ulAdapterID; | 
|---|
| 289 | CHAR        szOEMString[MAX_OEM_STRING];    /* adapter info from Hardware section */ | 
|---|
| 290 | CHAR        szDACString[MAX_DAC_STRING];    /* DAC info from Hardware section */ | 
|---|
| 291 | CHAR        szRevision[MAX_VERSION];        /* whatever the revision  means   */ | 
|---|
| 292 | ULONG       ulTotalMemory; | 
|---|
| 293 | ULONG       ulMMIOBaseAddress; | 
|---|
| 294 | ULONG       ulPIOBaseAddress; | 
|---|
| 295 | BYTE        bBusType; | 
|---|
| 296 | BYTE        bEndian; | 
|---|
| 297 | USHORT      usDeviceBusID;       /* has to be 2 bytes */ | 
|---|
| 298 | USHORT      usVendorBusID;       /* has to be 2 bytes */ | 
|---|
| 299 | USHORT      SlotID;              /* has to be 2 bytes */ | 
|---|
| 300 | } ADAPTERINFO, FAR *PADAPTERINFO; | 
|---|
| 301 |  | 
|---|
| 302 | /* | 
|---|
| 303 | * Adapter Instance definition. The structure will be passed in every | 
|---|
| 304 | * PMIREQUEST call. | 
|---|
| 305 | */ | 
|---|
| 306 | typedef struct _VIDEO_ADAPTER { /* va */ | 
|---|
| 307 | HVIDEO          hvideo; | 
|---|
| 308 |  | 
|---|
| 309 | /* | 
|---|
| 310 | ** The assumption is that all of the base video components | 
|---|
| 311 | ** are built together and shipped in unison (any driver including | 
|---|
| 312 | ** svgadefs.h and using the VIDEOPMI interface as well). | 
|---|
| 313 | ** | 
|---|
| 314 | ** @V3.0TSU00 | 
|---|
| 315 | ** All the callers to videopmi have to fill cbAdapterInfo and | 
|---|
| 316 | ** and cbVideoModeInfo with sizeof (ADAPTERINFO) and | 
|---|
| 317 | ** sizeof (VIDEOMODEINFO), respectively. It is for version control. | 
|---|
| 318 | ** All the DLLs called by videopmi have to access the ModeInfo field | 
|---|
| 319 | ** in VIDEO_ADAPTER by the offset of ModeInfo. | 
|---|
| 320 | ** For example, instead of pAdapter->ModeInfo.bBitsPerPixel, | 
|---|
| 321 | ** it should be | 
|---|
| 322 | **    ((PVIDEOMODEINFO)&((PBYTE)&(pAdapter->Adapter) + pAdapter->AdapterInfo_cb))-> | 
|---|
| 323 | **                                              bBitsPerPixel. | 
|---|
| 324 | */ | 
|---|
| 325 |  | 
|---|
| 326 | // | 
|---|
| 327 | //    Goes back to the old structure of OS/2 Warp 3.0. | 
|---|
| 328 | // | 
|---|
| 329 | //     USHORT      AdapterInfo_cb;       @V3.2TSU02 | 
|---|
| 330 | //     USHORT      VideoModeInfo_cb;     @V3.2TSU02 | 
|---|
| 331 |  | 
|---|
| 332 | ADAPTERINFO     Adapter; | 
|---|
| 333 | VIDEOMODEINFO   ModeInfo; | 
|---|
| 334 | } VIDEO_ADAPTER, FAR *PVIDEO_ADAPTER; | 
|---|
| 335 |  | 
|---|
| 336 | /* | 
|---|
| 337 | * prototype for import functions in PMI file | 
|---|
| 338 | */ | 
|---|
| 339 | typedef ULONG   *PREGS;     //pointer to registers. Passed to imported PMI functions. | 
|---|
| 340 | typedef APIRET (EXPENTRY FNIMPORTPMI)(PVIDEO_ADAPTER, PREGS); | 
|---|
| 341 | typedef FNIMPORTPMI *PFNIMPORTPMI; | 
|---|
| 342 |  | 
|---|
| 343 | #ifdef INCL_16 | 
|---|
| 344 | #define VIDEOAPI FAR     //this controls the calling convention. | 
|---|
| 345 | #else                           // 32-bit code | 
|---|
| 346 | #define VIDEOAPI EXPENTRY       //C calling convention | 
|---|
| 347 | #endif | 
|---|
| 348 |  | 
|---|
| 349 | /* | 
|---|
| 350 | ** prototype for META PMI imports   @V3.2SEN01 | 
|---|
| 351 | */ | 
|---|
| 352 | typedef APIRET (VIDEOAPI FNPMIREQ)(PVIDEO_ADAPTER, PVOID, PVOID); | 
|---|
| 353 | typedef FNPMIREQ *PFNPMIREQ; | 
|---|
| 354 |  | 
|---|
| 355 | typedef struct _PMIREQUEST { | 
|---|
| 356 | PFNPMIREQ       pfnPMIRequest; | 
|---|
| 357 | ULONG           ulRing2Call; | 
|---|
| 358 | } PMIREQUEST; | 
|---|
| 359 | typedef PMIREQUEST *PPMIREQUEST; | 
|---|
| 360 |  | 
|---|
| 361 | #define METAPMI_LOADADAPTER "LoadAdapter" | 
|---|
| 362 |  | 
|---|
| 363 | typedef APIRET (EXPENTRY FNIMPORTLOADPMI)(CHAR *,PPMIREQUEST); | 
|---|
| 364 | typedef FNIMPORTLOADPMI *PFNIMPORTLOADPMI; | 
|---|
| 365 |  | 
|---|
| 366 | /* | 
|---|
| 367 | ** prototype for VIDEOPMI request functions | 
|---|
| 368 | */ | 
|---|
| 369 | typedef APIRET (VIDEOAPI FNVIDEOPMIREQUEST)(PVIDEO_ADAPTER, ULONG, PVOID, PVOID); | 
|---|
| 370 |  | 
|---|
| 371 | typedef FNVIDEOPMIREQUEST     *PFNVIDEOPMIREQUEST; | 
|---|
| 372 | /* used to exchange data with vvid */ | 
|---|
| 373 | typedef struct _VDDDATA {    /* vdd */ | 
|---|
| 374 | PFNVIDEOPMIREQUEST       npfnEntryPointAddress; | 
|---|
| 375 | HVIDEO                   hvideo; | 
|---|
| 376 | } VDDDATA; | 
|---|
| 377 | typedef VDDDATA *PVDDATA; | 
|---|
| 378 | /* INC */ | 
|---|
| 379 | /* | 
|---|
| 380 | ** Save Restore constants | 
|---|
| 381 | */ | 
|---|
| 382 |  | 
|---|
| 383 | #define STATEFLAG_REGISTERS     0x0001  /*                                  */ | 
|---|
| 384 | #define STATEFLAG_CLUT          0x0002  /*                                  */ | 
|---|
| 385 | #define STATEFLAG_VRAM          0x0004  /*                                  */ | 
|---|
| 386 | #define STATEFLAG_FONT          0x0008  /*                                  */ | 
|---|
| 387 |  | 
|---|
| 388 | /* NOINC */ | 
|---|
| 389 | typedef struct _VIDEOSTATE { /* vst */ | 
|---|
| 390 | ULONG     fStateFlags;          /*                                  */ | 
|---|
| 391 | MODEID    miState;              /*                                  */ | 
|---|
| 392 | PVOID     pModeData;            /*                                  */ | 
|---|
| 393 | ULONG     ulVRAMSaveSize;       /* No of bytes/page to save         */ | 
|---|
| 394 | PVRAMDATA pVRAM;                /*                                  */ | 
|---|
| 395 | PCLUTDATA pCLUT;                /*                                  */ | 
|---|
| 396 | PFONTDATA pFont;                /*                                  */ | 
|---|
| 397 | } VIDEOSTATE; | 
|---|
| 398 | typedef VIDEOSTATE FAR *PVIDEOSTATE; | 
|---|
| 399 | /* INC */ | 
|---|
| 400 |  | 
|---|
| 401 | /* | 
|---|
| 402 | ** Function request parameters supported. | 
|---|
| 403 | */ | 
|---|
| 404 |  | 
|---|
| 405 | #define PMIREQUEST_SETMODE                 0 | 
|---|
| 406 | #define PMIREQUEST_LOCKREGISTERS           1 | 
|---|
| 407 | #define PMIREQUEST_UNLOCKREGISTERS         2 | 
|---|
| 408 | #define PMIREQUEST_CLEANUP                 3 | 
|---|
| 409 | #define PMIREQUEST_SAVESTATE               4 | 
|---|
| 410 | #define PMIREQUEST_RESTORESTATE            5 | 
|---|
| 411 | #define PMIREQUEST_GETBANK                 6 | 
|---|
| 412 | #define PMIREQUEST_SETBANK                 7 | 
|---|
| 413 | #define PMIREQUEST_GETCLUT                 8 | 
|---|
| 414 | #define PMIREQUEST_SETCLUT                 9 | 
|---|
| 415 | #define PMIREQUEST_GETPALETTE             10 | 
|---|
| 416 | #define PMIREQUEST_SETPALETTE             11 | 
|---|
| 417 | #define PMIREQUEST_GETFONT                12 | 
|---|
| 418 | #define PMIREQUEST_SETFONT                13 | 
|---|
| 419 | #define PMIREQUEST_TUNEDISPLAY            14        /* @V2.2TSU00 */ | 
|---|
| 420 | #define PMIREQUEST_QUERYMAXMODEENTRIES    15 | 
|---|
| 421 | #define PMIREQUEST_QUERYMAXMODELISTSIZE   16 | 
|---|
| 422 | #define PMIREQUEST_QUERYMODEINFODATA      17 | 
|---|
| 423 | #define PMIREQUEST_QUERYMAXTRAPENTRIES    18 | 
|---|
| 424 | #define PMIREQUEST_QUERYTRAPLISTDATA      19 | 
|---|
| 425 | #define PMIREQUEST_QUERYMODEHRDWRLIST     20        /* @V2.2TSU00 */ | 
|---|
| 426 | #define PMIREQUEST_LOADPMIFILE            21 | 
|---|
| 427 | #define PMIREQUEST_IDENTIFYADAPTER        22 | 
|---|
| 428 | #define PMIREQUEST_SOFTWAREINT            23             /* @V3.2SEN01 */ | 
|---|
| 429 | #define PMIREQUEST_INT10         PMIREQUEST_SOFTWAREINT | 
|---|
| 430 | #define PMIREQUEST_UNLOADPMIFILE          24 | 
|---|
| 431 | #define PMIREQUEST_SETMEMORYIOADDRESS     25            /* @V3.2TSU00 */ | 
|---|
| 432 |  | 
|---|
| 433 | #define PMIREQUEST_MAX (PMIREQUEST_SETMEMORYIOADDRESS + 1) /* last entry + 1 */ | 
|---|
| 434 |  | 
|---|
| 435 | /* NOINC */ | 
|---|
| 436 |  | 
|---|
| 437 | /* | 
|---|
| 438 | * define PMIDEF_INCL to include the following definitions. | 
|---|
| 439 | */ | 
|---|
| 440 | #ifdef PMIDEF_INCL | 
|---|
| 441 |  | 
|---|
| 442 | /* @V2.2TSU00 | 
|---|
| 443 | ** Possible flags in ModeAtrributes field in PMI file | 
|---|
| 444 | ** the flags will be saved in ModeInfo.ulType | 
|---|
| 445 | */ | 
|---|
| 446 | #define  PMI_MODE_COLOUR          0x08        /* Bit 3 - 0 = mono, 1 = colour */ | 
|---|
| 447 | #define  PMI_MODE_GRAPHICS        0x10      /* Bit 4 - 0 = text, 1 = graphics */ | 
|---|
| 448 | #define  PMI_MODE_VGA_ENTRY       0x20/* vga entry, need clean up in set mode */ | 
|---|
| 449 | #define  PMI_MODE_IGNORE_CLR_BRST 0x40 /* won't work on B/W mode              */ | 
|---|
| 450 | #define  PMI_MODE_LINEAR_APERTURE 0x80 /* linear aperture mode */ | 
|---|
| 451 |  | 
|---|
| 452 | /* | 
|---|
| 453 | * PMI commands | 
|---|
| 454 | */ | 
|---|
| 455 | #define PMICMD_NONE             0xFF            //reserved | 
|---|
| 456 | #define PMICMD_INB              0 | 
|---|
| 457 | #define PMICMD_OUTB             1 | 
|---|
| 458 | #define PMICMD_INW              2 | 
|---|
| 459 | #define PMICMD_OUTW             3 | 
|---|
| 460 | #define PMICMD_INDW             4 | 
|---|
| 461 | #define PMICMD_OUTDW            5 | 
|---|
| 462 | #define PMICMD_BINB             6 | 
|---|
| 463 | #define PMICMD_BOUTB            7 | 
|---|
| 464 | #define PMICMD_ABOUTW           8 | 
|---|
| 465 | #define PMICMD_ABOUTDW          9 | 
|---|
| 466 | #define PMICMD_RMWBN           10 | 
|---|
| 467 | #define PMICMD_RMWBI           11 | 
|---|
| 468 | #define PMICMD_RMWWN           12 | 
|---|
| 469 | #define PMICMD_REGOP           13 | 
|---|
| 470 | #define PMICMD_ASSIGN          14 | 
|---|
| 471 | /***************** for backward compatibility ***************/ | 
|---|
| 472 | #define PMICMD_WAIT            15 | 
|---|
| 473 | #define PMI_WAIT_CLEAR          0       /* Wait for CLEAR condition         */ | 
|---|
| 474 | /***************** for backward compatibility ***************/ | 
|---|
| 475 | #define PMICMD_WAITB           16 | 
|---|
| 476 | #define PMICMD_WAITW           17 | 
|---|
| 477 | #define PMICMD_WAITDW          18 | 
|---|
| 478 | #define PMICMD_READB           19               /* @V2.2TSU00          */ | 
|---|
| 479 | #define PMICMD_READW           20               /* Don't rearrange the */ | 
|---|
| 480 | #define PMICMD_READDW          21               /* order or put        */ | 
|---|
| 481 | #define PMICMD_WRITEB          22               /* anything in between */ | 
|---|
| 482 | #define PMICMD_WRITEW          23               /* for these MMIO      */ | 
|---|
| 483 | #define PMICMD_WRITEDW         24               /* commands            */ | 
|---|
| 484 | #define PMICMD_ROUTINE         25               /* @V2.2TSU01          */ | 
|---|
| 485 | #define PMICMD_LABEL           26 | 
|---|
| 486 | #define PMICMD_WHILE           27 | 
|---|
| 487 | #define PMICMD_ENDWHILE        28 | 
|---|
| 488 | #define PMICMD_IF              29 | 
|---|
| 489 | #define PMICMD_GOTO            30 | 
|---|
| 490 | #define PMICMD_STRCMP          31 | 
|---|
| 491 | #define PMICMD_MEMCMP          32 | 
|---|
| 492 | #define PMICMD_CALL            33 | 
|---|
| 493 | #define PMICMD_MAX             PMICMD_CALL  /* equals last entry   */ | 
|---|
| 494 |  | 
|---|
| 495 |  | 
|---|
| 496 | #define PMI_REGOP_ASSIGN          0     /* Rxxx  = <value>                  */ | 
|---|
| 497 | #define PMI_REGOP_AND             1     /* Rxxx &= <value>                  */ | 
|---|
| 498 | #define PMI_REGOP_OR              2     /* Rxxx |= <value>                  */ | 
|---|
| 499 | #define PMI_REGOP_XOR             3     /* Rxxx ^= <value>                  */ | 
|---|
| 500 | #define PMI_REGOP_PLUS            4     /* Rxxx += <value>                  */ | 
|---|
| 501 | #define PMI_REGOP_MINUS           5     /* Rxxx -= <value>                  */ | 
|---|
| 502 | #define PMI_REGOP_SHL             6     /* Rxxx <= <value>                  */ | 
|---|
| 503 | #define PMI_REGOP_SHR             7     /* Rxxx >= <value>                  */ | 
|---|
| 504 | #define PMI_REGOP_LESS            8     /* Rxx < Rxyy                       */ | 
|---|
| 505 | #define PMI_REGOP_LESS_EQUALS     9     /* Rxx <= Ryy                       */ | 
|---|
| 506 | #define PMI_REGOP_GREATER         10    /* Rxx > Rxyy                       */ | 
|---|
| 507 | #define PMI_REGOP_GREATER_EQUALS  11    /* Rxx >= Ryy                       */ | 
|---|
| 508 | #define PMI_REGOP_EQUALS          12    /* Rxx == Ryy                       */ | 
|---|
| 509 | #define PMI_REGOP_NOT_EQUALS      13    /* Rxx != Ryy                       */ | 
|---|
| 510 | #define PMI_REGOP_MAX  PMI_REGOP_NOT_EQUALS /* must equal last entry        */ | 
|---|
| 511 |  | 
|---|
| 512 | /* | 
|---|
| 513 | **      Type Definitions | 
|---|
| 514 | ** | 
|---|
| 515 | **      Tokens are grouped, and must be kept that way. | 
|---|
| 516 | **      There are dummy tokens, place holders, TOK_??_BEGIN and TOK_??_END | 
|---|
| 517 | **      to make tests and expansion easier. Just be sure to keep token | 
|---|
| 518 | **      info for a given section, within these bounds. | 
|---|
| 519 | */ | 
|---|
| 520 |  | 
|---|
| 521 | typedef enum _PMITOKEN {        /* pt */ | 
|---|
| 522 | TOK_SECT_BEGIN, | 
|---|
| 523 | /***************** for backward compatibility ***************/ | 
|---|
| 524 | TOK_ADAPTERTYPE,           /* Section Heading tokens */ | 
|---|
| 525 | TOK_CHIPSET, | 
|---|
| 526 | /***************** for backward compatibility ***************/ | 
|---|
| 527 | TOK_PMIVERSION,           /* Section Heading tokens */ | 
|---|
| 528 | TOK_COMMENT, | 
|---|
| 529 | TOK_MODEINFO, | 
|---|
| 530 | TOK_SETMODE, | 
|---|
| 531 | TOK_MONITORMODEINFO, | 
|---|
| 532 | TOK_TRAPREGS, | 
|---|
| 533 | TOK_UNLOCK, | 
|---|
| 534 | TOK_LOCK, | 
|---|
| 535 | TOK_CLEANUP, | 
|---|
| 536 | TOK_SETBANK, | 
|---|
| 537 | TOK_GETBANK, | 
|---|
| 538 | TOK_DECLARATIONS, | 
|---|
| 539 | TOK_COPYVRAM, | 
|---|
| 540 | TOK_TUNEDISPLAY, | 
|---|
| 541 | TOK_SETMEMORYIOADDRESS,             // @V3.2TSU00 | 
|---|
| 542 | TOK_HARDWARE, | 
|---|
| 543 | TOK_IDENTIFYADAPTER, | 
|---|
| 544 | TOK_ISENGINEBUSY, | 
|---|
| 545 | TOK_ENABLECONTROLLER, | 
|---|
| 546 | TOK_DISABLECONTROLLER, | 
|---|
| 547 | TOK_SETMONITORTIMINGS, | 
|---|
| 548 | TOK_ROUTINE_DECLR,             /* @V2.2TSU01 */ | 
|---|
| 549 | TOK_INCLUDE,                   /* text include */ | 
|---|
| 550 | TOK_INCLUDECODE,               /* DLL include  */ | 
|---|
| 551 | TOK_SECT_END, | 
|---|
| 552 |  | 
|---|
| 553 | TOK_MI_BEGIN, | 
|---|
| 554 | TOK_MODEATTRIBUTES,        /* ModeInfo Section tokens */ | 
|---|
| 555 | TOK_INT10MODESET,          /* @V2.2TSU00 int 10 mode */ | 
|---|
| 556 | TOK_BYTESPERSCANLINE, | 
|---|
| 557 | TOK_TEXTROWS,              /* [ModeInfo] and [Hardware] tokens       */ | 
|---|
| 558 | TOK_XRESOLUTION,           /* are PMI keyvariables. Do remember      */ | 
|---|
| 559 | TOK_YRESOLUTION,           /* update the PMIKeyVarTable[] and        */ | 
|---|
| 560 | TOK_XCHARSIZE,             /* PMI Keyvariable defines in header file */ | 
|---|
| 561 | TOK_YCHARSIZE, | 
|---|
| 562 | TOK_BITSPERPIXEL, | 
|---|
| 563 | TOK_NUMBEROFPLANES, | 
|---|
| 564 | TOK_PAGELENGTH, | 
|---|
| 565 | TOK_SAVESIZE, | 
|---|
| 566 | TOK_BUFFERADDRESS, | 
|---|
| 567 | TOK_APERTURESIZE, | 
|---|
| 568 | TOK_COLORFORMAT, | 
|---|
| 569 | TOK_COLORWEIGHT, | 
|---|
| 570 | TOK_VERTICALREFRESH, | 
|---|
| 571 | TOK_HORIZONTALREFRESH, | 
|---|
| 572 | TOK_VPOLARITYPOSITIVE, | 
|---|
| 573 | TOK_HPOLARITYPOSITIVE, | 
|---|
| 574 | TOK_SCREENLEFTEDGE, | 
|---|
| 575 | TOK_SCREENRIGHTEDGE, | 
|---|
| 576 | TOK_SCREENTOPEDGE, | 
|---|
| 577 | TOK_SCREENBOTTOMEDGE, | 
|---|
| 578 | TOK_COLORS,        /* @V3.2SEN01 number of colors field added */ | 
|---|
| 579 | /***************** for backward compatibility ***************/ | 
|---|
| 580 | TOK_INTERLACEMODE, | 
|---|
| 581 | /***************** for backward compatibility ***************/ | 
|---|
| 582 | TOK_MI_END, | 
|---|
| 583 |  | 
|---|
| 584 | TOK_HARDWARE_BEGIN,      /* @V2.2TSU00 Hardware Section */ | 
|---|
| 585 | TOK_BUSTYPE, | 
|---|
| 586 | TOK_OEMSTRING, | 
|---|
| 587 | TOK_DACSTRING, | 
|---|
| 588 | TOK_VERSION, | 
|---|
| 589 | TOK_TOTALMEMORY, | 
|---|
| 590 | TOK_MEMORYIOADDRESS, | 
|---|
| 591 | TOK_PORTIOADDRESS, | 
|---|
| 592 | TOK_ENDIAN, | 
|---|
| 593 | TOK_INT10SETMODE,                   /* @V3.1TSU00  */ | 
|---|
| 594 | TOK_HARDWARE_END, | 
|---|
| 595 |  | 
|---|
| 596 | TOK_TRAP_BEGIN, | 
|---|
| 597 | TOK_BYTE_IOPORT,             /* @V2.2TSU00, trap registers type */ | 
|---|
| 598 | TOK_WORD_IOPORT, | 
|---|
| 599 | TOK_DWORD_IOPORT, | 
|---|
| 600 | TOK_BYTE_MMIOPORT, | 
|---|
| 601 | TOK_WORD_MMIOPORT, | 
|---|
| 602 | TOK_DWORD_MMIOPORT, | 
|---|
| 603 | TOK_RESET, | 
|---|
| 604 | TOK_INDEX, | 
|---|
| 605 | TOK_INDEXMASK, | 
|---|
| 606 | TOK_DATAMASK, | 
|---|
| 607 | TOK_ACCEL, | 
|---|
| 608 | TOK_RO, | 
|---|
| 609 | TOK_WO, | 
|---|
| 610 | TOK_RW, | 
|---|
| 611 | TOK_TRAP_END, | 
|---|
| 612 |  | 
|---|
| 613 | TOK_SM_BEGIN, | 
|---|
| 614 | TOK_INB,                /* Command Section tokens */ | 
|---|
| 615 | TOK_OUTB, | 
|---|
| 616 | TOK_INW, | 
|---|
| 617 | TOK_INDW, | 
|---|
| 618 | TOK_OUTW, | 
|---|
| 619 | TOK_OUTDW, | 
|---|
| 620 | TOK_BINB, | 
|---|
| 621 | TOK_BOUTB, | 
|---|
| 622 | TOK_RMWBI, | 
|---|
| 623 | TOK_RMWBN, | 
|---|
| 624 | TOK_RMWWN, | 
|---|
| 625 | TOK_ABOUTW, | 
|---|
| 626 | TOK_ABOUTDW, | 
|---|
| 627 | TOK_IF, | 
|---|
| 628 | TOK_GOTO, | 
|---|
| 629 | TOK_VARIABLE, | 
|---|
| 630 | TOK_WHILE, | 
|---|
| 631 | TOK_ENDWHILE, | 
|---|
| 632 | TOK_MEMCMP, | 
|---|
| 633 | TOK_STRCMP, | 
|---|
| 634 | TOK_READB,         /* @V2.2TSU00          */ | 
|---|
| 635 | TOK_READW,         /* Don't rearrange the */ | 
|---|
| 636 | TOK_READDW,        /* order or put        */ | 
|---|
| 637 | TOK_WRITEB,        /* anything in between */ | 
|---|
| 638 | TOK_WRITEW,        /* for these MMIO      */ | 
|---|
| 639 | TOK_WRITEDW,       /* commands            */ | 
|---|
| 640 | TOK_CALL, | 
|---|
| 641 | TOK_ROUTINE, | 
|---|
| 642 | /***************** for backward compatibility ***************/ | 
|---|
| 643 | TOK_WAIT, | 
|---|
| 644 | /***************** for backward compatibility ***************/ | 
|---|
| 645 | TOK_WAITB, | 
|---|
| 646 | TOK_WAITW, | 
|---|
| 647 | TOK_WAITDW, | 
|---|
| 648 | TOK_VALUE, | 
|---|
| 649 | TOK_PMIREG, | 
|---|
| 650 | TOK_LPAREN, | 
|---|
| 651 | TOK_RPAREN, | 
|---|
| 652 | TOK_LBRACE, | 
|---|
| 653 | TOK_RBRACE, | 
|---|
| 654 | TOK_EQUALS, | 
|---|
| 655 | TOK_NOTEQUALS, | 
|---|
| 656 | TOK_SEMICOLON, | 
|---|
| 657 | TOK_COMMA, | 
|---|
| 658 | TOK_COLON, | 
|---|
| 659 | TOK_MINUS, | 
|---|
| 660 | TOK_HYPHEN = TOK_MINUS, | 
|---|
| 661 | TOK_NEGATE,         /* @V2.2TSU01 */ | 
|---|
| 662 | TOK_DOUBLEQUOTE, | 
|---|
| 663 | TOK_PLUS, | 
|---|
| 664 | TOK_REGOP_AND, | 
|---|
| 665 | TOK_REGOP_OR, | 
|---|
| 666 | TOK_REGOP_XOR, | 
|---|
| 667 | TOK_REGOP_SHL, | 
|---|
| 668 | TOK_LESS = TOK_REGOP_SHL,  /* @V2.2TSU01 */ | 
|---|
| 669 | TOK_REGOP_SHR, | 
|---|
| 670 | TOK_SM_END, | 
|---|
| 671 |  | 
|---|
| 672 | TOK_EOF, | 
|---|
| 673 | TOK_IOPORT, | 
|---|
| 674 | TOK_MMIO, | 
|---|
| 675 | TOK_PIO, | 
|---|
| 676 | TOK_ISA, | 
|---|
| 677 | TOK_VLB, | 
|---|
| 678 | TOK_PCI, | 
|---|
| 679 | TOK_EISA, | 
|---|
| 680 | TOK_PCMCIA, | 
|---|
| 681 | TOK_MCA, | 
|---|
| 682 | TOK_BIG_ENDIAN, | 
|---|
| 683 | TOK_LITTLE_ENDIAN, | 
|---|
| 684 | TOK_QUOTEDSTRING, | 
|---|
| 685 | TOK_MMIO_REG_NAME, | 
|---|
| 686 | TOK_IOPORT_NAME, | 
|---|
| 687 | TOK_PMI_KEYVAR, | 
|---|
| 688 | TOK_SHADOWVRAM, | 
|---|
| 689 | TOK_MINIVDM,                /* @V3.1TSU00  */ | 
|---|
| 690 | TOK_FULLVDM,                /* @V3.1TSU00  */ | 
|---|
| 691 | TOK_ERROR,                /* error */ | 
|---|
| 692 | TOK_PASS | 
|---|
| 693 | } PMITOKEN; | 
|---|
| 694 |  | 
|---|
| 695 | typedef struct _TOK { /* tok */ | 
|---|
| 696 | CHAR *tok_txt; | 
|---|
| 697 | PMITOKEN tok_val; | 
|---|
| 698 | } TOK; | 
|---|
| 699 |  | 
|---|
| 700 | /* | 
|---|
| 701 | * definitions of bus types. | 
|---|
| 702 | */ | 
|---|
| 703 | #define ISA_BUS    0           /* @V2.2SENJA */ | 
|---|
| 704 | #define VLB_BUS    1 | 
|---|
| 705 | #define PCI_BUS    2 | 
|---|
| 706 | #define EISA_BUS   3 | 
|---|
| 707 | #define PCMCIA_BUS 4 | 
|---|
| 708 | #define MCA_BUS    5 | 
|---|
| 709 | #define BUS_MAX MCA_BUS | 
|---|
| 710 |  | 
|---|
| 711 | #endif /* PMIDEF_INCL */ | 
|---|
| 712 |  | 
|---|
| 713 | /* | 
|---|
| 714 | * PMI token declarations | 
|---|
| 715 | * PMI_TOKEN_ARRAY should be defined to include the following array. | 
|---|
| 716 | * In this way, this array will not be allocated for every C file. | 
|---|
| 717 | */ | 
|---|
| 718 | #ifdef PMI_TOKEN_ARRAY | 
|---|
| 719 |  | 
|---|
| 720 | TOK Tokens[] = | 
|---|
| 721 | { | 
|---|
| 722 |  | 
|---|
| 723 | /***************** for backward compatibility ***************/ | 
|---|
| 724 | "[ADAPTERTYPE]",      TOK_ADAPTERTYPE, | 
|---|
| 725 | "[CHIPSET]",          TOK_CHIPSET, | 
|---|
| 726 | /***************** for backward compatibility ***************/ | 
|---|
| 727 | "[PMIVERSION]",       TOK_PMIVERSION, | 
|---|
| 728 | "[COMMENT]",          TOK_COMMENT, | 
|---|
| 729 | "[MODEINFO]",         TOK_MODEINFO, | 
|---|
| 730 | "[SETMODE]",          TOK_SETMODE, | 
|---|
| 731 | "[MONITORMODEINFO]",  TOK_MONITORMODEINFO, | 
|---|
| 732 | "[TRAPREGS]",         TOK_TRAPREGS, | 
|---|
| 733 | "[UNLOCK]",           TOK_UNLOCK, | 
|---|
| 734 | "[LOCK]",             TOK_LOCK, | 
|---|
| 735 | "[CLEANUP]",          TOK_CLEANUP, | 
|---|
| 736 | "[SETBANK]",          TOK_SETBANK, | 
|---|
| 737 | "[GETBANK]",          TOK_GETBANK, | 
|---|
| 738 | "[DECLARATIONS]",     TOK_DECLARATIONS, | 
|---|
| 739 | "[COPYVRAM]",         TOK_COPYVRAM, | 
|---|
| 740 | "[TUNEDISPLAY]",      TOK_TUNEDISPLAY, | 
|---|
| 741 | "[SETMEMORYIOADDRESS]",TOK_SETMEMORYIOADDRESS,  // @V3.2TSU00 | 
|---|
| 742 | "[HARDWARE]",         TOK_HARDWARE, | 
|---|
| 743 | "[IDENTIFYADAPTER]",  TOK_IDENTIFYADAPTER, | 
|---|
| 744 | "[ISENGINEBUSY]",     TOK_ISENGINEBUSY, | 
|---|
| 745 | "[ENABLECONTROLLER]", TOK_ENABLECONTROLLER, | 
|---|
| 746 | "[DISABLECONTROLLER]",TOK_DISABLECONTROLLER, | 
|---|
| 747 | "[SETMONITORTIMINGS]",TOK_SETMONITORTIMINGS, | 
|---|
| 748 | "INCLUDE",            TOK_INCLUDE,                   /* text include */ | 
|---|
| 749 | "INCLUDECODE",        TOK_INCLUDECODE,               /* DLL include  */ | 
|---|
| 750 | /* | 
|---|
| 751 | * Hardware Section | 
|---|
| 752 | */ | 
|---|
| 753 | "BUSTYPE",            TOK_BUSTYPE, | 
|---|
| 754 | "OEMSTRING",          TOK_OEMSTRING, | 
|---|
| 755 | "DACSTRING",          TOK_DACSTRING, | 
|---|
| 756 | "VERSION",            TOK_VERSION, | 
|---|
| 757 | "TOTALMEMORY",        TOK_TOTALMEMORY, | 
|---|
| 758 | "MEMORYIOADDRESS",    TOK_MEMORYIOADDRESS, | 
|---|
| 759 | "PORTIOADDRESS",      TOK_PORTIOADDRESS, | 
|---|
| 760 | "ENDIAN",             TOK_ENDIAN, | 
|---|
| 761 | "INT10SETMODE",       TOK_INT10SETMODE,    /* @V3.1TSU00  */ | 
|---|
| 762 | /* | 
|---|
| 763 | * TrapRegs Section | 
|---|
| 764 | */ | 
|---|
| 765 | "BYTE_IOPORT",        TOK_BYTE_IOPORT, | 
|---|
| 766 | "WORD_IOPORT",        TOK_WORD_IOPORT, | 
|---|
| 767 | "DWORD_IOPORT",       TOK_DWORD_IOPORT, | 
|---|
| 768 | "BYTE_MMIOPORT",      TOK_BYTE_MMIOPORT, | 
|---|
| 769 | "WORD_MMIOPORT",      TOK_WORD_MMIOPORT, | 
|---|
| 770 | "DWORD_MMIOPORT",     TOK_DWORD_MMIOPORT, | 
|---|
| 771 | "RESET",              TOK_RESET, | 
|---|
| 772 | "INDEX",              TOK_INDEX, | 
|---|
| 773 | "INDEXMASK",          TOK_INDEXMASK, | 
|---|
| 774 | "DATAMASK",           TOK_DATAMASK, | 
|---|
| 775 | "ACCEL",              TOK_ACCEL, | 
|---|
| 776 | "RO",                 TOK_RO, | 
|---|
| 777 | "WO",                 TOK_WO, | 
|---|
| 778 | "RW",                 TOK_RW, | 
|---|
| 779 | /* | 
|---|
| 780 | * ModeInfo Section | 
|---|
| 781 | */ | 
|---|
| 782 | "INT10MODESET",       TOK_INT10MODESET, | 
|---|
| 783 | "MODEATTRIBUTES",     TOK_MODEATTRIBUTES, | 
|---|
| 784 | "BYTESPERSCANLINE",   TOK_BYTESPERSCANLINE, | 
|---|
| 785 | "TEXTROWS",           TOK_TEXTROWS, | 
|---|
| 786 | "XRESOLUTION",        TOK_XRESOLUTION, | 
|---|
| 787 | "YRESOLUTION",        TOK_YRESOLUTION, | 
|---|
| 788 | "XCHARSIZE",          TOK_XCHARSIZE, | 
|---|
| 789 | "YCHARSIZE",          TOK_YCHARSIZE, | 
|---|
| 790 | "BITSPERPIXEL",       TOK_BITSPERPIXEL, | 
|---|
| 791 | "NUMBEROFPLANES",     TOK_NUMBEROFPLANES, | 
|---|
| 792 | "PAGELENGTH",         TOK_PAGELENGTH, | 
|---|
| 793 | "SAVESIZE",           TOK_SAVESIZE, | 
|---|
| 794 | "BUFFERADDRESS",      TOK_BUFFERADDRESS, | 
|---|
| 795 | "APERTURESIZE",       TOK_APERTURESIZE, | 
|---|
| 796 | "COLORFORMAT",        TOK_COLORFORMAT, | 
|---|
| 797 | "COLORWEIGHT",        TOK_COLORWEIGHT, | 
|---|
| 798 | /***************** for backward compatibility ***************/ | 
|---|
| 799 | "INTERLACEMODE",      TOK_INTERLACEMODE, | 
|---|
| 800 | /***************** for backward compatibility ***************/ | 
|---|
| 801 | "VERTICALREFRESH",    TOK_VERTICALREFRESH, | 
|---|
| 802 | "HORIZONTALREFRESH",  TOK_HORIZONTALREFRESH, | 
|---|
| 803 | "VPOLARITYPOSITIVE",  TOK_VPOLARITYPOSITIVE, | 
|---|
| 804 | "HPOLARITYPOSITIVE",  TOK_HPOLARITYPOSITIVE, | 
|---|
| 805 | "SCREENLEFTEDGE",     TOK_SCREENLEFTEDGE, | 
|---|
| 806 | "SCREENRIGHTEDGE",    TOK_SCREENRIGHTEDGE, | 
|---|
| 807 | "SCREENTOPEDGE",      TOK_SCREENTOPEDGE, | 
|---|
| 808 | "SCREENBOTTOMEDGE",   TOK_SCREENBOTTOMEDGE, | 
|---|
| 809 | "COLORS",             TOK_COLORS,    /* @V3.2SEN01 */ | 
|---|
| 810 | /* | 
|---|
| 811 | * PMI Commands | 
|---|
| 812 | */ | 
|---|
| 813 | "INB",                TOK_INB, | 
|---|
| 814 | "OUTB",               TOK_OUTB, | 
|---|
| 815 | "INW",                TOK_INW, | 
|---|
| 816 | "OUTW",               TOK_OUTW, | 
|---|
| 817 | "INDW",               TOK_INDW, | 
|---|
| 818 | "OUTDW",              TOK_OUTDW, | 
|---|
| 819 | "BINB",               TOK_BINB, | 
|---|
| 820 | "BOUTB",              TOK_BOUTB, | 
|---|
| 821 | "RMWBI",              TOK_RMWBI, | 
|---|
| 822 | "RMWBN",              TOK_RMWBN, | 
|---|
| 823 | /***************** for backward compatibility ***************/ | 
|---|
| 824 | "RMWB",               TOK_RMWBI, | 
|---|
| 825 | "RMWW",               TOK_RMWBN, | 
|---|
| 826 | /***************** for backward compatibility ***************/ | 
|---|
| 827 | "RMWWN",               TOK_RMWWN, | 
|---|
| 828 | "ABOUTW",             TOK_ABOUTW, | 
|---|
| 829 | "ABOUTDW",            TOK_ABOUTDW, | 
|---|
| 830 | "IF",                 TOK_IF, | 
|---|
| 831 | "GOTO",               TOK_GOTO, | 
|---|
| 832 | "WHILE",              TOK_WHILE, | 
|---|
| 833 | "ENDWHILE",           TOK_ENDWHILE, | 
|---|
| 834 | "MEMCMP",             TOK_MEMCMP, | 
|---|
| 835 | "STRCMP",             TOK_STRCMP, | 
|---|
| 836 | "READB",              TOK_READB,      /* @V2.2TSU00          */ | 
|---|
| 837 | "READW",              TOK_READW,      /* Don't rearrange the */ | 
|---|
| 838 | "READDW",             TOK_READDW,     /* order or put        */ | 
|---|
| 839 | "WRITEB",             TOK_WRITEB,     /* anything in between */ | 
|---|
| 840 | "WRITEW",             TOK_WRITEW,     /* for these MMIO      */ | 
|---|
| 841 | "WRITEDW",            TOK_WRITEDW,    /* commands            */ | 
|---|
| 842 | "CALL",               TOK_CALL, | 
|---|
| 843 | /***************** for backward compatibility ***************/ | 
|---|
| 844 | "WAIT",               TOK_WAIT, | 
|---|
| 845 | /***************** for backward compatibility ***************/ | 
|---|
| 846 | "WAITB",              TOK_WAITB, | 
|---|
| 847 | "WAITW",              TOK_WAITW, | 
|---|
| 848 | "WAITDW",             TOK_WAITDW, | 
|---|
| 849 | /* | 
|---|
| 850 | * others | 
|---|
| 851 | */ | 
|---|
| 852 | "MMIO",               TOK_MMIO,    /* used in [Declarations]  */ | 
|---|
| 853 | /***************** for backward compatibility ***************/ | 
|---|
| 854 | "P",                  TOK_MMIO,    /* used in [Declarations]  */ | 
|---|
| 855 | /***************** for backward compatibility ***************/ | 
|---|
| 856 | "PIO",                TOK_PIO,     /*                         */ | 
|---|
| 857 | "ISA",                TOK_ISA, | 
|---|
| 858 | "VLB",                TOK_VLB, | 
|---|
| 859 | "PCI",                TOK_PCI, | 
|---|
| 860 | "EISA",               TOK_EISA, | 
|---|
| 861 | "PCMCIA",             TOK_PCMCIA, | 
|---|
| 862 | "MCA",                TOK_MCA, | 
|---|
| 863 | "SHADOWVRAM",         TOK_SHADOWVRAM, | 
|---|
| 864 | "BIG",                TOK_BIG_ENDIAN, | 
|---|
| 865 | "LITTLE",             TOK_LITTLE_ENDIAN, | 
|---|
| 866 | "MINIVDM",            TOK_MINIVDM,         /* @V3.1TSU00  */ | 
|---|
| 867 | "FULLVDM",            TOK_FULLVDM          /* @V3.1TSU00  */ | 
|---|
| 868 |  | 
|---|
| 869 | } ; | 
|---|
| 870 |  | 
|---|
| 871 | extern TOK Tokens[]; | 
|---|
| 872 |  | 
|---|
| 873 | #endif  /* PMI_TOKEN_ARRAY */ | 
|---|
| 874 |  | 
|---|
| 875 | /* | 
|---|
| 876 | ** PMI subsystem errors | 
|---|
| 877 | */ | 
|---|
| 878 | #define ERROR_ADAPTER_NOT_SUPPORTED          ERROR_USER_DEFINED_BASE+0x10 | 
|---|
| 879 | #define ERROR_REFRESH_NOT_SUPPORTED          ERROR_USER_DEFINED_BASE+0x11 | 
|---|
| 880 | #define ERROR_MODE_NOT_SUPPORTED             ERROR_USER_DEFINED_BASE+0x12 | 
|---|
| 881 | #define ERROR_REQ_SECTION_UNDEFINED          ERROR_USER_DEFINED_BASE+0x13 | 
|---|
| 882 | #define ERROR_PMI_FILE_SYNTAX                ERROR_USER_DEFINED_BASE+0x14 | 
|---|
| 883 | #define ERROR_NO_MONITOR_SUPPORT             ERROR_USER_DEFINED_BASE+0x15 | 
|---|
| 884 | #define ERROR_INVALID_CONFIGURATION          ERROR_USER_DEFINED_BASE+0x16 | 
|---|
| 885 | /* @V3.2SEN01 start */ | 
|---|
| 886 | #define ERROR_INADEQUATE_VDM_SUPPORT       ERROR_USER_DEFINED_BASE+0x17 | 
|---|
| 887 | #define ERROR_VDM_CREATION_NOT_SHELLPROCESS    ERROR_USER_DEFINED_BASE+0x18 | 
|---|
| 888 | #define ERROR_MINIVDM_PROCESSSUPPORTONLY   ERROR_USER_DEFINED_BASE+0x19 | 
|---|
| 889 | #define ERROR_INVALID_ADAPTER_EXTENSION      ERROR_USER_DEFINED_BASE+0x20 | 
|---|
| 890 | #define ERROR_ADAPTER_STILL_IN_USE           ERROR_USER_DEFINED_BASE+0x21 | 
|---|
| 891 | #define ERROR_UPLEVEL_VIDEOPMI               ERROR_USER_DEFINED_BASE+0x22  //structure change for cb and ulcolors | 
|---|
| 892 | /* @V3.2SEN01 end */ | 
|---|
| 893 |  | 
|---|
| 894 | /* INC */ | 
|---|
| 895 |  | 
|---|