diff --git a/apps/pdp10/tests/README.md b/apps/pdp10/tests/README.md index 3aeb4c12b..d45b5ca46 100644 --- a/apps/pdp10/tests/README.md +++ b/apps/pdp10/tests/README.md @@ -7,13 +7,20 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a 100 /apps/pdp10/tests/MACTEST1.MAC --- -DEC PDP-10 Opcode Tests ------------------------ +DEC PDP-10 Tests +---------------- -The PDP-10 machine below loads the following test: +This page describes a collection of tests used to perform *very* simple exercises of PDPjs components: + +- [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) @@ -122,3 +129,36 @@ To assemble and test the same instructions in [SIMH](https://github.com/simh/sim 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 ..... diff --git a/apps/pdp10/tests/MACTEST1.MAC.txt b/apps/pdp10/tests/TEXT.MAC.txt similarity index 100% rename from apps/pdp10/tests/MACTEST1.MAC.txt rename to apps/pdp10/tests/TEXT.MAC.txt diff --git a/modules/pdp10/lib/debugger.js b/modules/pdp10/lib/debugger.js index 420122f75..f7623b292 100644 --- a/modules/pdp10/lib/debugger.js +++ b/modules/pdp10/lib/debugger.js @@ -2867,7 +2867,7 @@ class DebuggerPDP10 extends Debugger { while (n-- > 0 && nWords-- > 0) { var w = this.getWord(dbgAddr, 1); if (fJSON) { - if (sData) sData += ","; + if (sData) sData += ','; sData += w; } else { sData += this.toStrWord(w); @@ -2880,7 +2880,7 @@ class DebuggerPDP10 extends Debugger { var shift = 36 - nBits; for (var i = 0; size == 1 && shift >= 0; i++) { var c = ((w / Math.pow(2, shift)) % Math.pow(2, nBits)); - sData += this.toStrBase(c, nBits); + sData += this.toStrBase(c, nBits) + ' '; c += (nBits == 6? 0x20 : 0); sChars += (c < 0x20? '.' : String.fromCharCode(c)); shift -= nBits; diff --git a/pubs/dec/pdp10/README.md b/pubs/dec/pdp10/README.md index 5ad4d1759..7db425640 100644 --- a/pubs/dec/pdp10/README.md +++ b/pubs/dec/pdp10/README.md @@ -8,7 +8,7 @@ PDP-10 Publications ------------------- This page summarizes PDP-10 documentation that was useful in creating [PDPjs](/docs/pdpjs/). In most cases, -these documents came from the PDF Document Archive at [bitsavers.org](http://bitsavers.org), in the [/pdf/dec/pdp10/](http://bitsavers.org/pdf/dec/pdp10/) +these documents came from the PDF Document Archive at [bitsavers.org](http://bitsavers.org), in the [/pdf/dec/pdp10/](http://bitsavers.org/pdf/dec/pdp10/) directory. If a PDF was not searchable, it was "OCR'ed" before being archived below. PDP-10 Hardware Publications @@ -19,4 +19,5 @@ PDP-10 Hardware Publications PDP-10 Software Publications ---------------------------- -- [MACRO-10 Assembler Programmer's Reference Manual (April 1972)](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) [[Original PDF](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp10/TOPS10/1973_Assembly_Language_Handbook/02_1973AsmRef_macro.pdf)] +- [MACRO-10 Assembler Programmer's Reference Manual (June 1972)](http://archive.pcjs.org/pubs/dec/pdp10/tops10/Macro_Assembler_Reference_Manual-Jun72.pdf) [[Original PDF](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp10/TOPS10/1973_Assembly_Language_Handbook/02_1973AsmRef_macro.pdf)] +- [MACRO-10 Assembler Programmer's Reference Manual (April 1978)](http://archive.pcjs.org/pubs/dec/pdp10/tops10/Macro_Assembler_Reference_Manual-Apr78.pdf) [[Original PDF](http://www.livingcomputers.org/Discover/Online-Systems/User-Documentation/Tops-10-v7-04/4_Macro_Assembler_Reference_Manual.aspx)]