#include "type.h"

struct {        char ID[4];           // Identification VESA
                BYTE VersionVESALo;   // No de version X.
                BYTE VersionVESAHi;   // No de version .X
		WORD LoFABRIC;        // adresse (Offset) du nom constructeur
		WORD HiFABRIC;        // adresse (Segment) du nom constructeur
		DWORD Flag;           // Flag non utilisé
		WORD LoLIST;          // adresse (Offset) des modes SVGA disponibles
		WORD HiLIST;          // adresse (segment) des modes SVGA disponibles
		WORD Memoire;         // Nombres de segments de 64 Ko disponibles (VidRAM)
		WORD Flag2;           // Flag (????)
		WORD LoCARTE;         // adresse (Offset) du nom du CHIP Video
		WORD HiCARTE;         // adresse (Segement) du nom du CHIP Video
		WORD LoTCARTE;        // adresse (Offset) du nom de la carte
		WORD HiTCARTE;        // adresse (Segment) du nom de la carte
		BYTE Buffer[237];
       } VESAInfo;

struct {        WORD FlagMode;  // Flag du mode video concerne
		BYTE FlagW1;    // Flag de la premiere fenetre d'acces
		BYTE FlagW2;    // Flag de la deuxieme fenetre d'acces
                WORD Gran;      // Granularite en Ko
                WORD WTaille;   // Taille des deux fenetres d'acces
                WORD W1Seg;     // Segment de la premiere fenetre
                WORD W2Seg;     // Segment de la deuxieme fenetre
                DWORD Foncp;    // Offset de la fonction Bank switch
                WORD ByteRes;   // Nombre d'octets occupés par une ligne de pts
        
                WORD XRes;              // Resolution en X pts/carac
                WORD YRes;              // Resolution en Y pts/carac
                BYTE XCar;              // Largeur caractere en pts
                BYTE YCar;              // Longueur caractere en pts
                BYTE NPlan;             // Nombre de plans de bits
                BYTE BPpix;             // Nombre de bits par pixels
                BYTE NBank;             // Nombre de bank memoire
                BYTE MModel;            // Modele memoire
                BYTE BTaille;           // Taille des banks memoires
                BYTE IPage;             // Nombre d'image page
                BYTE Reserve;           // Toujours à 1

                // VBE 1.2 Extensions
                BYTE   RedMaskSize;
                BYTE   RedFieldPosition;
                BYTE   GreenMaskSize;
                BYTE   GreenFieldPosition;
                BYTE   BlueMaskSize;
                BYTE   BlueFieldPosition;
                BYTE   ReservedMaskSize;
                BYTE   ReservedFieldPosition;
                BYTE   DirectColourModeInfo;

                // VBE 2.0 Extentions
                DWORD  PhysBasePtr;
                DWORD  OffScreenMemOffset;
                WORD   OffScreenMemSize;
                BYTE   Reserved2[206];
            
       } MODEInfo;


static int Vesa12Beuark=0;
