pcjs/devices/pcx86
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2017-06-22 17:45:36 -07:00
..
chipset Lots of tweaks in advance of PDPjs support for loading tape files 2016-10-17 15:19:01 -07:00
hdc More README cleanup 2016-05-19 20:10:09 -07:00
keyboard Reordered function keys 2017-06-15 22:11:39 -07:00
machine When a 'state' file is passed as a URL parameter, that's supposed to override a machine's 'resume' setting, but if a 'state' file is passed as EITHER a computer parameter (the original XML-based method) OR as a machine parameter (a newer method that allows a web page to override certain XML settings), that is NOT supposed to override the 'resume' setting. This restores the ability of the DONKEY.BAS demo to BOTH define a state file AND allow the machine to be suspended and resumed. Additionally, a new-ish Video card property (offStartAddr), which was originally added for the EGA/VGA, was not properly initialized for other cards, so when we restored the display of a suspended machine with a CGA, nothing would be displayed, due to lots of NaN buffer address calculations. 2017-06-22 17:45:36 -07:00
panel Removed more old redirects (still attempting to reduce Jekyll build time) 2017-02-09 15:25:11 -08:00
rom Added support for PDP-10 RAM images 2017-02-26 20:37:16 -08:00
video Added support for PDP-10 RAM images 2017-02-26 20:37:16 -08:00
README.md Removed more old redirects (still attempting to reduce Jekyll build time) 2017-02-09 15:25:11 -08:00

layout title permalink redirect_from
page IBM PC Device Configurations /devices/pcx86/
/configs/pc/

IBM PC Device Configurations

All our IBM PC Machines are built from a collection of devices, including:

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 IBM 5150 XML example:

<machine id="ibm5150" class="pcx86" border="1" pos="center" background="#FAEBD7">
    <name pos="center">IBM PC (Model 5150) with Monochrome Display</name>
    <computer id="pc-mda-64k" name="IBM PC" resume="1"/>
    <ram id="ramLow" addr="0x00000"/>
    <rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
    <rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
    <video ref="/devices/pcx86/video/ibm/mda/ibm-mda.xml"/>
    <fdc ref="/disks/pcx86/compiled/samples.xml"/>
    <cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px" padbottom="8px">
        <control type="button" binding="run">Run</control>
        <control type="button" binding="reset">Reset</control>
    </cpu>
    <keyboard ref="/devices/pcx86/keyboard/us83-buttons-arrows.xml"/>
    <chipset id="chipset" model="5150" sw1="01000001" sw2="11111000"/>
</machine>

In this example, all the devices are fully configured within the machine XML file, except for the Video (XML), Floppy Drive Controller (XML), and Keyboard (XML) components, which refer to separate XML configuration files.