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:
Jeff Parsons 2016-10-17 11:01:32 -07:00 committed by Jeff Parsons
commit 980c2ac5ab
64 changed files with 1479 additions and 1154 deletions

View file

@ -9,10 +9,10 @@ PDP-11 Device Configurations
[PDP-11 Machines](/devices/pdp11/machine/) powered by [PDPjs](/modules/pdp11/) rely on a variety of devices and resources, including:
* [Loaders](loader/)
* [Machines](machine/)
* [Panels](panel/)
* [ROMs](rom/)
* [RAM Images](ram/)
* [ROM Images](rom/)
Our collection of sample machines includes a
[PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel/) and [PDP-11/70 with VT100 Terminal](/devices/pdp11/machine/1170/vt100/).

View file

@ -10,3 +10,4 @@ PDP-11/20 Machine Configurations
PCjs is adding support the following PDP-11/20 configurations:
* [PDP-11/20 Test Machine](/devices/pdp11/machine/1120/test/) ([Debugger](/devices/pdp11/machine/1120/test/debugger/))
* [PDP-11/20 with 16Kb and Bootstrap Loader](/devices/pdp11/machine/1120/bootstrap/) ([Debugger](/devices/pdp11/machine/1120/bootstrap/debugger/))

View file

@ -0,0 +1,10 @@
---
layout: page
title: PDP-11/20 with 16Kb and Bootstrap Loader
permalink: /devices/pdp11/machine/1120/bootstrap/
machines:
- id: test1120
type: pdp11
---
{% include machine.html id="test1120" %}

View file

@ -0,0 +1,11 @@
---
layout: page
title: PDP-11/20 with 16Kb, Bootstrap Loader, and Debugger
permalink: /devices/pdp11/machine/1120/bootstrap/debugger/
machines:
- id: test1120
type: pdp11
debugger: true
---
{% include machine.html id="test1120" %}

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/20: 16Kb, Bootstrap Loader, Debugger</name>
<computer id="computer" busWidth="16"/>
<cpu id="cpu" model="1120" cycles="6666667"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/devices/pdp11/ram/bootstrap/bootstrap.json"/>
<device id="default" type="default"/>
<device id="pc11" type="pc11"/>
<serial id="dl11" adapter="0" binding="print"/>
<panel ref="/devices/pdp11/panel/test/debugger/terminal.xml"/>
<debugger id="debugger" base="8" messages="" commands=""/>
</machine>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/20: 16Kb, Bootstrap Loader</name>
<computer id="computer" busWidth="16"/>
<cpu id="cpu" model="1120" cycles="6666667"/>
<ram id="ram" addr="0x0000" size="0x4000" file="/devices/pdp11/ram/bootstrap/bootstrap.json"/>
<device id="default" type="default"/>
<device id="pc11" type="pc11"/>
<serial id="dl11" adapter="0" binding="print"/>
<panel ref="/devices/pdp11/panel/test/terminal.xml"/>
</machine>

View file

@ -1,6 +1,6 @@
---
layout: page
title: PDP-11/20 Test Machine
title: PDP-11/20 Test Machine
permalink: /devices/pdp11/machine/1120/test/
machines:
- id: test1120

View file

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/20 Test Machine with Debugger</name>
<name pos="center">PDP-11/20 Test Machine with 56Kb and Debugger</name>
<computer id="computer" busWidth="16"/>
<cpu id="cpu" model="1120" cycles="6666667" resetAddr="0xC000"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1120" cycles="6666667"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<device id="default" type="default"/>
<device id="pc11" type="pc11"/>
<serial id="dl11" adapter="0" binding="print"/>

View file

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/20 Test Machine</name>
<name pos="center">PDP-11/20 Test Machine with 56Kb</name>
<computer id="computer" busWidth="16"/>
<cpu id="cpu" model="1120" cycles="6666667" resetAddr="0xC000" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1120" cycles="6666667" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<device id="default" type="default"/>
<device id="pc11" type="pc11"/>
<serial id="dl11" adapter="0" binding="print"/>
<panel ref="/devices/pdp11/panel/test/terminal.xml"/>
</machine>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 with Front Panel and Debugger</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 with Front Panel</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 Test Machine with Debugger</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 Test Machine</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0" binding="print"/>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 with Front Panel</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0"/>

View file

