Subversion Repositories shark

Rev

Rev 3 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 pj 1
#include <ll/i386/x-dos.h>
2
/****************************************************************************/
3
/*  DEFINIZIONE DEI TIPI                                                    */
4
/****************************************************************************/
5
 
6
typedef struct {              /* Questa struttura ci serve per definire */
7
   BYTE red, green, blue;              /* la nostra palette.                     */
8
} TYPE_PALETTE;
9
 
10
typedef TYPE_PALETTE palette[256];
11
 
12
/*
13
  Tipo VbeInfoBlock: in esso sono contenute tutte le caratteristiche del
14
                     display grafico a nostra disposizione.
15
*/
16
typedef struct {
17
   unsigned char      VbeSignature[4];       /* Deve essere 'VBE2' */
18
   unsigned short int VbeVersion;            /* Versione del driver */
19
   unsigned short int OemNameOffset;         /* Nome della scheda grafica */
20
   unsigned short int OemNameSegment;    
21
   unsigned char      Capabilities[4];       /* Caratt. display grafico */
22
   unsigned short int SupportedModesOffset;  /* Puntatore alla lista dei modi */
23
   unsigned short int SupportedModesSegment; /* supportati */
24
   unsigned short int TotalMemory;           /* Memoria a bordo della scheda*/
25
 
26
   unsigned short int OemSoftwareRev;        /* Livello revisione VBE */
27
   unsigned short int OemVendorNameOffset;   /* Nome del produttore */
28
   unsigned short int OemVendorNameSegment;  
29
   unsigned short int OemProductNameOffset;  /* Nome del prodotto */
30
   unsigned short int OemProductNameSegment;
31
   unsigned short int OemProductRevOffset;   /* Livello revisione display */
32
   unsigned short int OemProductRevSegment;  
33
 
34
   unsigned char      reserved[222];         /* Riservato */
35
   unsigned char      OemData[256];          
36
} VbeInfoBlock;
37
 
38
/*
39
  Tipo ModeInfoBlock: in esso sono contenute tutte le caratteristiche
40
                      del modo grafico che vogliamo attivare.
41
*/
42
typedef struct {
43
  unsigned short int ModeAttributes;         /* Specifiche del modo     */
44
  unsigned char      WinAAttributes;         /* Caratt. della window A  */
45
  unsigned char      WinBAttributes;         /* Caratt. della window B  */
46
  unsigned short int WinGranularity;         /* Granularit… -> window   */
47
  unsigned short int WinSize;                /* Dimensione  -> window   */
48
  unsigned short int WinASegment;            /* Indirizzo window A      */
49
  unsigned short int WinBSegment;            /* Indirizzo window B      */
50
  void        (*WPF) (signed long int page); /* Indirizzo funzione      */
51
  unsigned short int BytesPerScanLine;
52
 
53
  unsigned short int XResolution;            /* Larghezza in pixel      */
54
  unsigned short int YResolution;            /* Altezza in pixel        */
55
  unsigned char      XCharSize;              /* Larghezza carattere     */
56
  unsigned char      YCharSize;              /* Altezza carattere       */
57
  unsigned char      NumberOfPlanes;         /* Numero dei planes disponibili*/
58
  unsigned char      BitsPerPixel;           /* Num. bit per ogni pixel */
59
  unsigned char      NumberOfBanks;          /* Num. dei banchi presenti*/
60
  unsigned char      MemoryModel;            /* Tipo di memoria utilizzato*/
61
  unsigned char      BankSize;               /* Dimensione di ogni banco*/
62
  unsigned char      NumberOfImagePages;     /* Num. -1 di schermate    */
63
  unsigned char      Reserved;               /* Riservato               */
64
 
65
  unsigned char      RedMaskSize;            /* Maschera per rosso      */
66
  unsigned char      RedFieldPosition;       /* Posizione bit rosso     */
67
  unsigned char      GreenMaskSize;          /* Maschera per verde      */
68
  unsigned char      GreenFieldPosition;     /* Posizione bit verde     */
69
  unsigned char      BlueMaskSize;           /* Maschera per blu        */
70
  unsigned char      BlueFieldPosition;      /* Posizione bit blu       */
71
  unsigned char      RsvdMaskSize;          
72
  unsigned char      RsvdFieldPosition;      
73
  unsigned char      DirectColorModeInfo;    /* Caratt. colori modo diretto*/
74
 
75
  unsigned long int  PhysBasePtr;            /* Linear Frame Buffer     */
76
  unsigned long int  OffScreenMemoryOffset;  /* Offset mem. "fuori schermo"*/
77
  unsigned long int  OffScreenMemSize;       /* Mem. disponibile ""  ""*/
78
  unsigned char      Reserved2 [206];        /* Riservato               */
79
} ModeInfoBlock;
80
 
81
/****************************************************************************/
82
/*  PROTOTYPES                                                              */
83
/****************************************************************************/
84
 
85
int vbe_getinfo(void);
86
int vbe_check_id(void);
87
void vbe_showinfo(void);
88
DWORD vbe_getmodeinfo(ModeInfoBlock *ModeInfo, WORD Vbe_Mode);
89
int vbe_setmode (WORD Vbe_Mode);
90
WORD vbe_getbpr(ModeInfoBlock *ModeInfo);
91
DWORD vbe_getflb(void);
92
int vbe_setbank(ModeInfoBlock *ModeInfo, BYTE bank);
93
void vbe_showmodeinfo (ModeInfoBlock *ModeInfo);
94
int vbe_checkmode(WORD mode);
95
 
96
DWORD vbe_getmem(void);