Plan 9 from Bell Labs’s /usr/web/sources/extra/9hist/alphapc/screen.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


## diffname alphapc/screen.h 1999/0415
## diff -e /dev/null /n/emeliedump/1999/0415/sys/src/brazil/alphapc/screen.h
0a
typedef struct Cursor Cursor;
typedef struct Cursorinfo Cursorinfo;
struct Cursorinfo {
	Cursor;
	Lock;
};

/* devmouse.c */
extern void mousetrack(int, int, int);
extern Point mousexy(void);

extern void mouseaccelerate(int);
extern int m3mouseputc(Queue*, int);
extern int mouseputc(Queue*, int);

extern Cursorinfo cursor;
extern Cursor arrow;

/*
 * Generic VGA registers.
 */
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,
};

#define vgai(port)		inb(port)
#define vgao(port, data)	outb(port, data)

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	io;				/* device specific registers */

	ulong	colormap[Pcolours][3];

	Memimage* gscreen;
	Memdata* gscreendata;
	Memsubfont* memdefont;
};
extern VGAscr vgascreen[];

enum {
	Backgnd		= Pwhite,
};

/* mouse.c */
extern void mousectl(char*[], int);

/* screen.c */
extern void	flushmemscreen(Rectangle);
extern int	cursoron(int);
extern void	cursoroff(int);
extern void	setcursor(Cursor*);
extern int	screensize(int, int, int);
extern int	screenaperture(int, int);

/* vga.c */
extern void	vgascreenwin(VGAscr*);
.
## diffname alphapc/screen.h 1999/0512
## diff -e /n/emeliedump/1999/0415/sys/src/brazil/alphapc/screen.h /n/emeliedump/1999/0512/sys/src/brazil/alphapc/screen.h
92c
	ulong	aperture;			/* physical address, kernel */
	ulong	pciaddr;			/* physical address, user */
.
## diffname alphapc/screen.h 2000/0401
## diff -e /n/emeliedump/1999/0512/sys/src/brazil/alphapc/screen.h /n/emeliedump/2000/0401/sys/src/9/alphapc/screen.h
123a
extern void	vgaimageinit(ulong);

extern void	drawblankscreen(int);
.
121a
/* devdraw.c */
extern void	deletescreenimage(void);
extern int		drawhasclients(void);

.
120a
extern Rectangle physgscreenr;	/* actual monitor size */
.
119c
extern int	screensize(int, int, int, ulong);
.
114a
extern int		hwaccel;	/* use hw acceleration; default on */
.
108c
	Backgnd		= 0,	/* black */
.
103a

	int	(*fill)(VGAscr*, Rectangle, ulong);
	int	(*scroll)(VGAscr*, Rectangle, Rectangle);
	ulong	id;	/* internal identifier for driver use */
.
99a
	int	palettedepth;
.
77a

	int	doespanning;
.
68a
	void	(*drawinit)(VGAscr*);
	int	(*fill)(VGAscr*, Rectangle, ulong);

.
## diffname alphapc/screen.h 2000/0407
## diff -e /n/emeliedump/2000/0401/sys/src/9/alphapc/screen.h /n/emeliedump/2000/0407/sys/src/9/alphapc/screen.h
142a
extern void	vgablank(VGAscr*, int);
.
140a
extern ulong	vgapcilinear(VGAscr*, int*, int*, int, int);
.
132a
extern void	blankscreen(int);
.
125a
extern int		hwblank;	/* use hw blanking; default on */
.
114a

.
112a
	void	(*blank)(VGAscr*, int);
.
106a
	ulong	*mmio;
.
## diffname alphapc/screen.h 2000/0522
## diff -e /n/emeliedump/2000/0407/sys/src/9/alphapc/screen.h /n/emeliedump/2000/0522/sys/src/9/alphapc/screen.h
142c
extern ulong	blanktime;
.
## diffname alphapc/screen.h 2001/0727
## diff -e /n/emeliedump/2000/0522/sys/src/9/alphapc/screen.h /n/emeliedump/2001/0727/sys/src/9/alphapc/screen.h
129a
extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*);
.
9c
extern void mousetrack(int, int, int, int);
.
## diffname alphapc/screen.h 2001/1120
## diff -e /n/emeliedump/2001/0727/sys/src/9/alphapc/screen.h /n/emeliedump/2001/1120/sys/src/9/alphapc/screen.h
125c
extern void mousectl(Cmdbuf*);
.
## diffname alphapc/screen.h 2001/1211
## diff -e /n/emeliedump/2001/1120/sys/src/9/alphapc/screen.h /n/emeliedump/2001/1211/sys/src/9/alphapc/screen.h
142c
extern int	drawhasclients(void);
.
128,130c
extern int	hwaccel;	/* use hw acceleration; default on */
extern int	hwblank;	/* use hw blanking; default on */
extern void	addvgaseg(char*, ulong, ulong);
extern uchar*	attachscreen(Rectangle*, ulong*, int*, int*, int*);
.
## diffname alphapc/screen.h 2002/1205
## diff -e /n/emeliedump/2001/1211/sys/src/9/alphapc/screen.h /n/emeliedump/2002/1205/sys/src/9/alphapc/screen.h
49a
#define VGAMEM()	PADDR(arch->pcimem(0xA0000, 1<<16))

.
## diffname alphapc/screen.h 2002/1214
## diff -e /n/emeliedump/2002/1205/sys/src/9/alphapc/screen.h /n/emeliedump/2002/1214/sys/src/9/alphapc/screen.h
72a
	void (*flush)(VGAscr*, Rectangle);
.

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].