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

Latest commit

 

History

History
132 lines (111 loc) · 4.29 KB

SDL_xbios.h

File metadata and controls

132 lines (111 loc) · 4.29 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
/* 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
39
40
41
42
43
Uint16 number; /* Video mode number */
Uint16 width; /* Size */
Uint16 height;
Uint16 depth; /* bits per plane */
SDL_bool doubleline; /* Double the lines ? */
44
45
46
} xbiosmode_t;
/* Private display data */
Jul 10, 2006
Jul 10, 2006
47
48
#define NUM_MODELISTS 2 /* 8 and 16 bits-per-pixel */
Sep 22, 2006
Sep 22, 2006
49
typedef struct SDL_VideoData
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
{
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];
Sep 20, 2006
Sep 20, 2006
71
} SDL_VideoData;
72
73
/* _VDO cookie values */
Jul 10, 2006
Jul 10, 2006
74
75
76
77
78
79
enum
{
VDO_ST = 0,
VDO_STE,
VDO_TT,
VDO_F30
80
81
82
};
/* Monitor types */
Jul 10, 2006
Jul 10, 2006
83
84
85
86
87
88
enum
{
MONITOR_MONO = 0,
MONITOR_TV,
MONITOR_VGA,
MONITOR_RGB
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
};
/* 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 */
Sep 20, 2006
Sep 20, 2006
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#define SDL_modelist (_this->driverdata->SDL_modelist)
#define XBIOS_mutex (_this->driverdata->mutex)
#define XBIOS_cvdo (_this->driverdata->cookie_vdo)
#define XBIOS_oldpalette (_this->driverdata->old_palette)
#define XBIOS_oldnumcol (_this->driverdata->old_num_colors)
#define XBIOS_oldvbase (_this->driverdata->old_video_base)
#define XBIOS_oldvmode (_this->driverdata->old_video_mode)
#define XBIOS_nummodes (_this->driverdata->num_modes)
#define XBIOS_modelist (_this->driverdata->mode_list)
#define XBIOS_screens (_this->driverdata->screens)
#define XBIOS_screensmem (_this->driverdata->screensmem)
#define XBIOS_shadowscreen (_this->driverdata->shadowscreen)
#define XBIOS_videomodes (_this->driverdata->videomodes)
#define XBIOS_doubleline (_this->driverdata->doubleline)
#define XBIOS_fbnum (_this->driverdata->frame_number)
#define XBIOS_pitch (_this->driverdata->pitch)
#define XBIOS_width (_this->driverdata->width)
#define XBIOS_height (_this->driverdata->height)
#define XBIOS_centscreen (_this->driverdata->centscreen)
Mar 7, 2005
Mar 7, 2005
126
127
128
/*--- Functions prototypes ---*/
void SDL_XBIOS_AddMode(_THIS, Uint16 modecode, Uint16 width, Uint16 height,
Jul 10, 2006
Jul 10, 2006
129
Uint16 depth, SDL_bool flags);
Mar 7, 2005
Mar 7, 2005
130
131
#endif /* _SDL_xbios_h */
Jul 10, 2006
Jul 10, 2006
132
/* vi: set ts=4 sw=4 expandtab: */