xref: /csrg-svn/sys/pmax/dev/pmreg.h (revision 63206)
152131Smckusick /*
2*63206Sbostic  * Copyright (c) 1992, 1993
3*63206Sbostic  *	The Regents of the University of California.  All rights reserved.
452131Smckusick  *
552131Smckusick  * This code is derived from software contributed to Berkeley by
652131Smckusick  * Ralph Campbell.
752131Smckusick  *
852131Smckusick  * %sccs.include.redist.c%
952131Smckusick  *
10*63206Sbostic  *	@(#)pmreg.h	8.1 (Berkeley) 06/10/93
1152131Smckusick  */
1252131Smckusick 
1352131Smckusick /*
1452131Smckusick  * Defines for the graphics hardware.
1552131Smckusick  */
1652131Smckusick 
1752131Smckusick /*
1852131Smckusick  * Structure to descripte the programmable cursor chip (DC503) from DEC.
1952131Smckusick  */
2052131Smckusick typedef volatile struct PCCRegs {
2152131Smckusick 	u_short	cmdr;	/* cursor command register */
2252131Smckusick 	short	pad1;
2352131Smckusick 	u_short	xpos;	/* cursor X position */
2452131Smckusick 	short	pad2;
2552131Smckusick 	u_short	ypos;	/* cursor Y position */
2652131Smckusick 	short	pad3;
2752131Smckusick 	u_short	xmin1;	/* region 1 left edge */
2852131Smckusick 	short	pad4;
2952131Smckusick 	u_short	xmax1;	/* region 1 right edge */
3052131Smckusick 	short	pad5;
3152131Smckusick 	u_short	ymin1;	/* region 1 top edge */
3252131Smckusick 	short	pad6;
3352131Smckusick 	u_short	ymax1;	/* region 1 bottom edge */
3452131Smckusick 	short	pad7[9];
3552131Smckusick 	u_short	xmin2;	/* region 2 left edge */
3652131Smckusick 	short	pad8;
3752131Smckusick 	u_short	xmax2;	/* region 2 right edge */
3852131Smckusick 	short	pad9;
3952131Smckusick 	u_short	ymin2;	/* region 2 top edge */
4052131Smckusick 	short	pad10;
4152131Smckusick 	u_short	ymax2;	/* region 2 bottom edge */
4252131Smckusick 	short	pad11;
4352131Smckusick 	u_short	memory;	/* cursor sprite pattern load */
4452131Smckusick } PCCRegs;
4552131Smckusick 
4652131Smckusick 	/* define bits in pcc_cmdr */
4752131Smckusick #define PCC_TEST	0x8000
4852131Smckusick #define PCC_HSHI	0x4000
4952131Smckusick #define PCC_VBHI	0x2000
5052131Smckusick #define PCC_LODSA	0x1000
5152131Smckusick #define PCC_FORG2	0x0800
5252131Smckusick #define PCC_ENRG2	0x0400
5352131Smckusick #define PCC_FORG1	0x0200
5452131Smckusick #define PCC_ENRG1	0x0100
5552131Smckusick #define PCC_XHWID	0x0080
5652131Smckusick #define PCC_XHCL1	0x0040
5752131Smckusick #define PCC_XHCLP	0x0020
5852131Smckusick #define PCC_XHAIR	0x0010
5952131Smckusick #define PCC_FOPB	0x0008
6052131Smckusick #define PCC_ENPB	0x0004
6152131Smckusick #define PCC_FOPA	0x0002
6252131Smckusick #define PCC_ENPA	0x0001
6352131Smckusick 
6452131Smckusick 	/* offset for cursor X & Y locations */
6552131Smckusick #define PCC_X_OFFSET	212
6652131Smckusick #define PCC_Y_OFFSET	34
6752131Smckusick 
6852131Smckusick typedef volatile struct VDACRegs {
6952131Smckusick 	u_char	mapWA;		/* address register (color map write) */
7052131Smckusick 	char	pad1[3];
7152131Smckusick 	u_char	map;		/* color map */
7252131Smckusick 	char	pad2[3];
7352131Smckusick 	u_char	mask;		/* pixel read mask */
7452131Smckusick 	char	pad3[3];
7552131Smckusick 	u_char	mapRA;		/* address register (color map read) */
7652131Smckusick 	char	pad4[3];
7752131Smckusick 	u_char	overWA;		/* address register (overlay map write) */
7852131Smckusick 	char	pad5[3];
7952131Smckusick 	u_char	over;		/* overlay map */
8052131Smckusick 	char	pad6[7];
8152131Smckusick 	u_char	overRA;		/* address register (overlay map read) */
8252131Smckusick } VDACRegs;
83