Subversion Repositories shark

Rev

Rev 479 | Details | Compare with Previous | Last modification | View Log | RSS feed

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