Rounded out the PC8080 portion of the tree

This commit is contained in:
Jeff Parsons 2016-05-01 15:12:52 -07:00
commit e9099c6d38
22 changed files with 154 additions and 21 deletions

47
devices/pc8080/README.md Normal file
View file

@ -0,0 +1,47 @@
---
layout: page
title: 8080-Based Device Configurations
permalink: /devices/pc8080/
---
8080-Based Device Configurations
---
[8080-Based Machines](machine/) are built from a collection of devices, including:
* CPU (8080)
* RAM
* [ROMs](rom/)
* ChipSets
* Video Adapters
* [Control Panels](panel/)
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)](/devices/pc8080/machine/invaders/)
[XML](/devices/pc8080/machine/invaders/machine.xml) looks like:
<?xml-stylesheet type="text/xsl" href="/versions/pc8080/1.22.0/machine.xsl"?>
<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](panel/) [XML](panel/left.xml).

View file

@ -0,0 +1,13 @@
---
layout: page
title: 8080-Based Machine Configurations
permalink: /devices/pc8080/machine/
---
8080-Based Machine Configurations
---
The following 8080-based machines are currently available:
* [Space Invaders (1978)](invaders/)
* [8080 Exerciser Test Machine](exerciser/)

View file

@ -1,14 +1,16 @@
---
layout: page
title: 8080 Test Machine
permalink: /devices/pc8080/machine/test/
title: 8080 Exerciser Test Machine
permalink: /devices/pc8080/machine/exerciser/
redirect_from:
- /devices/pc8080/machine/test/
machines:
- type: pc8080
id: test8080
debugger: true
---
8080 Test Machine
8080 Exerciser Test Machine
---
This is a test of [PC8080](/modules/pc8080/), a new 8080-based machine emulator being added to the

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pc8080/1.22.0/machine.xsl"?>
<machine id="test8080" class="pc8080" border="1" pos="center" background="#FAEBD7">
<name pos="center">8080 Test Machine</name>
<name pos="center">8080 Exerciser Test Machine</name>
<computer id="computer" busWidth="16"/>
<cpu id="cpu8080" model="8080" cycles="2000000"/>
<rom id="romTest" addr="0x0100" size="0x1200" file="/devices/pc8080/rom/test/8080EX1.json" writable="true"/>
<rom id="romTest" addr="0x0100" size="0x1200" file="/devices/pc8080/rom/exerciser/8080EX1.json" writable="true"/>
<ram id="ramTest" addr="0x1300" size="0xED00"/>
<panel ref="/devices/pc8080/panel/wide.xml"/>
<debugger id="debugger"/>

View file

@ -1,6 +1,6 @@
---
layout: page
title: Space Invaders (Under Construction)
title: Space Invaders (1978)
permalink: /devices/pc8080/machine/invaders/
machines:
- type: pc8080
@ -8,7 +8,7 @@ machines:
debugger: true
---
Space Invaders (Under Construction)
Space Invaders (1978)
---
This is a test of [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the

View file

@ -8,13 +8,13 @@
<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"/>
<chipset id="chipset" model="SI1978"/>
<ram id="ram" addr="0x2000" size="0x0400"/>
<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>

View file

@ -0,0 +1,16 @@
---
layout: page
title: 8080-Based Control Panels
permalink: /devices/pc8080/panel/
---
8080-Based Control Panels
---
[Control Panels](/docs/pcjs/panel/) are XML files that define layouts for Debugger-related controls.
The following 8080-based control panel configuration files are currently available:
- [left.xml](left.xml) (created for Space Invaders)
- [wide.xml](wide.xml) (a wider version of the above)

View file

@ -0,0 +1,18 @@
---
layout: page
title: 8080-Based ROMs
permalink: /devices/pc8080/rom/
---
8080-Based ROMs
---
ROMs are added to machines by including one *[ROM](/docs/pcjs/rom/)* component in the machine XML configuration file
for each ROM in the machine; eg:
<rom id="romH" addr="0x0000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-H.json"/>
The project currently contains the following 8080-based ROMs:
* [Space Invaders (1978)](invaders/)
* [8080 Exerciser Tests](exerciser/)

View file

@ -0,0 +1,15 @@
---
layout: page
title: 8080 Exerciser Tests
permalink: /devices/pc8080/rom/exerciser/
---
8080 Exerciser Tests
---
* [8080EX1](8080EX1.MAC)
* [8080EXER](8080EXER.MAC)
* [8080PRE](8080PRE.MAC)
Our [8080 Exerciser Test Machine](/devices/pc8080/machine/exerciser/) runs the [8080EX1](8080EX1.MAC),
since it is the most comprehensive test, and was designed specifically for the Intel 8080.

View file

@ -0,0 +1,15 @@
---
layout: page
title: Space Invaders (1978) ROMs
permalink: /devices/pc8080/rom/invaders/
---
Space Invaders (1978) ROMs
---
The original [Space Invaders (1978)](/devices/pc8080/machine/invaders/) contains 4 2Kb ROMs:
* [INVADERS-H](INVADERS-H.json) (loaded at 0x0000)
* [INVADERS-G](INVADERS-G.json) (loaded at 0x0800)
* [INVADERS-F](INVADERS-F.json) (loaded at 0x1000)
* [INVADERS-E](INVADERS-E.json) (loaded at 0x1800)