/*  グラフィックサブルーチン  */

#define	PSET		 0
#define	PRESET		 1
#define	XOR			 4
#define	MATTE		 6
#define	OPAQUE		 9
#define	IMPSET		10
#define	MASKSET		13
#define	MASKRESET	14

#define	GET		0
#define	PUT		1

#define	PAGE0		0
#define	PAGE1		1
#define MASK_PAGE	0x80
#define WORK_PAGE	0x81

#define	GRP16_MODE		0
#define	GRP32K_MODE		1
#define	GRP256_MODE		2
#define	SPRITE_MODE		3

#define GRB(g,r,b)		(((g)<<10)+((r)<<5)+(b))

typedef struct {
	long palette ;
	struct {
		long num1 ;
		unsigned char B, R, G, DMY ;
	} col[16] ;
} PALET_S ;

extern struct	SCRMODE_S	{ int mode, pixel; } scr_mode[];
extern int		display_mode[2] ;

extern char 	ework[], mwork[], para[];
extern int		page1_px, page1_py, write_page, mouse_page, cvcl[];
extern PALET_S	palette_buf ;

int	
	symbol(
		int x , int y, char *p, int zx, int zy,
		int col, int s_col, int w_mode, int style ),
	symbol_ch( int x, int y, int ch, int col, int s_col, int mode );

void
	wait( int n ), wait_vsync( int c ),
	put_dotdata( int x, int y, int wx, int wy, int mode, void *adr, int clp ),
	put_dotzoom(
		int x,int y, int wx,int wy, int mode, void *adr, int ox,int oy, int clp
	), put_dotplane(
		int x, int y, int wx, int wy, int w_mode, void *adr, int col, int clp
	), get_dotdata( int x, int y, int wx, int wy, void *adr ),
	get_dotplane( int x, int y, int wx, int wy, void *adr, int *col, int vol ),
	box_line( int x,int y, int wx,int wy, int w_mode, int l_color ),
	box_fill( int x,int y, int wx,int wy, int w_mode, int l_color,int p_color),
	line( int x1, int y1, int x2, int y2, int w_mode, int l_color ),

	screen_init( int mode0, int mode1, int mpage ),
	select_screenMode( int page, int mode ),
	screen_offset( int set_page, int *para ),
	/*  para[] = { 表示位置 X,Y, 表示領域 X,Y, 仮想画面位置 X,Y, 拡大率 } */
	screen_clear( void ),
	screen_roll( int page, int x, int y ),
	view( int x1, int y1, int x2, int y2 );
