pcjs/devices/pc8080
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2016-11-05 12:01:56 -07:00
..
machine Promoted the working version to 1.30.3 2016-11-03 16:24:56 -07:00
panel Lots of tweaks in advance of PDPjs support for loading tape files 2016-10-17 15:19:01 -07:00
ram Updated READMEs regarding RAM image support 2016-10-17 11:18:18 -07:00
rom Added the ability to install external ROMs (eg, M9312 ROM images) into the IOPAGE 2016-11-05 12:01:56 -07:00
README.md Updated PC8080 and PDPjs to support RAM images, eliminating the need for the old "writable ROM" kludge; RAM images can include their own load and exec addresses as part of the JSON file, but the RAM component can provide explicit overrides (if no load address is specified either way, the default load address is the starting RAM address) 2016-10-17 11:01:32 -07:00

layout title permalink
page PC8080 Device Configurations /devices/pc8080/

PC8080 Device Configurations

All our 8080-Based Machines are built from a collection of devices, including:

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 Space Invaders (1978) XML looks like:

<machine id="invaders" class="pc8080" border="1" pos="center" background="#FAEBD7">
    <name pos="center">Space Invaders</name>
    <computer id="computer" busWidth="16"/>
    <cpu id="cpu8080" model="8080" cycles="2000000"/>
    <rom id="romH" addr="0x0000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-H.json"/>
    <rom id="romG" addr="0x0800" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-G.json"/>
    <rom id="romF" addr="0x1000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-F.json"/>
    <rom id="romE" addr="0x1800" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-E.json"/>
    <ram id="ram"  addr="0x2000" size="0x2000"/>
    <video id="video" screenWidth="224" screenHeight="256" bufferAddr="0x2400" bufferCols="256" bufferRows="224" bufferBits="1" interruptRate="120" rotation="90" width="40%" pos="left" padding="8px">
        <menu>
            <title>224x256 Screen (Rotated)</title>
        </menu>
    </video>
    <chipset id="chipset" model="SI1978"/>
    <panel ref="/devices/pc8080/panel/left.xml"/>
    <debugger id="debugger" commands="s 8086"/>
</machine>

In this example, all the devices are fully configured within the machine XML file, except for the Control Panel XML.