Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
135 lines (113 loc) · 4.27 KB

SDL_xbios.h

File metadata and controls

135 lines (113 loc) · 4.27 KB
 
1
2
/*
SDL - Simple DirectMedia Layer
Feb 1, 2006
Feb 1, 2006
3
Copyright (C) 1997-2006 Sam Lantinga
4
5
This library is free software; you can redistribute it and/or
Feb 1, 2006
Feb 1, 2006
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
Feb 1, 2006
Feb 1, 2006
8
version 2.1 of the License, or (at your option) any later version.
9
10
11
12
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Feb 1, 2006
Feb 1, 2006
13
Lesser General Public License for more details.
Feb 1, 2006
Feb 1, 2006
15
16
17
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
19
20
21
Sam Lantinga
slouken@libsdl.org
*/
Feb 21, 2006
Feb 21, 2006
22
#include "SDL_config.h"
23
24
25
26
#ifndef _SDL_xbios_h
#define _SDL_xbios_h
Feb 10, 2006
Feb 10, 2006
27
#include "SDL_stdinc.h"
Feb 16, 2006
Feb 16, 2006
28
#include "../SDL_sysvideo.h"
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Hidden "this" pointer for the video functions */
#define _THIS SDL_VideoDevice *this
/* TT video modes: 2
Falcon RVB: 16 (could be *2 by adding PAL/NTSC modes)
Falcon VGA: 6
ST low: 1
*/
#define SDL_NUMMODES 16
typedef struct
{
Jul 10, 2006
Jul 10, 2006
42
43
44
45
46
Uint16 number; /* Video mode number */
Uint16 width; /* Size */
Uint16 height;
Uint16 depth; /* bits per plane */
SDL_bool doubleline; /* Double the lines ? */
47
48
49
} xbiosmode_t;
/* Private display data */
Jul 10, 2006
Jul 10, 2006
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#define NUM_MODELISTS 2 /* 8 and 16 bits-per-pixel */
struct SDL_PrivateVideoData
{
long cookie_vdo;
int old_video_mode; /* Old video mode before entering SDL */
void *old_video_base; /* Old pointer to screen buffer */
void *old_palette; /* Old palette */
Uint32 old_num_colors; /* Nb of colors in saved palette */
int num_modes; /* Number of xbios video modes */
xbiosmode_t *mode_list; /* List of xbios video modes */
void *screens[2]; /* Pointers to aligned screen buffer */
void *screensmem[2]; /* Pointers to screen buffer */
void *shadowscreen; /* Shadow screen for c2p conversion */
int doubleline; /* Double line mode ? */
int frame_number; /* Number of frame for double buffer */
int pitch; /* Destination line width for C2P */
int width, height; /* Screen size for centered C2P */
SDL_bool centscreen; /* Centscreen extension present ? */
SDL_Rect *SDL_modelist[NUM_MODELISTS][SDL_NUMMODES + 1];
xbiosmode_t *videomodes[NUM_MODELISTS][SDL_NUMMODES + 1];
74
75
76
};
/* _VDO cookie values */
Jul 10, 2006
Jul 10, 2006
77
78
79
80
81
82
enum
{
VDO_ST = 0,
VDO_STE,
VDO_TT,
VDO_F30
83
84
85
};
/* Monitor types */
Jul 10, 2006
Jul 10, 2006
86
87
88
89
90
91
enum
{
MONITOR_MONO = 0,
MONITOR_TV,
MONITOR_VGA,
MONITOR_RGB
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
};
/* EgetShift masks */
#define ES_BANK 0x000f
#define ES_MODE 0x0700
#define ES_GRAY 0x1000
#define ES_SMEAR 0x8000
/* TT shifter modes */
#define ST_LOW 0x0000
#define ST_MED 0x0100
#define ST_HIGH 0x0200
#define TT_LOW 0x0700
#define TT_MED 0x0300
#define TT_HIGH 0x0600
/* Hidden structure -> variables names */
#define SDL_modelist (this->hidden->SDL_modelist)
#define XBIOS_mutex (this->hidden->mutex)
#define XBIOS_cvdo (this->hidden->cookie_vdo)
#define XBIOS_oldpalette (this->hidden->old_palette)
#define XBIOS_oldnumcol (this->hidden->old_num_colors)
#define XBIOS_oldvbase (this->hidden->old_video_base)
#define XBIOS_oldvmode (this->hidden->old_video_mode)
#define XBIOS_nummodes (this->hidden->num_modes)
#define XBIOS_modelist (this->hidden->mode_list)
#define XBIOS_screens (this->hidden->screens)
#define XBIOS_screensmem (this->hidden->screensmem)
#define XBIOS_shadowscreen (this->hidden->shadowscreen)
#define XBIOS_videomodes (this->hidden->videomodes)
#define XBIOS_doubleline (this->hidden->doubleline)
#define XBIOS_fbnum (this->hidden->frame_number)
#define XBIOS_pitch (this->hidden->pitch)
#define XBIOS_width (this->hidden->width)
#define XBIOS_height (this->hidden->height)
May 31, 2005
May 31, 2005
127
#define XBIOS_centscreen (this->hidden->centscreen)
Mar 7, 2005
Mar 7, 2005
129
130
131
/*--- Functions prototypes ---*/
void SDL_XBIOS_AddMode(_THIS, Uint16 modecode, Uint16 width, Uint16 height,
Jul 10, 2006
Jul 10, 2006
132
Uint16 depth, SDL_bool flags);
Mar 7, 2005
Mar 7, 2005
133
134
#endif /* _SDL_xbios_h */
Jul 10, 2006
Jul 10, 2006
135
/* vi: set ts=4 sw=4 expandtab: */