diff --git a/apps/pdp10/README.md b/apps/pdp10/README.md
index d795d078a..42f4ebbdb 100644
--- a/apps/pdp10/README.md
+++ b/apps/pdp10/README.md
@@ -9,5 +9,6 @@ PDP-10 Software
PCjs provides the following PDP-10 software:
-- [PDP-10 Diagnostics](diags/)
-- [PDP-10 Opcode Tests](tests/)
+- [DEC PDP-10 Diagnostics](diags/)
+- [PDPjs PDP-10 Opcode Tests](tests/opcodes/)
+- [PDPjs MACRO-10 Mini-Assembler Tests](tests/macro10/)
diff --git a/apps/pdp10/diags/README.md b/apps/pdp10/diags/README.md
index efd98b3a4..f429528cb 100644
--- a/apps/pdp10/diags/README.md
+++ b/apps/pdp10/diags/README.md
@@ -1,11 +1,11 @@
---
layout: page
-title: PDP-10 Diagnostics
+title: DEC PDP-10 Diagnostics
permalink: /apps/pdp10/diags/
---
-PDP-10 Diagnostics
-------------------
+DEC PDP-10 Diagnostics
+----------------------
PCjs has archived the following PDP-10 diagnostics:
diff --git a/apps/pdp10/diags/klad/README.md b/apps/pdp10/diags/klad/README.md
index 44409ff9b..15f7f4597 100644
--- a/apps/pdp10/diags/klad/README.md
+++ b/apps/pdp10/diags/klad/README.md
@@ -7,8 +7,8 @@ permalink: /apps/pdp10/diags/klad/
PDP-10 KLAD Diagnostics
-----------------------
-PCjs has archived selected files from [PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html),
-including:
+PCjs has archived selected files from
+[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html), including:
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA-B-D)](dakaa/)
- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD-B-D)](dakad/)
diff --git a/apps/pdp10/tests/README.md b/apps/pdp10/tests/README.md
index d45b5ca46..85b441c6f 100644
--- a/apps/pdp10/tests/README.md
+++ b/apps/pdp10/tests/README.md
@@ -1,164 +1,13 @@
---
layout: page
-title: DEC PDP-10 Opcode Tests
+title: PDPjs PDP-10 Tests
permalink: /apps/pdp10/tests/
-machines:
- - id: testka10
- type: pdp10
- config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
- debugger: true
---
-DEC PDP-10 Tests
-----------------
+PDPjs PDP-10 Tests
+------------------
-This page describes a collection of tests used to perform *very* simple exercises of PDPjs components:
+PDPjs tests to exercise PDP-10 and MACRO-10 features include:
-- [Simple Opcode Tests](#simple-opcode-tests)
-- [MACRO-10 Mini-Assembler Tests](#macro-10-mini-assembler-tests)
-
-Simple Opcode Tests
--------------------
-
-The PDP-10 machine below loads the following hand-written test:
-
-- [PDP-10 Half-Word Opcode Test](OPTEST01.json)
-
-Details on how to run and modify the test, and perform similar tests in [SIMH](https://github.com/simh/simh),
-are provided below.
-
-{% include machine.html id="testka10" %}
-
-The [PDP-10 Half-Word Opcode Test](OPTEST01.json) file specifies that the following words:
-
- 0o505040111111, // HRLI 1,111111
- 0o541040444444, // HRRI 1,444444
- 0o544100000001, // HLR 2,1
- 0o504100000001, // HRL 2,1
- ...
-
-should be loaded at address 0o100, and that the program counter (PC register) should be set to 0o100. The embedded
-comments display the instructions that correspond to each word.
-
-If you want to alter or add new instructions, the PDP-10 Debugger now includes a rudimentary assembler. Using the `a` command,
-along with an optional start address, you can enter "assembler mode". For example, here's how the first four instructions from
-the [PDP-10 Half-Word Opcode Test](OPTEST01.json) could be entered by hand:
-
- >> a 100
- begin assemble at 000100
- >> hrli 1,111111
- 000100: 505040 111111 HRLI 1,111111
- >> hrri 1,444444
- 000101: 541040 444444 HRRI 1,444444
- >> hlr 2,1
- 000102: 544100 000001 HLR 2,1
- >> hrl 2,1
- 000103: 504100 000001 HRL 2,1
- ended assemble at 000104
-
-Entering a blank line exits "assembler mode". To disassemble the four instructions, use `u 100 l4`:
-
- >> u 100 l4
- 000100: 505040 111111 HRLI 1,111111
- 000101: 541040 444444 HRRI 1,444444
- 000102: 544100 000001 HLR 2,1
- 000103: 504100 000001 HRL 2,1
-
-You can also copy-and-paste a series of instructions into the PDPjs Debugger, as long as each command ends
-with a semicolon:
-
- a 100;
- hrli 1,111111;
- hrri 1,444444;
- hlr 2,1;
- hrl 2,1;
- end
-
-Individual instructions can also be assembled *without* entering "assembler mode", as long as you precede
-each instruction with the `a` command and a specific address:
-
- a 100 hrli 1,111111;
- a 101 hrri 1,444444;
- a 102 hlr 2,1;
- a 103 hrl 2,1
-
-Individual instructions can be executed with the `t` command and memory can be dumped with the `d` command.
-
-After executing the first four instructions and using the `d 0 l4` command to dump first four words of memory
-(also known as AC registers 0-3), you should see the following output:
-
- >> r
- 000100: 505040 111111 HRLI 1,111111
- >> t
- 000101: 541040 444444 HRRI 1,444444
- >> t
- 000102: 544100 000001 HLR 2,1
- >> t
- 000103: 504100 000001 HRL 2,1
- >> t
- 000104: 000000 000000 UUO 0,0
- >> d 0 l4
- 000000: 000000 000000 111111 444444 444444 111111 000000 000000
-
-To assemble and test the same instructions in [SIMH](https://github.com/simh/simh), using the `pdp10` binary:
-
- sim> dep 100 505040111111
- sim> dep 101 541040444444
- sim> dep 102 544100000001
- sim> dep 103 504100000001
- sim> ex -m 100-103
- 100: HRLI 1,111111
- 101: HRRI 1,444444
- 102: HLR 2,1
- 103: HRL 2,1
- sim> dep pc 100
- sim> step
-
- Step expired, PC: 000101 (HRRI 1,444444)
- sim> step
-
- Step expired, PC: 000102 (HLR 2,1)
- sim> step
-
- Step expired, PC: 000103 (HRL 2,1)
- sim> step
-
- Step expired, PC: 000104 (000000000000)
- sim> ex 0-3
- 0: 000000000000
- 1: 111111444444
- 2: 444444111111
- 3: 000000000000
-
-MACRO-10 Mini-Assembler Tests
------------------------------
-
-The following command loads an early test of the built-in PDPjs MACRO-10 Mini-Assembler:
-
- a 100 /apps/pdp10/tests/TEXT.MAC
-
-[TEXT.MAC](TEXT.MAC.txt) is a copy of the file listed on p. 7-9 of the
-[MACRO-10 Assembler Programmer's Reference Manual (June 1972)](/pubs/dec/pdp10/). It's a simple test
-of nested macro definitions, recursion, expressions using shift operators and character constants,
-and pseudo-ops **IRPC**, **IFE**, **IFN**, and **EXP**. It generates 4 words of data.
-
-If successful, the following results should appear:
-
- >> a 100 /apps/pdp10/tests/TEXT.MAC
- starting PCjs MACRO-10 Mini-Assembler...
- loading TEXT.MAC
- 4 words loaded at 000100-000103
- 00=000000000000 01=000000000000 02=000000000000 03=000000000000
- 04=000000000000 05=000000000000 06=000000000000 07=000000000000
- 10=000000000000 11=000000000000 12=000000000000 13=000000000000
- 14=000000000000 15=000000000000 16=000000000000 17=000000000000
- PC=000100 RA=00000000 EA=000000 C0=0 C1=0 OV=0 ND=0 PD=0
- 000100: 014101 102103 UUO 2,102103(1)
-
-and if you dump the first 4 words with the command `db 100 l4`:
-
- >> db 100 l4
- 000100: 014101 102103 003 004 011 004 041 ....!
- 000101: 104105 106107 021 004 051 014 043 ..).#
- 000102: 110111 112113 022 004 111 024 045 ..I.%
- 000103: 114000 000000 023 000 000 000 000 .....
+- [PDPjs PDP-10 Opcode Tests](opcodes/)
+- [PDPjs MACRO-10 Mini-Assembler Tests](macro10/)
diff --git a/apps/pdp10/tests/macro10/README.md b/apps/pdp10/tests/macro10/README.md
new file mode 100644
index 000000000..cd9e65d9e
--- /dev/null
+++ b/apps/pdp10/tests/macro10/README.md
@@ -0,0 +1,47 @@
+---
+layout: page
+title: PDPjs MACRO-10 Mini-Assembler Tests
+permalink: /apps/pdp10/tests/macro10/
+machines:
+ - id: testka10
+ type: pdp10
+ config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
+ debugger: true
+ commands: a 100 /apps/pdp10/tests/macro10/TEXT.MAC
+---
+
+PDPjs MACRO-10 Mini-Assembler Tests
+-----------------------------------
+
+The PDP-10 machine below automatically loads and assembles [TEXT.MAC](TEXT.MAC.txt), one of the
+first tests of the built-in PDPjs MACRO-10 Mini-Assembler.
+
+[TEXT.MAC](TEXT.MAC.txt) is a copy of the file listed on p. 7-9 of the
+[MACRO-10 Assembler Programmer's Reference Manual (June 1972)](/pubs/dec/pdp10/). It's a simple test
+of nested macro definitions, recursion, expressions using shift operators and character constants,
+and pseudo-ops **IRPC**, **IFE**, **IFN**, and **EXP**. It generates 4 words of data.
+
+{% include machine.html id="testka10" %}
+
+After the machine executes the following command:
+
+ a 100 /apps/pdp10/tests/macro10/TEXT.MAC
+
+the following results should appear:
+
+ starting PCjs MACRO-10 Mini-Assembler...
+ loading TEXT.MAC
+ 4 words loaded at 000100-000103
+ 00=000000000000 01=000000000000 02=000000000000 03=000000000000
+ 04=000000000000 05=000000000000 06=000000000000 07=000000000000
+ 10=000000000000 11=000000000000 12=000000000000 13=000000000000
+ 14=000000000000 15=000000000000 16=000000000000 17=000000000000
+ PC=000100 RA=00000000 EA=000000 C0=0 C1=0 OV=0 ND=0 PD=0
+ 000100: 014101 102103 UUO 2,102103(1)
+
+and if you dump the first 4 words with the command `db 100 l4`:
+
+ 000100: 014101 102103 003 004 011 004 041 ....!
+ 000101: 104105 106107 021 004 051 014 043 ..).#
+ 000102: 110111 112113 022 004 111 024 045 ..I.%
+ 000103: 114000 000000 023 000 000 000 000 .....
diff --git a/apps/pdp10/tests/TEXT.MAC.txt b/apps/pdp10/tests/macro10/TEXT.MAC.txt
similarity index 100%
rename from apps/pdp10/tests/TEXT.MAC.txt
rename to apps/pdp10/tests/macro10/TEXT.MAC.txt
diff --git a/apps/pdp10/tests/OPTEST01.json b/apps/pdp10/tests/opcodes/OPTEST01.json
similarity index 100%
rename from apps/pdp10/tests/OPTEST01.json
rename to apps/pdp10/tests/opcodes/OPTEST01.json
diff --git a/apps/pdp10/tests/OPTEST01.simh b/apps/pdp10/tests/opcodes/OPTEST01.simh
similarity index 100%
rename from apps/pdp10/tests/OPTEST01.simh
rename to apps/pdp10/tests/opcodes/OPTEST01.simh
diff --git a/apps/pdp10/tests/opcodes/README.md b/apps/pdp10/tests/opcodes/README.md
new file mode 100644
index 000000000..556ebff3e
--- /dev/null
+++ b/apps/pdp10/tests/opcodes/README.md
@@ -0,0 +1,123 @@
+---
+layout: page
+title: PDPjs PDP-10 Opcode Tests
+permalink: /apps/pdp10/tests/opcodes/
+machines:
+ - id: testka10
+ type: pdp10
+ config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
+ debugger: true
+---
+
+PDPjs PDP-10 Opcode Tests
+-------------------------
+
+The PDP-10 machine below loads the following PDPjs opcode test:
+
+- [PDP-10 Half-Word Opcode Test](OPTEST01.json)
+
+Details on how to run and modify the test, and perform similar tests in [SIMH](https://github.com/simh/simh),
+are provided below.
+
+{% include machine.html id="testka10" %}
+
+The [PDP-10 Half-Word Opcode Test](OPTEST01.json) file specifies that the following words:
+
+ 0o505040111111, // HRLI 1,111111
+ 0o541040444444, // HRRI 1,444444
+ 0o544100000001, // HLR 2,1
+ 0o504100000001, // HRL 2,1
+ ...
+
+should be loaded at address 0o100, and that the program counter (PC register) should be set to 0o100. The embedded
+comments display the instructions that correspond to each word.
+
+If you want to alter or add new instructions, the PDP-10 Debugger now includes a rudimentary assembler. Using the `a` command,
+along with an optional start address, you can enter "assembler mode". For example, here's how the first four instructions from
+the [PDP-10 Half-Word Opcode Test](OPTEST01.json) could be entered by hand:
+
+ >> a 100
+ begin assemble at 000100
+ >> hrli 1,111111
+ 000100: 505040 111111 HRLI 1,111111
+ >> hrri 1,444444
+ 000101: 541040 444444 HRRI 1,444444
+ >> hlr 2,1
+ 000102: 544100 000001 HLR 2,1
+ >> hrl 2,1
+ 000103: 504100 000001 HRL 2,1
+ ended assemble at 000104
+
+Entering a blank line exits "assembler mode". To disassemble the four instructions, use `u 100 l4`:
+
+ >> u 100 l4
+ 000100: 505040 111111 HRLI 1,111111
+ 000101: 541040 444444 HRRI 1,444444
+ 000102: 544100 000001 HLR 2,1
+ 000103: 504100 000001 HRL 2,1
+
+You can also copy-and-paste a series of instructions into the PDPjs Debugger, as long as each command ends
+with a semicolon:
+
+ a 100;
+ hrli 1,111111;
+ hrri 1,444444;
+ hlr 2,1;
+ hrl 2,1;
+ end
+
+Individual instructions can also be assembled *without* entering "assembler mode", as long as you precede
+each instruction with the `a` command and a specific address:
+
+ a 100 hrli 1,111111;
+ a 101 hrri 1,444444;
+ a 102 hlr 2,1;
+ a 103 hrl 2,1
+
+Individual instructions can be executed with the `t` command and memory can be dumped with the `d` command.
+
+After executing the first four instructions and using the `d 0 l4` command to dump first four words of memory
+(also known as AC registers 0-3), you should see the following output:
+
+ >> r
+ 000100: 505040 111111 HRLI 1,111111
+ >> t
+ 000101: 541040 444444 HRRI 1,444444
+ >> t
+ 000102: 544100 000001 HLR 2,1
+ >> t
+ 000103: 504100 000001 HRL 2,1
+ >> t
+ 000104: 000000 000000 UUO 0,0
+ >> d 0 l4
+ 000000: 000000 000000 111111 444444 444444 111111 000000 000000
+
+To assemble and test the same instructions in [SIMH](https://github.com/simh/simh), using the `pdp10` binary:
+
+ sim> dep 100 505040111111
+ sim> dep 101 541040444444
+ sim> dep 102 544100000001
+ sim> dep 103 504100000001
+ sim> ex -m 100-103
+ 100: HRLI 1,111111
+ 101: HRRI 1,444444
+ 102: HLR 2,1
+ 103: HRL 2,1
+ sim> dep pc 100
+ sim> step
+
+ Step expired, PC: 000101 (HRRI 1,444444)
+ sim> step
+
+ Step expired, PC: 000102 (HLR 2,1)
+ sim> step
+
+ Step expired, PC: 000103 (HRL 2,1)
+ sim> step
+
+ Step expired, PC: 000104 (000000000000)
+ sim> ex 0-3
+ 0: 000000000000
+ 1: 111111444444
+ 2: 444444111111
+ 3: 000000000000
diff --git a/devices/pdp10/machine/ka10/test/debugger/machine.xml b/devices/pdp10/machine/ka10/test/debugger/machine.xml
index 6eb266c0b..205aca484 100644
--- a/devices/pdp10/machine/ka10/test/debugger/machine.xml
+++ b/devices/pdp10/machine/ka10/test/debugger/machine.xml
@@ -4,7 +4,7 @@
PDP-10 (Model KA10) with Debugger
-
+
diff --git a/devices/pdp10/machine/ka10/test/machine.xml b/devices/pdp10/machine/ka10/test/machine.xml
index 516450b32..ac897070e 100644
--- a/devices/pdp10/machine/ka10/test/machine.xml
+++ b/devices/pdp10/machine/ka10/test/machine.xml
@@ -4,7 +4,7 @@
PDP-10 Test Machine
-
+