---
layout: page
title: IBM PC Keyboard Devices
permalink: /devices/pc/keyboard/
---
IBM PC Keyboard Devices
---
### Keyboard Configuration Files
The easiest way for a machine to include a *[Keyboard](/docs/pcjs/keyboard/)* component in its XML configuration file
is to reference one of the project's keyboard configuration files, using the *ref* attribute; eg:
The referenced XML file automatically defines the keyboard's hardware characteristics (eg, model) and
any visual elements, such as buttons to simulate common keystrokes, or even complete "soft keyboard" layouts.
Here's what *us83-buttons-minimal.xml* currently looks like:
ESC
F1
F10
The following IBM keyboard configuration files are currently available:
- [us83-buttons-arrows.xml](us83-buttons-arrows.xml)
- [us83-buttons-functions.xml](us83-buttons-functions.xml)
- [us83-buttons-minimal.xml](us83-buttons-minimal.xml)
- [us83-softkeys.xml](us83-softkeys.xml)
- [us84-buttons-arrows.xml](us84-buttons-arrows.xml)
- [us84-buttons-functions.xml](us84-buttons-functions.xml)
### 8042 Keyboard Controller Internals
The following documents were obtained from [halicery.com](http://halicery.com/):
- [8042_INTERN.TXT](8042_INTERN.TXT)
- [8042_1503033.TXT](8042_1503033.TXT)
- [dasm42.c](dasm42.c)
Additional information (eg, undocumented 8042 commands) is also available from [OS/2 Museum](http://www.os2museum.com/wp/?p=589).