@ -3,9 +3,8 @@
<machine id="test1170" class="pdp11" border="1" pos="center" background="#FAEBD7">
<name pos="center">PDP-11/70 with Front Panel</name>
<computer id="computer" busWidth="22"/>
<cpu id="cpu" model="1170" cycles="6666667" resetAddr="0xC000" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xC000"/>
<rom id="rom" addr="0xC000" file="/devices/pdp11/rom/test/boot.json" writable="true"/>
<cpu id="cpu" model="1170" cycles="6666667" autoStart="true"/>
<ram id="ram" addr="0x0000" size="0xE000" file="/devices/pdp11/ram/bootdemo/bootdemo.json" load="0xC000" exec="0xC000"/>
<ram id="ram" addr="0x10000" size="0x34000"/>
<device id="default" type="default"/>
<serial id="dl11" adapter="0"/>

View file

@ -0,0 +1,11 @@
---
layout: page
title: PDP-11 RAM Images
permalink: /devices/pdp11/ram/
---
PDP-11 RAM Images
-----------------
* [PDP-11 Boot Demo](bootdemo/)
* [PDP-11 Bootstrap Loader](bootstrap/)

View file

@ -0,0 +1,15 @@
---
layout: page
title: PDP-11 Boot Demo
permalink: /devices/pdp11/ram/bootdemo/
redirect_from:
- /devices/pdp11/rom/test/
---
PDP-11 Boot Demo
----------------
[BOOTDEMO.MAC](bootdemo.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com))
[BOOTDEMO.MAC](bootdemo.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOTDEMO.LST](bootdemo.lst),
which was then processed by [FileDump](/modules/filedump/) to produce [BOOTDEMO.JSON](bootdemo.json).

View file

@ -0,0 +1,11 @@
#
# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11
#
all: bootdemo.json
bootdemo.lst: bootdemo.mac
macro11 bootdemo.mac -l bootdemo.lst
bootdemo.json: bootdemo.lst
node ../../../../modules/filedump/bin/filedump --file=bootdemo.lst --format=octal --output=bootdemo.json --overwrite

View file

@ -1,11 +1,11 @@
---
layout: page
title: PDP-11 Loaders
permalink: /devices/pdp11/loader/
title: PDP-11 Bootstrap Loader
permalink: /devices/pdp11/ram/bootstrap/
---
PDP-11 Loaders
--------------
PDP-11 Bootstrap Loader
-----------------------
The blog post "[PDP-11 Paper Tape BASIC](http://avitech.com.au/?page_id=709)" describes the *Bootstrap Loader*,
a small program used to load the *Absolute Loader*, which in turn loads the *PDP-11 BASIC Paper Tape*.

View file

@ -1,4 +1,4 @@
{"words":[
{"load":0x3FE4,"exec":0x3FE4,"words":[
0x1DC1 /*016701*/,0x0016 /*000026*/,0x15C2 /*012702*/,0x00EA /*000352*/,0x0A89 /*005211*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x9C72 /*116162*/,
0x0002 /*000002*/,0x3F00 /*037400*/,0x0AB7 /*005267*/,0xFFEE /*177756*/,0x01F5 /*000765*/,0xFF68 /*177550*/]
}
}

View file

@ -1,10 +1,10 @@
---
layout: page
title: PDP-11 ROMs
title: PDP-11 ROM Images
permalink: /devices/pdp11/rom/
---
PDP-11 ROMs
-----------
PDP-11 ROM Images
-----------------
* [Test ROM](test/) (based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com))
Any ROM images added to the project will be stored here.

View file

@ -1,13 +0,0 @@
---
layout: page
title: PDP-11 Test ROM
permalink: /devices/pdp11/rom/test/
---
PDP-11 Test ROM
---------------
This isn't a ROM so much as a read-only image that can be loaded in RAM by the ROM component.
[BOOT.MAC](boot.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOT.LST](boot.lst),
which was then processed by [FileDump](/modules/filedump/) to produce [BOOT.JSON](boot.json).

View file

@ -1,11 +0,0 @@
#
# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11
#
all: boot.json
boot.lst: boot.mac
macro11 boot.mac -l boot.lst
boot.json: boot.lst
node ../../../../modules/filedump/bin/filedump --file=boot.lst --format=octal --output=boot.json --overwrite