Moved all the KA10 diagnostics into a ka10 folder

This commit is contained in:
Jeff 2017-03-31 16:57:40 -07:00 • committed by Jeff Parsons
commit 6eba847a18
57 changed files with 76 additions and 53 deletions

View file

@ -0,0 +1,362 @@
SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
LOC 30000
; **********************************************************************
;PROGRAM STARTING ADDRESSES
;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
; **********************************************************************
BEGIN: JRST @MODLNK ;STAND-ALONE START
$START: JRST START ;MODE CHECK STARTING ADDRESS
DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
PFSTRT: JRST SADR2 ;POWER FAIL RESTART
REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
DDTSRT: JRST @DDTLNK ;DDT START
BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
RETURN: 0 ;RETURN ADDRESS STORAGE
START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
START2: SADR8 ; "
START3: SADR9 ; "
START4: SADR10 ; "
START5: SADR11 ; "
; **********************************************************************
;PROGRAM FIXED PARAMETER AREA
; **********************************************************************
PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
RANDBS: PAREA1 ;RANDOM BASE NUMBER
SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
ITRCNT: ITERAT ;PROGRAM ITERATIONS
$PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
$PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
$MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
$MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
$EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
$UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
$DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
$MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
PAREA7: PAREA5 ;OPTIONAL PARAMETER
PAREA8: PAREA6 ;OPTIONAL PARAMETER
; **********************************************************************
;PROGRAM VARIABLE PARAMETER AREA
; **********************************************************************
USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
MONCTL: 0 ;DIAG MON/SYS EXR FLAG
MONTEN: 0 ;-1= LOADED BY 10
CLOCKF: 0 ;CLOCK TICKED FLAG
CONSW: 0 ;CONSOLE SWITCH SETTINGS
PASCNT: 0 ;PROGRAM PASS COUNT
RUNFLG: 0 ;PROGRAM RUN FLAG
TESTPC: 0 ;SUBTEST PC
ERRPC: 0 ;ERROR PC
ERRTLS: 0 ;ERROR TOTALS
TICKS: 0 ;PROGRAM RUNNING TIME
MARGIN: 0 ;KI10 MARGIN WORD VALUE
$ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
; **********************************************************************
;SPECIAL PROGRAM DISPATCH ADDRESSES
; **********************************************************************
BEGEND: ENDUUO ;END OF PASS
$BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
$BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
CNTLC: SADR5 ;CONTROL C XFER ADDRESS
ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
CPOPJ1: ;SKIP RETURN
UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
CPOPJ: ;NON-SKIP REGULAR RETURN
UUOEXT: RTN ;UUO RETURN
UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
$UORTX: JFCL ;ADDITIONAL UUO LINKAGE
$UUOER: JFCL ;INITED AS (JRST $UOERX)
$ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
$ITRX1: JFCL ; "
$USRHL: JFCL ; "
$RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
$RSRTY: JFCL ; "
RESRT1: JFCL ; INITED AS (JRST RESRTX)
RESRT2: JFCL ; "
$PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
HALT . ;IMPROPER TRANSFER HALT
$PSHER: 0 ;INITED AS (JRST PSHERR)
ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
0 ;INITED AS (JRST $ITRC1)
; **********************************************************************
;PROCESSOR CONTROL STORAGE
; **********************************************************************
$ACC0: 0 ;INTERRUPT SAVED AC0
$SVPI: 0 ;INTERRUPT SAVED PI
$SVAPR: 0 ;INTERRUPT SAVED APR
$SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
$SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
$SVUUO: 0 ;CURRENT USERS UUO
$SVUPC: 0 ;PC OF CURRENT USERS UUO
REPTU: 0 ;REPEAT UUO ITERATIONS
SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
%CORFLG:0 ; " CORRECT FLAG
%COREC: 0 ; " CORRECT DATA
%ACTFL: 0 ; " ACTUAL FLAG
%ACTUL: 0 ; " ACTUAL DATA
%DISCR: 0 ; " DISCREPENCY DATA
; **********************************************************************
;UUO DISPATCH TABLE
; **********************************************************************
XLIST
IFNDEF LUUO1,<LUUO1=$UUOER>
IFNDEF LUUO2,<LUUO2=$UUOER>
IFNDEF LUUO3,<LUUO3=$UUOER>
IFNDEF LUUO4,<LUUO4=$UUOER>
IFNDEF LUUO5,<LUUO5=$UUOER>
IFNDEF LUUO6,<LUUO6=$UUOER>
IFNDEF LUUO7,<LUUO7=$UUOER>
IFNDEF LUUO10,<LUUO10=$UUOER>
IFNDEF LUUO11,<LUUO11=$UUOER>
IFNDEF LUUO12,<LUUO12=$UUOER>
IFNDEF LUUO13,<LUUO13=$UUOER>
IFNDEF LUUO14,<LUUO14=$UUOER>
IFNDEF LUUO15,<LUUO15=$UUOER>
IFNDEF LUUO16,<LUUO16=$UUOER>
IFNDEF LUUO17,<LUUO17=$UUOER>
IFNDEF LUUO20,<LUUO20=$UUOER>
IFNDEF LUUO21,<LUUO21=$UUOER>
IFNDEF LUUO22,<LUUO22=$UUOER>
IFNDEF LUUO23,<LUUO23=$UUOER>
IFNDEF LUUO24,<LUUO24=$UUOER>
IFNDEF LUUO25,<LUUO25=$UUOER>
IFNDEF LUUO26,<LUUO26=$UUOER>
IFNDEF LUUO27,<LUUO27=$UUOER>
IFNDEF LUUO30,<LUUO30=$UUOER>
IFNDEF LUUO31,<LUUO31=$UUOER>
IFNDEF LUUO32,<LUUO32=$UUOER>
IFNDEF LUUO33,<LUUO33=$UUOER>
LIST
UUODIS: LUUO1,,$UUOER
LUUO3,,LUUO2
LUUO5,,LUUO4
LUUO7,,LUUO6
LUUO11,,LUUO10
LUUO13,,LUUO12
LUUO15,,LUUO14
LUUO17,,LUUO16
LUUO21,,LUUO20
LUUO23,,LUUO22
LUUO25,,LUUO24
LUUO27,,LUUO26
LUUO31,,LUUO30
LUUO33,,LUUO32
; **********************************************************************
;MEMORY MANAGMENT STORAGE
; **********************************************************************
DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
MEMLOW: 0 ;LOWEST USABLE MEMORY
MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
; **********************************************************************
;PRINT CONTROL STORAGE
; **********************************************************************
PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
PNTENB: 0 ;PRINT ENABLE
PDISF: 0 ;PRINT DISABLED FLAG
PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
PNTSPC: 0 ;PRINT SPACE CONTROL
OPTIME: 0 ;TYPE-IN WAIT TIME
$TWCNT: 0 ;TIME WAITED
$DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
TTYFIL: 0 ;TTY EXEC FILLERS FLAG
TTYSPD: 0 ;TTY EXEC BAUD RATE
$TTCHR: 0 ;ACTUAL TYPED IN CHAR
$CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
$TYPNB: 0 ;TYPED IN NUMBER
$CRLF: 0 ;FREE CR/LF FLAG
$TABF: 0 ;TAB CONVERSION FLAG
$FFF: 0 ;FORM FEED CONVERSION FLAG
$VTF: 0 ;VERTICAL TAB CONVERSION FLAG
USRLFF: 0 ;USER LF FILLERS
USRCRF: 0 ;USER CR FILLERS
; **********************************************************************
;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
; MOVEI NAME
; PNTA ;OR PNTAF
; **********************************************************************
CRLF: ASCII/
/
CRLF2: ASCII/
/
COMMA: ASCII/,/
PERIOD: ASCII/./
SPACE: ASCII/ /
TAB: ASCII/ /
MINUS:
HYPEN: ASCII/-/
PLUS: ASCII/+/
AST: ASCII/*/
ATSIN: ASCII/@/
LFP: ASCII/(/
RTP: ASCII/)/
BELL: BYTE (7) 007
QUEST: ASCII/?/
SLASH: ASCII!/!
DOLLAR: ASCII/$/
RADIX: ^D10 ;DECIMAL PRINT RADIX
RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
; **********************************************************************
;USER MODE OUTPUT FILE INFORMATION
; **********************************************************************
$OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
$OUTNM: SIXBIT /PRINT/ ;FILE NAME
$OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
BLOCK 2
; **********************************************************************
;DISK UPDATE MODE FILE INFORMATION
; **********************************************************************
$IBUF: BLOCK 3
$INNM: SIXBIT /PRINT/
$INEXT: SIXBIT /PNT/
BLOCK 2
; **********************************************************************
;PUSHDOWN LIST CONTROL INFORMATION
; **********************************************************************
PLIST: PLIST-PLISTE,,PLIST
PLISTS: BLOCK 200
PLISTE: 0 ;END OF PUSHDOWN LIST
; **********************************************************************
;POWER LINE CLOCK FREQUENCY FLAG
; **********************************************************************
CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
; **********************************************************************
;KL10 CACHE CONTROL FLAGS
; **********************************************************************
CSHFLG: 0 ;ALLOW CACHE IF 0
CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
; **********************************************************************
;NUMBER INPUT DIGIT FLAG
; **********************************************************************
TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
; **********************************************************************
;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
; **********************************************************************
PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
; **********************************************************************
;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
; **********************************************************************
%ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
%ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
%ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
; **********************************************************************
;SPECIAL USERS UUO INTERCEPT INSTRUCTION
; **********************************************************************
$$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
; **********************************************************************
;USER MODE MONITOR TYPE FLAG
; **********************************************************************
MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
;*********************************************************************^
;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
;*********************************************************************^
KLTYP: 0
; **********************************************************************
;SPECIAL USERS MUUO INTERCEPT INSTRUCTION
; **********************************************************************
$$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
; **********************************************************************
;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
; **********************************************************************
$$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
; **********************************************************************
;"SWITCH" CALL USAGE CONTROL
; **********************************************************************
$$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
; **********************************************************************
;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
; **********************************************************************
$$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
$$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
; **********************************************************************
;SM10 (KS-10) PROCESSOR TYPE FLAG
; **********************************************************************
SM10: 0 ;IF -1 THIS IS A KS-10
; **********************************************************************
;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
; **********************************************************************
SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
; **********************************************************************
;SPECIAL FUTURE EXPANSION ROOM
; **********************************************************************
; **********************************************************************
;END OF FIXED STORAGE
; **********************************************************************
LOC 30577
ENDFIX: 0 ;END OF FIXED STORAGE

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,136 @@
---
layout: page
title: PDP-10 KA10 Diagnostics
permalink: /apps/pdp10/diags/ka10/
---
PDP-10 KA10 Diagnostics
-----------------------
PCjs has archived selected KA10 diagnostic source files from the
[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html) and turned them into
stand-alone PDP-10 diagnostics, using the new PCjs [MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js).
A complete list of supported diagnostics is provided [below](#list-of-ka10-diagnostics).
I've also experimented with assembling these diagnostics from the original (unmodified) source files. For example,
you can go to the [DAKAK Diagnostic](dakak/) page and try the following command:
a 'dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm'
and while the MACRO-10 assembly process works:
loading dakakt.mac
loading param.klm
loading fixed.klm
loading dakakm.mac
loading uuoerr.klm
loading stor.klm
6301 words loaded at 000137-044630, start address 030000
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=030000 RA=00000000 EA=000000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
030000: 254020 027776 JRST @27776
there are additional modules that must be loaded into the machine as well, which are not yet supported. So it's best
to assemble the modified files that I've placed inside each diagnostic's folder. For the [DAKAK Diagnostic](dakak/),
that's **DAKAK.MAC**:
>> a dakak.mac
loading dakak.mac
5849 words loaded at 000137-044133, start address 030621
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=030621 RA=00000000 EA=000000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
030621: 254000 030622 JRST 30622
If the machine is able to run to the end of the diagnostic (which can be located by looking at the diagnostic's original
MACRO-10 listing file) without stopping on an UUO opcode, then you can assume it passed.
List of KA10 Diagnostics
------------------------
The following list of KA10 Diagnostics is not comprehensive. It's simply a list of thosr diagnostics we have archived and
tested with PDPjs so far.
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](dakaa/)
- TEST OF JUMP, JUMPA AND SKIPX INSTRUCTIONS
- TEST OF MOVE, SKIP AND COMPARE INSTRUCTIONS
- TEST OF SKIP, FULL WORD TRANSFER AND HALF WORD TRANSFER INSTRUCTIONS
- TEST OF BOOLEAN INSTRUCTIONS (SETM, SETZ, AND, XOR, EQV)
- [KA10 Basic Instruction Diagnostic #2 (MAINDEC-10-DAKAB)](dakab/)
- TEST OF THE ADD INSTRUCTION
- SPECIAL KI10 FOUR BIT ADDER TEST
- TEST OF SUB AND COMPARE INSTRUCTIONS
- TEST OF COMPARE (CAMX) INSTRUCTIONS
- TEST OF MOVS INSTRUCTION
- TEST OF COMPARE (CAXX) INSTRUCTIONS
- TEST OF BOOLEAN INSTRUCTIONS
- TEST OF MOVN INSTRUCTION
- TEST OF MOVM INSTRUCTION
- [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC)](dakac/)
- TEST OF LOGICAL TEST INSTRUCTIONS
- TEST OF HWT INSTRUCTIONS
- SUPPLEMENTARY ADDER TESTS - FLT 1 + 0
- SUPPLEMENTARY ADDER TESTS - O + FLT 0
- SUPPLEMENTARY ADDER TESTS - FLT 1 + FLT 1
- SUPPLEMENTARY ADDER TESTS - FLT 0 + 0FLT
- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD)](dakad/)
- TEST OF AC HARDWARE AND INDEX REGISTERS
- TEST OF INDEX REGISTER ADDRESSING
- TEST OF EXCH INSTRUCTION
- TEST OF MOVEM INSTRUCTION
- TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS
- TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS
- TEST OF JSP INSTRUCTION
- TEST JRST INSTRUCTION
- TEST OF AOBJX INSTRUCTIONS
- TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX
- TEST OF AOS AND SOS INSTRUCTIONS
- TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS
- TEST OF JUMPX INSTRUCTIONS
- TEST OF AOJ AND SOJ INSTRUCTIONS
- TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS
- XCT INSTRUCTION - BASIC TESTS
- INDIRECT ADDRESSING - BASIC TESTS
- TEST INDIRECT ADDRESSING WITH INDEXING
- [KA10 Basic Instruction Diagnostic #5 (MAINDEC-10-DAKAE)](dakae/)
- TEST OF JSR INSTRUCTION
- TEST OF JSA INSTRUCTION
- TEST OF JRA INSTRUCTION
- TESTS OF BIS FLAG
- TEST OF MSCL FWT INSTRUCTIONS
- TEST OF MSCL ADD/SUB INSTRUCTIONS
- TEST OF MSCL CAIX INSTRUCTIONS
- TEST OF MSCL CAMX INSTRUCTIONS
- TEST OF MSCL JUMPX INSTRUCTIONS
- TEST OF MSCL AOJX INSTRUCTIONS
- TEST OF MSCL AOSX INSTRUCTIONS
- TEST OF MSCL SOJX INSTRUCTIONS
- TEST OF MSCL SOSX INSTRUCTIONS
- [KA10 Basic Instruction Diagnostic #6 (MAINDEC-10-DAKAF)](dakaf/)
- TEST OF MSCL BOOLEAN INSTRUCTIONS
- TEST OF MSCL HWT INSTRUCTIONS
- TEST OF MSCL LOGICAL TEST INSTRUCTIONS
- [KA10 Basic Instruction Diagnostic #7 (MAINDEC-10-DAKAG)](dakag/)
- TEST OF PUSH INSTRUCTION
- TEST OF PUSHJ INSTRUCTION
- TEST OF POP INSTRUCTION
- TEST OF POPJ INSTRUCTION
- XCT INSTRUCTION - ADDITIONAL TESTS
- TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING
- TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER
- [KA10 Basic Instruction Diagnostic #8 (MAINDEC-10-DAKAH)](dakah/)
- TESTS OF PI, INTERRUPTS, LUUO'S, I/O
- [KA10 Basic Instruction Diagnostic #9 (MAINDEC-10-DAKAI)](dakai/)
- TESTS OF LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED
- [KA10 Basic Instruction Diagnostic #10 (MAINDEC-10-DAKAJ)](dakaj/)
- TESTS OF LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED
- [KA10 Basic Instruction Diagnostic #11 (MAINDEC-10-DAKAK)](dakak/)
- TESTS OF MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE*
*Gotta love those interger multipy tests! -JP

View file

@ -0,0 +1,171 @@
SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
AC0= 0
DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
DDT= 10000 ;PDP-10 DDT START ADDRESS
DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
;DTE20 DEVICE CODES
DTE== 200 ;DTE0
DTE0== 204
DTE1== 204
DTE2== 210
DTE3== 214
;KL10 EPT COMMUNICATION AREA
$STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
$DDT= 441 ;PDP-10 DDT START ADDRESS
$STL= 442 ;PDP-10 LOADER START ADDRESS
$STM= 443 ;PDP-10 MONITOR START ADDRESS
$DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
$DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
$DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
$DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
$DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
$DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
$DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
$DTOPR= 453 ;DTE20 OPERATIONAL DTE #
$DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
$DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
$DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
$DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
;SPECIAL "FIXED" REASSIGNMENTS
$$LOC=. ;SAVE CURRENT LOCATION
LOC 30000
$$BEGIN:JRST $$START ;SETUP SPECIAL START
JRST $$START ;"DIAMON" CHAIN START ADDRESS
LOC 440
$STD: JRST BEGIN ;SETUP FOR "STD"
LOC 443
$STM: JRST $SPEC ;SIMPLE RUN CONTROL
LOC 30057
$BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
LOC 420
$$420: HALT . ;KI10 PAGE FAIL
$$421: JFCL ;OVERFLOW
$$422: HALT . ;PUSHDOWN OVERFLOW
$$423: HALT . ;TRAP 3
$$424: 0 ;MMUO
$$425: 0 ;MMUO PC
$$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
$$427: HALT .
$$430: 427 ;MMUO NEW PC'S
$$431: 427
$$432: 427
$$433: 427
$$434: 427
$$435: 427
$$436: 427
$$437: 427
LOC 500
$$500: 0 ;KL10 PAGE FAIL WORD
$$501: 0 ;KL10 PAGE FAIL PC
$$502: 503 ;KL10 PAGE FAIL NEW PC
$$503: HALT .
LOC $$LOC ;RESET CURRENT LOCATION
;SPECIAL STARTUP SEQUENCE
$$START:SETZM USER
JSP 0,.+1 ;IN USER MODE ?
TLNE 0,USERF
SETOM USER ;YES, SET CONTROL WORD
SKIPN MONFLG ;SPECIAL USER MODE ?
SETZM USER ;YES, RUN AS EXEC
SKIPE USER
JRST START ;USER MODE, DON'T NEED CPU TYPE
$STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
SETOM ITRCNT ;NO, RUN FOREVER
SETZM KLTYP
SETZM KLFLG ;ASSUME KI10
MOVE 1,[1,,1]
BLT 1,1 ;HOPE THIS WORKS
CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
JRST START ;KI10, NO ADDITIONAL SETUP
$STKL: CONO APR,10040 ;SET BBD NOT BIT
CONI APR,0
CONO APR,20040 ;CLEAR BBD NOT BIT
TRNN 0,40 ;IF SET, KL10
AOS KLTYP ;IF NOT, BBD
SETZM $DTFLG
SETZM $DTCLK
MOVE $DTOPR ;GET DTE #
ORM $$DTE0 ;INSERT IN DTE I/O INSTS
ORM $$DTE1
ORM $$DTE2
ORM $$DTE3
SETOM KLFLG ;SET KL10 CONTROL FLAG
JRST START
$SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
MOVEM $SPB1
JRST START
;SPECIAL "BEGEND" ROUTINE
$SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
SOS ITRCNT ;DECREMENT ITERATION COUNT
$SPB1: SKIPN USER
JRST $SPBEX ;EXEC MODE
$SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
JRST STARTA ;NO, KEEP RUNNING
SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
EXIT ;NO, RETURN TO MONITOR
JRST @RETURN ;YES, RETURN TO "DIAMON"
$SPBEX: SKIPE KLFLG
JRST $SPBKL ;KL10 & EXEC
DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
SKIPE ITRCNT
JRST STARTA ;NOT COMPLETED YET
JRST @RETURN ;DONE
$SPBKL: SKIPN ITRCNT
JRST $SPKLD ;KL10, EXEC & COMPLETED
SKIPGE MONCTL
JRST STARTA ;"DIAMON" CONTROL
MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
MOVEM 0,$DTCMD
SETZM $DTFLG
SKIPN KLTYP
$$DTE0: CONO DTE,DONG11
SKIPE KLTYP
$$DTE1: CONO DTE,10000
SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
JRST .-1
JRST STARTA ;KEEP RUNNING
;SPECIAL KL10 COMPLETED ROUTINE
$SPKLD: SKIPE MONTEN
JRST @RETURN ;LOADED BY "DIAMON"
MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
MOVEM 0,$DTCMD
SETZM $DTFLG
SKIPN KLTYP
$$DTE2: CONO DTE,DONG11
SKIPE KLTYP
$$DTE3: CONO DTE,10000
SKIPN $DTFLG ;SHOULD NEVER HAPPEN
JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
HALT BEGIN ;IF IT DOES, HALT.

View file

@ -0,0 +1,21 @@
SUBTTL *STOR* RESERVED STORAGE, JULY 19,1977
;PROGRAM LITERALS
XLIST
IFNDEF $LPAPER,<LIST>
LIT
LIST
ENDSLD: 0
IFDEF DEBUG,<
PATCH: BLOCK DEBUG ;PATCHING AREA
>
;PROGRAM VARIABLES
VAR
IFDEF PGMEND,<
END: 0
END BEGIN >

View file

@ -0,0 +1,290 @@
SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975
;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S.
ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0
IFDEF EXCASB,<IFDEF KI10,<
SKIPN KAIFLG
JRST .+5
SKIPE USER ;USER MODE ?
JRST .+3
SKIPE MARGIN
DATAO APR,[IMGNOF,,ISPDOF] ;CLR MARGINS >>
MOVEM 1,%ERAC1# ;SAVE AC1
MOVEM 2,%ERAC2# ;SAVE AC2
AOS ERRTLS ;INCREMENT ERROR TOTALS
HRRZ 0,$SVUPC ;GET PC OF UUO
CAMN 0,ERRPC ;PC = PC OF LAST ERROR ?
AOS MICNT# ;YES, ADD 1 TO ERROR COUNT
MOVE 0,MICNT
HRL 0,$SVUPC
SKIPN KLFLG ;NOT KL10
SKIPE USER ;AND NOT USER?
JRST .+2
DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT
SETZM PROCED# ;CLEAR PROCEED FLAG
SWITCH
TLNE NOPNT ;PRINTOUT ?
JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN
MOVE 1,$SVUUO
LSH 1,-^D27
MOVEM 1,%ACS1A# ;SAVE UUO NUMBER
MOVE 0,%ERAC0
MOVE 1,%ERAC1
SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ?
JRST %ERRS4 ;NO, SEE IF PRINT ALL
%ERMS1: SETZM MICNT ;CLEAR ERROR COUNT
SKIPL MONCTL ;DIAG MON OR SYS EXER ?
JRST .+4 ;NO, DON'T NEED TITLE
SKIPN %ERFST# ;FIRST ERROR ?
PNTNM ;YES, PRINT PROGRAM TITLE
SETOM %ERFST
SKIPN PASCNT ;FIRST PASS ?
JRST .+4 ;YES
PMSG <^TEST PASS COUNT = >
MOVE PASCNT
PNTDEC
PMSG <^PC = >
HRRZ 0,$SVUPC ;GET PC OF UUO
MOVEM 0,ERRPC ;SAVE FOR COMPARE
PNT6 ;PRINT UUO ADDRESS
XLIST
IFDEF ERDIAG,<LIST
;DIAGNOSTIC FORMAT ERROR PRINTER
;PRINT RESULT
%ERMS2: PMSG <^RESULT = >
MOVE 1,$SVUUO ;GET AC # OF UUO
LSH 1,-27
ANDI 1,17
MOVE 0,(1) ;GET C(AC)
CAIG 1,1 ;IS AC # = TO SAVE AC ?
MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
PNTHW ;PRINT C(AC)
MOVE CONSW
TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ?
JRST %ERMORE ;NO, RESTORE AC'S ETC.
;PRINT FAILURE DESCRIPTOR
MOVE 1,%ACS1A ;GET UUO NUMBER
CAIG 1,1 ;PRINT DESCRIPTOR ?
JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER
PCRL
MOVE %FLTTB(1)
PNTAL ;PRINT FAULT DESCRIPTOR
;PRINT FAULT NUMBER
%ERMS3: PMSG <^FAULT NUMBER = >
MOVEI TLET
PNTA ;PRINT TEST LETTER
HRRZ $SVUUO
TRNE 700000
JRST %ER6X
TRNE 070000
JRST %ER5X
TRNE 007000
JRST %ER4X
PNT3 ;PRINT FAULT NUMBER
%ER7X: PCRL
JRST %ERMORE
%ER4X: PNT4
JRST %ER7X
%ER5X: PNT5
JRST %ER7X
%ER6X: PNT6
JRST %ER7X
;FAILURE DESCRIPTORS
TLET: 0 ;TEST LETTER
%FLTTB: 0 ;DESCRIPTOR TABLE
%NODES: [0] ;NO DESCRIPTOR
SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR
$ACF: [ASCIZ/C(AC) FAILED/]
%AC1F: [ASCIZ/C(AC+1) FAILED/]
%EF: [ASCIZ/C(E) FAILED/]
%E1F: [ASCIZ/C(E+1) FAILED/]
%ARF: [ASCIZ/C(C(ACR)) FAILED/]
%AR1F: [ASCIZ/C(C(ACR+1)) FAILED/]
%ALF: [ASCIZ/C(C(ACL)) FAILED/]
%EEF: [ASCIZ/C(C(E)) FAILED/]
%FF: [ASCIZ/FLAG FAILED/]
>
XLIST
IFDEF ERRELB,<
LIST
;RELIABILITY FORMAT ERROR PRINTER
%ERMS2: SETZM %RAND# ;CLEAR PNT C(RAN) FLAG
MOVE 1,%ACS1A
CAIL 1,11 ;UUO # 11-13
SETOM %RAND ;YES, SET PNT C(RAN) FLAG
TRZ 1,10 ;MAKE UUO # 1-7
MOVEM 1,%ACS1A
MOVE 2,ERRPC ;GET UUO ADDRESS
MOVE 2,-1(2) ;GET INST IN UUO-1
CAIL 1,4 ;UUO # < THAN 4 ?
MOVE 2,$SVUUO ;YES, GET UUO
MOVEM 2,%CNTE# ;SAVE E ADDRESS
MOVE 2,%ERAC2
MOVE 1,%ERAC1
MOVE 0,%ERAC0
MOVEI 1,@%CNTE ;GET ADRS FIELD OF UUO OR UUO-1
MOVEM 1,%EE1#
MOVE 1,%ERAC1
MOVE 1,@%EE1 ;GET C(E)
MOVEM 1,%EE1A#
MOVE 1,%ERAC1
MOVEI 1,@$SVUUO ;GET ADDRESS FIELD OF UUO
MOVEM 1,%EE2#
MOVE 1,%ACS1A
CAIN 1,3 ;UUO # 3 ?
JRST .+4 ;YES
MOVE 1,%ERAC1
MOVE 1,@%EE2 ;GET C(E) OF UUO
MOVEM 1,%EE2A#
MOVE 2,%ACS1A ;GET UUO #
MOVE 1,%CNTE
LSH 1,-27 ;GET AC NUMBER
ANDI 1,17
CAIG 2,5 ;UUO # 6,7 OR 2
CAIN 2,2
JRST %ERR2 ;YES, GO PNT E AND C(E)
;PRINT ERROR AC
PMSG <^AC = >
MOVE 0,1
PNT2 ;PRINT AC NUMBER
PMSG <^C(AC)= >
MOVE 0,(1) ;GET C(AC)
CAIG 1,2 ;IS AC # = SAVED AC ?
MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
%ERRB: PNTHW ;PRINT C(AC) OR UUO2 (E)
;PRINT ERROR INFO
CAIN 2,5 ;UUO # 5
JRST %ERR4 ;YES, GO PNT 'TST','SKP', OR ETC.
PMSG <^COR = >
MOVE 0,(1) ;GET C(AC)
CAIG 1,2 ;IS AC # = SAVED AC ?
MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
CAIE 2,2
MOVE 0,%EE1A ;UUO # 2, GET C(E)
PNTHW ;PRINT C(E) OR UUO2 C(AC)
CAIL 2,4 ;UUO # >3 ?
JRST %ERRC ;YES, RESTORE AC'S AND RETURN
PMSG <^ ORIGINAL>
%ERRB1: MOVE 1,$SVUUO
LSH 1,-27 ;GET AC # OF UUO
ANDI 1,17
PMSG <^C(AC)= >
MOVE 0,(1) ;GET C(AC)
CAIG 1,2 ;IS AC # = SAVED AC ?
MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
SKIPE %RAND ;PRINT C(RAN) FLAG SET ?
MOVE 0,RAN# ;YES
PNTHW ;PRINT C(AC) OR C(RAN)
CAIN 2,3 ;UUO # 3 ?
JRST %ERR2 ;YES, PRINT E, RESTORE AC'S AND RETURN
CAIN 2,7 ;UUO # 7 ?
JRST %ERRC ;YES, BYPASS PRINTING C(E)
PMSG <^C(E) = >
MOVE 0,%EE2A
PNTHW ;PRINT C(E)
JRST %ERRC
%ERR2: PMSG <^E = >
MOVE 0,%EE2
CAIN 2,2 ;UUO # 2 ?
MOVE 0,%EE1
PNT6 ;PRINT E OF UUO OR UUO-1
CAIL 2,6 ;UUO 6 OR 7 ?
JRST %ERRB1 ;YES, GO PNT C(AC), C(E) AND RETURN
CAIN 2,3 ;UUO # 3 ?
JRST %ERRC ;YES, RESTORE AC'S AND RETURN
PMSG <^C(E) = >
MOVE 0,%EE1A ;GET C(E)
JRST %ERRB
;PRINT ASCII COMMENT
%ERR4: HRRZI 0,@$SVUUO
PNTA ;PRINT 'TST','SKP', OR ETC.
JRST %ERRC
;COMPLETE PRINTOUT
%ERRC: PCRL
XLIST
IFDEF UUOTXT,<
LIST
MOVE 0,CONSW
TLNN TXTINH ;PRINT DIAGNOSTIC COMMENT ?
CAIE 2,7 ;UUO # 7 ?
JRST %ERMORE ;NO, RESTORE AC'S AND RETURN
MOVE 0,%EE2 ;YES
PNTAL ;PRINT DIAGNOSTIC COMMENT
PCRL
>
LIST
JRST %ERMORE
>
LIST
;RESTORE AC'S AND RETURN OR HALT
%ERMORE:XCT ERMORE
PNTMGN ;PRINT MARGINS
SWITCH
%ERRS1: TTALTM ;ALTMODE CHECK
JRST .+4 ;NONE
MOVEI .+3 ;SAVE CONT ADDRESS
MOVEM JOBOPC
JRST @ALTMGO ;PERFORM TRANSFER
MOVE CONSW
TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
ERRHLT ;YES
TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ?
SETOM PROCED ;NO, SET THE PROCEED FLAG
TLNE 0,DING ;RING BELL SWITCH SET ?
PBELL ;YES, GO RING BELL
%ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S
MOVE 1,%ERAC1
SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1
SKIPN PROCED ;LOOP ON ERROR ?
JRST %ERRS5 ;YES
AOS @ERRLOP ;NO, INC C(ERR LOOP AC)
AOS @ERRLOP ;SO IT ='S 1
SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
JRST %ERRS5 ;NO, CONTINUE PROGRAM
MOVE 0,ERRTLS ;YES
CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
JRST $BEND2
%ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM
IFDEF EXCASB,<IFDEF KI10,<
SKIPN KAIFLG
JRST .+5
SKIPE USER
JRST .+3
SKIPE MARGIN
DATAO APR,MARGIN ;RESET MARGIN SYSTEM >>
JRST UUOEXT
%ERRS4: MOVE 0,CONSW
TLNN PALERS ;PRINT ALL ERRORS ?
JRST %ERRS1 ;NO
JRST %ERMS1 ;YES

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,288 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #1
permalink: /apps/pdp10/diags/ka10/dakaa/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAA.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #1
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #1* (MAINDEC-10-DAKAA) test code has been extracted from
[DAKAAM.MAC](DAKAAM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaam.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "IS THE FIRST IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. IT IS THE MOST BASIC OF THE PROCESSOR DIAGNOSTICS.
THIS DIAGNOSTIC ASSUMES THE HALT INSTRUCTION AND THE COMPUTER CONSOLE TO BE OPERATIVE. IT MAKES NO FURTHER ASSUMPTIONS EXCEPT
THAT IT IS LOADED INTO MEMORY CORRECTLY."
Resources for this test include:
- [Instructions](#dakaatxt)
- [History](#dakaahst)
- [Source Code](#dakaamac)
- [MACRO-10 Listing](DAKAA.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakaa/DAKAA.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 30724 DAKAA.MAC
will automatically read the [DAKAA.MAC](DAKAA.MAC.txt) source file (a slightly modified copy of [DAKAAM.MAC](DAKAAM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAA.TXT
---------
```
MAINDEC-10-DAKAA
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAA-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (1)
FUNCTION: BASIC INSTRUCTIONS
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-DAKAA.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-DAKAA.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE FIRST IN A
SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. IT IS THE MOST
BASIC OF THE PROCESSOR DIAGNOSTICS. THIS DIAGNOSTIC
ASSUMES THE HALT INSTRUCTION AND THE COMPUTER CONSOLE
TO BE OPERATIVE. IT MAKES NO FURTHER ASSUMPTIONS EXCEPT
THAT IT IS LOADED INTO MEMORY CORRECTLY.
THE DIAGNOSTIC TESTS SOME OF THE MOVE AND SKIP INSTRUCTIONS.
IT ALSO TESTS THE ADDERS AND OTHER LOGIC WITH AND, XOR, EQV,
AND ALL BOOLE INSTRUCTIONS.
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
MAINDEC-10-DAKAA.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-DAKAA.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
```
DAKAA.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAA
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAA
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #1
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
************************************************************************
DAKAA.MAC
---------
[[Download](DAKAA.MAC.txt)]
{% highlight text %}
{% include_relative DAKAA.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,279 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #2
permalink: /apps/pdp10/diags/ka10/dakab/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAB.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #2
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #2* (MAINDEC-10-DAKAB) test code has been extracted from
[DAKABM.MAC](DAKABM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakabm.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic tests "MOVE, COMPARE, TEST, HALF WORD AND BOOLE. IT ALSO TESTS THE ADDERS USING ADD AND COMPARE INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakabtxt)
- [History](#dakabhst)
- [Source Code](#dakabmac)
- [MACRO-10 Listing](DAKAB.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakab/DAKAB.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 30724 DAKAB.MAC
will automatically read the [DAKAB.MAC](DAKAB.MAC.txt) source file (a slightly modified copy of [DAKABM.MAC](DAKABM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAB.TXT
---------
```
MAINDEC-10-DAKAB.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAB-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (2)
FUNCTION: BASIC INSTRUCTIONS 2
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-DAKAB.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-DAKAB.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
SECOND IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS SOME FOLLOWING INSTRUCTIONS.
MOVE, COMPARE, TEST, HALF WORD AND BOOLE.
IT ALSO TESTS THE ADDERS USING ADD AND COMPARE INSTRUCTIONS.
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-DAKAB.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-DAKAB.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
```
DAKAB.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAB
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAB
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #2
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
************************************************************************
DAKAB.MAC
---------
[[Download](DAKAB.MAC.txt)]
{% highlight text %}
{% include_relative DAKAB.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,278 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #3
permalink: /apps/pdp10/diags/ka10/dakac/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAC.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #3
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #3* (MAINDEC-10-DAKAC) test code has been extracted from
[DAKACM.MAC](DAKACM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakacm.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic tests "LOGICAL TEST, HALF WORD INSTRUCTIONS AND THE ADDER."
Resources for this diagnostic include:
- [Instructions](#dakactxt)
- [History](#dakachst)
- [Source Code](#dakacmac)
- [MACRO-10 Listing](DAKAC.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakac/DAKAC.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 30724 DAKAC.MAC
will automatically read the [DAKAC.MAC](DAKAC.MAC.txt) source file (a slightly modified copy of [DAKACM.MAC](DAKACM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAC.TXT
---------
```
MAINDEC-10-DAKAC.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAC-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (3)
FUNCTION: LOGICAL, HALF WORD, ADDER
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-DAKAC.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-DAKAC.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
THIRD IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS SOME FOLLOWING INSTRUCTIONS.
LOGICAL TEST, HALF WORD INSTRUCTIONS AND THE ADDER.
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-DAKAC.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-DAKAC.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
```
DAKAC.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAC
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAC
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #3
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
************************************************************************
DAKAC.MAC
---------
[[Download](DAKAC.MAC.txt)]
{% highlight text %}
{% include_relative DAKAC.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,294 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #4
permalink: /apps/pdp10/diags/ka10/dakad/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAD.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #4
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #4* (MAINDEC-10-DAKAD) test code has been extracted from
[DAKADM.MAC](DAKADM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakadm.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS REGISTER ADDRESSING, JFCL, AR FLAGS, AOS, SOS, JRST, AOBJX, JSP, XCT, INDIRECT AND INDEXED ADDRESSING."
Resources for this diagnostic include:
- [Instructions](#dakadtxt)
- [History](#dakadhst)
- [Source Code](#dakadmac)
- [MACRO-10 Listing](DAKAD.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakad/DAKAD.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 30724 DAKAD.MAC
will automatically read the [DAKAD.MAC](DAKAD.MAC.txt) source file (a slightly modified copy of [DAKADM.MAC](DAKADM.MAC.txt)),
assemble it, and then load the binary output at the specified address. Use the command `db 30724` to dump the first few words
of binary data:
030724: 254000 030741 053 000 000 061 160 +..1p
030725: 064252 042240 015 012 120 104 120 ..PDP
030726: 265426 020226 055 061 060 040 113 -10 K
030727: 405426 020204 101 061 060 040 102 A10 B
030730: 406471 141500 101 123 111 103 040 ASIC
030731: 446352 352244 111 116 123 124 122 INSTR
030732: 526072 444636 125 103 124 111 117 UCTIO
030733: 471010 444602 116 040 104 111 101 N DIA
030734: 436351 751650 107 116 117 123 124 GNOST
030735: 446064 024150 111 103 040 050 064 IC (4
030736: 245013 342202 051 040 133 104 101 ) [DA
030737: 456030 456432 113 101 104 135 015 KAD].
---
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.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAD
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAD
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #4
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
************************************************************************
DAKAD.MAC
---------
[[Download](DAKAD.MAC.txt)]
{% highlight text %}
{% include_relative DAKAD.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,291 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #5
permalink: /apps/pdp10/diags/ka10/dakae/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30706 DAKAE.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #5
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #5* (MAINDEC-10-DAKAE) test code has been extracted from
[DAKAEM.MAC](DAKAEM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaem.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS THE FWT, ADD/SUB, PC CHANGE AND COMPARE INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakaetxt)
- [History](#dakaehst)
- [Source Code](#dakaemac)
- [MACRO-10 Listing](DAKAE.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakae/DAKAE.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 30706 DAKAE.MAC
will automatically read the [DAKAE.MAC](DAKAE.MAC.txt) source file (a slightly modified copy of [DAKAEM.MAC](DAKAEM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAE.TXT
---------
```
IDENTIFICATION
--------------
PRODUCT CODE: AH-6859C-DD
DIAGNOSTIC CODE: DAKAE
PRODUCT NAME: DAKAEC0 DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (5)
VERSION: 0.3
DATE RELEASED: JANUARY 1979
MAINTAINED BY: DIAGNOSTIC ENGINEERING
AUTHOR: BILL SCORZELLI
COPYRIGHT (C) 1967, 1979
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
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 EXCEPT 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 DIGITAL EQUIPMENT
CORPORATION.
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
USE OR RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
MAINDEC-10-DAKAE.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-DAKAE.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
FIFTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS THE FWT, ADD/SUB, PC CHANGE
AND COMPARE INSTRUCTIONS.
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-DAKAE.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-DAKAE.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
```
DAKAE.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAE
************************************************************************
ORIGINAL VERSION: 0.1
ORIGINAL AUTHOR: RICHARD MALISKA
ORIGINAL RELEASE: 16-MAR-72
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAE
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #5
DATE RELEASED: JANUARY 1977
VERSION: 0.2
UPDATE AUTHOR: JOHN R. KIRCHOFF
CHANGES MADE:
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAE
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #5
DATE RELEASED: JANUARY 1979
VERSION: 0.3
UPDATE AUTHOR: BILL SCORZELLI
CHANGES MADE:
1. THE COMPARE INSTRUCTION TESTS DID NOT CHECK THE COMPARE OF 2
NEGATIVE NUMBERS WITH THE CONTENTS OF THE (AC) BEING LARGER
THAN THE CONTENTS OF (E). ADDED TEST C52205.
************************************************************************
DAKAE.MAC
---------
[[Download](DAKAE.MAC.txt)]
{% highlight text %}
{% include_relative DAKAE.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,278 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #6
permalink: /apps/pdp10/diags/ka10/dakaf/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAF.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #6
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #6* (MAINDEC-10-DAKAF) test code has been extracted from
[DAKAFM.MAC](DAKAFM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakafm.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS THE BOOLE, HWT AND TEST INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakaftxt)
- [History](#dakafhst)
- [Source Code](#dakafmac)
- [MACRO-10 Listing](DAKAF.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakaf/DAKAF.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 30724 DAKAF.MAC
will automatically read the [DAKAF.MAC](DAKAF.MAC.txt) source file (a slightly modified copy of [DAKAFM.MAC](DAKAFM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAF.TXT
---------
```
MAINDEC-10-DAKAF.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAF-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (6)
FUNCTION: BOOLE, HWT, 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-DAKAF.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-DAKAF.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
SIXTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS THE BOOLE, HWT AND TEST INSTRUCTIONS.
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-DAKAF.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-DAKAF.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
```
DAKAF.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAF
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAF
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #6
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
************************************************************************
DAKAF.MAC
---------
[[Download](DAKAF.MAC.txt)]
{% highlight text %}
{% include_relative DAKAF.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,280 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #7
permalink: /apps/pdp10/diags/ka10/dakag/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAG.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #7
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #7* (MAINDEC-10-DAKAG) test code has been extracted from
[DAKAGM.MAC](DAKAGM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakagm.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS THE PUSH, POP, XCT AND BASIC SHIFT ROTATE INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakagtxt)
- [History](#dakaghst)
- [Source Code](#dakagmac)
- [MACRO-10 Listing](DAKAG.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakag/DAKAG.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 30724 DAKAG.MAC
will automatically read the [DAKAG.MAC](DAKAG.MAC.txt) source file (a slightly modified copy of [DAKAGM.MAC](DAKAGM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAG.TXT
---------
```
MAINDEC-10-DAKAG.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAG-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (7)
FUNCTION: PUSH, POP, XCT, BASIC SHIFT/ROTATE
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-DAKAG.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-DAKAG.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
SEVENTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS THE PUSH, POP, XCT AND BASIC
SHIFT ROTATE INSTRUCTIONS.
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-DAKAG.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-DAKAG.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
```
DAKAG.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAG
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAG
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #7
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
************************************************************************
DAKAG.MAC
---------
[[Download](DAKAG.MAC.txt)]
{% highlight text %}
{% include_relative DAKAG.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,117 @@
;DAKAH
DECVER==2
MCNVER==0
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE
;AND TO DETECT (SOLID) FAILURES IN THE FIELD.
;COPYRIGHT 1972,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;CONTROL WORDS
EXIOT=4000 ;USER PRIV I/O FLAG
USERF=10000 ;USER MODE FLAG
DACT=400
ME=774
PIG0=2377
PIH1=40000
PIH2=20000
PIH3=10000
PIH4=4000
PIH5=2000
PIH6=1000
PIH7=400
PIOSET=2000
PIOCLR=1000
PIREQ=4000
ACT=200
PROT=20000
NONEX=10000
UMIOT=4000
;SUBROUTINE DEFINITIONS
SADR1=START
SADR2=START
SADR3=START
SADR4=START
SADR5=START
SADR6=START
SADR7=JRST START
SADR8=JRST START
SADR9=JRST START
SADR10=JRST START
SADR11=JRST START
PAREA1=0
PAREA2=0
PAREA3=0
PAREA4=0
PAREA5=0
PAREA6=0
ITERAT=1
EXCASB==1
PGMEND==1
;MACROS
;STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMP .+1)
; TO A (JUMP .-X) TO CYCLE ON FAILING INSTRUCTION.
DEFINE STOP (A)<
HALT .+1
JUMP .+1
>
;SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED
; FLAG FOR TESTING.
DEFINE SFLAG (A)<
MOVSI 1,A
JFCL 17,.+1
JRST 2,.+1(1)
>
;CHANEL - USED FOR 2 CHANNEL SYSTEM CHECK
DEFINE CHANEL (A)<
SKIPN PI7SYS#
JRST A
>
;RETURN - USED TO SETUP UUO TRAP
DEFINE RETURN (A)<
MOVE 2,[JSP 2,A]
MOVEM 2,41
SETOB 2,40
>
;CLEAN - USED TO CLEAR THE PROCESSOR EXCEPT CLOCK
; CLEAR DEVICES AND PI SYSTEM
DEFINE CLEAN (A)<
CONO 634440
CONO PI,10000
>

View file

@ -0,0 +1,282 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #8
permalink: /apps/pdp10/diags/ka10/dakah/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a 30724 DAKAH.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #8
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #8* (MAINDEC-10-DAKAH) test code has been extracted from
[DAKAHM.MAC](DAKAHM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakahm.mac.html)] and
[DAKAHT.MAC](DAKAHT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaht.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS THE PI SYSTEM, INTERRUPTS, LUUO'S AND INPUT/OUTPUT."
Resources for this diagnostic include:
- [Instructions](#dakahtxt)
- [History](#dakahhst)
- [Source Code](#dakahmac)
- [MACRO-10 Listing](DAKAH.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakah/DAKAH.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 30724 DAKAH.MAC
will automatically read the [DAKAH.MAC](DAKAH.MAC.txt) source file (a slightly modified copy of [DAKAHM.MAC](DAKAHM.MAC.txt)),
assemble it, and then load the binary output at the specified address.
---
DAKAH.TXT
---------
```
MAINDEC-10-DAKAH.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAH-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (8)
FUNCTION: PI, INTERRUPTS, LUUO'S, I/O
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-DAKAH.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-DAKAH.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
EIGHTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS THE PI SYSTEM, INTERRUPTS, LUUO'S
AND INPUT/OUTPUT.
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-DAKAH.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-DAKAH.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
```
DAKAH.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAH
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAH
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #8
DATE RELEASED: JANUARY 1977
VERSION: 0.2
UPDATE AUTHOR: JOHN R. KIRCHOFF
EDWARD G. PRENTICE
CHANGES MADE:
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
************************************************************************
ORIGINAL VERSION: 0.1
ORIGINAL AUTHOR: RICHARD MALISKA
ORIGINAL RELEASE: 16-MAR-72
************************************************************************
DAKAH.MAC
---------
[[Download](DAKAH.MAC.txt)]
{% highlight text %}
{% include_relative DAKAH.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,136 @@
;DAKAI
MCNVER==0
DECVER==2
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED)
;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
LUUO1=ERRMES
LUUO2=ERRMES
LUUO3=ERRMES
LUUO4=ERRMES
LUUO5=ERRMES
LUUO6=ERRMES
LUUO7=ERRMES
LUUO10=ERRMES
LUUO11=ERRMES
LUUO12=ERRMES
LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
KLOLD==1
DEBUG=40
EXCASB=1
USRASB=1
KA10=1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE DEFINITIONS
SADR1=BEGIN
SADR2=BEGIN
SADR3=BEGIN
SADR4=BEGIN
SADR5=JRST BEGIN
SADR6=JRST BEGIN
SADR7=JRST BEGIN
SADR8=JRST BEGIN
SADR9=JRST BEGIN
SADR10=JRST BEGIN
SADR11=JRST BEGIN
;SPECIAL FEATURE PARAMETERS
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DAKAI/
PAREA4=SIXBIT/TMP/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,. ;SAVE TEST PC
MOVEM AC+2,TESTPC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DEFINE SETACS (WW,XX)<
MOVEI AC-1,WW ;SETUP AC-1
HRLI AC-1,WW ;FOR COMPARISION
MOVE AC-2,<AC-1>&17 ;SETUP AC-2 FOR COMPARISON
MOVEI AC,XX ;SETUP AC RIGHT
HRLI AC,XX ;SETUP AC LEFT
MOVEM AC,<AC+1>&17 ;SETUP AC2>
;USER DEFINED MACROS
DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)<
;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT
;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B]
;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD 741703,607417]
ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)<
;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE
;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND
;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND
;[XWD R2A,R2B]
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT?
ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>

View file

@ -0,0 +1,459 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #9
permalink: /apps/pdp10/diags/ka10/dakai/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a DAKAI.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #9
-------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #9* (MAINDEC-10-DAKAI) test code has been extracted from
[DAKAIM.MAC](DAKAIM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaim.mac.html)] and
[DAKAIT.MAC](DAKAIT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakait.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "TESTS THE SHIFTING AND ROTATING INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakaitxt)
- [History](#dakaihst)
- [Source Code](#dakaimac)
- [MACRO-10 Listing](DAKAI.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakai/DAKAI.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 DAKAI.MAC
will automatically read the [DAKAI.MAC](DAKAI.MAC.txt) source file (a slightly modified copy of [DAKAIM.MAC](DAKAIM.MAC.txt)),
assemble it, and then load the binary image at the location specified in the file.
Interesting MACRO-10 Bug
------------------------
Take a look at this piece of original [source code](#dakaimac):
MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT
IFG <ZZ-2,>,<
MOVSI AC-1,YY ;SETUP FOR COMPARISON>
and the corresponding lines in the [listing file](DAKAI.LST.txt):
11660 037024 205 07 0 00 000001 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT
11661 IFG <ZZ-2,>,<
11662 037025 205 05 0 00 000000 MOVSI AC-1,YY ;SETUP FOR COMPARISON>
It's clear from the listing file that *ZZ* is 1, and therefore the *IFG* expression *<ZZ-2>* should be -1, so the
*MOVSI AC-1,YY* should be suppressed. And my MACRO-10 Mini-Assembler *does* suppress it. But as you can see from
DEC's listing file, they didn't suppress it. This results in an unfortunate mismatch between our respective
instruction sequences from that point on.
Why did this happen? Since earlier identical *IFG* expansions work as expected, I have to assume that the spurious
comma in that particular *IFG* pseudo-op somehow tripped up the expression evaluation. Commas *are* allowed in MACRO-10
expressions; for example:
777777,,666666
combines two 18-bit values (0o777777 and 0o666666) into a single 36-bit value (0o777777666666). But I'm not aware of
a *single* comma meaning anything to MACRO-10, and it's pretty clear that the comma in that *IFG* is just a typo,
so I'm not going to try to replicate MACRO-10's behavior here.
The PCjs expression evaluator (which is what my MACRO-10 Mini-Assembler uses) is OK with the comma, but not because it
supports a comma operator (it doesn't); it simply allows numbers to contain commas, in case the user is using commas to
group digits. So "2," is the same as "2".
---
DAKAI.TXT
---------
```
MAINDEC-10-DAKAI.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAI-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (9)
FUNCTION: SHIFT-ROTATE TEST (PART 1)
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-DAKAI.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-DAKAI.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
NINTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC TESTS THE SHIFTING AND ROTATING INSTRUCTIONS.
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-DAKAI.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-DAKAI.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-DAKAI.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-DAKAI.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-DAKAI.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 'DAKAI.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-DAKAI.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
```
DAKAI.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAI
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAI
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #9
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
************************************************************************
DAKAI.MAC
---------
[[Download](DAKAI.MAC.txt)]
{% highlight text %}
{% include_relative DAKAI.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,135 @@
;DAKAJ
MCNVER==0
DECVER==2
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED)
;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
LUUO1=ERRMES
LUUO2=ERRMES
LUUO3=ERRMES
LUUO4=ERRMES
LUUO5=ERRMES
LUUO6=ERRMES
LUUO7=ERRMES
LUUO10=ERRMES
LUUO11=ERRMES
LUUO12=ERRMES
LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=40
EXCASB=1
USRASB=1
KA10=1
KL10=1
KL10P0=1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE PARAMETERS
SADR1=START
SADR2=START
SADR3=START
SADR4=START
SADR5=JRST START
SADR6=JRST START
SADR7=JRST START
SADR8=JRST START
SADR9=JRST START
SADR10=JRST START
SADR11=JRST START
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DAKAJ/
PAREA4=SIXBIT/TMP/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,. ;SETUP TESTPC
MOVEM AC+2,TESTPC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DEFINE SETACS (WW,XX)<
MOVEI AC-1,WW ;SETUP AC-1
HRLI AC-1,WW ;FOR COMPARISION
MOVE AC-2,<AC-1>&17 ;SETUP AC-2 FOR COMPARISON
MOVEI AC,XX ;SETUP AC RIGHT
HRLI AC,XX ;SETUP AC LEFT
MOVEM AC,<AC+1>&17 ;SETUP AC2>
;USER DEFINED MACROS
DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)<
;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT
;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B]
;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD 741703,607417]
ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)<
;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE
;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND
;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND
;[XWD R2A,R2B]
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT?
ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>

View file

@ -0,0 +1,437 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #10
permalink: /apps/pdp10/diags/ka10/dakaj/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a DAKAJ.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #10
--------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #10* (MAINDEC-10-DAKAJ) test code has been extracted from
[DAKAJM.MAC](DAKAJM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakajm.mac.html)] and
[DAKAJT.MAC](DAKAJT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakajt.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
This diagnostic "CONTINUES TESTING THE SHIFT AND ROTATE INSTRUCTIONS."
Resources for this diagnostic include:
- [Instructions](#dakajtxt)
- [History](#dakajhst)
- [Source Code](#dakajmac)
- [MACRO-10 Listing](DAKAJ.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakaj/DAKAJ.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 DAKAJ.MAC
will automatically read the [DAKAJ.MAC](DAKAJ.MAC.txt) source file (a slightly modified copy of [DAKAJM.MAC](DAKAJM.MAC.txt)),
assemble it, and then load the binary image at the location specified in the file.
---
DAKAJ.TXT
---------
```
MAINDEC-10-DAKAJ.TXT
IDENTIFICATION
--------------
PRODUCT CODE: MAINDEC-10-DAKAJ-B-D
PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC
INSTRUCTION DIAGNOSTIC (10)
FUNCTION: SHIFT-ROTATE TEST (PART 2)
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-DAKAJ.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-DAKAJ.TXT
PAGE 3
1.0 ABSTRACT
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
TENTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
THE DIAGNOSTIC CONTINUES TESTING THE SHIFT
AND ROTATE INSTRUCTIONS.
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-DAKAJ.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-DAKAJ.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-DAKAJ.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-DAKAJ.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-DAKAJ.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 'DAKAJ.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-DAKAJ.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
```
DAKAJ.HST
---------
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAJ
************************************************************************
PRODUCT CODE: MAINDEC-10-DAKAJ
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #10
DATE RELEASED: JANUARY 1977
VERSION: 0.2
UPDATE AUTHOR: JOHN R. KIRCHOFF
CHANGES MADE:
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
************************************************************************
VERSION: 1.1
DATE RELEASED: 09-APR-73
UPDATE AUTHOR: RICHARD MALISKA
REASON FOR UPDATE: FIX PROBLEM WITH PROGRAM INITIALIZATION
************************************************************************
ORIGINAL VERSION: 0.1
ORIGINAL AUTHOR: RICHARD MALISKA
ORIGINAL RELEASE: 16-MAR-72
************************************************************************
DAKAJ.MAC
---------
[[Download](DAKAJ.MAC.txt)]
{% highlight text %}
{% include_relative DAKAJ.MAC.txt %}
{% endhighlight %}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,445 @@
;DAKAK
MCNVER==0
DECVER==2
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
;LUUO1=ERRMES
;LUUO2=ERRMES
;LUUO3=ERRMES
;LUUO4=ERRMES
;LUUO5=ERRMES
;LUUO6=ERRMES
;LUUO7=ERRMES
;LUUO10=ERRMES
;LUUO11=ERRMES
;LUUO12=ERRMES
;LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=40
EXCASB=1
USRASB=1
KI10=1
KA10=1
KLOLD==1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE DEFINITIONS
;SADR1=BEGIN
;SADR2=BEGIN
;SADR3=BEGIN
;SADR4=BEGIN
;SADR5=JRST BEGIN
;SADR6=JRST BEGIN
;SADR7=JRST BEGIN
;SADR8=JRST BEGIN
;SADR9=JRST BEGIN
;SADR10=JRST BEGIN
;SADR11=JRST BEGIN
;SPECIAL FEATURE PARAMETERS
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DAKAK/
PAREA4=SIXBIT/TMP/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,. ;SAVE TEST PC
MOVEM AC+2,TESTPC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DEFINE MOP1 (T,A1,A2,EE,R1,R2)<
;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
F'T'0: AA1=A1 ;INITIAL C(AC)
MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER)
AA2=A2 ;INITIAL C(AC+1)
MOVE AC+1,[A2] ;PRELOAD AC+1
AEE=EE ;INITIAL C(E)
MOVE E,[EE] ;PRELOAD E (MULTIPLICAND)
MUL AC,E ;*MULTIPLY C(E) BY C(AC)
AR1=R1 ;EXPECTED RESULT IN AC
CAME AC,[R1] ;IS HIGH PRODUCT CORRECT?
ER3 AC,T'1 ;HIGH PRODUCT FAILED
AR2=R2 ;EXPECTED RESULT IN AC+1
CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT?
ER4 AC+1,T'2 ;LOW PRODUCT FAILED
AEE=EE ;INITIAL C(E)
CAME E,[EE] ;WAS C(E) CLOBBERED?
ER5 E,T'3 ;C(E) WAS CLOBBERED
JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH>
SUBTTL DIAGNOSTIC SECTION
EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE
;EXIT
PGMNAM: ASCIZ/
PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK]
/
;INITIALIZE
TESTPC: 0 ;SUBTEST PC
LOC 30621
START: ;PGMINT
;MOVE [ASCIZ/AK/]
;MOVEM TLET ;INITIALIZE TEST LETTER
STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
ADR=3000
AC=14
E=<AC-2>&17
F00: SAVEAC (1,1)
;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,0,0,0)
AC=13
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,XX,0,0)>
AC=12
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,XX,0,0)>
ADR=ADR+1
AC=14
E=<AC-2>&17
SAVEAC (1,1)
;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,-1,0,0)
SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
AC=13
E=<AC-2>&17
SAVEAC (1,1)
XX=-1
;MULTIPLICAND=1
REPEAT ^D16,<
;TEST MULTIPLICATION ALGORITHM
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
;OF C(E).
ADR=ADR+1
XX=XX+1
MOP1 (\ADR,XX,-1,1,0,XX)>
AC=12
E=<AC-2>&17
SAVEAC (1,1)
XX=-1
;MULTIPLICAND=-1
REPEAT ^D16,<
;TEST MULTIPLICATION ALGORITHM
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
;OF C(E).
ADR=ADR+1
XX=XX+1
MX=-XX
IFE XX,<
V1=-1
V2=0>
IFN XX,<
V1=0
V2=-1>
MOP1 (\ADR,XX,V1,-1,V2,MX)>
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
AC=11
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
MOP1 (\ADR,XX,-1,0,0,0)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
MOP1 (\ADR,XX,-1,0,0,0)>
AC=7
E=<AC-2>&17
SAVEAC (1,1)
ADR=ADR+1
;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0
MOP1 (\ADR,-1,-1,0,0,0)
SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
AC=6
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
IFG XX,<V1=0>
IFL XX,<V1=-1>
MOP1 (\ADR,1,-1,XX,V1,XX)>
AC=5
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
IFG XX,<V1=0>
IFL XX,<V1=-1>
MOP1 (\ADR,XX,-1,1,V1,XX)>
;MULTIPLY A 1 BY 400000,,0
XX=400000000000
ADR=ADR+1
MOP1 (\ADR,XX,-1,1,1,0)
AC=4
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A RIPPLED ONE BY -1
IFG XX,<
V1=-1
V2=-XX>
IFL XX,<
V1=1
V2=0>
MOP1 (\ADR,-1,0,XX,V1,V2)>
AC=3
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY -1 BY A RIPPLED 1
IFG XX,<
V1=-1
V2=-XX>
IFL XX,<
V1=1
V2=0>
MOP1 (\ADR,XX,0,-1,V1,V2)>
;MULTIPLY A -1 BY 400000,,0
ADR=ADR+1
XX=400000000000
MOP1 (\ADR,XX,0,-1,-1,XX)
AC=2
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
IFL XX,<V1=-1>
IFG XX,<V1=0>
MOP1 (\ADR,1,0,XX,V1,XX)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
IFL XX,<V1=-1>
IFG XX,<V1=0>
MOP1 (\ADR,XX,0,1,V1,XX)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY A RIPPLED 0 BY -1
MX=-XX
IFL XX,<V1=0>
IFG XX,<V1=-1>
MOP1 (\ADR,-1,-1,XX,V1,MX)>
AC=14
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY -1 BY A RIPPLED 0
MX=-XX
IFL XX,<V1=0>
IFG XX,<V1=-1>
MOP1 (\ADR,XX,-1,-1,V1,MX)>
N1=525252525252
N2=252525252525
AC=13
E=<AC-2>&17
SAVEAC (1,1)
WW=^D36
XX=0
ZZ=0
REPEAT ^D35, < ;LAST CASE DIFFERENT
ADR=ADR+1
WW=WW-1
XX=XX+XX
ZZ=ZZ+1
IFE XX,<ZZ=0>
IFE XX,<XX=1>
;MULTIPLY 1010...1010 BY A FLOATING 1
V1=N1
V2=<N1_ZZ>!1B0
IFE WW,<V2=0>
IFL XX,<V3=N2+1>
IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
MOP1 (\ADR,XX,0,V1,V3,V2)>
;MULTIPLY A 1010...1010 BY 400000,,0
ADR=ADR+1
XX=400000000000
V1=525252525252
V3=525252525252
V2=400000000000
MOP1 (\ADR,XX,0,V1,V3,V2)
LAST1: ;JRST BEGEND
END START

View file

@ -0,0 +1,318 @@
SUBTTL DIAGNOSTIC SECTION
EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE
EXIT
PGMNAM: ASCIZ/
PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK]
/
;INITIALIZE
START: PGMINT
MOVE [ASCIZ/AK/]
MOVEM TLET ;INITIALIZE TEST LETTER
STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
ADR=3000
AC=14
E=<AC-2>&17
F00: SAVEAC (1,1)
;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,0,0,0)
AC=13
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,XX,0,0)>
AC=12
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,XX,0,0)>
ADR=ADR+1
AC=14
E=<AC-2>&17
SAVEAC (1,1)
;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0
MOP1 (\ADR,0,-1,-1,0,0)
SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
AC=13
E=<AC-2>&17
SAVEAC (1,1)
XX=-1
;MULTIPLICAND=1
REPEAT ^D16,<
;TEST MULTIPLICATION ALGORITHM
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
;OF C(E).
ADR=ADR+1
XX=XX+1
MOP1 (\ADR,XX,-1,1,0,XX)>
AC=12
E=<AC-2>&17
SAVEAC (1,1)
XX=-1
;MULTIPLICAND=-1
REPEAT ^D16,<
;TEST MULTIPLICATION ALGORITHM
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
;OF C(E).
ADR=ADR+1
XX=XX+1
MX=-XX
IFE XX,<
V1=-1
V2=0>
IFN XX,<
V1=0
V2=-1>
MOP1 (\ADR,XX,V1,-1,V2,MX)>
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
AC=11
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
MOP1 (\ADR,XX,-1,0,0,0)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
MOP1 (\ADR,XX,-1,0,0,0)>
AC=7
E=<AC-2>&17
SAVEAC (1,1)
ADR=ADR+1
;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0
MOP1 (\ADR,-1,-1,0,0,0)
SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
AC=6
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
IFG XX,<V1=0>
IFL XX,<V1=-1>
MOP1 (\ADR,1,-1,XX,V1,XX)>
AC=5
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
IFG XX,<V1=0>
IFL XX,<V1=-1>
MOP1 (\ADR,XX,-1,1,V1,XX)>
;MULTIPLY A 1 BY 400000,,0
XX=400000000000
ADR=ADR+1
MOP1 (\ADR,XX,-1,1,1,0)
AC=4
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY A RIPPLED ONE BY -1
IFG XX,<
V1=-1
V2=-XX>
IFL XX,<
V1=1
V2=0>
MOP1 (\ADR,-1,0,XX,V1,V2)>
AC=3
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
ADR=ADR+1
XX=XX+XX
IFE XX,<XX=1>
;MULTIPLY -1 BY A RIPPLED 1
IFG XX,<
V1=-1
V2=-XX>
IFL XX,<
V1=1
V2=0>
MOP1 (\ADR,XX,0,-1,V1,V2)>
;MULTIPLY A -1 BY 400000,,0
ADR=ADR+1
XX=400000000000
MOP1 (\ADR,XX,0,-1,-1,XX)
AC=2
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
IFL XX,<V1=-1>
IFG XX,<V1=0>
MOP1 (\ADR,1,0,XX,V1,XX)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36,<
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
IFL XX,<V1=-1>
IFG XX,<V1=0>
MOP1 (\ADR,XX,0,1,V1,XX)>
AC=10
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY A RIPPLED 0 BY -1
MX=-XX
IFL XX,<V1=0>
IFG XX,<V1=-1>
MOP1 (\ADR,-1,-1,XX,V1,MX)>
AC=14
E=<AC-2>&17
SAVEAC (1,1)
XX=0
REPEAT ^D36, <
ADR=ADR+1
XX=XX+XX+1
IFE <XX-1>,<XX=-2>
;MULTIPLY -1 BY A RIPPLED 0
MX=-XX
IFL XX,<V1=0>
IFG XX,<V1=-1>
MOP1 (\ADR,XX,-1,-1,V1,MX)>
N1=525252525252
N2=252525252525
AC=13
E=<AC-2>&17
SAVEAC (1,1)
WW=^D36
XX=0
ZZ=0
REPEAT ^D35, < ;LAST CASE DIFFERENT
ADR=ADR+1
WW=WW-1
XX=XX+XX
ZZ=ZZ+1
IFE XX,<ZZ=0>
IFE XX,<XX=1>
;MULTIPLY 1010...1010 BY A FLOATING 1
V1=N1
V2=<N1_ZZ>!1B0
IFE WW,<V2=0>
IFL XX,<V3=N2+1>
IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
MOP1 (\ADR,XX,0,V1,V3,V2)>
;MULTIPLY A 1010...1010 BY 400000,,0
ADR=ADR+1
XX=400000000000
V1=525252525252
V3=525252525252
V2=400000000000
MOP1 (\ADR,XX,0,V1,V3,V2)
LAST1: JRST BEGEND

View file

@ -0,0 +1,122 @@
;DAKAK
MCNVER==0
DECVER==2
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
LUUO1=ERRMES
LUUO2=ERRMES
LUUO3=ERRMES
LUUO4=ERRMES
LUUO5=ERRMES
LUUO6=ERRMES
LUUO7=ERRMES
LUUO10=ERRMES
LUUO11=ERRMES
LUUO12=ERRMES
LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=40
EXCASB=1
USRASB=1
KI10=1
KA10=1
KLOLD==1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE DEFINITIONS
SADR1=BEGIN
SADR2=BEGIN
SADR3=BEGIN
SADR4=BEGIN
SADR5=JRST BEGIN
SADR6=JRST BEGIN
SADR7=JRST BEGIN
SADR8=JRST BEGIN
SADR9=JRST BEGIN
SADR10=JRST BEGIN
SADR11=JRST BEGIN
;SPECIAL FEATURE PARAMETERS
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DAKAK/
PAREA4=SIXBIT/TMP/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,. ;SAVE TEST PC
MOVEM AC+2,TESTPC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DEFINE MOP1 (T,A1,A2,EE,R1,R2)<
;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
F'T'0: AA1=A1 ;INITIAL C(AC)
MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER)
AA2=A2 ;INITIAL C(AC+1)
MOVE AC+1,[A2] ;PRELOAD AC+1
AEE=EE ;INITIAL C(E)
MOVE E,[EE] ;PRELOAD E (MULTIPLICAND)
MUL AC,E ;*MULTIPLY C(E) BY C(AC)
AR1=R1 ;EXPECTED RESULT IN AC
CAME AC,[R1] ;IS HIGH PRODUCT CORRECT?
ER3 AC,T'1 ;HIGH PRODUCT FAILED
AR2=R2 ;EXPECTED RESULT IN AC+1
CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT?
ER4 AC+1,T'2 ;LOW PRODUCT FAILED
AEE=EE ;INITIAL C(E)
CAME E,[EE] ;WAS C(E) CLOBBERED?
ER5 E,T'3 ;C(E) WAS CLOBBERED
JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH>

View file

@ -0,0 +1,445 @@
---
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."
Resources for this diagnostic include:
- [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 &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm&apos;
However, in this case, you *must* use `&apos;` as the quoting sequence, because of the way these settings are encoded into
JavaScript parameters; e.g.:
embedPDP10(...,'{commands:"a &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm&apos;"}');
---
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 %}