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

📄 qduser.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 2 页
字号:
	    int   length;	        /* transfer buffer length */	};/* DMA type command codes */#define DISPLIST	1	/* display list DMA */#define PTOB		2	/* 1 plane Qbus to bitmap DMA */#define BTOP		3	/* 1 plane bitmap to Qbus DMA *//* DMA done notification code */#define FIFO_EMPTY	0x01	/* DONE when FIFO becomes empty */#define COUNT_ZERO	0x02	/* DONE when count becomes zero */#define WORD_PACK	0x04    /* program the gate array for word packing */#define BYTE_PACK	0x08	/* program gate array for byte packing */#define REQUEST_DONE	0x100	/* clear when driver has processed request */#define HARD_ERROR	0x200   /* DMA hardware error occurred *//* DMA request queue is a ring buffer of request structures */	struct DMAreq_header {	    int QBAreg;		    /* cookie Qbus map reg for this buffer */	    short status;	    /* master DMA status word */	    int shared_size;	    /* size of shared memory in bytes */	    struct DMAreq *DMAreq;  /* start address of request queue */	    int used;		    /* # of queue entries currently used */	    int size;		    /* # of "DMAreq"'s in the request queue */	    int oldest;		    /* index to oldest queue'd request */	    int newest;		    /* index to newest queue'd request */	};/* bit definitions for DMAstatus word in DMAreq_header */#define	DMA_ACTIVE	0x0004		/* DMA in progress */#define DMA_ERROR	0x0080		/* DMA hardware error */#define DMA_IGNORE	0x0002		/* flag to ignore this interrupt *//*------------------------------------------* macros for DMA request queue fiddling  */	/* DMA status set/check macros */#define DMA_SETACTIVE(header)   ((header)->status |= DMA_ACTIVE)#define DMA_CLRACTIVE(header)	((header)->status &= ~DMA_ACTIVE)#define DMA_ISACTIVE(header)    ((header)->status & DMA_ACTIVE)#define DMA_SETERROR(header)    ((header)->status |= DMA_ERROR)#define DMA_CLRERROR(header)    ((header)->status &= ~DMA_ERROR)#define DMA_ISERROR(header)     ((header)->status & DMA_ERROR)#define DMA_SETIGNORE(header)	((header)->status |= DMA_IGNORE)#define DMA_CLRIGNORE(header)   ((header)->status &= ~DMA_IGNORE)#define DMA_ISIGNORE(header)    ((header)->status & DMA_IGNORE)	/* yields TRUE if queue is empty (ISEMPTY) or full (ISFULL) */#define DMA_ISEMPTY(header)	((header)->used == 0)#define DMA_ISFULL(header)	((header)->used >= (header)->size)	/* returns address of the billet for next (PUT)	 * or oldest (GET) request */#define DMA_PUTBEGIN(header)	(&(header)->DMAreq[(header)->newest])#define DMA_GETBEGIN(header)  	(&(header)->DMAreq[(header)->oldest])	/* does queue access pointer maintenance */#define DMA_GETEND(header)      (++(header)->oldest >= (header)->size    \				  ? (header)->oldest = 0 : 0);		 \				--(header)->used;#define DMA_PUTEND(header)     	(++(header)->newest >= (header)->size    \				  ? (header)->newest = 0 : 0);		 \				++(header)->used;/********************************************************************	COLOR MAP WRITE BUFFER DEFINITIONS*******************************************************************/	struct rgb {	    unsigned char offset;	/* color map address for load */	    unsigned char red;		/* data for red map */	    unsigned char green;	/* data for green map */	    unsigned char blue;		/* data for blue map */	};	struct color_buf {	    char status;		/* load request/service status */	    short count;		/* number of entries to br loaded */	    struct rgb rgb[256];	};#define LOAD_COLOR_MAP	0x0001/********************************************************************	SCROLL ASSIST DEFINITIONS*******************************************************************/	struct scroll {	    short status;	    short viper_constant;	    short y_scroll_constant;	    short y_offset;	    short x_index_pending;	    short y_index_pending;	};#define LOAD_REGS	0x0001#define LOAD_INDEX	0x0002/********************************************************************	MOUSE/TABLET/KBD PROGRAMMING DEFINITIONS*******************************************************************//*-----------------------------------* LK201 programmming definitions  */#define LK_UPDOWN 	0x86		/* bits for setting lk201 modes */#define LK_AUTODOWN 	0x82#define LK_DOWN 	0x80#define LK_DEFAULTS 	0xD3		/* reset (some) default settings */#define LK_AR_ENABLE 	0xE3		/* global auto repeat enable */#define LK_CL_ENABLE 	0x1B		/* keyclick enable */#define LK_KBD_ENABLE 	0x8B		/* keyboard enable */#define LK_BELL_ENABLE 	0x23		/* the bell */#define LK_RING_BELL 	0xA7		/* ring keyboard bell */#define LK_LED_ENABLE 	0x13		/* light led */#define LK_LED_DISABLE 	0x11		/* turn off led */#define LED_1 		0x81		/* led bits */#define LED_2 		0x82#define LED_3 		0x84#define LED_4 		0x88#define LED_ALL 	0x8F#define LK_LED_HOLD	LED_4#define LK_LED_LOCK	LED_3#define LK_LED_COMPOSE	LED_2#define LK_LED_WAIT 	LED_1#define LK_KDOWN_ERROR	0x3D		/* key down on powerup error */#define LK_POWER_ERROR 	0x3E		/* keyboard failure on powerup test */#define LK_OUTPUT_ERROR	0xB5		/* keystrokes lost during inhibit */#define LK_INPUT_ERROR 	0xB6		/* garbage command to keyboard */#define LK_LOWEST	0x56		/* lowest significant keycode */#define LK_DIV6_START	0xAD		/* start of div 6 */#define LK_DIV5_END	0xB2		/* end of div 5 */#define LAST_PARAM	0x80		/* "no more params" bit */	struct prgkbd {	    short cmd;			/* LK201 command opcode */	    short param1;		/* 1st cmd parameter (can be null) */	    short param2;		/* 2nd cmd parameter (can be null) */	};/*-------------------------* "special" LK-201 keys */#define SHIFT		174#define LOCK		176#define REPEAT		180#define CNTRL		175#define ALLUP		179/*--------------------------------* cursor programming structure */	struct prg_cursor {	    unsigned short acc_factor;	/* cursor aceleration factor */	    unsigned short threshold;	/* threshold to trigger acc at */	};/*---------------------* mouse definitions */#define INC_STREAM_MODE	'R'		/* stream mode reports (55 hz) */#define PROMPT_MODE	'D'		/* report when prompted */#define REQUEST_POS	'P'		/* request position report */#define SELF_TEST	'T'		/* request self test */#define MOUSE_ID	0x2		/* mouse ID in lo 4 bits */#define START_FRAME	0x80		/* start of report frame bit */#define X_SIGN		0x10		/* position sign bits */#define Y_SIGN		0x08#define RIGHT_BUTTON	0x01		/* mouse buttons */#define MIDDLE_BUTTON	0x02#define LEFT_BUTTON	0x04	/* mouse report structure definition */	struct mouse_report {	    char state;		/* buttons and sign bits */	    short dx;		/* delta X since last change */	    short dy;		/* delta Y since last change */	    char bytcnt;	/* mouse report byte count */	};/*-----------------------------------------* tablet command/interface definitions  */#define T_STREAM	'R'		/* continuous stream report mode */#define T_POINT	 	'D'		/* enter report-on-request mode */#define T_REQUEST	'P'		/* request position report */#define T_BAUD		'B'		/* increase baud to 9600 from 4800 */#define T_RATE_55	'K'		/* report rate: 55/sec */#define T_RATE_72	'L'		/* report rate: 72/sec */#define T_RATE_120	'M'		/* report rate: 120/sec (9600 only) */#define T_TEST		SELF_TEST	/* do self test */#define TABLET_ID	0x4		/* tablet ID in lo 4 bits */#define T_START_FRAME	0x80		/* start of report frame bit */#define T_PROXIMITY	0x01		/* state pointer in proximity */#define T_LEFT_BUTTON	0x02		/* puck buttons */#define T_FRONT_BUTTON	0x04#define T_RIGHT_BUTTON	0x08#define T_BACK_BUTTON	0x10#define T_BARREL_BUTTON T_LEFT_BUTTON		/* stylus buttons */#define T_TIP_BUTTON	T_FRONT_BUTTON

⌨️ 快捷键说明

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