| Document revision date: 10 November 2000 | |
![]() |
|
|
|
| Previous | Contents | Index |
Each input device requires a specific block of information that is contiguous with the end of the common UCB input extension. The specific device extension information starts at address B816 (18410). This section describes the DWI keyboard input extension structure that is shown in Figure A-8 starting at DWI$L_KB_LAST_CHAR (18410). Table A-7 lists and defines the fields of the DECwindows UCB keyboard input extension.
UCB class driver section field UCB$L_DECW_I_DWI points to the DWI common input extension starting address. Note that field UCB$L_TT_WFLINK is overwritten and redefined as UCB$L_DECW_I_DWI when macro $DECWINPUTUCB creates the DECwindows extension. The common DWI extension length is specified as B816 (18410) by DWI$K_DECW_COMMON_LENGTH and the keyboard extension length is specified as 11416 (27610) by DWI$K_KB_LENGTH.
Figure A-8 UCB/DECwindows Keyboard Input Extension
| Field Name | Contents | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DWI$L_KB_LAST_CHAR | Defines the last input character. | ||||||||||||
| DWI$L_KB_AUTORTIME | Defines the autorepeat time (metronome) in milliseconds. | ||||||||||||
| DWI$L_KB_LIGHTS | Defines the keyboard lights (LEDs). | ||||||||||||
| DWI$L_KB_CTRL |
Contains the status input flags using macro $VIELD from the controller
CSR. Mask flag bits in this field correspond to ten possible states:
|
||||||||||||
||
|
|||||||||||||
| DWI$B_KB_OPWIN_KEY | Specifies the primary key to invoke the operator window. | ||||||||||||
| DWI$B_KB_OPWIN_MOD | Defines the modifier key (Ctrl or Shift) used with the primary key to invoke the operator window. | ||||||||||||
| DWI$B_KB_HOLD_KEY | Specifies the primary key to invoke the hold-screen mode. | ||||||||||||
| DWI$B_KB_HOLD_MOD | Defines the modifier key (Ctrl or Shift) used with the primary key to invoke the hold-screen mode. | ||||||||||||
| DWI$B_KB_KEYCLICK_VOL | Defines the keyclick volume. | ||||||||||||
| DWI$B_KB_BELL_VOL | Defines the bell volume. | ||||||||||||
| DWI$T_KB_DOWNONLY | Starting address of the 32-byte down-only key transition buffer for all LK201 key codes. | ||||||||||||
| DWI$T_KB_AUTOREPEAT | Starting address of the software autorepeat flag buffer for all LK201 key codes. | ||||||||||||
| DWI$T_KB_KEYDOWN | Starting address of the 32-byte current key down transition buffer for all LK201 key codes. | ||||||||||||
| DWI$B_KB_PMOUSE_KEY | Defines the primary key to invoke the pseudomouse mode. | ||||||||||||
| DWI$B_KB_PMOUSE_MOD | Defines the modifier key (Ctrl or Shift) used with the primary key to invoke pseudomouse mode. | ||||||||||||
| DWI$L_FIRST_OUTPUT_UCB | Defines the first output device connected. | ||||||||||||
| DWI$L_KB_PMOUSE_METRO | Counter for the autorepeat pseudomouse. | ||||||||||||
| DWI$L_KB_PMOUSE_LATCH |
Defines the keyboard keys for the pseudomouse buttons/latches. To
simulate a button hold down for the keyboard user, a latch key is
provided with each mouse-button key. Within the longword, four bytes
define the latch keys corresponding to the simulated mouse buttons as
follows:
|
Each input device requires a specific block of information that is contiguous with the end of the common UCB input extension. The specific device extension information starts at address B816 (18410). This section describes the DWI pointer input extension structure for mouse device information that is shown in Figure A-9 starting at DWI$L_PTR_DECODE_RTN (18410). Table A-8 lists and defines the fields of the DECwindows UCB pointer input extension.
UCB class driver section field UCB$L_DECW_I_DWI points to the DWI common input extension starting address. Note that field UCB$L_TT_WFLINK is overwritten and redefined as UCB$L_DECW_I_DWI when macro $DECWINPUTUCB creates the DECwindows extension. The common DWI extension length is specified as B816 (18410) by DWI$K_DECW_COMMON_LENGTH and the pointer extension length is specified as 11C16 (28410) by DWI$K_PTR_LENGTH.
Figure A-9 UCB/DECwindows Pointer Input Extension
| Field Name | Contents | ||||||
|---|---|---|---|---|---|---|---|
| DWI$L_PTR_DECODE_RTN | Points to the specific decoding routine for the serial data. | ||||||
| DWI$L_PTR_CTRL |
Contains the pointing device status input flags by way of macro $VIELD
from the controller CSR. Mask flag bits in this field correspond to
five possible states:
|
||||||
||
|
|||||||
| DWI$F_PTR_TABLET_XRATIO | Pointer to the tablet x-ratio array. | ||||||
| DWI$F_PTR_TABLET_YRATIO | Pointer to the tablet y-ratio array. | ||||||
| DWI$W_PTR_NEWBUT | Contains the new button status. | ||||||
| DWI$W_PTR_OLDBUT | Contains the old button status. | ||||||
| DWI$W_PTR_BUT_STATUS | Current button status. | ||||||
| DWI$W_PTR_BUTTONS | Button status in raw format. | ||||||
| DWI$W_PTR_TABLET_XPIX | Defines the tablet/stylus x position. | ||||||
| DWI$W_PTR_TABLET_YPIX | Defines the tablet/stylus y position. | ||||||
| DWI$B_PTR_SIZE | Defines the number of bytes for every pointer report. | ||||||
| DWI$B_PTR_COUNT | Defines the byte count of the pointer data buffer. | ||||||
| DWI$B_PTR_MAP_ARRAY | Starting address of the 32-byte pointer mapping array. | ||||||
| DWI$B_BUT_NUM | Defines the number of buttons mapped. | ||||||
| DWI$B_PTR_DELTA_X | Defines the change in x position. | ||||||
| DWI$B_PTR_DELTA_Y | Defines the change in y position. | ||||||
| DWI$T_PTR_BUFFER | Starting address of the 10-byte pointer data buffer. | ||||||
| DWI$B_PTR_QUAD_CNT | Contains the byte count for a QV mouse. 1 | ||||||
| DWI$L_PTR_KEYBOARD_UCB | Points to the keyboard UCB when there is no output device. | ||||||
| DWI$W_PTR_ACCEL_NUM | Defines the pointer acceleration table numerator. | ||||||
| DWI$W_PTR_ACCEL_DEN | Defines the pointer acceleration table denominator. | ||||||
| DWI$W_PTR_ACCEL_THR | Defines the pointer acceleration threshold. | ||||||
| DWI$L_PTR_MOTION_COMP_HIT | Defines the count of motion compression hits that indicates the number of lost pointer-motion events stored in the motion history buffer. |
A unit control block (UCB) data structure is a variable-length block in the I/O database that describes the characteristics of a single device. The driver loading procedure creates some static fields. VMS and device drivers can read and modify all nonstatic fields of the UCB.
The general UCB structure for an output device for DECwindows is shown in Figure A-10. It contains three sections: the system section (base UCB), the DECwindows common output extension, and the DECwindows output device-specific extension.
The system section of the terminal driver UCB contains the fields of the UCB that are present in all of the UCBs on the system. The length of the system UCB is defined by UCB$K_LENGTH.
The common output extension of the UCB contains fields that are required by all DECwindows output drivers. These fields have names of the form UCB$x_DECW_fieldname, where x denotes the field size and fieldname is the name of the field. The UCB$K_DECW_COMMON_LENGTH constant defines the length of the common output extension.
The output-device-specific extension of the UCB contains fields that both the output driver and the device must access. These fields have names of the form UCB$x_zz_fieldname, where x denotes the field size, where zz sometimes implies the controller type, and fieldname is the name of the field.
Figure A-10 Unit Control Block Output Device General Structure
A DECwindows output device UCB includes a DECwindows common output extension (DECW) to the main system UCB. This section describes the structure of the UCB/DECW common output extension (see Figure A-11). The main system UCB is described in the OpenVMS VAX Device Support Reference Manual. Table A-9 lists and defines the fields of the DECwindows UCB common output extension.
The output extension is created by macro $DECWOUTPUTUCB (invoked by $DECWGBL) and follows the system base UCB starting at symbolic offset UCB$K_LENGTH. The output common extension length is defined by UCB$K_DECW_COMMON_LENGTH.
Figure A-11 UCB/DECwindows Common Output Extension
| Field Name | Contents | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| UCB$L_DECW_OUTPUT_VECTOR | Address of the output vector table. | ||||||||||
| UCB$L_DECW_DVI | Pointer to the DVI. | ||||||||||
| UCB$L_DECW_KB_UCB | Address of the keyboard UCB. | ||||||||||
| UCB$L_DECW_PTR_UCB | Address of the mouse UCB. | ||||||||||
| UCB$L_DECW_CSR | Address of the monitor Control and Status Register (CSR). | ||||||||||
| UCB$L_DECW_TIMER | Contains the vertical synchronization (VSYNC) timer value (16.6 milliseconds to zero). | ||||||||||
| UCB$L_DECW_SCRSAV_TIMEOUT | Defines the screen saver timeout period. | ||||||||||
| UCB$L_DECW_CTRL |
Defines the control/status field for workstation configuration
information. Bits in this longword field specify the workstation
configuration as follows:
|
||||||||||
||
|
|||||||||||
| UCB$L_DECW_CURSOR_PATTERN | Address of cursor pattern bits. | ||||||||||
| UCB$L_DECW_WAIT_FLINK | Defines the forward link in the I/O request packet (IRP) wait list (during first system initialization only). | ||||||||||
| UCB$L_DECW_WAIT_BLINK | Defines the backward link in the IRP wait list (during first system initialization only). | ||||||||||
| UCB$L_DECW_VSYNC_INTERVAL | Defines the VSYNC interval in milliseconds. | ||||||||||
| UCB$L_DECW_HW_PTR_UCB | Address of the pointing device UCB on this workstation. | ||||||||||
| UCB$L_DECW_HW_KB_UCB | Address of the keyboard UCB on this workstation. | ||||||||||
| UCB$L_DECW_ATTACHED_FLINK | Defines the forward link in the list of attached screens. | ||||||||||
| UCB$L_DECW_ATTACHED_BLINK | Defines the backward link in the list of attached screens. | ||||||||||
| UCB$W_DECW_NEG_VSYNC_MS | Contains the negated VSYNC interval in milliseconds. | ||||||||||
| UCB$W_DECW_SNIFF_STYLE | Defines the cursor style that is checked at every sniff cycle. A value of 0 defines a black cursor, a value of 1 defines a white cursor, and a value of 2 defines a two-plane (black outlined) cursor. | ||||||||||
| UCB$W_DECW_SNIFF_CYCLE | The sniff cycle defines the interval (the number of vertical SYNCs for VAXstation II, black and white only) at which the hotspot and cursor characteristics are checked. Typically, the cursor characteristics are checked on every tenth vertical SYNC. A value of 10 selects every tenth vertical SYNC as the sniff cycle. | ||||||||||
| UCB$W_DECW_CURSOR_X | Defines the current cursor x position. | ||||||||||
| UCB$W_DECW_CURSOR_Y | Defines the current cursor y position. | ||||||||||
| UCB$W_DECW_CURSOR_XOFF | Defines the current cursor x position offset. | ||||||||||
| UCB$W_DECW_CURSOR_YOFF | Defines the current cursor y position offset. | ||||||||||
| UCB$W_DECW_MAX_X | Defines the maximum x position of the screen (minus one). | ||||||||||
| UCB$W_DECW_MAX_Y | Defines the maximum y position of the screen (minus one). | ||||||||||
| UCB$W_DECW_MAXCURS_X | Address of the maximum x-coordinate of the cursor. | ||||||||||
| UCB$W_DECW_MAXCURS_Y | Address of the maximum y-coordinate of the cursor. | ||||||||||
| UCB$W_DECW_SCRSAV_CYCLE | Defines the screen saver cycle count. | ||||||||||
| UCB$W_DECW_CURSOR_LENGTH | Defines the cursor pattern length. | ||||||||||
| UCB$W_DECW_RED_CURSOR | Three words defining the red foreground, red background, and hotspot. | ||||||||||
| UCB$W_DECW_GREEN_CURSOR | Three words defining the green foreground, background, and hotspot. | ||||||||||
| UCB$W_DECW_BLUE_CURSOR | Three words defining the blue foreground, background, and hotspot. | ||||||||||
| UCB$B_DECW_LAST_X | Defines the previous cursor x position. | ||||||||||
| UCB$B_DECW_LAST_Y | Defines the previous cursor y position. | ||||||||||
| UCB$B_DECW_SCRSAV_LIGHTS | Defines the active keyboard lights during screen save. | ||||||||||
| UCB$L_DECW_ABOVE | UCB of screen above this one. | ||||||||||
| UCB$L_DECW_BELOW | UCB of screen below this one. | ||||||||||
| UCB$L_DECW_ONRIGHT | UCB of screen to the right of this one. | ||||||||||
| UCB$L_DECW_ONLEFT | UCB of screen to the left of this one. | ||||||||||
| UCB$L_DECW_SCREEN_INFO | Defines the screen information passed to the server. | ||||||||||
| UCB$W_DECW_CURS_WIDTH | Defines the cursor width boundary for hotspot location checking. | ||||||||||
| UCB$W_DECW_CURS_HEIGHT | Defines the cursor height boundary for hotspot location checking. | ||||||||||
| UCB$L_DECW_INTLK_FLAGS |
Defines the interlock control/status field for fork queue
entry/synchronization between drivers and server. Bits in this longword
field specify the fork queue as follows:
|
||||||||||
| UCB$W_DECW_X1_BOUNDRY | Defines the left screen boundary of the cursor confinement region on the x-axis. | ||||||||||
| UCB$W_DECW_X2_BOUNDRY | Defines the right screen boundary of the cursor confinement region on the x-axis. | ||||||||||
| UCB$W_DECW_Y1_BOUNDRY | Defines the top screen boundary of the cursor confinement region on the y-axis. | ||||||||||
| UCB$W_DECW_Y2_BOUNDRY | Defines the bottom screen boundary of the cursor confinement region on the y-axis. |
| Previous | Next | Contents | Index |
|
| privacy and legal statement | ||
| 4735PRO_008.HTML | ||