/*
 *	GRAPHIC.H
 */

#define	ON		1
#define	OFF		0

#define	M_PSET		0
#define	M_XOR		4

#define	MOS_NOMAL	0
#define	MOS_HAND	1
#define	MOS_WAIT	2
#define	MOS_3		3
#define	MOS_4		4

#define	IS_FLP		'\x00'
#define	IS_EFLP		'\x01'
#define	IS_SCSI		'\x02'
#define	IS_RAM		'\x03'
#define	IS_MDC		'\x04'
#define	IS_ROM		'\x05'
#define	IS_CDR		'\x06'
#define	IS_UNKW		'\x07'
#define	IS_NON		'\xFF'

typedef struct {
	char	    *ptn;
	short int   sel;
	short int   x1,y1;
	short int   x2,y2;
	char	    img[1];
} BLOCK;

void	DSP_mos(int no);
BLOCK	*DSP_push_vram(int x1,int y1,int x2,int y2);
void	DSP_pop_vram(BLOCK *para);
void	DSP_putptn(char *p,int x1,int y1,int x2,int y2,int fc,int bc,int md);
void	DSP_strimg(char *ptn, int x, int y, int fc, int bc, int mod);
void	DSP_msg(char *str,int x,int y,int font,int fc,int bc,int mod);
void	DSP_connect(int x1,int y1,int x2,int y2,int col,int mod);
void	DSP_line(int x1,int y1,int x2,int y2,int col,int mod);
void	DSP_box(int x1,int y1,int x2,int y2,int col,int mod);
void	DSP_rbox(int x1,int y1,int x2,int y2,int lin,int col,int mod);
void	DSP_wbox(int x1,int y1,int x2,int y2,int lin,int col,int mod);
void	DSP_opbox(int x1,int y1,int x2,int y2);
void	DSP_clbox(int x1,int y1,int x2,int y2);
void	DSP_offset(int page,int x,int y);
void	DSP_clear(int page);
void	DSP_init(void);
void	DSP_end(void);
void	ICON_init(void);
void	ICON_disp(int x,int y,int drv);

void	wrtstr(char *str,int page,int x,int y,
	       int chrcol,int bakcol,int fsiz);
void	putstr(char *str,int page,int y);
void	ctblset(int chrcol,int bakcol);
void	vram_offset(int reg,int ofs);
int	sjistojis(int jis);
int	peek(int port);

void	gprintf(int x,int y,int c,int b,char *form,...);
void	gputs(int x,int y,int c,int b,char *str);

extern char	kantbl[256];
extern int	tick_timer;
extern int	now_mos;
extern char	drv_tbl[];

#ifdef	iskanji
    #undef iskanji
#endif

#ifdef	iskanji2
    #undef iskanji2
#endif

#define	ISKAN1	1
#define	ISKAN2	2

#define	iskanji(c)	(kantbl[(unsigned char)c]&ISKAN1)
#define	iskanji2(c)	(kantbl[(unsigned char)c]&ISKAN2)
