Home | History | Annotate | Download | only in xbios
      1 /*
      2     SDL - Simple DirectMedia Layer
      3     Copyright (C) 1997-2004 Sam Lantinga
      4 
      5     This library is free software; you can redistribute it and/or
      6     modify it under the terms of the GNU Library General Public
      7     License as published by the Free Software Foundation; either
      8     version 2 of the License, or (at your option) any later version.
      9 
     10     This library is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13     Library General Public License for more details.
     14 
     15     You should have received a copy of the GNU Library General Public
     16     License along with this library; if not, write to the Free
     17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     18 
     19     Sam Lantinga
     20     slouken (at) libsdl.org
     21 */
     22 #include "SDL_config.h"
     23 
     24 /*
     25 	ScreenBlaster 3 definitions
     26 
     27 	Patrice Mandin
     28 */
     29 
     30 #ifndef _SDL_xbios_sb3_h_
     31 #define _SDL_xbios_sb3_h_
     32 
     33 /*--- Defines ---*/
     34 
     35 #ifndef C_SCPN
     36 #define C_SCPN 0x5343504EL
     37 #endif
     38 
     39 #define SCPN_DEV_1BPP	0
     40 #define SCPN_DEV_2BPP	1
     41 #define SCPN_DEV_4BPP	2
     42 #define SCPN_DEV_8BPP	3
     43 #define SCPN_DEV_16BPP	4
     44 
     45 extern const int SDL_XBIOS_scpn_planes_device[];
     46 
     47 /*--- Types ---*/
     48 
     49 typedef struct {
     50 	unsigned short	virtual_width;	/* Virtual screen width */
     51 	unsigned short	virtual_height;	/* Virtual screen height */
     52 	unsigned short	visible_width;	/* Visible width */
     53 	unsigned short	visible_height;	/* Visible height */
     54 	unsigned short	h_pos;	/* Horizontal position in virtual screen */
     55 	unsigned short	v_pos;	/* Vertical position in virtual screen */
     56 	unsigned short	dummy;
     57 	unsigned long	size;	/* Size of screen in bytes */
     58 	unsigned short	device;	/* Device number to find planes = getRez() */
     59 							/* = Index in scpn_planes_device[] */
     60 } __attribute__((packed)) scpn_screeninfo_t;
     61 
     62 typedef struct {
     63 	unsigned long	magic;	/* just a BRA assembler jump */
     64 	unsigned short	version;
     65 	void			*dummy1;
     66 	unsigned short	ptsout0_1;
     67 	unsigned short	ptsout0_2;
     68 	unsigned short	dummy3;
     69 	unsigned char	date[8];	/* Date of program build */
     70 	unsigned char	asm_string[30];	/* 10 times the 'ASM' string */
     71 	unsigned short	dummy4;
     72 	scpn_screeninfo_t	*screen_info;
     73 	unsigned short	dummy6;
     74 } __attribute__((packed)) scpn_cookie_t;
     75 
     76 /*--- Function prototypes ---*/
     77 
     78 int SDL_XBIOS_SB3Usable(scpn_cookie_t *cookie_scpn);
     79 
     80 void SDL_XBIOS_SB3Init(_THIS, scpn_cookie_t *cookie_scpn);
     81 
     82 #endif /* _SDL_xbios_sb3_h_ */
     83