diff --git a/apps/pdp10/tapes/diags/klad/dakad/README.md b/apps/pdp10/tapes/diags/klad/dakad/README.md index dba01e0e0..3e6d7cc8a 100644 --- a/apps/pdp10/tapes/diags/klad/dakad/README.md +++ b/apps/pdp10/tapes/diags/klad/dakad/README.md @@ -12,18 +12,216 @@ machines: PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC ---------------------------------------- -The **PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC** ([DAKAD.MAC](DAKAD.MAC)), as extracted from the -[original file](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaam.mac.html), is shown below, +The *PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC* (MAINDEC-10-DAKAD-B-D) test code has been extracted from [DAKAD.MAC](DAKAD.MAC) +[[original file](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaam.mac.html)] and is shown below, along with a [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/). The Debugger command `a 100 /apps/pdp10/tapes/diags/klad/dakad/TEST.MAC` -can be used to test the new [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) -work-alike assembler being added to the PDP-10 Emulator. +can be used to test the new [Mini MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) +assembler being added to the PDP-10 Emulator. {% include machine.html id="testka10" %} -More information about MAINDEC-10-DAKAD-B-D: +--- +DAKAD.TXT +--------- + +``` +MAINDEC-10-DAKAD.TXT + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKAD-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (4) + + FUNCTION: REGISTER ADDRESSING, PC CHANGE, XCT + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 1976,1977 +DIGITAL EQUIPMENT CORPORATION +MARLBORO, MASS. 01752 + +THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, +OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE +MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM +AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND +OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. + +THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT +NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +EQUIPMENT CORPORATION. + +DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. + MAINDEC-10-DAKAD.TXT + PAGE 2 + + + TABLE OF CONTENTS + ----------------- + +1.0 ABSTRACT + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + +2.2 STORAGE + +2.3 PRELIMINARY PROGRAMS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + +3.2 STARTING PROCEDURE + +3.3 OPERATING PROCEDURE + +4.0 ERRORS + +5.0 ITERATION COUNTER + +6.0 CYCLE TIME + +7.0 OPERATIONAL VARIATIONS + +8.0 MISCELLANEOUS + +9.0 LISTING + MAINDEC-10-DAKAD.TXT + PAGE 3 + + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE + FOURTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. + THE DIAGNOSTIC TESTS REGISTER ADDRESSING, JFCL, AR FLAGS, + AOS, SOS, JRST, AOBJX, JSP, XCT, INDIRECT AND + INDEXED ADDRESSING. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 WITH A MINIMUM OF 32K OF MEMORY + + PAPER-TAPE READER + DECTAPE (OPTIONAL) + CONSOLE TELETYPE + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + CONSOLE FUNCTIONS WORKING PROPERLY + PAPER-TAPE OR DECTAPE READ-IN WORKING PROPERLY + PREVIOUS PROCESSOR DIAGNOSTICS + MAINDEC-10-DAKAD.TXT + PAGE 4 + + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104) + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + +3.2 STARTING PROCEDURE + + STAND-ALONE STARTING ADDRESS IS 30000. + + IF THE DIAGNOSTIC FAILS TO START CORRECTLY TRY STARTING AT THE + FIRST TEST INSTEAD OF AT THE BEGINNING OF THE CONTROL SEQUENCE. + (SEE LISTING). + +3.3 OPERATING PROCEDURE + + ONCE STARTED THE PROGRAM WILL CYCLE CONTINUALLY UNTIL STOPPED + OR AN ERROR OCCURS. + +4.0 ERRORS + + ERRORS ARE IN THE FORM OF HALT INSTRUCTIONS. THE LISTING + SHOULD BE CONSULTED TO DETERMINE THE CAUSE OF THE ERROR. A + NO OPERATION (JUMP) INSTRUCTION FOLLOWS EACH HALT. THIS + MAY BE USEFUL IN CONSTRUCTING A SCOPE LOOP TO CYCLE ON THE + FAILING INSTRUCTION. + +5.0 ITERATION COUNTER + + THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEM- + ORY INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND + INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION. + +6.0 CYCLE TIME + + THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND + IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, ETC. + + MAINDEC-10-DAKAD.TXT + PAGE 5 + + +7.0 OPERATIONAL VARIATIONS + + A. DIAGNOSTIC MONITOR + + THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PRO- + VIDE RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PRO- + VIDE A QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR + AREA OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN + THE PROGRAM IS USED IN THIS MANNER. THEY ARE: + + 1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PRO- + GRAM AND STARTS IT AT LOCATION 30002. + + 2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MON- + ITOR CONTROL FLAG WORD. + + B. USER MODE + + THE PROGRAM WILL OPERATE IN USER MODE AND AS SUCH PROVIDES + ASSURANCE THAT THE PROCESSOR IS PERFORMING ALL FUNCTIONS + CORRECTLY. USER MODE STARTING ADDRESS IS 30000. + + C. SYSTEM EXERCISER + + STARTING ADDRESS IS 30003. NO DATA SWITCHES ARE USED BY + THIS PROGRAM. + +8.0 MISCELLANEOUS + + NONE + +9.0 LISTING + +``` + +DAKAD.MAC +--------- ``` SUBTTL DIAGNOSTIC PARAMETERS diff --git a/modules/pdp10/lib/debugger.js b/modules/pdp10/lib/debugger.js index 946fd0ba5..b96728a30 100644 --- a/modules/pdp10/lib/debugger.js +++ b/modules/pdp10/lib/debugger.js @@ -2479,7 +2479,11 @@ class DebuggerPDP10 extends Debugger { bus.setWordDirect(addr, w); nWords++; }); - this.println(nWords + " words loaded at " + this.toStrBase(addrLoad) + '-' + this.toStrBase(addrLoad + nWords - (nWords?1:0))); + if (!nWords) { + this.println("no data"); + } else { + this.println(nWords + " words loaded at " + this.toStrBase(addrLoad) + '-' + this.toStrBase(addrLoad + nWords - 1)); + } } /** @@ -2578,7 +2582,7 @@ class DebuggerPDP10 extends Debugger { } else { var addrLoad = dbgAddr.addr; - var sOptions = ""; // "p"; + var sOptions = ""; // add "p" for preprocessing only this.macro10 = new Macro10(match[2], addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) { if (!nErrorCode) { dbg.loadBin(dbg.macro10.getBin(), addrLoad); diff --git a/modules/pdp10/lib/macro10.js b/modules/pdp10/lib/macro10.js index 2a850a65f..1b1d2d1a2 100644 --- a/modules/pdp10/lib/macro10.js +++ b/modules/pdp10/lib/macro10.js @@ -87,6 +87,9 @@ class Macro10 { /** * Macro10(sURL, nAddr, sOptions, dbg, done) * + * A "mini" version of DEC's MACRO-10 assembler, with just enough features to support the handful + * of DEC diagnostic source code files that we choose to throw at it. + * * Requests the resource(s) specified by sURL; multiple resources can be requested by separating * them with semicolons. * diff --git a/versions/pdpjs/1.34.2/pdp10-dbg.js b/versions/pdpjs/1.34.2/pdp10-dbg.js index 0f3c653fb..ecfbc9a4e 100644 --- a/versions/pdpjs/1.34.2/pdp10-dbg.js +++ b/versions/pdpjs/1.34.2/pdp10-dbg.js @@ -200,7 +200,7 @@ function hg(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=m(d,2);We(e.Ba,d);f+="="+J(e,e.Ha(e.Ba),36)+" ";c+=f}if(b){b="";for(d=0;d=hf?1:d==ff?23:18)+" "),b+=e;c+="\n"+b}return c}l.zb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],t=Ea(p,k,a.zb);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({sd:b,B:c,Ob:d,U:e,ub:f})}function kg(a,b,c){var d=[],e=Ve(b)>>>0;for(b=0;b>>0,h=f.Ob;if(e>=g&&e