477 lines
13 KiB
Markdown
477 lines
13 KiB
Markdown
---
|
|
layout: page
|
|
title: PDP-10 KA10 Basic Instruction Diagnostic #11
|
|
permalink: /apps/pdp10/diags/ka10/dakak/
|
|
machines:
|
|
- id: testka10
|
|
type: pdp10
|
|
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
|
|
debugger: true
|
|
commands: a DAKAK.MAC
|
|
---
|
|
|
|
PDP-10 KA10 Basic Instruction Diagnostic #11
|
|
--------------------------------------------
|
|
|
|
The *PDP-10 KA10 Basic Instruction Diagnostic #11* (MAINDEC-10-DAKAK) test code has been extracted from
|
|
[DAKAKM.MAC](DAKAKM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakakm.mac.html)] and
|
|
[DAKAKT.MAC](DAKAKT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakakt.mac.html)]
|
|
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
|
|
|
|
This diagnostic "TESTS THE MULTIPLY INSTRUCTION AND THE MULTIPLY ALGORITHM."
|
|
|
|
Information regarding this diagnostic includes:
|
|
|
|
- [Issues](#issues)
|
|
- [Instructions](#dakaktxt)
|
|
- [History](#dakakhst)
|
|
- [Source Code](#dakakmac)
|
|
- [MACRO-10 Listing](DAKAK.LST.txt)
|
|
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakak/DAKAK.SEQ.txt)
|
|
|
|
{% include machine.html id="testka10" %}
|
|
|
|
The Debugger's assemble ("a") command can be used to test the new built-in
|
|
[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset
|
|
of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language.
|
|
This command:
|
|
|
|
a DAKAK.MAC
|
|
|
|
will automatically read the [DAKAK.MAC](DAKAK.MAC.txt) source file (a slightly modified copy of [DAKAKM.MAC](DAKAKM.MAC.txt)),
|
|
assemble it, and then load the binary image at the location specified in the file.
|
|
|
|
To assemble the diagnostic using the original DEC source files:
|
|
|
|
a 'DAKAKT.MAC;../PARAM.KLM;../FIXED.KLM;DAKAKM.MAC;../UUOERR.KLM;../STOR.KLM'
|
|
|
|
The quotes (either single or double) are required to prevent the PDPjs Debugger from interpreting the filenames as
|
|
separate commands, because a semicolon is the Debugger's normal command separator.
|
|
|
|
If you want a machine to automatically assemble and load those files on startup, you can add the following machine configuration
|
|
setting in the page's Front Matter:
|
|
|
|
commands: a 'DAKAKT.MAC;../PARAM.KLM;../FIXED.KLM;DAKAKM.MAC;../UUOERR.KLM;../STOR.KLM'
|
|
|
|
However, in this case, you *must* use `'` as the quoting sequence, because of the way these settings are encoded into
|
|
JavaScript parameters; e.g.:
|
|
|
|
embedPDP10(...,'{commands:"a 'DAKAKT.MAC;../PARAM.KLM;../FIXED.KLM;DAKAKM.MAC;../UUOERR.KLM;../STOR.KLM'"}');
|
|
|
|
Issues
|
|
------
|
|
|
|
As noted in [cpuops.js](/modules/pdp10/lib/cpuops.js), in the *doMUL()* function:
|
|
|
|
> The DAKAK diagnostic contains the following code:
|
|
|
|
036174: 200240 043643 MOVE 5,43643 ; [43643] = 400000000000
|
|
036175: 200300 043603 MOVE 6,43603 ; [43603] = 777777777777
|
|
036176: 200140 043604 MOVE 3,43604 ; [43604] = 000000000001
|
|
036177: 224240 000003 MUL 5,3 ; Multiply 400000000000 by 000000000001
|
|
036200: 312240 043604 CAME 5,43604 ; high order result in AC should be: 000000000001
|
|
036201: 003240 033721 UUO 5,33721 ;
|
|
036202: 312300 043602 CAME 6,43602 ; low order result in AC+1 should be: 000000000000
|
|
|
|
> The "natural" result is:
|
|
|
|
05=777777777777 06=400000000000
|
|
|
|
> And SIMH seems to agree. So why does the DEC diagnostic expect:
|
|
|
|
05=000000000001 06=000000000000
|
|
|
|
> The answer can be found in the [DECSYSTEM-10 and DECSYSTEM-20 Processor Reference Manual (June 1982)](http://archive.pcjs.org/pubs/dec/pdp10/kl10/AA-H391A-TK_DECsystem-10_DECSYSTEM-20_Processor_Reference_Jun1982.pdf),
|
|
in the description of the MUL instruction:
|
|
|
|
CAUTION: In the KA10, an AC operand of 2^35 is treated as though it were +2^35, producing the
|
|
incorrect sign in the product.
|
|
|
|
> This behavior is now simulated below for MODEL_KA10, at least to the extent that the diagnostic is happy.
|
|
|
|
---
|
|
|
|
DAKAK.TXT
|
|
---------
|
|
|
|
```
|
|
MAINDEC-10-DAKAK.TXT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IDENTIFICATION
|
|
--------------
|
|
|
|
|
|
PRODUCT CODE: MAINDEC-10-DAKAK-B-D
|
|
|
|
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
|
|
INSTRUCTION DIAGNOSTIC (11)
|
|
|
|
FUNCTION: MULTIPLY TEST
|
|
|
|
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-DAKAK.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 DATA SWITCH FUNCTIONS
|
|
|
|
5.0 ERRORS
|
|
|
|
6.0 ITERATION COUNTER
|
|
|
|
7.0 CYCLE TIME
|
|
|
|
8.0 OPERATIONAL VARIATIONS
|
|
|
|
9.0 MISCELLANEOUS
|
|
|
|
10.0 LISTING
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 3
|
|
|
|
1.0 ABSTRACT
|
|
|
|
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
|
|
ELEVENTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
|
|
THE DIAGNOSTIC TESTS THE MULTIPLY INSTRUCTION AND THE
|
|
MULTIPLY ALGORITHM.
|
|
|
|
2.0 REQUIREMENTS
|
|
|
|
2.1 EQUIPMENT
|
|
|
|
A PDP-10 KA10 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY
|
|
|
|
PAPER TAPE READER
|
|
CONSOLE TELETYPE
|
|
DECTAPE
|
|
LINE PRINTER (OPTIONAL)
|
|
|
|
2.2 STORAGE
|
|
|
|
THE PROGRAM RUNS WITHIN 32K OF MEMORY.
|
|
|
|
2.3 PRELIMINARY PROGRAMS
|
|
|
|
PREVIOUS PROCESSOR DIAGNOSTICS
|
|
|
|
3.0 PROGRAM PROCEDURES
|
|
|
|
3.1 LOADING PROCEDURE
|
|
|
|
THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM10 SUBROUTINE
|
|
PROGRAM BE RESIDENT IN THE PDP-10.
|
|
|
|
PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104)
|
|
DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320)
|
|
TIME SHARING - RUN UNDER DIAMON.
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 4
|
|
|
|
3.2 STARTING PROCEDURE
|
|
|
|
A. SELECT OPERATIONAL CONSOLE DATA SWITCH SETTINGS (REFER TO
|
|
4.0 DATA SWITCH FUNCTIONS).
|
|
|
|
B. EXEC MODE
|
|
|
|
STAND-ALONE STARTING ADDRESS IS 30000.
|
|
|
|
C. USER MODE
|
|
|
|
RUN UNDER "DIAMON".
|
|
IN USER MODE THE FOLLOWING QUESTIONS WILL BE ASKED TO
|
|
SELECT THE OPERATIONAL SWITCHES:
|
|
|
|
TELETYPE SWITCH CONTROL ? 0,S,Y OR N (CR) -
|
|
|
|
IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE
|
|
SWITCHES ARE USED.
|
|
|
|
IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS
|
|
ARE ASKED AND THE OPERATOR RESPONDS BY TYPING
|
|
THE ANSWER AS SIX OCTAL DIGITS REPRESENTING
|
|
THE DESIRED SWITCH SETTINGS.
|
|
|
|
SPECIFY LH SWITCHES IN OCTAL-
|
|
|
|
SPECIFY RH SWITCHES IN OCTAL-
|
|
|
|
IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR
|
|
THE SWITCH SETTINGS.
|
|
|
|
IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES
|
|
ARE USED. THIS IS ONLY VALID UPON RESTARTING
|
|
OF AN INTERRUPTED PROGRAM.
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 5
|
|
|
|
3.3 OPERATING PROCEDURE
|
|
|
|
A. TO THROUGHLY TEST ALL HARDWARE, ALL TEST CONTROL DATA
|
|
SWITCHES SHOULD BE SET TO 0.
|
|
|
|
B. WHEN DEBUGGING HARDWARE, SET SWITCHES TO 0. ALLOW THE
|
|
TELETYPE TO PRINT THE ERROR MESSAGES. THIS ALLOWS THE
|
|
PROGRAM TO RUN A COMPLETE PASS AND THEN THE ERROR MESSAGES
|
|
MAY BE CORRELATED TO QUICKLY DIAGNOSE THE FAILURE. IF A
|
|
HARDWARE PROBLEM IS SUCH THAT THE ERROR MESSAGES, AFTER THE
|
|
FIRST ONE, HAVE NO MEANING (FIRST ERROR CAUSES ALL FOLLOWING
|
|
TESTS TO FAIL) SET THE LOOP ON ERROR SWITCH AND RESTART THE
|
|
TEST FROM THE BEGINNING. THE FIRST FAILURE WILL THEN CAUSE
|
|
THE PROGRAM TO ENTER A LOOP SUITABLE FOR SCOPING.
|
|
|
|
THE ERROR MESSAGE USED IN CONJUNCTION WITH THE LISTING AND
|
|
SCOPING IF NECESSARY SHOULD ALLOW THE FAILING CONPONENT
|
|
TO BE ISOLATED AND REPLACED AND/OR REPAIRED.
|
|
|
|
C. WHEN TAKING MARGINS, SET DATA SWITCHES 'NOPNT' AND 'DING'.
|
|
THIS WILL INHIBIT PRINTOUT BUT WILL ALLOW THE TELETYPE
|
|
BELL TO BE RUNG WHEN A ERROR OCCURS. IF THE MARGIN OBTAINED
|
|
IS UNACCEPTABLE, THE OPERATOR MAY REVERT TO STANDARD SWITCH
|
|
SETTINGS FOR DEBUGGING PURPOSES.
|
|
|
|
D. ERROR INFORMATION MAY BE OBTAINED QUICKLY BY PRINTING
|
|
ERRORS ON THE LINE PRINTER.
|
|
|
|
E. IN THE EVENT OF A PRINT ROUTINE FAILURE THE 'NOPNT' SWITCH
|
|
AND THE 'ERSTOP' SWITCH MAY BE SET TO INHIBIT PRINTOUT
|
|
BUT HALT THE PROGRAM POINTING TO THE ERROR.
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 6
|
|
|
|
4.0 DATA SWITCH FUNCTIONS
|
|
|
|
SWITCH STATE FUNCTION
|
|
------ ----- --------
|
|
|
|
0 ABORT 0 NORMAL OPERATION
|
|
1 ABORT AT END OF PASS
|
|
|
|
1 RSTART NOT USED
|
|
|
|
2 TOTALS NOT USED
|
|
|
|
3 NOPNT 0 NORMAL TYPEOUT
|
|
1 INHIBIT ALL PRINT/TYPEOUT
|
|
(EXCEPT FORCED)
|
|
|
|
4 PNTLPT 0 NORMAL OUTPUT TO TTY
|
|
1 PRINT ALL DATA ON LPT
|
|
(LOGICAL DEVICE, USER MODE)
|
|
|
|
5 DING 0 NO FUNCTION
|
|
1 RING TTY BELL ON ERROR
|
|
|
|
6 LOOPER 0 PROCEED TO NEXT TEST
|
|
1 ENTER SCOPE LOOP ON TEST ERROR
|
|
|
|
7 ERSTOP 0 NO FUNCTION
|
|
1 HALT ON TEST ERROR
|
|
|
|
8 PALERS 0 PRINT ONLY FIRST ERROR WHEN LOOPING
|
|
1 PRINT ALL ERRORS, EVEN IF SAME ERROR
|
|
|
|
9 RELIAB NOT USED
|
|
|
|
10 TXTINH 0 PRINT FULL ERROR MESSAGES.
|
|
1 INHIBIT COMMENT PORTION OF
|
|
ERROR MESSAGES.
|
|
|
|
11 INHPAG 0 ALLOW PAGING AND TRAP ENABLE
|
|
1 INHIBIT PAGING AND TRAPPING
|
|
|
|
12 MODDVC NOT USED
|
|
|
|
13 INHCSH NOT USED
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 7
|
|
|
|
5.0 ERRORS
|
|
|
|
ERRORS ARE PRINTED ON THE TTY OR LINE PRINTER. THE ERROR
|
|
PRINTOUT CONTAINS THE TEST TITLE, THE PC OF THE FAILURE, ERROR
|
|
NUMBER AND THE CONTENTS OF AN APPLICABLE AC.
|
|
|
|
THE PC VALUE IS USEFUL IN RELATING THE FAILURE TO THE LISTING.
|
|
THE ERROR NUMBER IS PROVIDED SUCH THAT AN ERROR DICTIONARY MAY
|
|
BE MADE AT SOME FUTURE DATE.
|
|
|
|
WHEN THE SCOPE LOOP MODE IS USED THE MI REGISTER WILL COUNT
|
|
FOR EACH OCCURANCE OF AN ERROR. IF AN AUDIO INDICATION OF
|
|
A CONTINUING ERROR IS DESIRED THE 'DING' SWITCH MAY BE SET.
|
|
|
|
6.0 ITERATION COUNTER
|
|
|
|
THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEMORY
|
|
INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND
|
|
INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION.
|
|
|
|
7.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-DAKAK.TXT
|
|
PAGE 8
|
|
|
|
8.0 OPERATIONAL VARIATIONS
|
|
|
|
A. DIAGNOSTIC MONITOR
|
|
|
|
THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PROVIDE
|
|
RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PROVIDE 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 PROGRAM
|
|
AND STARTS IT AT LOCATION 30002.
|
|
|
|
2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MONITOR
|
|
CONTROL WORD.
|
|
LH = 0, STAND-ALONE OPERATION
|
|
-1, RUNNING UNDER DIAGNOSTIC MONITOR
|
|
|
|
RH = RIGHT HALF OF CONSOLE SWITCHES IF UNDER
|
|
DIAGNOSTIC MONITOR CONTROL.
|
|
|
|
B. USER MODE
|
|
|
|
TO OUTPUT THE PRINTED ERROR MESSAGES TO A USER SPECIFIED
|
|
DEVICE IN USER MODE, ASSIGN THE DESIRED OUTPUT DEVICE TO
|
|
DEVICE NAME 'DEV' AND SET SWITCH 'PNTLPT'. THE PHYSICAL
|
|
DEVICE USED CAN BE ANY DEVICE THAT CAN ACCEPT ASCII OUTPUT
|
|
FORMAT SUCH AS LPT, DSK, DTA, ETC. THE CORRESPONDING
|
|
OUTPUT FILE IS 'DAKAK.TMP'
|
|
|
|
EXAMPLE DEVICE ASSIGNMENT:
|
|
|
|
.ASSIGN DSK DEV
|
|
|
|
IN USER MODE THE PROGRAM WILL MAKE 1000(8) PASSES AND THEN
|
|
RETURN TO DIAMON COMMAND MODE.
|
|
|
|
MAINDEC-10-DAKAK.TXT
|
|
PAGE 9
|
|
|
|
8.0 OPERATIONAL VARIATIONS (CON'T)
|
|
|
|
THE OUTPUT FILE (IF USED) MAY THEN BE LISTED BY USING THE
|
|
NORMAL MONITOR COMMANDS (PRINT, LIST, TYPE, PIP, ETC.).
|
|
|
|
IF THE PROGRAM IS ABORTED BEFORE COMPLETION (BY ^C, ETC.) THE
|
|
OUTPUT FILE MAY BE CLOSED BY USING THE MONITOR 'REENTER'
|
|
COMMAND.
|
|
|
|
C. SYSTEM EXERCISER
|
|
|
|
START ADDRESS IS 30003. DATA SWITCHES ARE PRESTORED IN
|
|
'SWTEXR' LOC 30023.
|
|
|
|
9.0 MISCELLANEOUS
|
|
|
|
THE NON-EX-MEMORY AND PARITY STOP SWITCHES SHOULD BE RESET
|
|
(0). THESE ERRORS, ILLEGAL UUO'S AND OTHER ERRORS OF THIS
|
|
TYPE ARE HANDLED BY PRINTOUT ON THE TELETYPE.
|
|
|
|
10.0 LISTING
|
|
```
|
|
|
|
DAKAK.HST
|
|
---------
|
|
|
|
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAK
|
|
|
|
************************************************************************
|
|
|
|
PRODUCT CODE: MAINDEC-10-DAKAK
|
|
|
|
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #11
|
|
|
|
DATE RELEASED: JANUARY 1977
|
|
|
|
VERSION: 0.2
|
|
|
|
UPDATE AUTHOR: JOHN R. KIRCHOFF
|
|
|
|
CHANGES MADE:
|
|
|
|
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
|
|
|
|
************************************************************************
|
|
|
|
ORIGINAL VERSION: 0.1
|
|
|
|
ORIGINAL AUTHOR: RICHARD MALISKA
|
|
|
|
ORIGINAL RELEASE: 16-MAR-72
|
|
|
|
************************************************************************
|
|
|
|
DAKAK.MAC
|
|
---------
|
|
|
|
[[Download](DAKAK.MAC.txt)]
|
|
|
|
{% highlight text %}
|
|
{% include_relative DAKAK.MAC.txt %}
|
|
{% endhighlight %}
|