⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lego-fbc-reg.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/* * Lego register definitions, common to all environments. */#ifndef lintstatic char	sccsid_lego_fbc_reg_h[] = { "@(#)lego-fbc-reg.h 3.8 88/08/23" };#endif lint/* * FBC register offsets from base address. These offsets are * intended to be added to a pointer-to-integer whose value is the * base address of the Lego memory mapped register area. *//* status and command registers */#define L_FBC_STATUS		( 0x010 / sizeof(int) )#define L_FBC_DRAWSTATUS	( 0x014 / sizeof(int) )#define L_FBC_BLITSTATUS	( 0x018 / sizeof(int) )#define L_FBC_FONT		( 0x01C / sizeof(int) )/* address registers *//* writing a z-register just sets the corresponding z clip status bits */#define L_FBC_X0		( 0x080 / sizeof(int) )#define L_FBC_Y0		( 0x084 / sizeof(int) )#define L_FBC_Z0		( 0x088 / sizeof(int) )#define L_FBC_COLOR0		( 0x08C / sizeof(int) )#define L_FBC_X1		( 0x090 / sizeof(int) )#define L_FBC_Y1		( 0x094 / sizeof(int) )#define L_FBC_Z1		( 0x098 / sizeof(int) )#define L_FBC_COLOR1		( 0x09C / sizeof(int) )#define L_FBC_X2		( 0x0A0 / sizeof(int) )#define L_FBC_Y2		( 0x0A4 / sizeof(int) )#define L_FBC_Z2		( 0x0A8 / sizeof(int) )#define L_FBC_COLOR2		( 0x0AC / sizeof(int) )#define L_FBC_X3		( 0x0B0 / sizeof(int) )#define L_FBC_Y3		( 0x0B4 / sizeof(int) )#define L_FBC_Z3		( 0x0B8 / sizeof(int) )#define L_FBC_COLOR3		( 0x0BC / sizeof(int) )/* raster offset registers */#define L_FBC_RASTEROFFX	( 0x0C0 / sizeof(int) )#define L_FBC_RASTEROFFY	( 0x0C4 / sizeof(int) )/* autoincrement registers */#define L_FBC_AUTOINCX		( 0x0D0 / sizeof(int) )#define L_FBC_AUTOINCY		( 0x0D4 / sizeof(int) )/* indexed address registers */#define L_FBC_IPOINTABSX	( 0x800 / sizeof(int) )#define L_FBC_IPOINTABSY	( 0x804 / sizeof(int) )#define L_FBC_IPOINTABSZ	( 0x808 / sizeof(int) )#define L_FBC_IPOINTRELX	( 0x810 / sizeof(int) )#define L_FBC_IPOINTRELY	( 0x814 / sizeof(int) )#define L_FBC_IPOINTRELZ	( 0x818 / sizeof(int) )#define L_FBC_IPOINTCOLR	( 0x830 / sizeof(int) )#define L_FBC_IPOINTCOLG	( 0x834 / sizeof(int) )#define L_FBC_IPOINTCOLB	( 0x838 / sizeof(int) )#define L_FBC_IPOINTCOLA	( 0x83C / sizeof(int) )#define L_FBC_ILINEABSX		( 0x840 / sizeof(int) )#define L_FBC_ILINEABSY		( 0x844 / sizeof(int) )#define L_FBC_ILINEABSZ		( 0x848 / sizeof(int) )#define L_FBC_ILINERELX		( 0x850 / sizeof(int) )#define L_FBC_ILINERELY		( 0x854 / sizeof(int) )#define L_FBC_ILINERELZ		( 0x858 / sizeof(int) )#define L_FBC_ILINECOLR		( 0x870 / sizeof(int) )#define L_FBC_ILINECOLG		( 0x874 / sizeof(int) )#define L_FBC_ILINECOLB		( 0x878 / sizeof(int) )#define L_FBC_ILINECOLA		( 0x87C / sizeof(int) )#define L_FBC_ITRIABSX		( 0x880 / sizeof(int) )#define L_FBC_ITRIABSY		( 0x884 / sizeof(int) )#define L_FBC_ITRIABSZ		( 0x888 / sizeof(int) )#define L_FBC_ITRIRELX		( 0x890 / sizeof(int) )#define L_FBC_ITRIRELY		( 0x894 / sizeof(int) )#define L_FBC_ITRIRELZ		( 0x898 / sizeof(int) )#define L_FBC_ITRICOLR		( 0x8B0 / sizeof(int) )#define L_FBC_ITRICOLG		( 0x8B4 / sizeof(int) )#define L_FBC_ITRICOLB		( 0x8B8 / sizeof(int) )#define L_FBC_ITRICOLA		( 0x8BC / sizeof(int) )#define L_FBC_IQUADABSX		( 0x8C0 / sizeof(int) )#define L_FBC_IQUADABSY		( 0x8C4 / sizeof(int) )#define L_FBC_IQUADABSZ		( 0x8C8 / sizeof(int) )#define L_FBC_IQUADRELX		( 0x8D0 / sizeof(int) )#define L_FBC_IQUADRELY		( 0x8D4 / sizeof(int) )#define L_FBC_IQUADRELZ		( 0x8D8 / sizeof(int) )#define L_FBC_IQUADCOLR		( 0x8F0 / sizeof(int) )#define L_FBC_IQUADCOLG		( 0x8F4 / sizeof(int) )#define L_FBC_IQUADCOLB		( 0x8F8 / sizeof(int) )#define L_FBC_IQUADCOLA		( 0x8FC / sizeof(int) )#define L_FBC_IRECTABSX		( 0x900 / sizeof(int) )#define L_FBC_IRECTABSY		( 0x904 / sizeof(int) )#define L_FBC_IRECTABSZ		( 0x908 / sizeof(int) )#define L_FBC_IRECTRELX		( 0x910 / sizeof(int) )#define L_FBC_IRECTRELY		( 0x914 / sizeof(int) )#define L_FBC_IRECTRELZ		( 0x918 / sizeof(int) )#define L_FBC_IRECTCOLR		( 0x930 / sizeof(int) )#define L_FBC_IRECTCOLG		( 0x934 / sizeof(int) )#define L_FBC_IRECTCOLB		( 0x938 / sizeof(int) )#define L_FBC_IRECTCOLA		( 0x93C / sizeof(int) )/* window registers */#define L_FBC_CLIPMINX		( 0x0E0 / sizeof(int) )#define L_FBC_CLIPMINY		( 0x0E4 / sizeof(int) )#define L_FBC_CLIPMAXX		( 0x0F0 / sizeof(int) )#define L_FBC_CLIPMAXY		( 0x0F4 / sizeof(int) )/* clipcheck register */#define L_FBC_CLIPCHECK		( 0x008 / sizeof(int) )/* attribute registers */#define L_FBC_FCOLOR		( 0x100 / sizeof(int) )#define L_FBC_BCOLOR		( 0x104 / sizeof(int) )#define L_FBC_RASTEROP		( 0x108 / sizeof(int) )#define L_FBC_PLANEMASK		( 0x10C / sizeof(int) )#define L_FBC_PIXELMASK		( 0x110 / sizeof(int) )#define L_FBC_PATTERN0		( 0x120 / sizeof(int) )#define L_FBC_PATTERN1		( 0x124 / sizeof(int) )#define L_FBC_PATTERN2		( 0x128 / sizeof(int) )#define L_FBC_PATTERN3		( 0x12C / sizeof(int) )#define L_FBC_PATTERN4		( 0x130 / sizeof(int) )#define L_FBC_PATTERN5		( 0x134 / sizeof(int) )#define L_FBC_PATTERN6		( 0x138 / sizeof(int) )#define L_FBC_PATTERN7		( 0x13C / sizeof(int) )#define L_FBC_PATTALIGN		( 0x11C / sizeof(int) )/* miscellaneous register */#define L_FBC_MISC		( 0x004 / sizeof(int) )/* * FBC CLIPCHECK register bits. */#define CLIP_MASK	0x3#define CLIP_IN		0x0#define CLIP_LT		0x1#define CLIP_GT		0x2#define CLIP_BACK	0x3#define CLIP_X(bits, reg_num)	((bits) << (0+(2*(reg_num))))#define CLIP_Y(bits, reg_num)	((bits) << (8+(2*(reg_num))))#define CLIP_Z(bits, reg_num)	((bits) << (16+(2*(reg_num))))/* * FBC STATUS, DRAWSTATUS, and BLITSTATUS register bits. */#define L_FBC_ACC_CLEAR		0x80000000	/* when writing STATUS */#define L_FBC_DRAW_EXCEPTION	0x80000000	/* when reading DRAWSTATUS */#define L_FBC_BLIT_EXCEPTION	0x80000000	/* when reading BLITSTATUS */#define L_FBC_TEC_EXCEPTION	0x40000000#define L_FBC_FULL		0x20000000#define L_FBC_BUSY		0x10000000#define L_FBC_UNSUPPORTED_ATTR	0x02000000#define L_FBC_HRMONO		0x01000000#define L_FBC_ACC_OVERFLOW	0x00200000#define L_FBC_ACC_PICK		0x00100000#define L_FBC_TEC_HIDDEN	0x00040000#define L_FBC_TEC_INTERSECT	0x00020000#define L_FBC_TEC_VISIBLE	0x00010000#define L_FBC_BLIT_HARDWARE	0x00008000#define L_FBC_BLIT_SOFTWARE	0x00004000#define L_FBC_BLIT_SRC_HID	0x00002000#define L_FBC_BLIT_SRC_INT	0x00001000#define L_FBC_BLIT_SRC_VIS	0x00000800#define L_FBC_BLIT_DST_HID	0x00000400#define L_FBC_BLIT_DST_INT	0x00000200#define L_FBC_BLIT_DST_VIS	0x00000100#define L_FBC_DRAW_HARDWARE	0x00000010#define L_FBC_DRAW_SOFTWARE	0x00000008#define L_FBC_DRAW_HIDDEN	0x00000004#define L_FBC_DRAW_INTERSECT	0x00000002#define L_FBC_DRAW_VISIBLE	0x00000001/* * FBC RASTEROP register bits */typedef enum {	L_FBC_RASTEROP_PLANE_IGNORE, L_FBC_RASTEROP_PLANE_ZEROES,	L_FBC_RASTEROP_PLANE_ONES, L_FBC_RASTEROP_PLANE_MASK	} l_fbc_rasterop_plane_t;typedef enum {	L_FBC_RASTEROP_PIXEL_IGNORE, L_FBC_RASTEROP_PIXEL_ZEROES,	L_FBC_RASTEROP_PIXEL_ONES, L_FBC_RASTEROP_PIXEL_MASK	} l_fbc_rasterop_pixel_t;typedef enum {	L_FBC_RASTEROP_PATTERN_IGNORE, L_FBC_RASTEROP_PATTERN_ZEROES,	L_FBC_RASTEROP_PATTERN_ONES, L_FBC_RASTEROP_PATTERN_MASK	} l_fbc_rasterop_patt_t;typedef enum {	L_FBC_RASTEROP_POLYG_IGNORE, L_FBC_RASTEROP_POLYG_OVERLAP,	L_FBC_RASTEROP_POLYG_NONOVERLAP, L_FBC_RASTEROP_POLYG_ILLEGAL	} l_fbc_rasterop_polyg_t;typedef enum {	L_FBC_RASTEROP_ATTR_IGNORE, L_FBC_RASTEROP_ATTR_UNSUPP,	L_FBC_RASTEROP_ATTR_SUPP, L_FBC_RASTEROP_ATTR_ILLEGAL	} l_fbc_rasterop_attr_t;typedef enum {	L_FBC_RASTEROP_RAST_BOOL, L_FBC_RASTEROP_RAST_LINEAR	} l_fbc_rasterop_rast_t;typedef enum {	L_FBC_RASTEROP_PLOT_PLOT, L_FBC_RASTEROP_PLOT_UNPLOT	} l_fbc_rasterop_plot_t;struct l_fbc_rasterop {	l_fbc_rasterop_plane_t	l_fbc_rasterop_plane : 2; /* plane mask */	l_fbc_rasterop_pixel_t	l_fbc_rasterop_pixel : 2; /* pixel mask */	l_fbc_rasterop_patt_t	l_fbc_rasterop_patt : 2;  /* pattern mask */	l_fbc_rasterop_polyg_t	l_fbc_rasterop_polyg : 2; /* polygon draw */	l_fbc_rasterop_attr_t	l_fbc_rasterop_attr : 2;  /* attribute select */	unsigned	: 4;				  /* not used */	l_fbc_rasterop_rast_t	l_fbc_rasterop_rast : 1;  /* rasterop mode */	l_fbc_rasterop_plot_t	l_fbc_rasterop_plot : 1;  /* plot/unplot mode */	unsigned	l_fbc_rasterop_rop11: 4; /* rasterop for f==1, b==1 */	unsigned	l_fbc_rasterop_rop10: 4; /* rasterop for f==1, b==0 */	unsigned	l_fbc_rasterop_rop01: 4; /* rasterop for f==0, b==1 */	unsigned	l_fbc_rasterop_rop00: 4; /* rasterop for f==0, b==0 */	};/* * FBC PATTALIGN register bits */struct  l_fbc_pattalign {	unsigned	: 12;				/* not used */	unsigned l_fbc_pattalign_alignx : 4;		/* x alignment */	unsigned	: 12;				/* not used */	unsigned l_fbc_pattalign_aligny : 4;		/* y alignment */	};/* * FBC MISC register bits */typedef enum {	L_FBC_MISC_BLIT_IGNORE, L_FBC_MISC_BLIT_NOSRC, L_FBC_MISC_BLIT_SRC,	L_FBC_MISC_BLIT_ILLEGAL	} l_fbc_misc_blit_t;typedef enum {	L_FBC_MISC_DATA_IGNORE, L_FBC_MISC_DATA_COLOR8, L_FBC_MISC_DATA_COLOR1,	L_FBC_MISC_DATA_HRMONO	} l_fbc_misc_data_t;typedef enum {	L_FBC_MISC_DRAW_IGNORE, L_FBC_MISC_DRAW_RENDER, L_FBC_MISC_DRAW_PICK,	L_FBC_MISC_DRAW_ILLEGAL	} l_fbc_misc_draw_t;typedef enum {	L_FBC_MISC_BWRITE0_IGNORE, L_FBC_MISC_BWRITE0_ENABLE,	L_FBC_MISC_BWRITE0_DISABLE, L_FBC_MISC_BWRITE0_ILLEGAL	} l_fbc_misc_bwrite0_t;typedef enum {	L_FBC_MISC_BWRITE1_IGNORE, L_FBC_MISC_BWRITE1_ENABLE,	L_FBC_MISC_BWRITE1_DISABLE, L_FBC_MISC_BWRITE1_ILLEGAL	} l_fbc_misc_bwrite1_t;typedef enum {	L_FBC_MISC_BREAD_IGNORE, L_FBC_MISC_BREAD_0, L_FBC_MISC_BREAD_1,	L_FBC_MISC_BREAD_ILLEGAL	} l_fbc_misc_bread_t;typedef enum {	L_FBC_MISC_BDISP_IGNORE, L_FBC_MISC_BDISP_0, L_FBC_MISC_BDISP_1,	L_FBC_MISC_BDISP_ILLEGAL	} l_fbc_misc_bdisp_t;struct l_fbc_misc {	unsigned	: 10;			/* not used */	l_fbc_misc_blit_t	l_fbc_misc_blit : 2;	/* blit src check */	unsigned	l_fbc_misc_vblank : 1;	/* 1 == VBLANK has occured */	l_fbc_misc_data_t	l_fbc_misc_data : 2;	/* Color mode select  */	l_fbc_misc_draw_t	l_fbc_misc_draw : 2;	/* Render/Pick mode  */	l_fbc_misc_bwrite0_t	l_fbc_misc_bwrite0 : 2;	/* buffer 0 write */	l_fbc_misc_bwrite1_t	l_fbc_misc_bwrite1 : 2;	/* buffer 1 write */	l_fbc_misc_bread_t	l_fbc_misc_bread : 2;	/* read enable	  */	l_fbc_misc_bdisp_t	l_fbc_misc_bdisp : 2;	/* display enable  */	unsigned	l_fbc_misc_index_mod : 1;	/* modify index  */	unsigned	l_fbc_misc_index : 2;		/* index	  */	unsigned	: 4;				/* not used */	};/* * FBC registers defined as a structure. */struct l_fbc {	int	l_fbc_pad_0[1-0];	struct l_fbc_misc	l_fbc_misc;		/* 1 */	int	l_fbc_clipcheck;			/* 2 */	int	l_fbc_pad_3[4-3];	int	l_fbc_status;				/* 4 */	int	l_fbc_drawstatus;			/* 5 */	int	l_fbc_blitstatus;			/* 6 */	int	l_fbc_font;				/* 7 */	int	l_fbc_pad_8[32-8];	int	l_fbc_x0;				/* 32 */	int	l_fbc_y0;				/* 33 */	int	l_fbc_z0;				/* 34 */	int	l_fbc_color0;				/* 35 */	int	l_fbc_x1;				/* 36 */	int	l_fbc_y1;				/* 37 */	int	l_fbc_z1;				/* 38 */	int	l_fbc_color1;				/* 39 */	int	l_fbc_x2;				/* 40 */	int	l_fbc_y2;				/* 41 */	int	l_fbc_z2;				/* 42 */	int	l_fbc_color2;				/* 43 */	int	l_fbc_x3;				/* 44 */	int	l_fbc_y3;				/* 45 */	int	l_fbc_z3;				/* 46 */	int	l_fbc_color3;				/* 47 */	int	l_fbc_rasteroffx;			/* 48 */	int	l_fbc_rasteroffy;			/* 49 */	int	l_fbc_pad_50[52-50];	int	l_fbc_autoincx;				/* 52 */	int	l_fbc_autoincy;				/* 53 */	int	l_fbc_pad_54[56-54];	int	l_fbc_clipminx;				/* 56 */	int	l_fbc_clipminy;				/* 57 */	int	l_fbc_pad_58[60-58];	int	l_fbc_clipmaxx;				/* 60 */	int	l_fbc_clipmaxy;				/* 61 */	int	l_fbc_pad_62[64-62];	int	l_fbc_fcolor;				/* 64 */	int	l_fbc_bcolor;				/* 65 */	struct l_fbc_rasterop	l_fbc_rasterop;		/* 66 */	int	l_fbc_planemask;			/* 67 */	int	l_fbc_pixelmask;			/* 68 */	int	l_fbc_pad1_69[71-69];	struct l_fbc_pattalign	l_fbc_pattalign;	/* 71 */	int	l_fbc_pattern0;				/* 72 */	int	l_fbc_pattern1;				/* 73 */	int	l_fbc_pattern2;				/* 74 */	int	l_fbc_pattern3;				/* 75 */	int	l_fbc_pattern4;				/* 76 */	int	l_fbc_pattern5;				/* 77 */	int	l_fbc_pattern6;				/* 78 */	int	l_fbc_pattern7;				/* 79 */	int	l_fbc_pad_80[512-80];	int	l_fbc_ipointabsx;			/* 512 */	int	l_fbc_ipointabsy;			/* 513 */	int	l_fbc_ipointabsz;			/* 514 */	int	l_fbc_pad_515[516-515];	int	l_fbc_ipointrelx;			/* 516 */	int	l_fbc_ipointrely;			/* 517 */	int	l_fbc_ipointrelz;			/* 518 */	int	l_fbc_pad_519[524-519];	int	l_fbc_ipointcolr;			/* 524 */	int	l_fbc_ipointcolg;			/* 525 */	int	l_fbc_ipointcolb;			/* 526 */	int	l_fbc_ipointcola;			/* 527 */	int	l_fbc_ilineabsx;			/* 528 */	int	l_fbc_ilineabsy;			/* 529 */	int	l_fbc_ilineabsz;			/* 530 */	int	l_fbc_pad_521[532-531];	int	l_fbc_ilinerelx;			/* 532 */	int	l_fbc_ilinerely;			/* 533 */	int	l_fbc_ilinerelz;			/* 534 */	int	l_fbc_pad_535[540-535];	int	l_fbc_ilinecolr;			/* 540 */	int	l_fbc_ilinecolg;			/* 541 */	int	l_fbc_ilinecolb;			/* 542 */	int	l_fbc_ilinecola;			/* 543 */	int	l_fbc_itriabsx;				/* 544 */	int	l_fbc_itriabsy;				/* 545 */	int	l_fbc_itriabsz;				/* 546 */	int	l_fbc_pad_547[548-547];	int	l_fbc_itrirelx;				/* 548 */	int	l_fbc_itrirely;				/* 549 */	int	l_fbc_itrirelz;				/* 550 */	int	l_fbc_pad_551[556-551];	int	l_fbc_itricolr;				/* 556 */	int	l_fbc_itricolg;				/* 557 */	int	l_fbc_itricolb;				/* 558 */	int	l_fbc_itricola;				/* 559 */	int	l_fbc_iquadabsx;			/* 560 */	int	l_fbc_iquadabsy;			/* 561 */	int	l_fbc_iquadabsz;			/* 562 */	int	l_fbc_pad_563[564-563];	int	l_fbc_iquadrelx;			/* 564 */	int	l_fbc_iquadrely;			/* 565 */	int	l_fbc_iquadrelz;			/* 566 */	int	l_fbc_pad_567[572-567];	int	l_fbc_iquadcolr;			/* 572 */	int	l_fbc_iquadcolg;			/* 573 */	int	l_fbc_iquadcolb;			/* 574 */	int	l_fbc_iquadcola;			/* 575 */	int	l_fbc_irectabsx;			/* 576 */	int	l_fbc_irectabsy;			/* 577 */	int	l_fbc_irectabsz;			/* 578 */	int	l_fbc_pad_579[580-579];	int	l_fbc_irectrelx;			/* 580 */	int	l_fbc_irectrely;			/* 581 */	int	l_fbc_irectrelz;			/* 582 */	int	l_fbc_pad_583[588-583];	int	l_fbc_irectcolr;			/* 588 */	int	l_fbc_irectcolg;			/* 589 */	int	l_fbc_irectcolb;			/* 590 */	int	l_fbc_irectcola;			/* 591 */	};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -