plan 9 kernel history: overview | file list | diff list

1997/1101/pc/screen.h (diff list | history)

pc/screen.h on 1997/1101
1997/1101    
typedef struct Cursorinfo Cursorinfo; 
struct Cursorinfo { 
1994/0414    
	Cursor; 
	Lock; 
}; 
 
1997/1101    
/* devmouse.c */ 
extern void mousetrack(int, int, int); 
extern Point mousexy(void); 
1997/0327    
 
1997/1101    
extern void mouseaccelerate(char*); 
extern int m3mouseputc(void*, int); 
extern int mouseputc(void*, int); 
extern int mouseswap; 
 
extern Cursorinfo cursor; 
 
/* mouse.c */ 
extern void mousectl(char*); 
 
/* screen.c */ 
extern void flushmemscreen(Rectangle); 
extern int cursoron(int); 
extern void cursoroff(int); 
extern void setcursor(Cursor*); 
 
1997/0327    
/* 
1997/1101    
 * Generic VGA registers. 
1997/0327    
 */ 
1997/1101    
enum { 
	MiscW		= 0x03C2,	/* Miscellaneous Output (W) */ 
	MiscR		= 0x03CC,	/* Miscellaneous Output (R) */ 
	Status0		= 0x03C2,	/* Input status 0 (R) */ 
	Status1		= 0x03DA,	/* Input Status 1 (R) */ 
	FeatureR	= 0x03CA,	/* Feature Control (R) */ 
	FeatureW	= 0x03DA,	/* Feature Control (W) */ 
 
	Seqx		= 0x03C4,	/* Sequencer Index, Data at Seqx+1 */ 
	Crtx		= 0x03D4,	/* CRT Controller Index, Data at Crtx+1 */ 
	Grx		= 0x03CE,	/* Graphics Controller Index, Data at Grx+1 */ 
	Attrx		= 0x03C0,	/* Attribute Controller Index and Data */ 
 
	PaddrW		= 0x03C8,	/* Palette Address Register, write */ 
	Pdata		= 0x03C9,	/* Palette Data Register */ 
	Pixmask		= 0x03C6,	/* Pixel Mask Register */ 
	PaddrR		= 0x03C7,	/* Palette Address Register, read */ 
	Pstatus		= 0x03C7,	/* DAC Status (RO) */ 
 
	Pcolours	= 256,		/* Palette */ 
	Pred		= 0, 
	Pgreen		= 1, 
	Pblue		= 2, 
 
	Pblack		= 0x00, 
	Pwhite		= 0xFF, 
1997/0327    
}; 
 
1997/1101    
#define vgai(port)		inb(port) 
#define vgao(port, data)	outb(port, data) 
1997/0327    
 
1997/1101    
extern int vgaxi(long, uchar); 
extern int vgaxo(long, uchar, uchar); 
 
/* 
 */ 
typedef struct VGAdev VGAdev; 
typedef struct VGAcur VGAcur; 
typedef struct VGAscr VGAscr; 
 
struct VGAdev { 
	char*	name; 
 
	void	(*enable)(VGAscr*); 
	void	(*disable)(VGAscr*); 
	void	(*page)(VGAscr*, int); 
	ulong	(*linear)(VGAscr*, int*, int*); 
}; 
 
struct VGAcur { 
	char*	name; 
 
	void	(*enable)(VGAscr*); 
	void	(*disable)(VGAscr*); 
	void	(*load)(VGAscr*, Cursor*); 
	int	(*move)(VGAscr*, Point); 
}; 
 
/* 
 */ 
struct VGAscr { 
	Lock	devlock; 
	VGAdev*	dev; 
 
	VGAcur*	cur; 
	ulong	storage; 
	Cursor; 
 
	int	useflush; 
 
	ulong	aperture;			/* physical address */ 
	int	isupamem; 
	int	apsize; 
 
	ulong	colormap[Pcolours][3]; 
 
	Memimage* gscreen; 
	Memdata* gscreendata; 
	Memsubfont* memdefont; 
}; 
extern VGAscr vgascreen[]; 
 
enum { 
	Backgnd		= Pwhite, 
}; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)