xref: /inferno-os/os/js/screen.h (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1*74a4d8c2SCharles.Forsyth typedef struct Cursor Cursor;
2*74a4d8c2SCharles.Forsyth typedef struct Vctlr Vctlr;
3*74a4d8c2SCharles.Forsyth typedef struct Video Video;
4*74a4d8c2SCharles.Forsyth typedef struct Thc Thc;
5*74a4d8c2SCharles.Forsyth 
6*74a4d8c2SCharles.Forsyth #define FSVSLOT 2			/* MrCoffee Hard Coded FB Location */
7*74a4d8c2SCharles.Forsyth 
8*74a4d8c2SCharles.Forsyth struct	Cursor
9*74a4d8c2SCharles.Forsyth {
10*74a4d8c2SCharles.Forsyth 	Point	offset;
11*74a4d8c2SCharles.Forsyth 	uchar	clr[2*16];
12*74a4d8c2SCharles.Forsyth 	uchar	set[2*16];
13*74a4d8c2SCharles.Forsyth };
14*74a4d8c2SCharles.Forsyth 
15*74a4d8c2SCharles.Forsyth struct Vctlr {
16*74a4d8c2SCharles.Forsyth 	char*	name;
17*74a4d8c2SCharles.Forsyth 	Vctlr*	(*init)(Vctlr*, int, int, int);
18*74a4d8c2SCharles.Forsyth 	void	(*page)(int);
19*74a4d8c2SCharles.Forsyth 	int	(*setcolor)(ulong, ulong, ulong, ulong);
20*74a4d8c2SCharles.Forsyth 
21*74a4d8c2SCharles.Forsyth 	void	(*enable)(void);
22*74a4d8c2SCharles.Forsyth 	void	(*disable)(void);
23*74a4d8c2SCharles.Forsyth 	void	(*move)(int, int);
24*74a4d8c2SCharles.Forsyth 	void	(*load)(Cursor*);
25*74a4d8c2SCharles.Forsyth 	int	(*isloaded)(void);
26*74a4d8c2SCharles.Forsyth 	int	(*cursorintersectsoff)(Rectangle*);
27*74a4d8c2SCharles.Forsyth 
28*74a4d8c2SCharles.Forsyth 	int	x;
29*74a4d8c2SCharles.Forsyth 	int	y;
30*74a4d8c2SCharles.Forsyth 	int	d;
31*74a4d8c2SCharles.Forsyth 
32*74a4d8c2SCharles.Forsyth 	Vctlr*	link;
33*74a4d8c2SCharles.Forsyth 
34*74a4d8c2SCharles.Forsyth 	int	hidecount;
35*74a4d8c2SCharles.Forsyth 	int	loaded;
36*74a4d8c2SCharles.Forsyth 	Cursor	cursor;
37*74a4d8c2SCharles.Forsyth 	Lock	l;
38*74a4d8c2SCharles.Forsyth };
39*74a4d8c2SCharles.Forsyth 
40*74a4d8c2SCharles.Forsyth 
41*74a4d8c2SCharles.Forsyth struct Video
42*74a4d8c2SCharles.Forsyth {
43*74a4d8c2SCharles.Forsyth 	/* Brooktree 458/451 */
44*74a4d8c2SCharles.Forsyth 	ulong	addr;		/* address register */
45*74a4d8c2SCharles.Forsyth 	ulong	color;		/* color palette */
46*74a4d8c2SCharles.Forsyth 	ulong	cntrl;		/* control register */
47*74a4d8c2SCharles.Forsyth 	ulong	ovrl;		/* overlay palette */
48*74a4d8c2SCharles.Forsyth };
49*74a4d8c2SCharles.Forsyth 
50