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)
This commit is contained in:
parent
4cfaa5ef6e
commit
980c2ac5ab
64 changed files with 1479 additions and 1154 deletions
|
|
@ -13,8 +13,8 @@ All our [8080-Based Machines](machine/) are built from a collection of devices,
|
|||
* [Control Panels](panel/)
|
||||
* CPU (8080)
|
||||
* [Machines](machine/)
|
||||
* RAM
|
||||
* [ROMs](rom/)
|
||||
* [RAM Images](ram/)
|
||||
* [ROM Images](rom/)
|
||||
* Video Adapters
|
||||
|
||||
Complete [machine configurations](machine/) are constructed from those devices. A machine configuration is a single XML file
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ PCjs Project.
|
|||
|
||||
The test machine below loads a copy of the
|
||||
[8080 Exerciser](https://web.archive.org/web/20151006085348/http://www.idb.me.uk/sunhillow/8080.html)
|
||||
(specifically, [8080EX1](/devices/pc8080/rom/exerciser/8080EX1.MAC)) and intercepts the exerciser's CP/M console
|
||||
(specifically, [8080EX1](/devices/pc8080/ram/exerciser/8080EX1.MAC)) and intercepts the exerciser's CP/M console
|
||||
calls so that you can see its progress in the Control Panel window. This is a "headless" test machine
|
||||
(no keyboard or display), so that's all you get.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
<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/exerciser/8080EX1.json" writable="true"/>
|
||||
<ram id="ramTest" addr="0x1300" size="0xED00"/>
|
||||
<ram id="ram64K" addr="0x0000" size="0x10000" file="/devices/pc8080/ram/exerciser/8080EX1.json" load="0x100" exec="0x100"/>
|
||||
<panel ref="/devices/pc8080/panel/wide.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
<name pos="center">8080 Exerciser Preliminary Test Machine</name>
|
||||
<computer id="computer" busWidth="16"/>
|
||||
<cpu id="cpu8080" model="8080" cycles="2000000"/>
|
||||
<rom id="romTest" addr="0x0100" size="0x0400" file="/devices/pc8080/rom/exerciser/8080PRE.json" writable="true"/>
|
||||
<ram id="ramTest" addr="0x0500" size="0xFB00"/>
|
||||
<ram id="ram64K" addr="0x0000" size="0x10000" file="/devices/pc8080/ram/exerciser/8080PRE.json" load="0x100" exec="0x100"/>
|
||||
<panel ref="/devices/pc8080/panel/wide.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
<name pos="center">8080 CPUTEST Machine</name>
|
||||
<computer id="computer" busWidth="16"/>
|
||||
<cpu id="cpu8080" model="8080" cycles="2000000"/>
|
||||
<rom id="romTest" addr="0x0100" size="0x4B00" file="/devices/pc8080/rom/exerciser/CPUTEST.json" writable="true"/>
|
||||
<ram id="ramTest" addr="0x4C00" size="0xB400"/>
|
||||
<ram id="ram64K" addr="0x0000" size="0x10000" file="/devices/pc8080/ram/exerciser/CPUTEST.json" load="0x100" exec="0x100"/>
|
||||
<panel ref="/devices/pc8080/panel/wide.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
<name pos="center">8080 "Kelly Smith" Test Machine</name>
|
||||
<computer id="computer" busWidth="16"/>
|
||||
<cpu id="cpu8080" model="8080" cycles="2000000"/>
|
||||
<rom id="romTest" addr="0x0100" size="0x0701" file="/devices/pc8080/rom/exerciser/TEST.json" writable="true"/>
|
||||
<ram id="ramTest" addr="0x0801" size="0xF7FF"/>
|
||||
<ram id="ram64K" addr="0x0000" size="0x10000" file="/devices/pc8080/ram/exerciser/TEST.json" load="0x100" exec="0x100"/>
|
||||
<panel ref="/devices/pc8080/panel/wide.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
<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/exerciser/8080EX1.json" writable="true"/>
|
||||
<ram id="ramTest" addr="0x1300" size="0xED00"/>
|
||||
<ram id="ram64K" addr="0x0000" size="0x10000" file="/devices/pc8080/ram/exerciser/8080EX1.json" load="0x100" exec="0x100"/>
|
||||
<panel ref="/devices/pc8080/panel/wide.xml"/>
|
||||
<debugger id="debugger"/>
|
||||
</machine>
|
||||
|
|
|
|||
21
devices/pc8080/ram/README.md
Normal file
21
devices/pc8080/ram/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: 8080-Based RAM Images
|
||||
permalink: /devices/pc8080/ram/
|
||||
---
|
||||
|
||||
8080-Based RAM Images
|
||||
---------------------
|
||||
|
||||
RAM images are added to machines by including a *<ram>* component in the machine XML configuration file
|
||||
with the *file* attribute set to the filename of the image; eg:
|
||||
|
||||
```xml
|
||||
<ram id="romH" addr="0x0000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-H.json"/>
|
||||
```
|
||||
|
||||
The project currently contains the following 8080-based ROMs:
|
||||
|
||||
* [8080 Exerciser Tests](exerciser/)
|
||||
* [Space Invaders (1978)](invaders/)
|
||||
* [DEC VT100 Terminal](vt100/)
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
---
|
||||
layout: page
|
||||
title: 8080 Exerciser Tests
|
||||
permalink: /devices/pc8080/rom/exerciser/
|
||||
permalink: /devices/pc8080/ram/exerciser/
|
||||
redirect_from:
|
||||
- /devices/pc8080/rom/exerciser/
|
||||
---
|
||||
|
||||
8080 Exerciser Tests
|
||||
|
|
@ -12,4 +14,4 @@ permalink: /devices/pc8080/rom/exerciser/
|
|||
* [8080PRE](8080PRE.MAC)
|
||||
|
||||
Our [8080 Exerciser Test Machine](/devices/pc8080/machine/exerciser/) runs [8080EX1](8080EX1.MAC),
|
||||
since it is the most comprehensive test and verifies strict compatibilty with the original Intel 8080.
|
||||
since it is the most comprehensive test and verifies strict compatibility with the original Intel 8080.
|
||||
Loading…
Reference in a new issue