--- layout: page title: IBM PC Device Configurations permalink: /devices/pc/ redirect_from: - /configs/pc/ --- IBM PC Device Configurations --- [IBM PC Machines](machine/) are built from a collection of devices, including: * CPU (e.g., 8088, 80286, 80386) * RAM * [ROMs](rom/) * ChipSets (e.g., 8259, 8253, 8237) * [Keyboards](keyboard/) * [Video Adapters](video/) * Floppy Drive Controllers * Hard Drive Controllers * [Control Panels](panel/) Each of those devices can be configured in multiple ways, and some support external UI controls. For example, the IBM PC Keyboard component supports different keyboard models (eg, 83-key, 84-key, 101-key), and each of those models can also be configured to have dedicated buttons for selected key combinations, or even entire keyboard layouts. Complete machine configurations are constructed from those devices. A Machine Configuration is a single XML file that lists all the device components to be used. A Machine XML file can choose to configure every device itself, or it can include pre-configured device XML files, such as those provided above or elsewhere. Here's an example of [IBM 5150](/devices/pc/machine/5150/mda/64kb/) [XML](/devices/pc/machine/5150/mda/64kb/machine.xml): ```xml IBM PC (Model 5150) with Monochrome Display ``` In this example, all the devices are fully configured within the machine XML file, except for the [Video](/docs/pcjs/video/) [XML](/devices/pc/video/ibm/mda/ibm-mda.xml), [Floppy Disk Controller (FDC)](/docs/pcjs/fdc/) [XML](/disks/pc/compiled/samples.xml), and [Keyboard](/docs/pcjs/keyboard/) [XML](/devices/pc/keyboard/us83-buttons-arrows.xml).