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