More MACRO-10 updates (eg, LOC pseudo-op, SIXBIT/ASCII expression support)
This commit is contained in:
parent
15417ca686
commit
0c9f752f86
24 changed files with 40332 additions and 87 deletions
571
apps/pdp10/diags/klad/DFKCAT.MAC.txt
Normal file
571
apps/pdp10/diags/klad/DFKCAT.MAC.txt
Normal file
|
|
@ -0,0 +1,571 @@
|
|||
;MAINDEC-10-DFKCA
|
||||
|
||||
DECVER=002
|
||||
MCNVER=000
|
||||
|
||||
XLIST
|
||||
DEFINE NAME (MCNVER,DECVER),<
|
||||
|
||||
TITLE DFKCA KL10 ADVANCED INSTRUCTION DIAGNOSTIC #1, VERSION MCNVER,DECVER >
|
||||
LIST
|
||||
LALL
|
||||
|
||||
NAME \MCNVER,\DECVER
|
||||
|
||||
XALL
|
||||
|
||||
;COPYRIGHT 1975
|
||||
;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=100
|
||||
EXCASB=1
|
||||
USRASB=1
|
||||
KI10=1
|
||||
KL10=1
|
||||
KL10P0=1
|
||||
PGMEND=1
|
||||
ERDIAG=1
|
||||
KLOLD=1
|
||||
MODDVU=BEGIN
|
||||
MODDVL=BEGIN
|
||||
;MACROS
|
||||
|
||||
DEFINE SAVEAC (A,B)<
|
||||
MOVEI AC+2,.
|
||||
MOVEM AC+2,TESTPC ;SETUP SUBTEST PC
|
||||
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
|
||||
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
|
||||
|
||||
;BEGIN ASSEMBLY PARAMETERS
|
||||
|
||||
SADR1=BEGIN
|
||||
SADR2=RESRT1
|
||||
SADR3=RENTR1
|
||||
SADR4=BEGIN
|
||||
SADR5=BEGIN
|
||||
SADR6=BEGIN
|
||||
SADR7=HALT BEGIN
|
||||
SADR8=HALT BEGIN
|
||||
SADR9=HALT BEGIN
|
||||
SADR10=HALT BEGIN
|
||||
SADR11=HALT BEGIN
|
||||
|
||||
PAREA1=0
|
||||
PAREA2=0
|
||||
PAREA3=SIXBIT/DFKCA/
|
||||
PAREA4=SIXBIT/LPT/
|
||||
PAREA5=0
|
||||
PAREA6=0
|
||||
|
||||
ITERAT=1000
|
||||
DEFINE DMVE (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVE INSTRUCTION
|
||||
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
|
||||
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
|
||||
;FROM MEMORY TO AC, AC+1 VIA THE DMOVE INSTRUCTION.
|
||||
;C(AC) AND C(AC+1) ARE THEN COMPARED WITH THE TEST WORDS
|
||||
;[XWD A,B] AND [XWD C,D], RESPECTIVELY. THE TEST PASSES IF THESE
|
||||
;COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: MOVE AC+5,[XWD A,B] ;INITIALIZE TEST WORDS
|
||||
MOVE AC+6,[XWD C,D] ;FOR COMPARISON
|
||||
MOVE AC,[XWD 707070,707070]
|
||||
MOVE AC+1,[XWD 070707,070707] ;INITIALIZE AC,AC+1
|
||||
DMOVE AC,[XWD A,B ;*MOVE DOUBLE WORD A,B ; C,D
|
||||
XWD C,D] ;FROM MEMORY TO AC, AC+1
|
||||
CAME AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
|
||||
ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = A,B
|
||||
CAME AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
|
||||
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = C,D
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
|
||||
DEFINE DMVE17 (L,T,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVE INSTRUCTION
|
||||
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
|
||||
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
|
||||
;FROM MEMORY TO AC, AC+1 VIA THE DMOVE INSTRUCTION.
|
||||
;C(AC) AND C(AC+1) ARE THEN COMPARED WITH THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'T'0: MOVEM AC,%SV17# ;SAVE AC17
|
||||
Q'L'0: MOVE AC+5,[XWD A,B] ;INITIALIZE TEST WORDS
|
||||
MOVE AC+6,[XWD C,D] ;FOR COMPARISON
|
||||
MOVE AC,[XWD 707070,707070]
|
||||
MOVE AC+1,[XWD 070707,070707] ;INITIALIZE AC,AC+1
|
||||
DMOVE AC,[XWD A,B ;*MOVE DOUBLE WORD A,B ; C,D
|
||||
XWD C,D] ;FROM MEMORY TO AC, AC+1
|
||||
Q'T'3: CAMN AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF NO ERROR
|
||||
MOVEM AC,AC-1 ;STORE INCORRECT RESLUTS
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER3 AC-1,L'1 ;FAIL IF CONTENTS(AC) NOT = A,B
|
||||
CAMN AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF NO ERROR
|
||||
MOVEM AC+1,AC-1 ;STORE INCORRECT WORD
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER4 AC-1,L'2
|
||||
MOVE AC,%SV17 ;RESTORE AC UNCONDITIONALLY
|
||||
JUMPL SAC,Q'T'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVN (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVN INSTRUCTION
|
||||
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
|
||||
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
|
||||
;[XWD A,B] AND [XWD C,D] IS MOVED FROM MEMORY TO AC, AC+1 VIA
|
||||
;THE DMOVN INSTRUCTION. C(AC) AND C(AC+1) ARE THEN COMPARED
|
||||
;WITH THE NEGATIVE (TWOS COMPLEMENT) OF THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707] ;INITIALIZE AC,AC+1
|
||||
SETCM AC+5,[XWD A,B] ;INITIALIZE TEST WORDS FOR COMPARISON
|
||||
IFIDN <C,D><0,0>,<
|
||||
SETZ AC+6,
|
||||
ADDI AC+5,1 >
|
||||
IFIDN <C,D><400000,0>,<
|
||||
SETZ AC+6,
|
||||
ADDI AC+5,1 >
|
||||
IFDIF <C,D><0,0>,<
|
||||
IFDIF <C,D><400000,0>,<
|
||||
MOVN AC+6,[XWD C,D]
|
||||
TLZ AC+6,1B18 ;CLEAR SIGN BIT OF LOW ORDER WORD >>
|
||||
DMOVN AC,[XWD A,B ;*MOVE NEGATIVE OF DOUBLE WORD A,B ;
|
||||
XWD C,D] ;C,D FROM MEMORY TO AC, AC+1
|
||||
CAME AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
|
||||
ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = COMPLEMENT OF A,B
|
||||
CAME AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
|
||||
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = MINUS C,D
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVN17 (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVN INSTRUCTION
|
||||
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
|
||||
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
|
||||
;[XWD A,B] AND [XWD C,D] IS MOVED FROM MEMORY TO AC, AC+1 VIA
|
||||
;THE DMOVN INSTRUCTION. C(AC) AND C(AC+1) ARE THEN COMPARED
|
||||
;WITH THE NEGATIVE (TWOS COMPLEMENT) OF THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: MOVEM AC,%SV17 ;SAVE P
|
||||
DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707] ;INITIALIZE AC,AC+1
|
||||
SETCM AC+5,[XWD A,B] ;INITIALIZE TEST WORDS FOR COMPARISON
|
||||
IFIDN <C,D><0,0>,<
|
||||
SETZ AC+6,
|
||||
ADDI AC+5,1 >
|
||||
IFIDN <C,D><400000,0>,<
|
||||
SETZ AC+6,
|
||||
ADDI AC+5,1 >
|
||||
IFDIF <C,D><0,0>,<
|
||||
IFDIF <C,D><400000,0>,<
|
||||
MOVN AC+6,[XWD C,D]
|
||||
TLZ AC+6,1B18 ;CLEAR SIGN BIT OF LOW ORDER WORD >>
|
||||
DMOVN AC,[XWD A,B ;*MOVE NEGATIVE OF DOUBLE WORD A,B ;
|
||||
XWD C,D] ;C,D FROM MEMORY TO AC, AC+1
|
||||
CAMN AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF TESTS OK
|
||||
MOVEM AC,AC-1 ;SAVE BAD WORD
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER3 AC-1,L'1 ;FAIL IF CONTENTS(AC) NOT = COMPLEMENT OF A,B
|
||||
CAMN AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF TESTS OK
|
||||
MOVEM AC,AC-1
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = MINUS C,D
|
||||
MOVE AC,%SV17 ;RESTORE P UNCODITIONALLY
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVNF (L,A,B,C,D,KIEF,KIUF,KLEF,KLUF) <
|
||||
;**KI10**
|
||||
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES NOT SET OVERFLOW
|
||||
;OR CARRY FLAGS ON THE KI10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
|
||||
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
|
||||
;IF ANY OF THESE FLAGS ARE SET, THE TEST FAILS.
|
||||
|
||||
;**KL10**
|
||||
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES SET OVERFLOW
|
||||
;OR CARRY FLAGS ON THE KL10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
|
||||
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
|
||||
;IF THE PROPER FLAGS ARE NOT SET, THE TEST FAILS.
|
||||
|
||||
Q'L'0: JFCL 17,.+1 ;CLEAR OVFL AND CRY0,1 FLAGS
|
||||
DMOVN AC+1,[XWD A,B ;*DMOVN TEST
|
||||
XWD C,D]
|
||||
JSP AC,.+1 ;READ FLAGS
|
||||
Q'L'1: TLZ AC,027777 ;CLEAR EXTRA JUNK
|
||||
TLNE AC,USERF ;IN USER MODE ?
|
||||
JRST Q'L'4 ;YES
|
||||
SKIPE KLFLG ;KL10 ?
|
||||
JRST Q'L'3 ;YES
|
||||
;KI10 EXEC MODE
|
||||
CAME AC,[KIEF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF OVFL OR CRY0,1 FLG SET
|
||||
Q'L'2: JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH
|
||||
JRST Q'L'6
|
||||
;KL10 EXEC MODE
|
||||
Q'L'3: CAME AC,[KLEF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
|
||||
JRST Q'L'2
|
||||
;KL10/KI10 USER MODE
|
||||
Q'L'4: SKIPE KLFLG ;KL10 ?
|
||||
JRST Q'L'5 ;YES
|
||||
;KI10 USER MODE
|
||||
CAME AC,[KIUF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF ANY FLAGS SET
|
||||
JRST Q'L'2
|
||||
;KL10 USER MODE
|
||||
Q'L'5: CAME AC,[KLUF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
|
||||
JRST Q'L'2
|
||||
|
||||
Q'L'6: JRST .+1>
|
||||
DEFINE DMVM (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVEM INSTRUCTION
|
||||
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
|
||||
;TEST WORDS AND AC,AC+1 ARE LOADED WITH THE TEST WORDS.
|
||||
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
|
||||
;FROM AC, AC+1 TO MEMORY (TSTWD, TSTWD+1) VIA
|
||||
;THE DMOVEM INSTRUCTION. C(TSTWD) AND C(TSTWD+1) ARE THEN
|
||||
;COMPARED WITH THE TEST WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707] ;INITIALIZE TEST WORDS
|
||||
MOVEM AC,TSTWD ;TSTWD, TSTWD+1 ARE IN MEMORY JUST
|
||||
MOVEM AC+1,TSTWD+1 ;AFTER THE FINAL TEST OF THIS PROGRAM
|
||||
DMOVE AC,[XWD A,B
|
||||
XWD C,D] ;INITIALIZE AC,AC+1
|
||||
DMOVEM AC,TSTWD ;*MOVE DOUBLE WORD FROM AC, AC+1
|
||||
;TO MEMORY (TSTWD, TSTWD+1)
|
||||
DMOVE AC,TSTWD ;PUT RESULTS OF TEST IN AC,AC+1 FOR COMPARISON
|
||||
CAME AC,[XWD A,B] ;WAS TSTWD LOADED CORRECTLY?
|
||||
ER5 AC,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = A,B
|
||||
CAME AC+1,[XWD C,D] ;WAS TSTWD+1 LOADED CORRECTLY?
|
||||
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD+1) NOT = C,D
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE DMVNM (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVNM INSTRUCTION
|
||||
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
|
||||
;TEST WORDS AND AC, AC+1 ARE LOADED WITH THE TEST WORDS.
|
||||
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
|
||||
;[XWD A,B] AND [XWD C,D] IS MOVED FROM AC, AC+1 TO MEMORY
|
||||
;(TSTWD, TSTWD+1) VIA THE DMOVNM INSTRUCTION.
|
||||
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE
|
||||
;NEGATIVE (TWOS COMPLEMENT) OF THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707]
|
||||
DMOVEM AC,TSTWD ;INITIALIZE TEST WORDS
|
||||
DMOVE AC,[XWD A,B
|
||||
XWD C,D] ;INITIALIZE AC,AC+1
|
||||
DMOVN AC+5,[XWD A,B
|
||||
XWD C,D] ;SET-UP TO CHECK RESULTS
|
||||
DMOVNM AC,TSTWD ;*MOVE NEGATIVE OF DOUBLE WORD FROM AC, AC+1
|
||||
;TO MEMORY (TSTWD, TSTWD+1)
|
||||
DMOVE AC,TSTWD ;PUT TEST RESULTS IN AC,AC+1
|
||||
CAME AC,<AC+5>&17 ;WAS TSTWD LOADED CORRECTLY?
|
||||
ER5 AC,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = COMPLEMENT OF A,B
|
||||
CAME AC+1,<AC+6>&17 ;WAS TSTWD+1 LOADED CORRECTLY?
|
||||
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD) NOT = MINUS C,D
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVM17 (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVEM INSTRUCTION
|
||||
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
|
||||
;TEST WORDS AND AC,AC+1 ARE LOADED WITH THE TEST WORDS.
|
||||
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
|
||||
;FROM AC, AC+1 TO MEMORY (TSTWD, TSTWD+1) VIA THE DMOVEM INSTRUCTION.
|
||||
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: MOVEM AC,%SV17 ;SAVE AC17 CAUSE IT HAS PDP
|
||||
DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707] ;INITIALIZE TEST WORDS
|
||||
MOVEM AC,TSTWD ;TSTWD, TSTWD+1 ARE IN MEMORY JUST
|
||||
MOVEM AC+1,TSTWD+1 ;AFTER THE FINAL TEST OF THIS PROGRAM
|
||||
DMOVE AC,[XWD A,B
|
||||
XWD C,D] ;INITIALIZE AC,AC+1
|
||||
DMOVEM AC,TSTWD ;*MOVE DOUBLE WORD FROM AC, AC+1
|
||||
;TO MEMORY (TSTWD, TSTWD+1)
|
||||
DMOVE AC,TSTWD ;PUT RESULTS OF TEST IN AC,AC+1 FOR COMPARISON
|
||||
CAMN AC,[XWD A,B] ;WAS TSTWD LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF TESTS OK
|
||||
MOVEM AC,AC-1 ;SAVE BAD WORD
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER5 AC-1,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = A,B
|
||||
CAMN AC+1,[XWD C,D] ;WAS TSTWD+1 LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF TESTS OK
|
||||
MOVEM AC,AC-1 ;SAVE BAD WORD
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD+1) NOT = C,D
|
||||
MOVE AC,%SV17 ;RESTORE AC UNCONDITIONALLY
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVNM17 (L,A,B,C,D) <
|
||||
;THIS MACRO TESTS THE DMOVNM INSTRUCTION
|
||||
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
|
||||
;TEST WORDS AND AC, AC+1 ARE LOADED WITH THE TEST WORDS.
|
||||
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
|
||||
;[XWD A,B] AND [XWD C,D] IS MOVED FROM AC, AC+1 TO MEMORY
|
||||
;(TSTWD, TSTWD+1) VIA THE DMOVNM INSTRUCTION.
|
||||
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE
|
||||
;NEGATIVE (TWOS COMPLEMENT) OF THE TEST
|
||||
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
|
||||
;THE TEST PASSES IF THESE COMPARISONS AGREE.
|
||||
|
||||
Q'L'0: DMOVE AC,[XWD 707070,707070
|
||||
XWD 070707,070707]
|
||||
DMOVEM AC,TSTWD ;INITIALIZE TEST WORDS
|
||||
DMOVE AC,[XWD A,B
|
||||
XWD C,D] ;INITIALIZE AC,AC+1
|
||||
DMOVN AC+5,[XWD A,B
|
||||
XWD C,D] ;SET-UP TO CHECK RESULTS
|
||||
DMOVNM AC,TSTWD ;*MOVE NEGATIVE OF DOUBLE WORD FROM AC, AC+1
|
||||
;TO MEMORY (TSTWD, TSTWD+1)
|
||||
|
||||
DMOVE AC,TSTWD ;PUT TEST RESULTS IN AC,AC+1
|
||||
CAMN AC,<AC+5>&17 ;WAS TSTWD LOADED CORRECTLY?
|
||||
JRST .+4
|
||||
MOVEM AC,AC-1 ;SAVE BAD WORD
|
||||
MOVE AC,%SV17 ;RESTORE P
|
||||
ER5 AC-1,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = COMPLEMENT OF A,B
|
||||
CAMN AC+1,<AC+6>&17 ;WAS TSTWD+1 LOADED CORRECTLY?
|
||||
JRST .+4 ;HERE IF TESTS OK
|
||||
MOVEM AC,AC-1 ;SAVE BAD WORD
|
||||
MOVE AC,%SV17
|
||||
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD) NOT = MINUS C,D
|
||||
MOVE AC,%SV17
|
||||
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DMVNMF (L,A,B,C,D,KIEF,KIUF,KLEF,KLUF) <
|
||||
;**KI10**
|
||||
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES NOT SET OVERFLOW
|
||||
;OR CARRY FLAGS ON THE KI10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
|
||||
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
|
||||
;IF ANY OF THESE FLAGS ARE SET, THE TEST FAILS.
|
||||
|
||||
;**KL10**
|
||||
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES SET OVERFLOW
|
||||
;OR CARRY FLAGS ON THE KL10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
|
||||
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
|
||||
;IF THE PROPER FLAGS ARE NOT SET, THE TEST FAILS.
|
||||
|
||||
Q'L'0: JFCL 17,.+1 ;CLEAR OVFL AND CRY0,1 FLAGS
|
||||
DMOVE AC,[XWD A,B
|
||||
XWD C,D] ;SETUP INITIAL
|
||||
DMOVNM AC,TSTWD ;*DMOVNM TEST
|
||||
JSP AC,.+1 ;READ FLAGS
|
||||
Q'L'1: TLZ AC,027777 ;CLEAR EXTRA JUNK
|
||||
TLNE AC,USERF ;IN USER MODE ?
|
||||
JRST Q'L'4 ;YES
|
||||
SKIPE KLFLG ;KL10 ?
|
||||
JRST Q'L'3 ;YES
|
||||
;KI10 EXEC MODE
|
||||
CAME AC,[KIEF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF OVFL OR CRY0,1 FLG SET
|
||||
Q'L'2: JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH
|
||||
JRST Q'L'6
|
||||
;KL10 EXEC MODE
|
||||
Q'L'3: CAME AC,[KLEF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
|
||||
JRST Q'L'2
|
||||
;KL10/KI10 USER MODE
|
||||
Q'L'4: SKIPE KLFLG ;KL10 ?
|
||||
JRST Q'L'5 ;YES
|
||||
;KI10 USER MODE
|
||||
CAME AC,[KIUF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF ANY FLAGS SET
|
||||
JRST Q'L'2
|
||||
;KL10 USER MODE
|
||||
Q'L'5: CAME AC,[KLUF,,Q'L'1]
|
||||
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
|
||||
JRST Q'L'2
|
||||
|
||||
Q'L'6: JRST .+1>
|
||||
DEFINE DFA (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
R'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFAD AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE DFS (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
R'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFSB AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE DFM (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
R'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFMP AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE DFD (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
R'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFDV AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE DFARP (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFAD AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T
|
||||
JUMPL AC+4,.-^D6 ;LOOP ON ERROR SWITCH>
|
||||
DEFINE SDFA (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFAD AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE SDFS (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFSB AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE SDFM (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFMP AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE SDFMKL (T,A,B,C,D,E,F,G,H,I,M,K,L,KL1,KL2,KL3,KL4) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFMP AC,[E,,F
|
||||
G,,H]
|
||||
SKIPE KLFLG
|
||||
JRST S'T'05
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
S'T'06: JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH
|
||||
JRST S'T'07
|
||||
|
||||
S'T'05: CAME AC,[KL1,,KL2]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[KL3,,KL4]
|
||||
ER4 AC+1,T'01
|
||||
JRST S'T'06
|
||||
|
||||
S'T'07: JRST .+1 >
|
||||
DEFINE SDFD (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFDV AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
|
||||
|
||||
DEFINE SDFDKL (T,A,B,C,D,E,F,G,H,I,M,K,L,KL1,KL2,KL3,KL4) <
|
||||
S'T'00: DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFDV AC,[E,,F
|
||||
G,,H]
|
||||
SKIPE KLFLG
|
||||
JRST S'T'05
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T'01
|
||||
S'T'06: JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH
|
||||
JRST S'T'07
|
||||
|
||||
S'T'05: CAME AC,[KL1,,KL2]
|
||||
ER3 AC,T'01
|
||||
CAME AC+1,[KL3,,KL4]
|
||||
ER4 AC+1,T'01
|
||||
JRST S'T'06
|
||||
|
||||
S'T'07: JRST .+1 >
|
||||
DEFINE SDFARP (T,A,B,C,D,E,F,G,H,I,M,K,L) <
|
||||
DMOVE AC,[A,,B
|
||||
C,,D]
|
||||
DFAD AC,[E,,F
|
||||
G,,H]
|
||||
CAME AC,[I,,M]
|
||||
ER3 AC,T
|
||||
CAME AC+1,[K,,L]
|
||||
ER4 AC+1,T
|
||||
JUMPL AC+4,.-^D6 ;LOOP ON ERROR SWITCH>
|
||||
6773
apps/pdp10/diags/klad/KLDDT.MAC.txt
Normal file
6773
apps/pdp10/diags/klad/KLDDT.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
1086
apps/pdp10/diags/klad/PARAM.KLM.txt
Normal file
1086
apps/pdp10/diags/klad/PARAM.KLM.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -11,8 +11,73 @@ PCjs has archived selected files from
|
|||
[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html), including:
|
||||
|
||||
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](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/)
|
||||
- SHIFT-ROTATE TEST (PART 1)
|
||||
|
|
|
|||
289
apps/pdp10/diags/klad/UUOERR.KLM.txt
Normal file
289
apps/pdp10/diags/klad/UUOERR.KLM.txt
Normal file
|
|
@ -0,0 +1,289 @@
|
|||
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
|
||||
|
|
@ -280,5 +280,5 @@ DAKAA.MAC
|
|||
[[Download](DAKAA.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAA.MAC.txt %}
|
||||
{% include_relative DAKAAM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -273,5 +273,5 @@ DAKAB.MAC
|
|||
[[Download](DAKAB.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAB.MAC.txt %}
|
||||
{% include_relative DAKABM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -272,5 +272,5 @@ DAKAC.MAC
|
|||
[[Download](DAKAC.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAC.MAC.txt %}
|
||||
{% include_relative DAKACM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -288,5 +288,5 @@ DAKAD.MAC
|
|||
[[Download](DAKAD.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAD.MAC.txt %}
|
||||
{% include_relative DAKADM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -285,5 +285,5 @@ DAKAE.MAC
|
|||
[[Download](DAKAE.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAE.MAC.txt %}
|
||||
{% include_relative DAKAEM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -272,5 +272,5 @@ DAKAF.MAC
|
|||
[[Download](DAKAF.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAF.MAC.txt %}
|
||||
{% include_relative DAKAFM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
|
|
@ -274,5 +274,5 @@ DAKAG.MAC
|
|||
[[Download](DAKAG.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAG.MAC.txt %}
|
||||
{% include_relative DAKAGM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
|
|||
7091
apps/pdp10/diags/klad/dakah/DAKAH.LST.txt
Normal file
7091
apps/pdp10/diags/klad/dakah/DAKAH.LST.txt
Normal file
File diff suppressed because it is too large
Load diff
1775
apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt
Normal file
1775
apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
1775
apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt
Normal file
1775
apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
117
apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt
Normal file
117
apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt
Normal 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
|
||||
>
|
||||
279
apps/pdp10/diags/klad/dakah/README.md
Normal file
279
apps/pdp10/diags/klad/dakah/README.md
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-10 KA10 Basic Instruction Diagnostic #8
|
||||
permalink: /apps/pdp10/diags/klad/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)]
|
||||
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
|
||||
|
||||
Resources for this test include:
|
||||
|
||||
- [Instructions](#dakahtxt)
|
||||
- [History](#dakahhst)
|
||||
- [Source Code](#dakahmac)
|
||||
- [MACRO-10 Listing](DAKAH.LST.txt)
|
||||
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 DAKAHM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
16210
apps/pdp10/diags/klad/dakai/DAKAI.LST.txt
Normal file
16210
apps/pdp10/diags/klad/dakai/DAKAI.LST.txt
Normal file
File diff suppressed because it is too large
Load diff
1872
apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt
Normal file
1872
apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
1733
apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt
Normal file
1733
apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
136
apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt
Normal file
136
apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt
Normal 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>
|
||||
422
apps/pdp10/diags/klad/dakai/README.md
Normal file
422
apps/pdp10/diags/klad/dakai/README.md
Normal file
|
|
@ -0,0 +1,422 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-10 KA10 Basic Instruction Diagnostic #9
|
||||
permalink: /apps/pdp10/diags/klad/dakai/
|
||||
machines:
|
||||
- id: testka10
|
||||
type: pdp10
|
||||
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
|
||||
debugger: true
|
||||
commands: a 30724 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)]
|
||||
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
|
||||
|
||||
Resources for this test include:
|
||||
|
||||
- [Instructions](#dakaitxt)
|
||||
- [History](#dakaihst)
|
||||
- [Source Code](#dakaimac)
|
||||
- [MACRO-10 Listing](DAKAI.LST.txt)
|
||||
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 30724 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 output at the specified address.
|
||||
|
||||
---
|
||||
|
||||
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 DAKAIM.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
Loading…
Reference in a new issue