Skip to content
This repository has been archived by the owner on Dec 24, 2020. It is now read-only.

Commit

Permalink
Merge branch 'next-release'
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffpar committed Oct 22, 2016
2 parents 09bc51e + 1a484a8 commit 7e02c95
Show file tree
Hide file tree
Showing 221 changed files with 6,475 additions and 2,731 deletions.
2 changes: 1 addition & 1 deletion Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,7 @@ module.exports = function(grunt) {
options: {
process: function(content, srcPath) {
var s = content.replace(/(<xsl:variable name="APPCLASS">)[^<]*(<\/xsl:variable>)/g, "$1pdp11$2");
s = s.replace(/(<xsl:variable name="APPNAME">)[^<]*(<\/xsl:variable>)/g, "$1PDP11$2");
s = s.replace(/(<xsl:variable name="APPNAME">)[^<]*(<\/xsl:variable>)/g, "$1PDPjs$2");
s = s.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2");
s = s.replace(/"[^"]*\/?(common.css|common.xsl|components.css|components.xsl|document.css|document.xsl)"/g, '"/versions/pdpjs/' + pkg.version + '/$1"');
s = s.replace(/[ \t]*\/\*[^*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, "");
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ includes:
* [PCx86](/docs/pcx86/), an x86-based IBM PC and PC-compatible emulator
* [PC8080](/modules/pc8080/), an 8080 machine emulator (e.g., [Space Invaders](/devices/pc8080/machine/invaders/), [VT100 Terminal](/devices/pc8080/machine/vt100/))
* [C1Pjs](/docs/c1pjs/), an emulation of the 6502-based Ohio Scientific [Challenger 1P](/devices/c1p/)
* [PDPjs](/modules/pdp11/), a PDP-11 machine emulator currently in development (e.g., [PDP-11/70](/devices/pdp11/machine/1170/))
* [PDPjs](/modules/pdp11/), a PDP-11 machine emulator currently in development (e.g., [PDP-11/20 and PDP-11/70](/devices/pdp11/machine/))

All PCjs computer simulations are written entirely in [JavaScript](/modules/). No Flash, Java or other plugins are
required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge,
Expand Down
10 changes: 6 additions & 4 deletions apps/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
---
layout: page
title: Application Archives
title: Software Archives
permalink: /apps/
---

Application Archives
---
Browse these PCjs Application Archives:
Software Archives
-----------------

Browse these PCjs Software Archives:

- [IBM PC](pcx86/)
- [Challenger 1P](c1p/)
- [PDP-11](pdp11/)

---

Expand Down
2 changes: 1 addition & 1 deletion apps/c1p/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Challenger 1P Applications
- [BASIC](BASIC/)
- [6502 Machine-Language](6502/)

To make it easy for our machines to load our applications, we provide the following **Serial** configuration files:
To make it easy for our C1Pjs machines to load these applications, we provide the following **Serial** configuration files:

- [all.xml](all.xml)
- [samples.xml](samples.xml)
Expand Down
2 changes: 1 addition & 1 deletion apps/c1p/all.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<serial id="serialPort" pos="left" padleft="8px">
<serial id="serialPort" pos="left" padLeft="8px">
<control type="list" binding="listSerial">
<item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-4K.json">6502 4K Assembler (JP)</item>
<item ref="/apps/c1p/6502/jeffpar/assembler/ASSEMBLER-8K.json">6502 8K Assembler (JP)</item>
Expand Down
2 changes: 1 addition & 1 deletion apps/c1p/samples.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<serial id="serialPort" pos="left" padleft="8px">
<serial id="serialPort" pos="left" padLeft="8px">
<control type="list" binding="listSerial">
<item ref="/apps/c1p/BASIC/OSI/MATH.BAS">BASIC MATH</item>
<item ref="/apps/c1p/BASIC/OSI/CHECKING.BAS">CHECKING</item>
Expand Down
13 changes: 13 additions & 0 deletions apps/pdp11/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
layout: page
title: PDP-11 Software
permalink: /apps/pdp11/
---

PDP-11 Software
---------------

We have archived the following selected PDP-11 software:

- [Boot Code](boot/)
- [DEC PDP-11 Tapes](tapes/)
24 changes: 24 additions & 0 deletions apps/pdp11/boot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
layout: page
title: PDP-11 Boot Code
permalink: /apps/pdp11/boot/
---

PDP-11 Boot Code
----------------

The project contains the following PDP-11 boot code images:

* [PDP-11 Boot Test](test/)
* [DEC PDP-11 Bootstrap Loader](bootstrap/)

Boot code can be pre-loaded into any machine by including a `<ram>` component in the machine XML configuration file
with the *file* attribute set to the filename of the image, along with optional *load* and *exec* addresses; eg:

```xml
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json" load="0x3FE4" exec="0x3FE4"/>
```

If no *load* address is specified, the `<ram>` component relies on the "load" property of the JSON-encoded RAM image;
otherwise, the starting RAM address is used. If no *exec* address is specified, the CPU will begin execution at its usual
reset address.
Original file line number Diff line number Diff line change
@@ -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*/]
}
}
83 changes: 83 additions & 0 deletions apps/pdp11/boot/bootstrap/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
layout: page
title: DEC PDP-11 Bootstrap Loader
permalink: /apps/pdp11/boot/bootstrap/
---

DEC PDP-11 Bootstrap Loader
---------------------------

The **Bootstrap Loader** is a small program that loads the **[Absolute Loader](/apps/pdp11/tapes/absloader/)**,
which is then used to load other PDP-11 tapes, such as **[BASIC (Single User)](/apps/pdp11/tabes/basic/)**.

Here's what the **Bootstrap Loader** looks like:

Location Instruction
037744 016701
037746 000026
037750 012702
037752 000352
037754 005211
037756 105711
037760 100376
037762 116162
037764 000002
037766 037400
037770 005267
037772 177756
037774 000765
037776 177550

Using any [PDPjs](/modules/pdpjs/) machine with the built-in Debugger, such as this
[PDP-11/20 Test Machine with Debugger](/devices/pdp11/machine/1120/test/debugger/), the **Bootstrap Loader**
is easily entered with a single Debugger EDIT ("e") command:

e 037744 016701 000026 012702 000352 005211 105711 100376 116162 000002 037400 005267 177756 000765 177550

You can immediately disassemble the code using the Debugger's UNASSEMBLE ("u") command `u 037744 040000`:

037744: 016701 000026 MOV 26(PC),R1 ; @037776
037750: 012702 000352 MOV #352,R2
037754: 005211 INC @R1
037756: 105711 TSTB @R1
037760: 100376 BPL 037756
037762: 116162 000002 037400 MOVB 2(R1),37400(R2)
037770: 005267 177756 INC 177756(PC) ; @037752
037774: 000765 BR 037750
037776: 177550 .WORD 177550

To run the above code, set the PC to 037744 and start the machine:

r pc=037744
g

Pre-loading DEC's Bootstrap Loader
----------------------------------

I pasted the disassembled code (above) into a listing file, [BOOTSTRAP-16KB.lst](BOOTSTRAP-16KB.lst),
and then ran [FileDump](/modules/filedump) to produce a [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) that can
be automatically pre-loaded into any machine:

filedump --file=BOOTSTRAP-16KB.lst --format=octal --output=BOOTSTRAP-16KB.json

For example, this [PDP-11/20 16Kb Machine](/devices/pdp11/machine/1120/bootstrap/debugger/) pre-loads
the **Bootstrap Loader** using the `<ram>` component's optional *file* attribute:

<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json"/>

I also edited [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) to include the following properties:

"load": 0x3FE4,
"exec": 0x3FE4,

so that the `<ram>` component knows exactly where to load and execute the file. However, the `<ram>` component can also
specify those value(s) itself, if needed:

<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json" load="0x3FE4" exec="0x3FE4"/>

Finally, if you prefer octal *and* you're sure everyone will be using an ES6-capable browser, you can do this:

<ram id="ram" addr="0o00000" size="0o40000" file="/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json" load="0o37744" exec="0o37744"/>

All PCjs configuration files use hex and/or decimal exclusively, since those number formats have always been supported,
but as time goes by, the new octal and binary formats will be almost as universal.
Loading

0 comments on commit 7e02c95

Please sign in to comment.