--- layout: page title: IBM PC Device Configurations permalink: /devices/pc/ redirect_from: - /configs/pc/ --- IBM PC Device Configurations --- [PC Machines](machine/) are built from a collection of devices, including: * CPU * RAM * [ROMs](rom/) * [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. For example, here's what the machine located at [/devices/pc/machine/5150/mda/64kb/machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml) looks like: IBM PC (Model 5150) with Monochrome Display 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).