Subversion Repositories shark

Rev

Rev 80 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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