/**************************************************************************** * * MegaGraph Graphics Library * * Copyright (C) 1993 Kendall Bennett. * All rights reserved. * * Filename: $RCSfile: drivers.h $ * Version: $Revision: 1.2 $ * * Language: ANSI C * Environment: IBM PC (MS DOS) * * Description: Header file providing constant and definitions for the * video drivers supported by the library. This is factorised * out to make it easier to use the SuperVGA routines outside * of the MGL (such as in the SuperVGA kit). * * $Id: drivers.h 1.2 1993/03/07 04:03:42 kjb Exp $ * * Revision History: * ----------------- * * $Log: drivers.h $ * Revision 1.2 1993/03/07 04:03:42 kjb * Numerous bug fixes and enhancements. * * Revision 1.1 1993/03/03 10:47:11 kjb * Initial revision * ****************************************************************************/ #ifndef __DRIVERS_H #define __DRIVERS_H #ifndef __DEBUG_H #include "debug.h" #endif /*---------------------- Macros and type definitions ----------------------*/ /* Define the graphics subsystems available */ typedef enum { grDETECT, /* Auto detect the graphics subsystem */ grCGA, /* Standard CGA - not supported */ grMCGA, /* Standard MCGA - only 256 color mode */ grEGA, /* Standard EGA */ grEGA64, /* EGA with 64kb of RAM - not supported */ grEGAMONO, /* EGA with mono monitor - not supported */ grEGA64MONO, /* EGA 64k mono monitor - not supported */ grHERCMONO, /* Standard Hercules - not supported */ grVGA, /* Standard VGA */ grSVGA, /* VESA Super VGA */ grSVGA_ATI, /* ATI Technologies SuperVGA */ grSVGA_AHEADA, /* AHEAD A SuperVGA */ grSVGA_AHEADB, /* AHEAD B SuperVGA */ grSVGA_CHIPS, /* Chips & Technologies SuperVGA */ grSVGA_EVEREX, /* Everex SuperVGA */ grSVGA_GENOA, /* Genoa Systems SuperVGA (GVGA chipset) */ grSVGA_OAKTECH, /* OAK Technologies SuperVGA */ grSVGA_PARADISE, /* Paradise SuperVGA */ grSVGA_TRIDENT88, /* Trident 8800 SuperVGA */ grSVGA_TRIDENT89, /* Trident 8900 SuperVGA */ grSVGA_VIDEO7, /* Video7 SuperVGA */ grSVGA_ET3000, /* Tseng Labs ET3000 SuperVGA */ grSVGA_ET4000, /* Tseng Labs ET4000 SuperVGA */ grSVGA_NCR, /* NCR 77C22E SuperVGA */ grSVGA_S3, /* S3 SuperVGA */ grSVGA_ACUMOS, /* Acumos SuperVGA */ grSVGA_AL2101, /* Advance Logic AL2101 SuperVGA */ grSVGA_MXIC, /* MXIC 68010 SuperVGA */ grSVGA_P2000, /* Primus 2000 SuperVGA */ grSVGA_RT3106, /* RealTek 3106 SuperVGA */ grSVGA_CIRRUS54, /* Cirrus 5422 SuperVGA */ grUSER, /* User drivers start here */ } MGL_driver; /* First and last SuperVGA driver numbers */ #define __FIRST_SVGA grSVGA #define __LAST_SVGA grSVGA_CIRRUS54 /* Video DAC types */ typedef enum { grVGADAC, /* Normal DAC */ grHCDAC, /* HiColor 15 bit DAC */ grHC2DAC, /* HiColor 15/16 bit DAC */ grTCDAC, /* TrueColor 24 bit DAC */ grDETECTDAC = -1, /* Auto detect the DAC type */ } MGL_dac; /* Graphics modes supported - the only video modes supported by this * graphics library are those that support at least 16 colors per pixel. */ typedef enum { /* 16 color EGA video modes */ grEGA_320x200x16 = 0, /* 320x200 16 color 8 page */ grEGA_640x200x16 = 1, /* 640x200 16 color 4 page */ grEGA_640x350x16 = 2, /* 640x350 16 color 2 page */ /* 16 color VGA video modes */ grVGA_640x400x16 = 3, /* 640x400 16 color 2 page */ grVGA_640x480x16 = 4, /* 640x480 16 color 1 page */ /* 256 color VGA video modes */ grVGA_320x200x256 = 5, /* 320x200 256 color 1 page */ /* 256 color VGA ModeX video modes */ grVGAX_320x200x256 = 6, /* 320x200 256 color 4 page */ grVGAX_320x240x256 = 7, /* 320x240 256 color 3 page */ grVGAX_320x400x256 = 8, /* 320x400 256 color 2 page */ grVGAX_320x480x256 = 9, /* 320x480 256 color 1 page */ grVGAX_360x200x256 = 10, /* 360x200 256 color 3 page */ grVGAX_360x240x256 = 11, /* 360x240 256 color 3 page */ grVGAX_360x400x256 = 12, /* 360x400 256 color 1 page */ grVGAX_360x480x256 = 13, /* 360x480 256 color 1 page */ /* 16 color Super VGA video modes */ grSVGA_800x600x16 = 14, /* 800x600 16 color 1 page */ grSVGA_1024x768x16 = 15, /* 1024x768 16 color 1 page */ grSVGA_1280x1024x16 = 16, /* 1280x1024 16 color 1 page */ /* 256 color Super VGA video modes */ grSVGA_640x350x256 = 17, /* 640x250 256 color 1 page */ grSVGA_640x400x256 = 18, /* 640x400 256 color 1 page */ grSVGA_640x480x256 = 19, /* 640x480 256 color 1 page */ grSVGA_800x600x256 = 20, /* 800x600 256 color 1 page */ grSVGA_1024x768x256 = 21, /* 1024x768 256 color 1 page */ grSVGA_1280x1024x256= 22, /* 1280x1024 256 color 1 page */ /* 32,768 color Super VGA video modes */ grSVGA_320x200x32k = 23, /* 320x200 32,768 color 1 page */ grSVGA_640x350x32k = 24, /* 640x350 32,768 color 1 page */ grSVGA_640x400x32k = 25, /* 640x400 32,768 color 1 page */ grSVGA_640x480x32k = 26, /* 640x480 32,768 color 1 page */ grSVGA_800x600x32k = 27, /* 800x600 32,768 color 1 page */ grSVGA_1024x768x32k = 28, /* 1024x768 32,768 color 1 page */ grSVGA_1280x1024x32k= 29, /* 1280x1024 32,768 color 1 page */ /* 16 million color Super VGA video modes */ grSVGA_320x200x16m = 30, /* 320x200 16 million color 1 page */ grSVGA_640x350x16m = 31, /* 640x350 16 million color 1 page */ grSVGA_640x400x16m = 32, /* 640x400 16 million color 1 page */ grSVGA_640x480x16m = 33, /* 640x480 16 million color 1 page */ grSVGA_800x600x16m = 34, /* 800x600 16 million color 1 page */ grSVGA_1024x768x16m = 35, /* 1024x768 16 million color 1 page */ grSVGA_1280x1024x16m= 36, /* 1280x1024 16 million color 1 page */ grMAXMODE = 36, /* Maximum mode number */ } MGL_mode; /*------------------------- Function Prototypes ---------------------------*/ #ifdef __cplusplus extern "C" { /* Use "C" linkage when in C++ mode */ #endif /* In detectgr.asm */ void MGL_detectGraph(int far *graphdriver,int far *chipID, int far *memory,int far *dac,int far *graphmode); /* In names.c */ char * MGL_modeName(int mode); char * MGL_driverName(int driver); char * MGL_dacName(int dac); char * MGL_chipsetName(int driver,int chipset); /* In modes.c */ int * MGL_availableModes(int driver,int memory); int MGL_availablePages(int driver,int memory,int mode); #ifdef __cplusplus } /* End of "C" linkage for C++ */ #endif #endif /* __DRIVERS_H */