NT4/private/ntos/fw/ppc/kbdmouse.h
2020-09-30 17:12:29 +02:00

150 lines
3.9 KiB
C

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
Kbdmouse.h
Abstract:
This module contains definitions for the keyboard controller
in the jazz system.
It supports Mouse and Keyboard.
Author:
Lluis Abello (lluis) 11-Jul-1990
Environment:
Revision History:
--*/
#ifndef _KBDMOUSE_
#define _KBDMOUSE_
//
// Keyboard Controller Commands
//
#define KBD_CTR_WRITE_COMMAND 0x60
#define KBD_CTR_READ_COMMAND 0x20
#define KBD_CTR_TEST_PASSWORD 0xA4
#define KBD_CTR_LOAD_PASSWORD 0xA5
#define KBD_CTR_ENABLE_PASSWORD 0xA6
#define KBD_CTR_DISABLE_AUX 0xA7
#define KBD_CTR_ENABLE_AUX 0xA8
#define KBD_CTR_AUXLINES_TEST 0xA9
#define KBD_CTR_SELFTEST 0xAA
#define KBD_CTR_KBDLINES_TEST 0xAB
#define KBD_CTR_ENABLE_KBD 0xAE
#define KBD_CTR_WRITE_AUX 0xD4
//
// Keyboard Controller Data
//
#define Kbd_Ctr_Selftest_Passed 0x55
#define Kbd_Ctr_Password_Installed 0xFA
#define Kbd_Ctr_Password_Not_Installed 0xF1
//
// Controller Command Byte bit definitions.
//
#define KbdCommandByteDisableAux (1 << 5)
#define KbdCommandByteDisableKbd (1 << 4)
#define KbdCommandEnableAuxInt (1 << 1)
#define KbdCommandEnableKbdInt (1 << 0)
//
// Keyboard Controller Status byte masks
//
#define KBD_OBF_MASK 0x1 // Output buffer full
#define KBD_IBF_MASK 0x2 // Input buffer full
#define KBD_FROM_AUX_MASK 0x20 // Byte from Aux Port.
//
// Interface Test Results
//
#define INTERFACE_NO_ERROR 0x00
#define CLOCK_STUCK_LOW 0x01
#define CLOCK_STUCK_HIGH 0x02
#define DATA_STUCK_LOW 0x03
#define DATA_STUCK_HIGH 0x04
//
// Timeout
//
#define KBD_TIMEOUT 0xFFFFF
#define KBD_INT_TIMEOUT 0xFFFF
//
// Keyboard Commands
//
#define KbdEcho 0xee // request keyboard to return echo response "EE"
#define KbdSelScanCode 0xf0 // Scan codes 1,2,3 or 0 = rquest current.
#define KbdReadID 0xf2 // Request for two byte response
#define KbdSetRate 0xf3 // Set tellematic Rate
#define KbdEnable 0xF4 // Clears Buffer and Starts Scanning.
#define KbdDisable 0xF5 // reset to power up
#define KbdSetDefault 0xf6 //
#define KbdSetAllTlmtic 0xf7 // Set all keys telematic
#define KbdSetAllMkBr 0xf8 // Set all keys Make /Break
#define KbdSetAllMake 0xf9 // Set all keys Make only
#define KbdSetKeyTlmtic 0xfb // Set individual key telemativ
#define KbdSetKeyMkBr 0xfc // set individual key make/break
#define KbdSetKeyMk 0xfd // set individual key make only
#define KbdResend 0xfe // request to resend last transfer
#define KbdReset 0xff // request to start a program reset
#define KbdAck 0xfa // keyboard ack after reset
#define KbdBat 0xAA // Keyboard Bat completion Response
//
// Define scan codes.
//
#define KEY_LEFT_SHIFT 0x2A
#define KEY_RIGHT_SHIFT 0X36
#define KEY_CAPS_LOCK 0X3A
#define KEY_CONTROL 0X1D
#define KEY_ALT 0X38
#define KEY_UP_ARROW 0X48
#define KEY_DOWN_ARROW 0X50
#define KEY_LEFT_ARROW 0X4B
#define KEY_RIGHT_ARROW 0X4D
#define KEY_HOME 0X47
#define KEY_END 0X4F
#define KEY_INSERT 0X52
#define KEY_DELETE 0X53
#define KEY_SYS_REQUEST 0X54
#define KEY_PRINT_SCREEN 0x37
#define KEY_ESC 0x01
#define KEY_PAGE_UP 0x49
#define KEY_PAGE_DOWN 0x51
#define KEY_F1 0x3B
#define KEY_F2 0x3C
#define KEY_F3 0x3D
#define KEY_F4 0x3E
#define KEY_F5 0x3F
#define KEY_F6 0x40
#define KEY_F7 0x41
#define KEY_F8 0x42
#define KEY_F9 0x43
#define KEY_F10 0x44
#define KEY_F11 0x57
#define KEY_F12 0x58
//
// Define Keyboard controller register offsets.
// Status (read) and Command (write) are the same register.
//
#define KbdDataReg 0x0
#define KbdStatusReg 0x1
#define KbdCommandReg 0x1
#endif //_KBDMOUSE_