Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
2.6 KiB

/*
* VPC-XT Revision 1.0
*
* Title : mouse.h
*
* Description : Microsoft Mouse
*
* Author :
*
* Notes :
*/
/* SccsID[]="@(#)mouse.h 1.7 08/10/92 Copyright Insignia Solutions Ltd."; */
/*
* ============================================================================
* External declarations and macros
* ============================================================================
*/
/* Mouse port number definitions. */
#define MOUSE_PORT_0 0x023c
#define MOUSE_PORT_1 0x023d
#define MOUSE_PORT_2 0x023e
#define MOUSE_PORT_3 0x023f
#define MOUSE_PORT_START 0x023c
#define MOUSE_PORT_END 0x023f
/* Internal mouse status word bits. */
#define LEFT_BUTTON_DOWN 0x04
#define LEFT_BUTTON_CHANGE 0x20
#define RIGHT_BUTTON_DOWN 0x01
#define RIGHT_BUTTON_CHANGE 0x08
#define MOVEMENT 0x40
/* Internal mode register word bits. */
#define HOLD 0x20
/* Inport internal registers. */
#define INTERNAL_MOUSE_STAT_REG 0x0
#define INTERNAL_DATA1_REG 0x1
#define INTERNAL_DATA2_REG 0x2
#define INTERNAL_DATA3_REG 0x3
#define INTERNAL_DATA4_REG 0x4
#define INTERFACE_STATUS_REG 0x5
#define INTERFACE_CONTROL_REG 0x6
#define INTERNAL_MODE_REG 0x7
/*
* Maximum acceleration threshold - treated as unsigned word by supplied
* handler routine so 0xffff is large rather than -1.
*/
#define MAX_THRESHOLD 0xffff
/* Count of the number of different bop functions. */
#define NUM_MOUSE_FUNCS (sizeof(mouse_functions)/sizeof(SHORT (*)()))
/*
* Definitions below are copied from MS-Windows Intel mouse driver and are
* required to acknowledge mouse interrupts.
*/
#define ACK_PORT 0x0020
#define ACK_SLAVE_PORT 0x00a0
#define EOI 0x20
#define PMODE_WINDOWS 1
#define INPORT_MAX_INTERRUPTS 30
/*
* Machine word bit definitions.
*/
#define BIT0 (1 << 0)
#define BIT1 (1 << 1)
#define BIT2 (1 << 2)
#define BIT3 (1 << 3)
#define BIT4 (1 << 4)
#define BIT5 (1 << 5)
#define BIT6 (1 << 6)
#define BIT7 (1 << 7)
#define BIT8 (1 << 8)
#define BIT9 (1 << 9)
#define BIT10 (1 << 10)
#define BIT11 (1 << 11)
#define BIT12 (1 << 12)
#define BIT13 (1 << 13)
#define BIT14 (1 << 14)
#define BIT15 (1 << 15)
/* Microsoft Inport mouse driver assumes mouse has 2 buttons so so do we. */
#define INPORT_NUMBER_BUTTONS 2
/* Size of Intel MOUSEINFO structure. */
#define MOUSEINFO_SIZE 14
/* Offset of fuunction parameters from frame pointer in Intel. */
#define PARAM_OFFSET 6
IMPORT void mouse_init IPT0();
IMPORT void mouse_inb IPT2(io_addr, port, half_word *, value);
IMPORT void mouse_outb IPT2(io_addr, port, half_word, value);
IMPORT void mouse_send IPT4(int, Delta_x, int, Delta_y, int, left, int, right);
IMPORT ULONG mouse_last; /* remembers last time mouse was processed */