diff --git a/_posts/2017-03-24-stepping-through-pdp-10-diagnostics.md b/_posts/2017-03-24-stepping-through-pdp-10-diagnostics.md index 45e3f224f..3f600724a 100644 --- a/_posts/2017-03-24-stepping-through-pdp-10-diagnostics.md +++ b/_posts/2017-03-24-stepping-through-pdp-10-diagnostics.md @@ -13,7 +13,7 @@ machines: Now that the PDPjs MACRO-10 Mini-Assembler is [limping along](/blog/2017/03/21/), it's time to start assembling some of DEC's PDP-10 "Basic Instruction" diagnostics and loading them into a test machine. The first diagnostic I tried was -[KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA-B-D)](/apps/pdp10/diags/klad/dakaa/), which has been loaded into +[KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](/apps/pdp10/diags/klad/dakaa/), which has been loaded into the machine below. {% include machine.html id="testka10" %} @@ -58,9 +58,9 @@ Happily, this was a good outcome, because 035057 is the end of the test. If you 035057 254 00 0 00 030057 ENDXX: JRST BEGEND ;LOOP PROGRAM -I had similar success with [Diagnostic #2 (MAINDEC-10-DAKAB-B-D)](/apps/pdp10/diags/klad/dakab/). +I had similar success with [Diagnostic #2 (MAINDEC-10-DAKAB)](/apps/pdp10/diags/klad/dakab/). -Problems started to crop up in [Diagnostic #3 (MAINDEC-10-DAKAC-B-D)](/apps/pdp10/diags/klad/dakac/): +Problems started to crop up in [Diagnostic #3 (MAINDEC-10-DAKAC)](/apps/pdp10/diags/klad/dakac/): CAME [0,-1] ;PASS TEST IF C(AC)=0,,-1 @@ -68,7 +68,7 @@ Based on the comment, it's clear what they really meant was either "[0,,-1]" or desired result, which means that even when the assembler parses an mnemonic-less instruction like "0,-1", it must still truncate the second (address) operand. Once I generated the appropriate value (000000,777777), the test passed. -And I had several failures running [Diagnostic #4 (MAINDEC-10-DAKAD-B-D)](/apps/pdp10/diags/klad/dakad/): +And I had several failures running [Diagnostic #4 (MAINDEC-10-DAKAD)](/apps/pdp10/diags/klad/dakad/): >> a 30724 /apps/pdp10/diags/klad/dakad/DAKAD.MAC starting PCjs MACRO-10 Mini-Assembler... diff --git a/apps/pdp10/diags/klad/DFKCAT.MAC.txt b/apps/pdp10/diags/klad/DFKCAT.MAC.txt new file mode 100644 index 000000000..e997b6da3 --- /dev/null +++ b/apps/pdp10/diags/klad/DFKCAT.MAC.txt @@ -0,0 +1,572 @@ +;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,&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,&17 ;WAS AC LOADED CORRECTLY? + ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = A,B + CAME AC+1,&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,&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,&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 <0,0>,< + SETZ AC+6, + ADDI AC+5,1 > + IFIDN <400000,0>,< + SETZ AC+6, + ADDI AC+5,1 > + IFDIF <0,0>,< + IFDIF <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,&17 ;WAS AC LOADED CORRECTLY? + ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = COMPLEMENT OF A,B + CAME AC+1,&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 <0,0>,< + SETZ AC+6, + ADDI AC+5,1 > + IFIDN <400000,0>,< + SETZ AC+6, + ADDI AC+5,1 > + IFDIF <0,0>,< + IFDIF <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,&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,&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,&17 ;WAS TSTWD LOADED CORRECTLY? + ER5 AC,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = COMPLEMENT OF A,B + CAME AC+1,&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,&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,&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> + diff --git a/apps/pdp10/diags/klad/FIXED.KLM.txt b/apps/pdp10/diags/klad/FIXED.KLM.txt new file mode 100644 index 000000000..377b5feff --- /dev/null +++ b/apps/pdp10/diags/klad/FIXED.KLM.txt @@ -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, +IFNDEF LUUO2, +IFNDEF LUUO3, +IFNDEF LUUO4, +IFNDEF LUUO5, +IFNDEF LUUO6, +IFNDEF LUUO7, +IFNDEF LUUO10, +IFNDEF LUUO11, +IFNDEF LUUO12, +IFNDEF LUUO13, +IFNDEF LUUO14, +IFNDEF LUUO15, +IFNDEF LUUO16, +IFNDEF LUUO17, +IFNDEF LUUO20, +IFNDEF LUUO21, +IFNDEF LUUO22, +IFNDEF LUUO23, +IFNDEF LUUO24, +IFNDEF LUUO25, +IFNDEF LUUO26, +IFNDEF LUUO27, +IFNDEF LUUO30, +IFNDEF LUUO31, +IFNDEF LUUO32, +IFNDEF LUUO33, + 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 + diff --git a/apps/pdp10/diags/klad/KLDDT.MAC.txt b/apps/pdp10/diags/klad/KLDDT.MAC.txt new file mode 100644 index 000000000..6710b5e2f --- /dev/null +++ b/apps/pdp10/diags/klad/KLDDT.MAC.txt @@ -0,0 +1,6774 @@ +;MAINDEC-10-KLDDT + + + +DECVER=012 +MCNVER=000 + + +TITLE KLDDT DECSYSTEM DIAGNOSTICS DDT, VERSION 0.12 + + +;RELEASED AS VERSION 0.12 MAY 5,1978 +;CORRECTED TOPS20 USER TERMINAL OPERATIONS (IF UNDER PA1050), MAY 5,1978 +;MODIFIED FOR APPROP MUUO/JSYS OPERATION, JUNE 20,1977 +;MODIFIED FROM DDT, APRIL 6,1977 +;CHANGED TO ALLOW EXEC TO USE USER SYMBOL TABLE POINTERS +;AND ALLOW $G TO START PROGRAM FROM .JBSA +;KL10 EXEC MODE OPERATION CHANGED TO CONFORM TO DIAGNOSTICS PROCEDURES + + +;COPYRIGHT 1974,1975,1976,1977 +;DIGITAL EQUIPMENT CORPORATION +;MARLBORO, MASS. 01752 + +;JOHN R. KIRCHOFF + + LOC 137 +MCNVER,,DECVER + +NOSYM +SALL + +FTEXEC==-1 +ABSDDT==10000,,0 + + LOC 441 + JRST DDT ;EPT DDT START ADDRESS +SUBTTL DEFINITIONS + + COMMENT \ + +TABLE OF CONTENTS FOR DDT + + DEFINE DDT SYMBOLS + START DDT + DDT COMMAND PARSER + SYMBOL TABLE LOGIC + TEXT COMMANDS (" AND $") + REGISTER EXAMINATION LOGIC + MODE CONTROL SWITCHES + PATCH COMMAND -- PATCH BEGIN + PATCH COMMAND -- PATCH END + PAGE TABLE CONTROL ($U) + GO AND EXECUTE LOGIC + SINGLE STEP EXECUTE LOGIC + ENTER AND LEAVE DDT LOGIC + BREAK POINT LOGIC + MEMORY MANAGER SUBROUTINES + BINARY TO SYMBOLIC CONVERSION + SEARCH LOGIC + OUTPUT SUBROUTINES + PUNCH PAPER TAPE LOGIC + TELETYPE IO LOGIC + DDT COMMAND FILE LOGIC + DISPATCH TABLE + FANCY TERMINAL INPUT LOGIC + OP DECODER + VARIABLE STORAGE + STORAGE -- $X LOGIC AND PATCH COMMAND + STORAGE -- BREAKPOINTS + STORAGE -- SYMBOL TABLE LOGIC + STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT + STORAGE -- STATE VARIABLES + STORAGE -- PUSH DOWN LIST +\ + +;DDT VERSION IDENTIFICATION + +$EDITN==177 ;EDIT NUMBER +$VERSN==37 ;VERSION NUMBER +%DDTVR==<$VERSN>B11+$EDITN ;COMPOSIT VERSION IDENT + +;SWITCHES FOR DDT FEATURES +;FTEXEC ;EXEC MODE FACILITIES (ALSO RUNS IN USER MODE) +;FTPTP ;PAPER TAPE FACILITIES (EXEC MODE ONLY) +;FTFILE ;FILE DDT +;FTYANK ;PAPER TAPE INPUT FACILITIES ($Y) +;FTVMX ;BUILD DDT.VMX FOR TOPS10 VIRTUAL MEMORY +;FTDEC20 ;DEC20 FACILITIES +;FTMON ;DEC20 MONITOR DDT +;FTEDIT ;INCLUDE FANCY EDITING FEATURES WITH DEC20 EDDT +;ABSDDT ;RELOCATABLE ASSEMBLY IF 0, ABSOLUTE ASSEMBLY + ;WITH ORIGIN GIVEN BY B0-17 OTHERWISE + + IFNDEF ABSDDT, + IFNDEF FTEXEC, + IFNDEF FTPTP, + IFNDEF FTFILE, + IFNDEF FTYANK, + IFNDEF FTVMX, + IFNDEF FTDEC20, + IFNDEF FTMON, + IFNDEF FTEDIT, + +;NORMALIZE ALL SWITCH VALUES TO 0 OR -1 SO BOOLEAN EXPRESSIONS IN +;CONDITIONALS WORK CORRECTLY. + +DEFINE ..N (SW)< + IRP SW,< + IFN SW,>> + + ..N + +; IFN FTDEC20,< + SEARCH MONSYM,MACSYM + OPDEF CALL [040B8] + OPDEF MRPAC [JSYS 772] ;> + + IFE FTFILE, + +EXTERN .JBREL,.JBSA,.JBHRL,.JBSYM,.JBFF,.JBHSM,.JBHNM,.JBUSY,.JBDA + + IFE FTDEC20,< + IFN FTEXEC,< +; TITLE EDDT -EXEC MODE DDT > + IFN FTEXEC!FTFILE,< + XJBSYM==36 + XJBUSY==32 + XZLOW==40> + + IFE FTEXEC,< + IFE FTFILE,< + TITLE UDDT -USER MODE DDT > + IFN FTFILE,< + TITLE FILDDT -FILE DDT + CT.RES==5 ;NUMBER OF PAGES TO KEEP IN CORE + MX.SIZ==^D1024 ;MAX PAGES IN FILE + T30SYM==131> ;SPMON (10/30) + > ;END IFE FTEXEC + +ZLOW==140 + +INTERNAL .JBVER,.JBDDT +.JBDDT=74 +.JBVER=137 + IFE FTEXEC,< + LOC .JBVER ;DO NOT SET IF EXEC DDT(OK USER OR FILDDT) + %DDTVR ;PUT VERSION # IN .JBVER + > + + IFE FTFILE!FTVMX,< + LOC .JBDDT + XWD DDTEND,DDTX + > +RELOC 0 + + IFE FTVMX,,B53>> + + OPDEF PAGE. [CALLI 145] ;PAGING UUO + .GTUPM==100 + > ;END IFE FTDEC20 + + IFN FTEXEC,< + OPDEF SKPUSR [SKIPL USRFLG] ;SKIP IN USER MODE + OPDEF SKPEXC [SKIPGE USRFLG] ;SKIP IN EXEC MODE + OPDEF SKPKA [SKIPG KAFLG] ;SKIP FOR KA10 + OPDEF SKPKI [SKIPE KAFLG] ;SKIP FOR KI10 + OPDEF SKPKL [SKIPL KAFLG] ;SKIP FOR KL10 + OPDEF SKPNKL [SKIPGE KAFLG] ;SKIP NOT KL10 + > ;END IFN FTEXEC +XLIST + +SUBTTL MAKE TOPS20 DDT + IFN FTDEC20,< +;IN ADDITION TO DIFFERENT MONITOR CALLS AND PAGING CONVENTIONS, +;THE FOLLOWING FUNCTIONAL DIFFERENCES EXIST UNDER FTDEC20: +; 1. EVAL ALWAYS CALLED BEFORE OPEVAL - ALLOWS USER REDEFINITION +; OF BUILT-IN OPCODES. +; 2. PRESERVE PREVIOUSLY SAVED ACS WHEN SWITCHING USER/EXEC MODE. +; DEC20 DUMP PROCEDURE ASSUMES CRASH ACS ARE SAVED IN EDDT. +; 3. FORCE SAVE OF ACS ALWAYS WHEN ENTERING BREAKPOINT. HELPFUL +; WHEN UNKNOWN BREAKPOINT ENCOUNTERED BECAUSE SET BY +; ANOTHER PROCESS OR LEFT OVER FROM ABORTED DDT. +; 4. PRINT $ FOR EACH PC INCREMENT ON $X. +; 5. TRY FOR FULL-WORD MATCH ON BINARY TO SYMBOLIC CONVERSIONS. +; NECESSARY FOR CORRECT JSYS MNEMONIC PRINTOUT. +; 6. USE 1000 AS MAX SYMBOL OFFSET FOR RELATIVE LOCATION PRINTOUT. + +ZLOW==20 ;LOWER LIMIT FOR $$Z + + IFE FTEXEC,< + IFE FTMON,< + + TITLE UDDT ;DEC20 USER DDT + INTERN PHDDT + +RUNLOC==770000 ;RUNTIME LOCATION OF CODE +VARLOC==776000 ;RUNTIME LOCATION OF VARIABLES + +;ONCE-ONLY CODE TO BLT DDT TO RUNTIME LOCATION. RUN IMMEDIATELY +;AFTER LOADING. + +BLTDDT: MOVEI 1,.FHSLF + SETZB 2,3 + SCVEC ;FLUSH PA1050 INFO + MOVE 2,[1,,DDT] + SEVEC ;SET PROPER ENTRY VECTOR + SETO 1, + MOVE 2,[.FHSLF,,700] + MOVE 3,[1B0+100] + PMAP ;CLEAR PAGES AROUND RUN LOCATION + MOVE 1,[PHDDT,,DDT] + BLT 1,DDT+DDTEND-PHDDT ;MOVE PROGRAM + MOVE 10,[PMAP] ;SETUP EXIT CODE IN ACS + MOVE 11,[HALTF] + SETO 1, ;SETUP TO CLEAR ALL PAGES + MOVE 2,[.FHSLF,,0] + MOVE 3,[1B0+700] + JRST 10 ;CLEAR MAP AND EXIT + + LIT + > ;END OF USER DDT ONCE ONLY CODE + + IFN FTMON,< ;MONITOR DDT ONCE ONLY CODE + + TITLE MDDT ;DEC20 MONITOR DDT + INTERN MDDT,DDTSYM,DDTUSY + + TWOSEG 400000 +MDDT=DDT +DDTSYM=DDT+1 +DDTUSY=DDT+2 ;PTR TO UNDEF SYMTAB +VARLOC==774000 ;PRIVATE STG AREA, 1 PAGE MAX + > ;END OF MDDT ONCE-ONLY CODE + +PHDDT: + IFE FTMON,< + PHASE RUNLOC> ;PHASE IF USER VERSION ONLY + > ;END IFE FTEXEC + IFN FTEXEC,< + + TITLE EDDT ;DEC20 EXEC DDT + INTERN DDT,DDTX> + > ;END IFN FTDEC20 +LIST + +SUBTTL DEFINE DDT SYMBOLS + IFN FTFILE,< +CM==2 ;DEFINE SOFTWARE CHANS. +DP==3 + > +;DEFINE ACCUMULATORS + +F=0 ;FLAGS +P=17 ;PUSH DOWN (KLDDT) +R= ;POINTERS TO TABLES, CORE, ETC. +S= +W= ;CONTAINS DISPATCH ADDRESS IN WORD ASSEMBLER +T=5 ;TRANSFER DATA +W1=6 +W2=7 +SCH=10 ;MODE CONTROL SWITCH FOR OUTPUT +AR=11 ;MODE CONTROL SWITCH FOR OUTPUT +ODF=12 ;MODE CONTROL SWITCH FOR OUTPUT - CURRENT RADIX +TT=13 ;TEMPORARY +TT1=14 ;TEMPORARY +TT2=15 ;TEMPORARY (USED FOR PTR INPUT ONLY) + ; AND FOR DTE COMMUNICATIONS + +;DEFINE PUSH DOWN LENGTH +LPDL==50 ;MAX LENGTH PUSH DOWN LIST + +NXMKA==1B23 ;NON-EX-MEM FLAG FOR KA10 +NXMKI==1B29 ;NON-EX-MEM FLAG FOR KI10 +NXMKL==1B25 ;NON-EX-MEM FLAG FOR KL10 + +NBP==^D8 ;NUMBER OF BREAKPOINTS + + IFN FTDEC20,< +LPDL==100 +P=17> ;OVERRIDES P=1 ABOVE +T1=1 +T2=2 +T3=3 + +TRPENB==1B22 ;SAYS PAGING TRAPS ENABLED + +;*** FLAGS IN F *** + +FEF== 1B0 ;"E" FLAG +COMF== 1B1 ;COMMA TYPED +TIF== 1B2 ;TRUNCATE TO 18 BITS - SET BY SPACE OR COMMA +DVF== 1B3 ;DIVIDE +FPF== 1B4 ;"." TYPED +CCF== 1B5 ;"$$" TYPED +STF== 1B6 ;SUPPRESS TYPEOUT +SAF== 1B7 ;RIGHT ANGLEBRACKET TYPED +FAF== 1B8 ;LEFT ANGLEBRACKET TYPED +;== 1B9 ;NOT USED +MLF== 1B10 ;MULTIPLY +PTF== 1B11 ;ARITHMETIC OPERATOR TYPED +CF== 1B12 ;"$" TYPED +LTF== 1B13 ;LETTER TYPED IN CURRENT SYLLABLE +ROF== 1B14 ;REGISTER OPEN +SF== 1B15 ;SYLLABLE +MF== 1B16 ;MINUS SIGN TYPED +QF== 1B17 ;QUANTITY TYPED IN TO WORD ASSEMBLER + +; 18-21 NOT USED +MDLCLF==1B22 ;MULT DEF LOCAL SYMBOL (EVAL) +PNAMEF==1B23 ;PROGRAM NAME SEEN IN SYM TABLE SEARCH +POWF== 1B24 ;ARGUMENT FOR EXPONENT COMING +LF1== 1B25 ;OUTPUT ONE REGISTER IN FORCED MODE +;== 1B26 ;NOT USED +CF1== 1B27 ;OUTPUT ONE REGISTER AS CONSTANT +NAF== 1B28 ;NEGATIVE ADDRESSES PERMISSABLE +; 29-32 NOT USED +OUTF== 1B33 ;OUTPUT +ITF== 1B34 ;INSTRUCTION TYPED +Q2F== 1B35 ;NUMBER TYPED AFTER $ + +;DEFINE SYMBOL TABLE SYMBOL TYPES +GLOBL==04B5 ;GLOBAL SYMBOL +LOCL==10B5 +PNAME==74B5 ;PROGRAM NAME +DELI==20B5 ;DELETE INPUT +DELO==40B5 ;DELETE OUTPUT + +;DEFINE UNDEFINED SYMBOL TABLE (.JBUSY) TYPES + +STADD==1B0 ;IF 1, THEN ADDITIVE REQUEST +STLH==1B1 ;IF 1, THEN REQUEST FOR LEFT HALF +STNEG==1B4 ;IF 1, THEN NEGATIVE REQUEST + + IFE FTDEC20,< + IFE FTFILE,< + INTERN DDTEND ;DECLARE END OF DDT AS INTERNAL, FOR + ; USER TO SEE (USER MODE) AND ONCE ONLY CODE + ; (MONITOR) + IFE FTEXEC,< ENTRY DDT> + IFN FTEXEC,< + INTERNAL DDT + ENTRY DDTX>> ;NEEDED BY MONITOR + + IFN FTEXEC!FTFILE,< + +DEFINE OD(A,B),< + A=:> + +;KL10 "FUNNY" I/O INSTRUCTIONS +OD APRID,700000 ;READ APR ID +OD WRFIL,700100 ;WRITE CACHE REFIL ALGORITHM +OD RDERA,700400 ;READ ERROR ADDRESS REGISTER +OD SBDIAG,700500 ;S-BUS DIAG +OD RDPERF,702000 ;READ PERF. COUNTER +OD RDTIME,702040 ;READ TIME OF DAY +OD RDMACC,702400 ;READ MBOX ACCOUNTING +OD RDEACC,702440 ;READ EBOX ACCOUNTING +OD WRPAE,702100 ;WRITE PERF. ANALYSIS ENABLES +OD SWPIA,701440 ;SWEEP INVALIDATE ALL +OD SWPVA,701500 ; " VALIDATE ALL +OD SWPUA,701540 ; " UNLOAD ALL +OD SWPIO,701640 ; " INVALIDATE 1 PAGE +OD SWPVO,701700 ; " VALIDATE 1 PAGE +OD SWPUO,701740 ; " UNLOAD 1 PAGE + > ;END IFN FTEXEC!FTFILE +XLIST + +SUBTTL WRITE DDT.VMX + IFN FTVMX,< + IFN FTFILE,< + PRINTX ?CAN NOT BUILD BOTH VMDDT AND FILDDT + END + > + IFN FTEXEC,< + PRINTX %BUILDING BOTH EDDT AND VMDDT + > + + IFE ABSDDT&<-1B17>,< + PRINTX %VMDDT WITH AN OFFSET OF ZERO REQUESTED. + PRINTX % OFFSET OF 700000 WILL BE USED + ABSDDT==ABSDDT!7B2 + > + +DEFINE MERR (TXT)< + JRST [OUTSTR [ASCIZ " +? TXT +"] + EXIT] + > + +MAKDDT: RESET + INIT 1,17 + SIXBIT /DSK/ + 0 + MERR CAN NOT INIT DEVICE DSK: + ENTER 1,DDTVMX + MERR CAN NOT ENTER DSK:DDT.VMX + OUT 1,IOWD + SKIPA + MERR OUTPUT ERROR WRITING DSK:DDT.VMX + CLOSE 1, + STATZ 1,740000 + MERR OUTPUT ERROR CLOSING DSK:DDT.VMX + OUTSTR [ASCIZ " +DSK:DDT.VMX WRITTEN +"] + EXIT + +DDTVMX: SIXBIT /DDT/ + SIXBIT /VMX/ + EXP 0,0 +IOWD: IOWD DDTEND-DDT+1,DDTORG + EXP 0 + XLIST ;MAKDDT LITERALS + LIT + LIST + +DDTORG: PHASE ABSDDT_<-^D18> + > + > ;END IFE FTDEC20 +LIST + +SUBTTL START DDT + +DDTOFS: ;OFFSET BASE FOR DISPATCH TABLES + + IFE FTFILE,< +DDTX: + IFN FTYANK,< + SETZM COMAND ;INDICATE NO COMMAND FILE IF STARTING BY DDT COMMAND + > + REPEAT 0,< +DDT: IFN FTDEC20&<^-FTEXEC>,< + JRST .+2 ;SKIP SYMTAB PTRS + Z .DDSYM + JUMP .DDUSY + MOVEM T,SETRT1 ;SAVE AN AC + MOVE T,BP1+1 + CAMN T,[JSA T,BCOM] ;VARIABLES AREA INITIALIZED? + JRST DDTIN1 ;YES + MOVE T,[PHVAR,,VARLOC] ;NO, DO IT + BLT T,VAREND-1 +DDTIN1: MOVE T,SETRT1 ;RESTORE SCRATCH AC + > ;END IFN FTDEC20... +> +DDT: JRST .+2 + ASCII /DDT/ + JSR SAVE + PUSHJ P,REMOVB + XLIST + REPEAT 0,< + IFN FTEXEC!FTDEC20,< + MOVE W1,[ASCII /DDT/] + IFN FTEXEC,< + SKPUSR + MOVE W1,[ASCII /EDDT/] + > +IFN FTMON,< + MOVE W1,[ASCIZ/MDDT/] ;IF TOPS-20 MDDT, SAY "MDDT" + > + PUSHJ P,TEXT2 ;TYPE MESSAGE SAYING WHICH DDT + > ;END FTEXEC!FTDEC20 + > ;END FTFILE + + IFN FTVMX,< ;IF THIS IS VMDDT + MOVE W1,[ASCII "VMDDT"] ;PREPARE TO SAY VMDDT + PUSHJ P,TEXT2 ;PRINT THE MESSAGE + > ;END VMDDT SWITCH + > +LIST + MOVE W1,DDT+1 + PUSHJ P,TEXT2 ;TYPE DDT MESSAGE +XLIST + +SUBTTL FILDDT -- COMMAND SCANNER + IFN FTFILE,< +DDT: CALLI + SETZM COMAND ;CLEAR $Y FLAG + SETZM FWAZER ;CLEAR BLOCK OF STORAGE + MOVE T,[FWAZER,,FWAZER+1] + BLT T,LWAZER + MOVE P,[IOWD LPDL,PDL] ;PRESET PUSH DOWN LIST + MOVSI T,'DSK' ;PRESET DEVICE + MOVEM T,FILDEV+1 + OUTSTR [ASCIZ /File: /] + SETOM DEPNCT ;PRESET DEPOSIT ERROR COUNT TO -1 + PUSHJ P,TINCH + JRST FDINO ;IN CASE NULL LINE TYPED IN + SETOM CRASHS ;PRESET FOR FILE MODE + MOVEI TT,0 ;CLEAR NAME + MOVE TT1,[POINT 6,TT] ;PRESET ACCUMULATOR + +FDILP: CAIN T,"/" ;SEE IF SWITCH + JRST FDISW ;YES--GO DO IT + CAIN T,":" ;SEE IF DEVICE + JRST [JUMPE TT,FDIERR + MOVEM TT,FILDEV+1 + JRST FDILNP] + CAIN T,"." ;SEE IF EXTENSION FLAGGED + JRST [MOVEM TT,FILBLK + SETOM FDIDOT + JRST FDILNP] + CAIE T,"[" ;SEE IF PPN FLAGGED + JRST FDILET ;NO--MUST BE IN NAME + PUSHJ P,FDIOCT ;YES--GET PROJECT + JUMPLE TT2,FDIERR ;DISALLOW JUNK + CAIG TT2,377777 ;DISALLOW INVALID NUMBERS + CAIE T,"," ;VERIFY + JRST FDIERR ;BOMB ERROR + HRLZM TT2,FILBLK+3 ;STORE + PUSHJ P,FDIOCT ;GET PROGRAMMER + JUMPLE TT2,FDIERR ;DISALLOW JUNK + CAILE TT2,-1 ;DISALLOW INVALID + JRST FDIERR ; NUMBERS + HRRM TT2,FILBLK+3 ;STORE + JUMPE T,FDILDP ;EXIT IF DONE + CAIE T,"]" ;SEE IF END OF PPN + JRST FDIERR ;NO--BOMB OUT + JRST FDILOP ;GET MORE WORDS + +;STILL FTFILE + +FDIOCT: MOVEI TT2,0 ;CLEAR ANSWER +FDIOC1: PUSHJ P,TINCH ;GET CHAR + POPJ P, ;IF DONE + TLNE TT2,(7B2) ;IF OVERFLOWING, + POPJ P, ; GIVE UP + CAIL T,"0" ;SEE IF + CAILE T,"7" ; OCTAL + POPJ P, ;NO--GIVE UP + LSH TT2,3 ;YES--MULT AC + ADDI TT2,-"0"(T) ;INCREMENT + JRST FDIOC1 ;LOOP + +FDILET: CAIL T,"0" ;SEE IF ALPHA-NUM + CAILE T,"Z" + JRST FDIERR + CAILE T,"9" + CAIL T,"A" + JRST .+2 + JRST FDIERR + SUBI T,40 ;YES--MAKE SIXBIT + TLNE TT1,(77B5) ;DON'T OVERFLOW + IDPB T,TT1 ;STORE + JRST FDILOP ;AND LOOP + +;STILL FTFILE + +FDIERF: OUTSTR [ASCIZ /? Can't get at file +/] + JRST FDIERE + +FDIHLP: ASCIZ \ +Type dev:file.ext[p,pn]/switches + +/M examine monitor +/P patch monitor or file + type ^Z to exit from file patching +/S reload symbol table from file + + IF no spec, examine monitor +file defaults: if /P or /S: DSK:SYSTEM.XPN + else: DSK:CRASH.XPN + +use $Y to read DSK:FILDDT.DDT and write LPT:FILDDT.LST + +\ + +BADEXE: OUTSTR [ASCIZ " +?BAD DIRECTORY IN .EXE FILE +"] + JRST FDIERE + +;STILL FTFILE + +TINCH: INCHWL T ;GET NEXT CHAR + CAIE T,177 + CAIN T,15 + JRST TINCH + CAIE T,40 + CAIN T,11 + JRST TINCH + CAIE T,3 + CAIN T,32 + JRST [RESET + EXIT 1, + JRST DDT] + JUMPE T,TINCH + CAIGE T,175 + CAIGE T,40 + JRST [MOVEI T,0 + POPJ P,] + CAIL T,140 + SUBI T,40 + JRST CPOPJ1 + + +FDISW: PUSHJ P,TINCH ;GET SWITCH + JRST FDIERR + CAIN T,"H" ;HELP + JRST [OUTSTR FDIHLP + JRST FDIERE] + CAIN T,"P" ;PATCH + JRST [SETOM PATCHS + JRST FDILOP] + CAIN T,"S" ;LOAD SYMBOLS + JRST [SETOM SYMGET + JRST FDILOP] + CAIN T,"M" ;MONITOR + JRST [SETZM CRASHS + JRST FDILOP] + ;FALL INTO ERROR + +;STILL FTFILE + + ;FALL HERE FROM ABOVE +FDIERR: OUTSTR [ASCIZ \? Command error -- type /H for help +\] + +FDIERE: CLRBFI ;CLEAR ANY TYPE AHEAD + JRST DDT ;AND START OVER + + +FDILNP: MOVEI TT,0 ;CLEAR WORD + MOVE TT1,[POINT 6,TT] ;RESET POINTER +FDILOP: PUSHJ P,TINCH ;GET NEXT CHAR + SKIPA + JRST FDILP ;LOOP BACK TO PROCESS IT + +FDILDP: SKIPE TT ;ALL DONE--SEE IF FILE NAME ASSEMBLED + JRST [SKIPE FDIDOT + HLLZM TT,FILBLK+1 + SKIPN FDIDOT + MOVEM TT,FILBLK + JRST .+1] + +FDINO: SKIPE PATCHS ;SEE IF /P + SKIPN CRASHS ;AND NOT /M + JRST .+2 ;NO + SETOM SYMGET ;YES--SET /S + MOVEI T,17 ;PRESET I/O MODE + MOVEM T,FILDEV + MOVE T,['CRASH '] + SKIPE SYMGET ;SEE IF /S OR /P + MOVE T,['SYSTEM'] + SKIPN FILBLK ;PRESET FILE NAME + MOVEM T,FILBLK + MOVSI T,'XPN' ;AND FILE EXT + SKIPN FDIDOT + HLLZM T,FILBLK+1 + +;STILL FTFILE + + SKIPN SYMGET ;SEE IF /S + SKIPE CRASHS ;SEE IF /M + JRST .+2 ;/S OR -/M + JRST FDINOT ;PROCEED IF NOT + + OPEN 1,FILDEV ;YES--OPEN FILE + JRST FDIERF + PUSH P,FILBLK+3 ;SAVE PPN + LOOKUP 1,FILBLK ;LOOK IT UP + JRST [HLRZ T,FILBLK+1 + CAIE T,'XPN' + JRST FDIERF + MOVSI T,'EXE' + MOVEM T,FILBLK+1 + MOVE T,(P) + MOVEM T,FILBLK+3 + LOOKUP 1,FILBLK + JRST FDIERF + JRST .+1] + HLRE T,FILBLK+3 ;GET LENGTH + SKIPGE T + MOVNS T + SKIPL FILBLK+3 + IMULI T,^D128 + MOVEM T,MONSIZ ;STORE AS WORDS + POP P,FILBLK+3 ;RESTORE PPN + SKIPE PATCHS ;SEE IF PATCHING + SKIPN CRASHS ;YES--SEE IF FILE + JRST FDINOE ;NO--SKIP ENTER + SETZM FILBLK+2 ;CLEAR E+2 + HLLZS FILBLK+1 ;CLEAR RH(E+1) + ENTER 1,FILBLK ;/P AND -/M + JRST FDIERF +FDINOE: USETI 1,1 ;POSITION TO START + INPUT 1,[IOWD 2003,WIND0 + 0] ;READ DIRECTORY + STATZ 1,740000 ;CHECK FOR ERRORS + JRST [OUTSTR [ASCIZ \? I/O error\] + HALT .-3] + HLRZ T,WIND0 ;GET FIRST WORD + CAIE T,1776 ;IS THIS IN .EXE FORMAT? + JRST FDIXPN ;NO--SEE IF .XPN FORMAT + +SUBTTL FILDDT -- PROCESS .EXE FILE + +;FILE IS IN .EXE FORMAT -- PROCESS DIRECTORY + HRRZ W1,WIND0 ;GET WORD COUNT + TRZN W1,1 ;IS WORD COUNT ODD? + JRST BADEXE ;NO--SOMETHING IS WRONG + LSH W1,-1 ;CONVERT TO # OF ENTRIES + MOVEI W2,WIND0+1 ;FIRST ENTRY +FDIXL0: HRRZ TT1,1(W2) ;GET PROCESS PAGE NUMBER + CAIL TT1,MX.SIZ ;OUT OF RANGE + JRST BIGEXE ;YES--FILE IS BIG + ADDI TT1,PAGTBL ;FIRST PAGTBL SLOT + MOVE TT2,(W2) ;GET ENTRY + LDB TT,[POINT 9,1(W2),8] ;GET COUNT +FDIXL1: TLNN TT2,1777 ;JUNK IN LH + CAIL TT1,PAGTBL+MX.SIZ ;IN TABLE? + JRST BADEXE ;BAD DIRECTORY + MOVEM TT2,(TT1) ;STORE IN PAGTBL + TRNN TT2,3777 ;ALLOCATED BUT ZERO? + SETZM (TT1) ;YES--GIVE A ? ON FETCH + ADDI TT1,1 ;INCREMENT POINTERS + TRNE TT2,3777 ;DO NOT CHANGE ALLOCATED BUT + ; ZERO TO PAGE 1 + ADDI TT2,1 ; .. + SOJGE TT,FDIXL1 ;LOOP OVER THIS ENTRY + ADDI W2,2 ;STEP TO NEXT ENTRY + SOJG W1,FDIXL0 ;LOOP OVER ENTRE DIRECTORY + JRST FDISET +FDIXPN: SETOM XPNFMT ;FLAG AS .XPN FORMAT + SKIPE WIND0 ;IN .XPN FORMAT + JRST [OUTSTR [ASCIZ /% Not in .XPN format +/] + SETZM SYMGET + JRST .+1] + MOVE T,MONSIZ ;SIZE OF FILE + ADDI T,777 ;ROUND UP + LSH T,-9 ;CONVERT TO PAGES + CAIL T,MX.SIZ ;TOO BIG + MOVEI T,MX.SIZ-1 ;YES--ROUND DOWN +FDIXPL: TLO T,(1B2) ;SET WRITEABLE BIT + MOVEM T,PAGTBL(T) ;STORE POINTER + TLZ T,-1 ;CLEAR FLAGS + SOJGE T,FDIXPL ;LOOP OVER WHOLE FILE + +SUBTTL FILDDT -- SETUP SYMBOLS + +;PAGTBL IS SETUP MOVE AC'S (IF ARROUND) AND START DDT +FDISET: SKIPE SYMGET ;SEE IF /S + PUSHJ P,SYMFIX ;YES--GO GET THEM + SKIPE CRASHS ;ARE WE LOOKING AT A CRASH + SKIPE PATCHS ; AND NOT PATCHING? + JRST FDIST1 ;NO--CONTINUE + SKIPE SYMGET ;GETTING SYMBOLS + JRST FDIST1 ;YES--LEAVE AC'S WHERE THEY ARE + MOVE T,[RADIX50 0,CRSHAC] + MOVEM T,SYM ;LOOKUP CRSHAC + PUSHJ P,EVAL ; IN SYMBOL TABLE + JRST FDIST1 ;CAN NOT FIND IT + MOVSI W1,-20 ;NUMBER OF AC'S + HRRI R,(T) ;WHERE THE AC'S ARE +FDIGAC: PUSHJ P,FETCH ;GET THE AC + JRST FDIST1 ;CAN NOT FETCH + MOVEM T,AC0(W1) ;STORE AC + ADDI R,1 ;POINT TO NEXT CELL + AOBJN W1,FDIGAC ;GET THE AC'S + OUTSTR [ASCIZ "[ACS COPIED FROM CRSHAC TO 0-17] +"] + +FDIST1: SKIPN CRASHS ;SEE IF REASON TO HOLD OPEN + RELEAS 1, ;NO--CLEAR FILE + SKIPE SYMGET ;SEE IF /S + SKIPE PATCHS ;SEE IF /P + JRST FDINOT ;CONTINUE IF /P OR -/S + SKIPE CRASHS ;SEE IF -/M + JRST DDT ;IF /S AND NOT /P OR /M, START OVER + +FDINOT: JRST DD1 ;GO START DDT + +BIGEXE: OUTSTR [ASCIZ "?TOO MANY PAGES IN .EXE FILE +?REBUILD FILDDT WITH MX.SIZ SET LARGER +"] + JRST FDIERE ;PUNT + + +;STILL FTFILE + +EXTERN .JBREN,.JBCOR + +SYMFIX: PUSHJ P,SYMPTR ;GO GET SYMBOL POINTER IN T AND TT + MOVEM TT,FIUPTR ;SAVE JOBUSY + HLRES TT,TT + MOVMS TT,TT + MOVEM T,FISPTR ;SAVE IT + HLRES T,T + MOVMS T,T ;LENGTH OF SYMBOL TABLE + SKIPN W,SAVEFF ;PICK UP START OF SYMBOL TABLE + MOVE W,.JBFF ;GET FROM LOADER IF FIRST TIME + MOVEM W,SAVEFF ;SAVE FOR FUTURE PASSES + ADDI W,200 ;LEAVE SPACE FOR EXTRA SYMBOL DEFNS. + HRRZ W1,W ;SAVE LOC FOR COPY + ADD W,T ;ADD TABLE LENGTH + ADD W,TT ;INCLUDE USY TABLE + HRRZM W,.JBFF ;UPDATE MONITOR TO END FOR ITS BUFFER + HRLM W,.JBSA ; ALLOCATION MECHANISMS + HRLM W,.JBCOR ;INDICATE SYMBOLS FOR SAVE + CALLI W,11 ;GET CORE + JRST [OUTSTR [ASCIZ /? Not enough core +/] + JRST DDT] + + MOVE R,FIUPTR ;GET USY POINTER + JUMPGE R,SYMCPY ;SKIP IF NONE + HRRM W1,FIUPTR +UCOPY: PUSHJ P,FETCH + JRST ERR + MOVEM T,(W1) + AOS W1 + AOBJN R,UCOPY + +SYMCPY: MOVE R,FISPTR ;WHEREABOUTS OF MONITOR SYMBOLS + HRRM W1,FISPTR ;NOW POINT TO FILDDT SYMBOLS + JUMPGE R,CPOPJ ;RETURN IF NO TABLE +TCOPY: PUSHJ P,FETCH ;GET A WORD + JRST ERR + MOVEM T,0(W1) ;STASH IT + AOS W1 + AOBJN R,TCOPY + POPJ P, ;RETURN TO CALLER + +;STILL FTFILE + +REPEAT 0,< +THE MONITOR CAN BE LOADED IN ANY OF THREE WAYS(IN ORDER OF PREFERENCE): + 1. UNDER TIME SHARING WITH REGULAR LOADER AND COMMON + 2. UNDER SPECIAL 10/30 MONITOR(SPMON) WITH REGULAR 10/30 LOADER & COMMON + 3. UNDER SPECIAL 10/30 MONITOR(SPMON) WITH BUILD + +THE 3 WAYS LEAVE XJBSYM(36),.JBSYM(116) & T30SYM(131) IN DIFFERENT STATES: + + XJBSYM .JBSYM T30SYM + + 1. JUNK S.T.PTR JUNK + 2. JUNK JUNK(NON-NEG) S.T.PTR + 3. S.T.PTR S.T.PTR JUNK + +ALSO, MORE LIKELY, IS THAT EDDT HAS ALREADY RUN ONCE: + S.T.PTR OLD S.T.PTR JUNK + > + + +SYMPTR: MOVSI S,-LN.TRY ;PRESET TABLE FOR TRIES AT PTRS +SYMPT1: HLRZ R,PTRTRY(S) ;GET USY LOCATION + MOVEI T,0 ;(IN CASE SKIP) + JUMPE R,SYMPT2 ;JUMP IF NONE + PUSHJ P,FETCH ;GET IT + JRST ERR +SYMPT2: MOVE TT,T ;SAVE AS ANSWER + HRRZ R,PTRTRY(S) ;GET SYM LOCATION + PUSHJ P,FETCH ;GET POINTER + JRST ERR + JUMPL T,SYMPT3 ;IF GOOD, CONTINUE + AOBJN S,SYMPT1 ;ELSE LOOP +SYMPT3: MOVE S,PTRTRY(S) ;GOOD--PICK UP LOCATIONS + JUMPGE TT,SYMPT4 ;MAKE SURE USY TABLE IS OK + HLRE W,TT ; BY COMPARING + MOVMS W ; ITS END + ADDI W,(TT) ; WITH START OF SYM + CAIE W,(T) ;IF EQUAL, OK +SYMPT4: MOVEI TT,0 ;NO--CLEAR USY POINTER + POPJ P, ;RETURN + +PTRTRY: XJBUSY,,XJBSYM ;IN CASE EDDT HAS RUN + .JBUSY,,.JBSYM ;REGULAR LOADER RAN LAST + 0,,T30SYM ;10/30 LOADER + XJBUSY,,XJBSYM ;BUILD OR JUNK +LN.TRY==.-PTRTRY + + > ;END FTFILE +LIST + +SUBTTL DDT COMMAND PARSER + +DD1: PUSHJ P,CRF +DD1.5: TLZ F,(ROF) ;CLOSE ANY OPEN REGISTER + MOVE T,[XWD SCHM,SCH] + BLT T,ODF ;LOAD ACS + MOVS T,[SVBTS,,PSVBTS] + BLT T,SVBTS+2 +DD2: CLEARM PRNC ;PARENTHESES COUNT + MOVE P,[IOWD LPDL,PDL] +LIS: SETZM WAKALL ;SET WAKEUP SET TO PUNCT AND CTRLS + IFN FTDEC20,< + MOVEI R,.JBSYM ;VALIDATE JOB DATA AREA - CHECK .JBSYM + PUSHJ P,FETCH + SETZ T, ;CAN'T REF PAGE 0, NO JOBDAT + SKIPL T ;VALID SYMTAB PTR? + SETZM JDTFLG#> ;NO, NOTE NO JOBDAT + SKIPGE R,@USYMP ;GET UND SYM PTR, OK? + PUSHJ P,FETCH ;MAYBE, SEE IF CAN REFERENCE IT + SETZM @USYMP ;NO GOOD, FLUSH IT + MOVE T,@USYMP ;GET UNDEF SYMBOL POINTER + JUMPL T,LIS0B ;IF POINTER OK, TRANSFER + SKIPGE T,@SYMP ;IF POINTER NOT OK, USE .JBSYM ADR + JRST LIS0A ; SO LONG AS IT IS NEGATIVE + IFE FTFILE,< + MOVEI R,.JBHSM ;IF LO ADR NOT OK, TRY HIGH + IFN FTEXEC, ; UNLESS IN EXEC MODE + PUSHJ P,HFETCH> ;GET HIGH SYM TABLE POINTER + MOVEI T,0 ;IT DOESN'T EXIST + JUMPG T,.-1 ;IF POINTER .G. 0, GIVE 0 RESULT +LIS0A: HRRZS T ;USE ADR OF SYM TABLE TO INIT + MOVEM T,@USYMP ; UNDEFINED SYM TABLE POINTER +LIS0B: MOVEM T,ESTUT ;INIT UNDEFINED SYM ASSEMBLER + TLZ F,(-1B17-ROF-STF) ;CLEAR FLAGS EXCEPT ROF, STF + TRZ F,LF1+CF1+ITF+Q2F ;CLEAR FLAGS +LIS0: TLZ F,(-1B17-ROF-STF-FAF-SAF) ;CLEAR FLAGS EXCEPT ... + TRZ F,NAF ; .. + SETZM WRD +LIS1: SETZM FRASE +LIS2: MOVEI T,1 + MOVEM T,FRASE1 + TLZ F,(MLF+DVF) +L1: TLZ F,(CF+CCF+SF+FPF) ;TURN OFF CONTROL, SYL, PERIOD FLAG +L1A: SETZM SYL +L1RPR: SETZM SYM + MOVEI T,6 + MOVEM T,TEM ;INIT SYMBOL COUNTER + MOVE T,[POINT 7,TXT] + MOVEM T,CHP ;SETUP FOR OPEVAL SYMBOL + SETZM DEN + SETZM WRD2 + +;CONTINUED ON NEXT PAGE + +L2: PUSHJ P,TIN ;PICK UP CHARACTER + CAIL T,"A"+40 ;LOWER CASE A + CAILE T,"Z"+40 ;LOWER CASE Z + JRST .+2 + TRC T,40 ;CHANGE LOWER CASE TO UPPER CASE + TLNE F,(CF) ;CONTROL FLAG + JRST L21 + CAIG T,"Z" ;Z + CAIGE T,"A" ;A + JRST .+2 + JRST LET +L21: MOVE R,T + CAILE T,137 ;DISPATCH TABLE HAS ENTRIES ONLY .LE. 137 + JRST ERR + IDIVI R,3 ;REMAINDER GIVES COLUMN, QUOTIENT GIVES ROW + LDB W,BDISP(R+1) ;GET 12 BIT ADDRESS FROM DISPATCH TABLE + CAIGE W,MULT-DDTOFS ;FIRST EVAL ROUTINE + JRST DDTOFS(W) + MOVE T,SYL + TLZN F,(LTF) + JRST POWER + CAIN W,SPACE-DDTOFS ;IS TERMINATOR A SPACE? + SKIPE WRD ;IS CONSTRUCTED WORD SO FAR ZERO? + SKIPA T,[OPEVAL,,EVAL] ;SEARCH EVAL 1ST IFF: -SPACE .OR. (WRD).NE.0 + MOVS T,[OPEVAL,,EVAL] ;SEARCH OPEVAL 1ST IFF: SPACE .AND. (WRD)=0 + MOVEM T,SYMORD ;SAVE SYMBOL TABLE SEARCH ORDER + JRST L213 + +L212: HLRZS T,SYMORD ;GET ADDRESS OF THE OTHER LOOKUP ROUTINE + JUMPE T,UND1 ;IF ADR=0, THEN SYMBOL UNDEFINED +L213: PUSHJ P,(T) ;CALL OPEVAL OR EVAL + JRST L212 ;SYMBOL NOT FOUND + CAIN W,ASSEM-DDTOFS ;DEFINED SYMBOL FOLLOWED BY #? + JRST ERR ;IF DEFINED, DON'T ALLOW # +L4: TLZE F,(MF) + MOVN T,T + TLNN F,(SF) + CAIE W,LPRN-DDTOFS + JRST .+2 + JRST LPRN + + EXCH T,FRASE1 + TLNN F,(DVF) + IMULB T,FRASE1 + TLZE F,(DVF) + IDIVB T,FRASE1 + CAIGE W,ASSEM-DDTOFS + JRST DDTOFS(W) ;MULTIPLY OR DIVIDE + ADDB T,FRASE + CAIGE W,SPACE-DDTOFS + JRST DDTOFS(W) ; + - @ , + + ADD T,WRD + TLNE F,(TIF) ;TRUNCATE INDICATOR FLAG + HLL T,WRD ;TRUNCATE + MOVEM T,WRD + TLNN F,(QF) + MOVE T,LWT + SETZM R + MOVE W1,ESTUT + CAMN W1,@USYMP ;IF THERE ARE ANY UNDEFINED SYMBOLS IN + JRST L5 ;THE CURRENT EXPRESSION, ANYTHING EXCEPT + CAILE W,CARR-DDTOFS ;FURTHER EXPRESSION INPUT, OR DEPOSITING + JRST ERR ; INTO MEMORY IS ILLEGAL +L5: CAIG W,RPRN-DDTOFS + JRST DDTOFS(W) + PUSH P,KILRET ;WHEN INSIDE ( ), CURRENT EXPRESSION + SKIPN PRNC ;INVALID FOR ANYTHING OTHER + JRST DDTOFS(W) ; THAN MORE EXPRESSION INPUT + JRST ERR + +WRONG: MOVE W1,[ASCII /XXX/] + PUSHJ P,TEXT + JRST WRONG2 + +ERR: MOVSI W1,(BYTE (7)"?","G"-100) ;QUESTION-DING + JRST WRONG1 + +UNDEF: MOVEI W1,"U" +WRONG1: MOVE P,[IOWD LPDL,PDL] + PUSHJ P,TEXT + PUSHJ P,TTYCLR ;CLEAR INPUT BUFFER +WRONG2: TLNN F,(ROF) ;REGISTER OPEN? + JRST DD1 ;NO, CRLF. OTHERWISE, FALL INTO RET +RET: MOVE P,[IOWD LPDL,PDL] + PUSHJ P,LCT ;COMMON RETURN FOR TAB;,JRST LIS + JRST DD2 + + +UND1: MOVE R,ESTUT ;UNDEFINED SYM ASSEMBLER + JUMPE R,UNDEF ;UNDEFINED IF NO UNDEF SYM TABLE + HLRE S,ESTUT + ASH S,-1 ;SETUP EVAL END TEST + PUSHJ P,EVAL2 + CAIN W,ASSEM-DDTOFS + TLNN F,(ROF) + JRST UNDEF + SKIPE PRNC + JRST UNDEF + MOVEI T,"#" + CAIE W,ASSEM-DDTOFS + PUSHJ P,TOUT + + MOVN R,[XWD 2,2] + ADDB R,ESTUT + MOVE T,SYM + TLO T,(GLOBL) + PUSHJ P,DSYMER ;DEPOSIT AND TYPE ? IF IT FAILS + HRRZ T,LLOCO + TLNE F,(MF) + TLO T,(STNEG) ;SET FLAG TO SHOW SUBTRACTIVE REQUEST + TLO T,(STADD) ;SET FLAG TO SHOW UNCHAINED REQUEST + ADDI R,1 + PUSHJ P,DSYMER + MOVEI T,0 + JRST L4 + +QUESTN: PUSHJ P,CRF ;HERE FOR "?" + TLNE F,(LTF) ;HAS A SYMBOL BEEN TYPED? + JRST QLIST ;NO + MOVE R,@USYMP ;YES, LIST UNDEFINED SYMBOLS +QUEST1: JUMPGE R,DD1 + MOVE T, (R) + SKIPA W1,@USYMP + +QUEST2: ADD W1,[XWD 2,2] + CAME T,(W1) + JRST QUEST2 + CAME R,W1 + JRST QUEST4 + PUSHJ P,SPT + PUSHJ P,CRF +QUEST4: ADD R,[XWD 2,2] + JRST QUEST1 + +QLIST: PUSHJ P,SYMSET ;LIST REFERENCES TO THE SYMBOL +QLIST1: SETZM QLPNT ;ZERO FLAG SHOWING REFERENCE +QLIST2: MOVE T,(R) ;PICK UP SYMBOL + TLZN T,(PNAME) ;A PROGRAM NAME? + JRST QLIST6 ;YES + CAMN T,SYM ;NO, IS AN OCCURANCE FOUND? + HRRZM R,QLPNT ;YES, REMEMBER WHERE +QLIST3: AOBJN R,.+1 ;LOOK THRU TABLE + AOBJN R,QLIST4 ;END OF TABLE SEGMENT? + IFE FTFILE,< + TRNN R,1B18 ;YES, WRAP AROUND + SKIPL R,SAVHSM + > + MOVE R,@SYMP +QLIST4: AOJLE S,QLIST2 ;THRU SEARCHING? + JRST DD1 ;YES + +QLIST6: SKIPN QLPNT ;FOUND THE SYMBOL? + JRST QLIST3 ;NO + PUSHJ P,SPT1 ;YES, PRINT THE PROGRAM NAME + MOVE T,@QLPNT ;GET THE SYMBOL BACK AND + TLNN T,(GLOBL) ; TEST FOR A GLOBAL SYMBOL + JRST QLIST7 ;NOT GLOBAL + PUSHJ P,TSPC ;IS GLOBAL, TYPE " G" + MOVEI T,"G" + PUSHJ P,TOUT +QLIST7: PUSHJ P,CRF + SETZM QLPNT ;RESET FLAG + JRST QLIST3 ; AND SEARCH THE NEXT SET OF SYMBOLS + +NUM: ANDI T,17 ;T HOLDS CHARACTER + TLNE F,(CF+FPF) + JRST NM1 + MOVE W,SYL + LSH W,3 + ADD W,T + MOVEM W,SYL + MOVE W,DEN + IMULI W,12 ;CONVERT TO DECIMAL + ADD W,T + MOVEM W,DEN + AOJA T,LE1A + +DOLLAR: SKIPA T,[46+101-13] ;RADIX 50 $ TO BE +PERC: MOVEI T,47+101-13 ;PERCENT SIGN +LET: TLC F,(SF+FPF) ;EXPONENT IFF (LTF)'*(FEF)'*(T=105)*(SF)*(FPF)=1 + TLZN F,(LTF+FEF+SF+FPF) + CAIE T,105 ; E + TLOA F,(LTF) + TLOA F,(FEF) + JRST LET1 + TLZN F,(MF) + SKIPA W1,SYL + MOVN W1,SYL + MOVEM W1,FSV + CLEARM DEN +LET1: SUBI T,101-13 ;FORM RADIX 50 SYMBOL +LE1A: TLO F,(SF+QF) +LE2: SOSGE TEM ;IGNORE CHARACS AFTER 6 + JRST L2 + MOVEI W,50 + IMULM W,SYM ;MULTIPLY BY RADIX 50 + ADDM T,SYM ; AND ADD NEW CHAR INTO SYM + MOVEI T,"A"-13(T) ;CONVERT LETTERS BACK TO ASCII + IDPB T,CHP + JRST L2 + +NUM1: EXCH T,WRD2 ;FORM NUMBER AFTER $ + IMULI T,12 + ADDM T,WRD2 + TRO F,Q2F + JRST L2 + +NM1: TLNE F,(CF) + JRST NUM1 + MOVEI W1,6 ;FORM FLOATING POINT NUMBER + AOS NM1A + XCT NM1A ;MOVEI W2,.. + MOVSI R,201400 +NM1A1: TRZE W2,1 + FMPR R,FT(W1) + JUMPE W2,NM1B + LSH W2,-1 + SOJG W1,NM1A1 +NM1B: MOVSI W1,211000(T) + FMPR R,W1 ;COMPUTE VALUE OF NEW DIGIT + FADRB R,FH ;ADD VALUE INTO FLOATING NO. + MOVEM R,SYL + AOJA T,LE1A + +POWER: TLNN F,(FEF) + JRST L4 ;NO EXPONENT + CAIE W,PLUS + CAIN W,MINUS + TROE F,POWF + TRZA F,POWF + JRST (W) ; E+- + + MOVE W2,DEN + CLEARM FRASE + MOVEI W1,FT-1 + TLZE F,(MF) + MOVEI W1,FT01 + SKIPA T,FSV +POW2: LSH W2,-1 + TRZE W2,1 + FMPR T,(W1) + JUMPE W2,L4 + SOJA W1,POW2 + +PERIOD: MOVE T,LLOC + TLNE F,(SF) ;SYLLABLE STARTED + MOVE T,DEN + MOVEM T,SYL + TLNE F,(FPF) ;HAS A PERIOD BEEN SEEN BEFORE? + TLO F,(LTF) ;YES, TWO PERIODS MAKES A SYMBOL + TLON F,(FPF+SF+QF) + MOVEI T,0 + IDIVI T,400 + SKIPE T + TLC T,243000 + TLC W1,233000 + FAD T,[0] ;NORMALIZE T AND W1 + FAD W1,[0] + FADR T,W1 + MOVEM T,FH + HLLZS NM1A + MOVEI T,45 ;RADIX 50 PERIOD + JRST LE2 + + IFE FTFILE,< +PILOC: MOVEI T,SAVPI> ;GET ADDRESS FOR $I +QUANIN:;TLO T,(DDTINT) ;(FUTURE) FLAG DDT INTERNAL REGISTERS + JRST QUAN1 + +QUAN: TLNN F,(CCF) ;$Q OR $$Q, WHICH? + SKIPA T,LWT ;$Q STRAIGHT +QUANSW: MOVS T,LWT ;$$Q SWAPPED (ALSO FOR $V) +QUAN1: MOVEM T,SYL +QUAN2: TLO F,(SF+QF) ;WRD,SYL STARTED + TLZ F,(CF+CCF) + JRST L2 + +;HERE WHEN ESC TYPED + +CONTRO: TLOE F,(CF) + TLO F,(CCF) + SETOM WAKALL ;SET WAKEUP ON EVERYTHING + JRST L2 + + IFN FTFILE, + +SUBTTL SYMBOL TABLE LOGIC +;SYMBOL EVALUATION ROUTINE + +EVAL: PUSHJ P,CSHVER ;GO SEE IF CACHE IS USEFUL + JRST EVALC4 ;ITS NOT. GO DO OLD STYLE LOOKUP + MOVSI S,-NSYMCS ;SCAN SYMBOL CACHE FIRST +EVALC1: SKIPN R,SYMCSH(S) ;GET POINTER + JRST EVALC3 ;NOT IN USE + MOVE T,0(R) ;GET SYM + TLZ T,(PNAME) ;FLUSH BITS + CAMN T,SYM ;SAME? + JRST EVALC2 ;YES, DONE +EVALC3: AOBJN S,EVALC1 ;KEEP LOOKING +EVALC4: PUSHJ P,SYMSET ;SET UP SYM TABLE POINTER AND COUNT + +;CERTAIN CALLS ENTER HERE WITH S AND R ALREADY SETUP + +EVAL2: TRZ F,PNAMEF!MDLCLF ;CLEAR FLAGS FOR EVAL + SETZM SYMPNT ;CLEAR LOCAL SYM POINTER + JUMPE S,CPOPJ ;XFER IF SYM TABLE EMPTY + JUMPGE R,CPOPJ ;XFER IF POINTER NOT VALID + +EVAL3: MOVE T,0(R) ;GET SYM FROM SYM TABLE + TLZN T,(PNAME) ;PROGRAM NAME? ALSO CLEAR THE FLAGS + JRST [JUMPE T,EVAL4 ;YES, IGNORE IF SYMBOL IS NULL + TRO F,PNAMEF ;SET PROGRAM NAME FLAG + JRST EVAL4] + CAMN T,SYM ;SYMBOL MATCH? + JRST EVAL6 ;YES +EVAL4: AOBJN R,.+1 ;NO VALID MATCH, CONTINUE LOOKING + AOBJN R,EVAL4A ;POINTER EXPIRED? + IFE FTFILE,< + TRNN R,1B18 ;TEST FOR HIGH SEGMENT SYM TABLE + SKIPL R,SAVHSM ;WAS LOW SEG, GET HIGH SEG POINTER, IF ANY + > + MOVE R,@SYMP ;WRAP AROUND TO LOW SEG END OF TABLE +EVAL4A: AOJLE S,EVAL3 ;TRANSFER IF ANY SYMBOLS LEFT + SKIPN R,SYMPNT ;SEARCH FINISHED, ANY LOCAL SYMS OUTSIDE + POPJ P, ;CURRENT PROGRAM AREA? + TRNE F,MDLCLF ;YES, WITH A UNIQUE VALUE? + JRST ERR ;NO, AMBIGIOUS +EVAL5: HRRZ W1,R + PUSHJ P,SYMCSI ;ADD SYM TO CACHE +EVALC2: MOVE T,1(R) ;GET VALUE OF SYMBOL +CPOPJ1: AOS (P) ;FOUND SYMBOL, SKIP +CPOPJ: POPJ P, +EVAL6: MOVE T,(R) ;SYM MATCHES, GET FLAGS BACK + TLNE T,(DELI) ;IS SYMBOL DELETED FOR INPUT? + JRST EVAL4 ;YES + TLNN T,(GLOBL) ;GLOBAL SYMS VALID ANYWHERE + TRNN F,PNAMEF ;HAS SECOND PROGRAM TABLE BEEN STARTED? + JRST EVAL5 ;LOCALS ALWAYS VALID IN CURRENT PROGRAM + SKIPN T,SYMPNT ;LOCAL OUTSIDE OF CURRENT PROGRAM + JRST EVAL7 ;YES, AND THE 1ST ONE OF THEM + MOVE T,1(T) ;GET VALUE OF PREVIOUS LOCAL + CAME T,1(R) ;IS IT THE SAME VALUE? + TRO F,MDLCLF ;NO, MULTIPLY DEFINED +EVAL7: MOVEM R,SYMPNT ;SAVE POINTER TO THIS LOCAL + JRST EVAL4 ;CONTINUE LOOKING FOR GLOBALS + +;BIT 40 - DELETE OUTPUT +; 20 - DELETE INPUT +; 10 - LOCAL +; 04 -GLOBAL +; NO BITS - PROGRAM NAME + +;SYMBOL TABLE POINTER AND COUNT SET UP ROUTINE + +SYMSET: IFE FTFILE,< + MOVEI R,.JBHSM ;TRY TO GET HIGH SEG SYM TABLE POINTER + IFN FTEXEC, ;NO HI SYM TABLE POINTER IN EXEC MODE + PUSHJ P,HFETCH + MOVEI T,0 ;NO HIGH SEGMENT + MOVEM T,SAVHSM ;SAVE HIGH SEG POINTER (OR 0) + > + HLLZ S,@SYMP ;GET WORD COUNT FOR LOW SEG TABLE + IFE FTFILE,< + SKIPGE T ;IF .JBHSM .GT. 0, INVALID + ADD S,T ;ADD WORD COUNT FOR HIGH SEG TABLE + > + ASH S,-^D19 ;PUSH TO RIGHT HALF AND DIVIDE BY 2 + SKIPL T,PRGM ;GET $: POINTER, GOOD ONLY IF .LT. 0 + JRST SYMS4 ;NOT GOOD, USE .JBSYM + IFE FTFILE,< + TRNE T,1B18 ;POINTER FROM .JBSYM OR .JBHSM? + JRST [PUSH P,T ;SAVE T + MOVEI R,.JBHNM ;NAME WORD + PUSHJ P,HFETCH ;GET FROM HISEG + SETCM T,SEGNAM ;SHOULD NEVER FAIL + MOVE R,T ;SAVE IN BETTER AC + POP P,T ;RESTORE T + CAME R,SEGNAM ;SAME HISEG? + JRST SYMS4 ;NO + JRST SYMS2] ;YES + > + SKIPL T,@SYMP ;PRGM CAME FROM .JBSYM + JRST SYMS5 ;.JBSYM POINTER INVALID +SYMS2: HLRE R,T ;GET NEGATIVE LENGTH + SUB T,R ;GET LAST ADR OF TABLE + MOVS R,PRGM ;GET NEG. LENGTH FOR $: POINTER + ADD R,T ; AND CALCULATE STARTING ADR + HLL R,PRGM ; AND SET UP TABLE LENGTH + JUMPL R,CPOPJ ;NO, POINTER IS OK AS LONG AS IT IS .LT. 0 +SYMS4: SKIPL R,@SYMP ;SET UP POINTER INTO LOW SEG TABLE +SYMS5: IFE FTFILE,< + MOVE R,SAVHSM ;LOW SEG POINTER BAD, TRY HI SEG + > + IFN FTFILE,< + MOVEI R,0 + > + POPJ P, + +SETNAM: SETZM PRGM ;FORGET OLD PROGRAM + PUSHJ P,CLRCSH ;CLEAR SYMBOL CACHE + SKIPGE R,@SYMP ;LOOK UP PROGRAM NAME FOR $: + PUSHJ P,SETSUB ;SEARCH LO SEG SYM TABLE + JUMPL R,SETN2 ;XFER IF NAME FOUND + IFE FTFILE,< + MOVEI R,.JBHSM + IFN FTEXEC, ;NO HI SYM TABLE POINTER IN EXEC MODE + PUSHJ P,HFETCH ;GET .JBHSM + JRST UNDEF ;NO HI SEG, NAME$: UNDEFINED + SKIPGE R,T ;IS HI SEG POINTER GOOD? + PUSHJ P,SETSUB ;YES, LOOK THRU HI SYM TABLE + > + JUMPGE R,UNDEF ;UNDEFINED IF NOT IN HI SEG + IFE FTFILE,< + HRRI W,1B18 ;SET FLAG SHOWING HI SEGMENT + MOVEI R,.JBHNM ;GET ADR OF HI SEG PROGRAM NAME + IFN FTEXEC, + PUSHJ P,HFETCH ; AND GO GET THE NAME + MOVEI T,0 ;NO HI SEG NAME, OR EXEC MODE + MOVEM T,SEGNAM > ;SAVE HI SEG NAME +SETN2: MOVEM W,PRGM ;SAVE -WC IN LH, HISEG=1 FLAG IN RH + JRST RET ;DONE, THANK YOU + + ;SUBROUTINE TO SEARCH A SYM TABLE FOR A PROGRAM NAME +SETSB1: MOVE T,(R) ;ENTRY POINT IS "SETSUB" + CAMN T,SYM ;MATCH FOR PROGRAM NAME? + POPJ P, ;YES, RETURN WITH "ANSWER" IN W + ADD R,[2,,2] ;GO TO NEXT ENTRY + TLNN T,(PNAME) ;WAS LAST ENTRY A PROG NAME? +SETSUB: HLLZ W,R ;(ENTRY POINT) YES, SAVE POINTER TO HERE + JUMPL R,SETSB1 ;XFER IF ANY SYMBOLS LEFT + POPJ P, ;SEARCH FAILED, RETURN + +KILL: TLNN F,(LTF) ;DELETE SYMBOLS + JRST ERR + PUSHJ P,EVAL + JRST KILL1 + MOVE T,(R) ;GET SYM WITH FLAGS + TLO T,(DELO) ;ASSUME DELETE OUTPUT + TLNE F,(CCF) ;$$K? + MOVSI T,(DELO!DELI!37777B17) ;MAKE SYM IMPOSSIBLE LOCAL, DELETED IN AND OUT + PUSHJ P,DSYMER ;DEPOSIT IF LEGAL, ELSE ? +KILRET: JRST RET ;USED AS A CONSTANT + + +KILL1: SKIPL R,@USYMP ;REMOVE UNDEFINED SYMS + JRST UNDEF +KILL1A: HLRE S,R ;GET LENGTH OF UNDEFINED TABLE, AND + ASH S,-1 ;DIVIDE BY 2 TO GET # OF ENTRIES + IFE FTFILE,< + SETZM SAVHSM ;LOOK ONLY IN LOW SEG + > +KILL2: PUSHJ P,EVAL2 + JRST RET +REPEAT 0,< ;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES + PUSH P,R + SKIPL R,1(R) ;CHAINED REQUEST? + JRST KILL4 ;YES +KILL3: POP P,R > + PUSHJ P,REMUN + JRST ERR ;CAN'T MODIFY SYMTAB + MOVE R,@USYMP ;START TABLE SEARCH OVER + JRST KILL1A + +REPEAT 0,< ;IF ASSEMBLED OUT, DON'T ZERO CHAINED ADDRESSES +KILL4A: SKIPE R,S ;GET CHAIN ADR, STOP IF 0 +KILL4: PUSHJ P,FETCH ;GET NEXT ADR OF CHAIN + JRST KILL3 ;FAILED, QUIT SEARCHING LIST + HRRZ S,T ;SAVE CHAIN POINTER + HLLZS T ;GET RID OF CHAIN ADDRESS, AND + PUSHJ P,DEPMEM ; DEPOSIT BACK INTO MEMORY + JFCL ;IGNORE IF WRITE LOCKED SEG + JRST KILL4A > + +REMUN: MOVE S,@USYMP ;REMOVE ONE UNDEFINED SYMBOL + MOVE T,(S) ;MOVE SYMBOL 2 LOCATIONS + PUSHJ P,DEPSYM + POPJ P, ;CAN'T MODIFY SYMTAB + MOVE T,1(S) + ADDI R,1 + PUSHJ P,DSYMER + SUBI R,1 + MOVE S,[2,,2] + ADDB S,@USYMP + JRST CPOPJ1 + +TAG: TLNN F,(LTF) ; NO LETTERS IS ERROR + JRST ERR ; GO SAY ERROR + TLNE F,(FAF) ; DEFINE SYMBOLS + JRST DEFIN ;A.LT.B: + TLNE F,(CF) ;DEFINE SYMBOL AS OPEN REGISTER + JRST SETNAM + MOVE W,LLOCO + HRRZM W,DEFV + +DEFIN: PUSHJ P,EVAL ;DEFINED SYMBOL? + JRST DEF1 ;NO - DEFINE + MOVE T,0(R) ;YES, GET FLAGS FOR SYMBOL TYPE + TLNE T,(PNAME) ;PROGRAM NAME? + JRST DEF2 ;NO, REDEFINE SYMBOL + +DEF1: SKIPL R,@SYMP ;DEFINE A NEW SYMBOL + IFE FTFILE,< + JRST [MOVEI R,.JBHSM + IFN FTEXEC, ;NO HI SYM POINTER IN EXEC MODE + PUSHJ P,HFETCH ;GET HI SEG SYM POINTER + JRST ERR ;THERE IS NO SYM POINTER ANYWHERE + SUB T,[2,,2] ;MAKE ROOM FOR ANOTHER ENTRY + PUSHJ P,DSYMER ; AND STORE IT BACK + MOVE R,T + JRST DEF1A] + > + IFN FTFILE,< + JRST ERR + > + SUB R,[2,,2] + MOVEM R,@SYMP ;DECREMENT LO SEG SYM POINTER +DEF1A: SKIPL @USYMP ;DOES AN UNDEFINED TABLE EXIST? + JRST DEF2 ;NO + MOVE S,R + SOS R,@USYMP ;MOVE HI NUMBERED ENTRY ON UNDEFINED + MOVE T,1(S) ; TABLE TO LOW END + PUSHJ P,DSYMER + SOS R,@USYMP ;SAME FOR SECOND WORD + MOVE T,(S) + PUSHJ P,DSYMER + MOVE R,S ;GET DEFINED SYM POINTER BACK +DEF2: MOVSI T,(GLOBL) + IORB T,SYM + PUSHJ P,DSYMER + MOVE T,DEFV + MOVEI R,1(R) + PUSHJ P,DSYMER + MOVE R,@USYMP + +DEF3: JUMPGE R,RET ;PATCH IN VALUE FOR UNDEF SYM ENTRY + MOVE T,SYM + TLO T,(GLOBL) ;UNDEFINED TABLE HAS GLOBAL ENTRIES + CAME T,(R) + JRST DEF4 + PUSH P,R ;SAVE POINTER INTO UNDEF TABLE + SKIPL R,1(R) ;IS ENTRY AN ADDITIVE REQUEST? + JRST DEF7 ;NO, CHAINED IN RIGHT HALF + PUSHJ P,FETCH ;GET OBJECT CELL + JRST ERR + TLNN R,(STNEG) ;ADDITIVE OR SUBTRACTIVE? + SKIPA S,DEFV ;ADDITIVE + MOVN S,DEFV ;SUBTRACTIVE + TLNE R,(STLH) ;RIGHT OR LEFT HALF? + JRST [HRLZS S ;LEFT HALF + ADD T,S ;ADD INTO LEFT HALF + JRST DEF5] + ADD S,T ;RIGHT HALF, ADD HALVES + HRR T,S ; AND REPLACE RIGHT HALF +DEF5: PUSHJ P,DMEMER ;STORE RESULT BACK INTO MEMORY +DEF6: POP P,R ;GET UNDEF TABLE POINTER BACK + PUSHJ P,REMUN + JRST ERR ;CAN'T MODIFY SYMTAB +DEF4: ADD R,[XWD 2,2] ;REMOVE THE NOW DEFINED SYMBOL + JRST DEF3 + +DEF7: JUMPE R,DEF6 ;JUMP IF ALL DONE + PUSHJ P,FETCH ;GET OBJECT CELL + JRST ERR + HRRZ S,T ;SAVE CHAIN POINTER + HRR T,DEFV ;REPLACE WITH NEW VALUE + PUSHJ P,DMEMER ; AND STORE BACK INTO MEMORY + HRRZ R,S ;LOOP TO END + JRST DEF7 ; OF CHAIN + +SUBTTL TEXT COMMANDS (" AND $") + +TEXI: TRZE F,Q2F ;QUANT AFTER $ ? + JRST [MOVE T,WRD2 ;YES + CAIE T,5 ; $5" ? + JRST ERR ;NO, ONLY CASE KNOWN + MOVE T,SYM ;YES, TAKE PREVIOUS SYL AS RADIX50 + TLZ F,(FPF+FEF+LTF) ;REINIT SYL + JRST QUAN1] + HRRZ T,LLOCO ;GET ADR OF OPEN REG + MOVEM T,TEM ;SAVE IT FOR LOCAL USE + PUSHJ P,TEXIN0 ;GET TERMINATOR + MOVEM T,SYL ;SAVE TERMINATOR + PUSHJ P,TEXIN ;GET FIRST CHARACTER + CAIN T,33 ;ESC? + JRST QUAN2 ;YES, EQUALS ONE ASCII/SIXBIT CHAR + PUSHJ P,TEXIN1 ;CONVERT TO SIXBIT IF NECESSARY +TEXI4: MOVE W1,[POINT 7,W] ;SETUP TO BUILD WORD IN W + TLNE F,(CF) ;SIXBIT? + HRLI W1,(POINT 6,0) ;YES, MODIFY BYTE POINTER + MOVEI W,0 ;INIT WORD TO 0 +TEXI2: CAMN T,SYL ;REACHED TERMINATOR? + JRST [MOVE T,W ;GET LAST WORD + HRRZ R,TEM + CAMN R,LLOCO ;MULTIPLE-WORD INPUT? + JRST QUAN1 ;NO, JUST RETURN QUANTITY + PUSHJ P,PSHLLC ;YES, SAVE OLD LOC + MOVEM R,LLOC ;SET LOC TO END OF INPUT + MOVEM R,LLOCO + JRST QUAN1] ;GO USE AS QUANTITY + TLNN W1,(76B5) ;ROOM FOR ANOTHER BYTE IN WORD? + JRST TEXI3 ;NO + IDPB T,W1 ;YES, STORE IT + PUSHJ P,TEXIN0 ;GET ANOTHER INPUT CHARACTER + JRST TEXI2 + +;HERE WHEN WORD FULL + +TEXI3: MOVSI W1,(POINT 0,0) + TLNN F,(ROF) ;REGISTER OPEN? + JRST TEXI2 ;NO, LOSE ANY ADDITIONAL INPUT + PUSH P,T ;SAVE CHARACTER + MOVE T,W ;GET FULL WORD + HRRZ R,TEM ;GET LOC OF NEXT REGISTER + PUSHJ P,DEPMEM ;STORE WORD + JRST ERR ;CAN'T + AOS TEM ;BUMP LOC + POP P,T ;RECOVER CHARACTER + JRST TEXI4 ;GO REINIT WORD AND CONTINUE INPUT + +;GET INPUT CHARACTER, CONVERT TO SIXBIT IF NECESSARY + +TEXIN0: PUSHJ P,TEXIN ;GET CHAR +TEXIN1: TLNN F,(CF) ;SIXBIT MODE? + POPJ P, ;NO +CONV6: CAIL T,"A"+40 ;IS CHAR BETWEEN LOWER CASE "A" AND + CAILE T,"Z"+40 ; LOWER CASE "Z"? + SKIPA ;NO + TRC T,40 ;YES, CONVERT TO UPPER CASE + CAIL T," " ;IS CHAR IN SIXBIT SET? + CAILE T,"_" + JRST ERR ;NO + ANDI T,77 ;YES, MASK TO 6 BITS + TRC T,40 ;CONVERT TO SIXBIT FORM + POPJ P, + +;***ROUTINES BEYOND HERE EVALUATE THEIR ARGUMENT*** + +MULT: TLOA F,(PTF+MLF) ;* +DIVD: TLO F,(DVF+PTF) ;SINGLE QUOTE + JRST L1 + +ASSEM: JRST PLUS ;# +MINUS: TLO F,(MF) +PLUS: TLO F,(PTF) + JRST LIS2 + +LPRN: PUSH P,F ;RECURSE FOR OPEN PAREN + PUSH P,WRD + PUSH P,FRASE + PUSH P,FRASE1 + AOS,PRNC + JRST LIS + +INDIRE: HRLZI W,20 ;@ + IORB W,WRD + TLO F,(QF) + JRST LIS2 + +ACCF: MOVE R,T ;COMMA PROCESSOR + XCT ACCCF ;MOVEI T,.. + TLOE F,(COMF) ;COMMA TYPED BEFORE? + JRST ACCF1 ;YES + HRRM R,ACCCF ;NO, SAVE LEFT HALF OF A,,B + HLLZ T,R + LDB W1,[POINT 3,WRD,2] ;CHECK FOR IO INSTRUCTION + IDIVI W1,7 + LSH R,27(W1) + ADD T,R + ADDB T,WRD + JRST SPAC1 + +ACCF1: ADD T,WRD ; FOR ",," GET LEFT HALF TOGETHER + HRLZM T,WRD ; AND PUT IT IN LEFT HALF + JRST SPAC1 + +SPACE: TLNE F,(QF) +SPAC1: TLO F,(TIF) + TLZ F,(MF+PTF) + JRST LIS1 + +RPRN: TLNN F,(QF) ;) + MOVEI T,0 + MOVS T,T + SOSGE,PRNC + JRST ERR + POP P,FRASE1 + POP P,FRASE + POP P,WRD + POP P,F + TLNE F,(PTF) + TLNE F,(SF) + JRST RPRN1 + MOVEM T,SYL + TLO F,(QF+SF) + JRST L1RPR +RPRN1: ADDB T,WRD + TLO F,(QF) + JRST L1A + +SUBTTL REGISTER EXAMINATION LOGIC + +LINEF: PUSHJ P,DEPRA ;NEXT REGISTER + PUSHJ P,CRN ;DO CR ONLY + AOS T,LLOC ;BUMP LOC +LI1: ;PUSHJ P,LINCHK ;TRUNCATE ADRS (UNLESS INSIDE DDT) + HRRZM T,LLOC + HRRZM T,LLOCO + PUSHJ P,PAD + MOVEI T,"/" + CAME SCH,SCHM ;TEMP MODE SAME AS PERM? + JRST [CAIN SCH,FTOC ;NO, CONSTANT? + MOVEI T,"[" ;YES + CAIN SCH,PIN ;INSTRUCTION? + MOVEI T,"]" ;YES + JRST .+1] ;USE APPROPRIATE INDICATION + TLNE F,(STF) + MOVEI T,"!" + PUSHJ P,TOUT +LI2: TLZ F,(ROF) + PUSHJ P,LCT + MOVE R,LLOCO + PUSHJ P,FETCH + IFE FTDEC20,< + JRST ERR> + IFN FTDEC20,< + JRST [TLO F,(ROF) ;SAY REGISTER OPENED + MOVEI W1,"?" ;BUT ONLY TYPE "?" + JRST TEXT]> + TLO F,(ROF) + TLNE F,(STF) + JRST DD2 + JRST CONSYM ;RETURN IS A POPJ + +;CRLF AND OPEN NEXT REGISTER SUBROUTINE + +LI0: PUSHJ P,CRF + AOS T,LLOC + JRST LI1 + + REPEAT 0,< +LINCHK: CAML T,[DDTINT SAVPI] ;TRUNCATE ADDRESSES + CAMLE T,[DDTINT BNADR+2] + HRRZS T + MOVEM T,LLOC + MOVEM T,LLOCO + POPJ P, + > +VARRW: PUSHJ P,DEPRA ;^ + PUSHJ P,CRF + SOS T,LLOC + JRST LI1 + +CARR: PUSHJ P,DEPRA ;CLOSE REGISTER + PUSHJ P,TIN ;GLOBBLE UP FOLLOWING LINEFEED +CARR1: SETZM CHINP ;REINIT INPUT LINE + SETZM CHINC + HRRZ T,LLOC ;GET CURRENT LOC + TLNE F,(CF) ; $ PRECEEDED? + JRST LI1 ;YES, GO OPEN REGISTER + JRST DD1.5 + +SLASH: TLNN F,(CCF) ; $$/ ? + JRST SLAS2 ;NO + SETCMM EFAFLG ;YES, COMPLEMENT EFF ADR FLAG + JRST RET ;OPEN NO REGISTER + +OCON: TLNE F,(QF) ;QUANT TYPED? + MOVEI SCH,FTOC ;YES, CHANGE TEMP MODE TO CONSTANT + TRO F,LF1+CF1 ;OPEN AS CONSTANT + JRST SLAS2 ;TYPE + +OSYM: TLNE F,(QF) ;QUANT TYPED? + MOVEI SCH,PIN ;YES, CHANGE TEMP MODE TO INSTRUCTION + TRZ F,CF1 ;OPEN SYMBOLICALLY + TROA F,LF1 +SUPTYO: TLOA F,(STF) ;SUPPRESS TYPEOUT +SLAS2: TLZ F,(STF) ;TYPE OUT NOT SUPPRESSED +SLASH2: PUSHJ P,CEFF ;COMPUTE EFF ADR + TLNN F,(QF) ;WAS ANY QUANTITY TYPED? + JRST SLAS1 ;NO. DO NOT CHANGE MAIN SEQUENCE + PUSHJ P,PSHLLC ;PUSH OLD SEQUENCE + HRRZM T,LLOC ;SETUP NEW SEQUENCE +SLAS1: HRRZM T,LLOCO + JRST LI2 + +ICON: PUSHJ P,DEPRS ;BACKSLASH + PUSHJ P,CEFF ;COMPUTE EFF ADR + JRST SLAS1 + +TAB: PUSHJ P,DEPRS ;OPEN REGISTER OF Q + PUSHJ P,CEFF ;COMPUTE EFF ADR + MOVEI T,-1(T) + PUSHJ P,PSHLLC ;PUSH OLD SEQUENCE + MOVEM T,LLOC ;SETUP NEW SEQUENCE + HRROI T,700000 ;3 RUBOUTS + PUSHJ P,TEXTT + JRST LI0 + +;ROUTINE TO COMPUTE EFFECTIVE ADDRESS OF QUANTITY IN T. COMPUTATION +;IS PERFORMED USING USER PROGRAM VARIABLES. +; T/ QUANTITY +; PUSHJ P,CEFF +; RETURN +1 ALWAYS, T/ EFFECTIVE ADDRESS IN RH +;PRINTS "??" AND BOMBS OUT IF INDIRECT WORD NOT ACCESSIBLE + +CEFF: SKIPE EFAFLG ;PERMANENT MODE CHANGED? + TLC F,(CF) ;YES, COMPLEMENT EFFECT OF ESC + TLZN F,(CF) ;ESC BEFORE COMMAND? + POPJ P, ;NO, USE RH ONLY + TLNN T,17 ;INDEXING? + JRST CEFF1 ;NO + PUSH P,T ;YES, SAVE QUANTITY + LDB R,[POINT 4,T,17] ;GET INDEX ADDRESS + PUSHJ P,FETCH ;FETCH CONTENTS OF XR + JFCL ;ASSUME AC'S ALWAYS ACCESSABLE + POP P,R ;RECOVER ORIGINAL QUANTITY + ADD T,R ;T=Y+C(XR) + HLL T,R ;KEEP ORIGINAL LH +CEFF1: TLNN T,(Z @0) ;HAVE INDIRECTION? + POPJ P, ;NO, DONE + HRRZ R,T ;YES, GET INDIRECT ADDRESS + PUSHJ P,FETCH ;FETCH CONTENTS + JRST CEFF2 ;FETCH FAILED + JRST CEFF ;REPEAT USING INDIRECT WORD + +CEFF2: MOVSI W1,(ASCII /??/) ;INDIRECT FETCH FAILED + PUSHJ P,TEXT ;PRINT LOSS INDICATION + JRST DD1 ;LEAVE REGISTER NOT OPEN, DO CRLF, ETC. + +;ROUTINES TO HANDLE RING BUFFER OF LOCATIONS + +;'PUSH' CURRENT LOCATION + +PSHLLC: AOS TT,SAVLP ;BUMP POINTER + CAIL TT,NSAVTB ;AT END OF TABLE? + SETZB TT,SAVLP ;YES, WRAPAROUND + PUSH P,LLOC ;GET CURRENT LOCATION + POP P,SAVLTB(TT) ;ADD IT TO TABLE + POPJ P, + +;'POP' CURRENT LOCATION + +POPLLC: MOVE TT,SAVLP ;GET POINTER + MOVE TT,SAVLTB(TT) ;REMOVE FROM TABLE + MOVEM TT,LLOC ;SET AS CURRENT LOC + SOS TT,SAVLP ;DECREMENT PTR + JUMPGE TT,POPLC1 ;AT TOP OF TABLE? + MOVEI TT,NSAVTB-1 ;YES, WRAPAROUND + MOVEM TT,SAVLP +POPLC1: POPJ P, + +DEPRA: TLNE F,(CF) ;$ PRECEEDED? + PUSHJ P,POPLLC ;YES, POP OLD SEQUENCE + TLNE F,(ROF) ;IF REGISTER IS BEING CHANGED + TLNN F,(QF) ;REMOVE ALL PREVIOUS UNDEFINED + JRST DEPRS ;SYMBOL REFERENCES TO IT + MOVE R,@USYMP ;GET POINTER TO ALL OLD UNDEF ITEMS + MOVEM W1,@USYMP ;INCLUDE THE NEW ITEMS IN UNDEF LIST + IFN FTFILE,< + SKIPN CRASHS ;SEE IF /M + JRST DEPRS ;YES--NO UNDEF FIXUPS + > + MOVEM T,LWT ;SAVE T IN LWT, DEPRS DOES IT ANYWAY +DEPRA2: JUMPGE R,DEPRA5 ;IF JOBUSY SYM TABLE EDITED, STOP + PUSH P,R + MOVE W,1(R) ;GET FLAGS AND POINTER + JUMPG W,DPRS3 ;1B0=0 IMPLIES CHAINING +DEPRA4: POP P,R + HRRZ T,1(R) ;GET ADDRESS OF FIXUP + SKIPE T ;DELETE ENTRY IF ADR=0, OR + CAMN T,LLOCO ; IF ADR IS BEING CHANGED + JRST [PUSHJ P,REMUN ;REMOVE ENTRY FROM JOBUSY + JRST DEPRA5 ;FAILED, NO UNDEF FIXUPS + JRST .+1] + ADD R,[2,,2] ;CONTINUE SEARCHING TABLE + JRST DEPRA2 + +DEPRA5: MOVE T,LWT ;RESTORE QUANTITY + JRST DEPRS ;DO THE STORE + +DPRS3: HRROI S,1(R) ;GET 1ST CHAIN ADR FROM JOBUSY TABLE + ; AND SET FLAG TO USE DEPSYM FIRST TIME +DPRS4: HRRZ R,W ;GET NEXT ADR (AFTER ADR IN S) + JUMPE R,DEPRA4 ;STOP ON 0 ADR + PUSHJ P,FETCH ;GET CONTENTS OF ADR IN R + JRST DEPRA4 ;****UNDEFINED SYMBOL TABLE OR FIXUP + ; CHAIN POINTS TO ILL. MEM. TRY + ; TO CONTINUE. + EXCH T,W + EXCH S,R + CAME S,LLOCO ;IS THIS WORD BEING CHANGED? + JRST DPRS4 ;NO, CONTINUE SEARCHING LIST + HRR T,W ;PATCH CHAIN ADR AROUND ITEM + TLNN R,-1 ;SEE IF NEED TO USE DEPSYM + TDZA TT1,TT1 ;NO--USE DEPMEM + MOVEI TT1,DEPSYM-DEPMEM ;YES. NOTE THAT R CAME FROM S + ; WHICH HAS -1 IN LH FIRST TIME AROUND + ; LOOP AND 0 OTHER TIMES. + PUSHJ P,DEPMEM(TT1) ;CALL EITHER DEPMEM OR DEPSYM + HALT . + JRST DPRS4 ;CONTINUE DOWN CHAIN + +SUBTTL MODE CONTROL SWITCHES + +TEXO: MOVEI R,TEXTT-HLFW ;$T ASSUME 7 BIT ASCII + MOVE T,WRD2 + CAIN T,6 ;CHECK FOR $6T + MOVEI R,SIXBP-HLFW ;SET MODE SWITCH FOR SIXBIT + CAIN T,5 ;CHECK FOR $5T + MOVEI R,R50PNT-HLFW ;SET MODE SWITCH FOR RADIX 50 +HWRDS: ADDI R,HLFW-TFLOT ;H +SFLOT: ADDI R,TFLOT-PIN ;F +SYMBOL: ADDI R,PIN-FTOC ;S +CON: ADDI R,FTOC ;C + HRRZM R,SCH + JRST BASE1 + +RELA: TRZE F,Q2F ;CHANGE ADDRESS MODE TO RELATIVE + JRST BASECH + MOVEI R,PADSO-TOC +ABSA: ADDI R,TOC ;A + HRRZM R,AR + JRST BASE1S + +BASECH: MOVE T,WRD2 ;$NR CHANGE OUTPUT RADIX TO N, N .GT. 1 + CAIGE T,2 + JRST ERR + HRRZM T,ODF +BASE1: SKIPE S,OLDAR + MOVE AR,S +BASE1S: SETZM OLDAR +BASE1O: MOVS S,[XWD SCHM,SCH] + TLNN F,(CCF) + JRST LIS1 + BLT S,ODFM ;WITH $$, MAKE MODES PERMANENT + MOVE S,[SVBTS,,PSVBTS] + BLT S,PSVBTS+2 + JRST RET + +SEMIC: MOVEM T,LWT ;SEMICOLON TYPES IN CURRENT MODE + JRST @SCH + +EQUAL: TROA F,LF1+CF1 ;= +PSYM: TRZ F,CF1 ;@ + TRO F,LF1 + PUSHJ P,CONSYM + JRST RET + +;OPEN ANGBKT, CLOSE ANGBKT + +FIRARG: TLNE F,(CF+CCF) ;$ PRECEEDED? + JRST PTCH ;YES, PATCH COMMAND + MOVEM T,DEFV ;NO, SET FIRST ARG + TLO F,(FAF) + JRST ULIM1 + +ULIM: TLNE F,(CF+CCF) ;$ PRECEEDED? + JRST PTCHE ;YES, PATCH END COMMAND + TLO F,(SAF) ;NO, SET SECOND ARG + HRRZM T,ULIMIT +ULIM1: TLNN F,(QF) + JRST ERR + JRST LIS0 + +SUBTTL PATCH COMMAND -- PATCH BEGIN + +PTCH: TLNN F,(TIF+COMF+PTF+MF) ;EXPRESSION TYPED? + TLNN F,(ROF) ;NO REGISTER OPEN? + JRST ERR ;YES, ERROR + TLNE F,(QF) ;ANYTHING TYPED? + JRST [PUSHJ P,EVAL ;YES, LOOKUP SYMBOL + JRST ERR ;STRANGE TYPEIN, LOSE + JRST PTCH4] ;FOUND, USE VALUE AS PATCH LOC + MOVSI W,-NPSYM ;SETUP TO SCAN PATCH SYMBOLS +PTCH1: MOVE T,PCHSYM(W) ;GET A POSSIBLITY + MOVEM T,SYM ;SET IT UP FOR EVAL + PUSHJ P,EVAL ;TRY TO FIND VALUE + AOBJN W,PTCH1 ;NOT FOUND, TRY NEXT SYMBOL + JUMPGE W,[MOVEI R,.JBFF ;NONE OF THE SYMBOLS EXIST, USE .JBFF + HRRZ T,0(R) + JRST PTCH2] +PTCH4: MOVEI R,1(R) ;POINT TO VALUE WORD +PTCH2: CAIGE T,.JBDA ;HAVE REASONABLE PATCH ADDRESS? + JRST ERR ;NO + HRRZM T,PTLOC ;YES, SAVE IT + HRLM R,PTLOC ;SAVE WHERE IT CAME FROM + HRRZ R,LLOCO ;LOC OF OPEN REGISTER + HRRZM R,PTLLC ;SAVE IT + PUSHJ P,FETCH ;GET CONTENTS + JRST ERR ;FETCH FAILED + MOVEM T,PTWRD ;SAVE ORIGINAL WORD + PUSHJ P,DEPERR ;BE SURE IT CAN BE CHANGED, ERR IF NOT + TLNE F,(CCF) ;SAVE BEFORE/AFTER FLAG + HRROS PTLLC ;0 MEANS BEFORE, 1 (NEGATIVE) MEANS AFTER + SKIPL PTLLC ;PATCH AFTER? + JRST PTCH3 ;NO + HRRZ R,PTLOC ;YES, MOVE INSTRUCTION TO PTLOC NOW + MOVE T,PTWRD + PUSHJ P,DEPERR ;STORE IT +PTCH3: PUSHJ P,CRF ;OPEN REG AT PTLOC AND PRINT CONTENTS + HRRZ T,PTLOC + PUSHJ P,LI1 + SKIPGE PTLLC ;PATCH AFTER? + PUSHJ P,LI0 ;YES, OPEN SECOND LOC IN PATCH AREA + POPJ P, ;DONE FOR NOW + +;TABLE OF SYMBOLS IDENTIFYING PATCH AREAS + +PCHSYM: RADIX50 0,PATCH ;ANOTHER LIKELY POSSIBILITY + RADIX50 0,PAT.. ;USUAL LINK10 SYMBOL + RADIX50 0,PAT ;TOPS-10 SYMBOL +NPSYM==.-PCHSYM + +SUBTTL PATCH COMMAND -- PATCH END + +PTCHE: SKIPN PTLOC ;PATCH IN PROGRESS? + JRST ERR ;NO, ERROR + TLZ F,(CF+CCF) ;FLUSH FLAGS BEFORE DEPRA + PUSHJ P,DEPRA ;STORE LAST WORD IF ANY + SKIPGE PTLLC ;PATCH BEFORE? + JRST PTCHE1 ;NO + HRRZ R,LLOC ;YES, MOVE ORIG INSTRUCTION NOW + AOS R ;MOVE IT TO NEXT LOC + MOVE T,PTWRD + PUSHJ P,DEPERR ;STORE IT + PUSHJ P,LI0 ;OPEN FOR USER TO SEE +PTCHE1: HRRZ R,LLOC ;STORE JUMPA 1,ORIG+1 + AOS R ; IN NEXT LOC + HRRZ T,PTLLC + ADD T,[JUMPA 1,1] + PUSHJ P,DEPERR + PUSHJ P,LI0 ;OPEN FOR USER TO SEE + HRRZ R,LLOC ;STORE JUMPA 2,ORIG+2 + AOS R ; IN NEXT LOC + HRRZ T,PTLLC + ADD T,[JUMPA 2,2] + PUSHJ P,DEPERR + PUSHJ P,LI0 ;OPEN FOR USER TO SEE + AOS T,LLOC ;GET NEXT FREE PATCH LOC + HLRZ R,PTLOC ;UPDATE WORD THAT PATLOC CAME FROM + HRRM T,0(R) + HRRZ R,PTLLC ;GET ORIG ADDRESS + HRRZ T,PTLOC ;PUT JUMPA PATCH INTO IT + HRLI T,(JUMPA 0,) + PUSHJ P,DEPERR + PUSHJ P,CRF + HRRZ T,R ;NOW OPEN ORIG REGISTER FOR USER TO SEE + PUSHJ P,LI1 + SETZM PTLOC ;SAY NO PATCH IN PROGRESS + POPJ P, ;DONE +SETPAG==ERR +XLIST + +REPEAT 0,< +SUBTTL PAGE TABLE CONTROL ($U) + + IFE FTDEC20,< + IFE FTEXEC!FTFILE,< SETPAG==ERR> + IFN FTEXEC!FTFILE,< + +;COMMAND TO MAKE LIFE EASIER ON THE KI10 AND KL10. +;FORMAT IS: +; $U +; +; 1. $U - RESTORE NORMAL MODE +; 2. K$U - SET USER PAGING WITH UPT AT PAGE K +; 3. K$NU - SET EXEC PAGING WITH UPT AT K AND EPT AT N +; +SETPAG: TLZE F,(QF) ;USER SPECIFIED + JRST SETPG1 ;YES--CHARGE AHEAD + TRZE F,Q2F ;EXEC TYPED + JRST ERR ;YES--ERROR + SETZM EPTUPT ;JUST $U CLEAR FLAG WORD + JRST RET ;DONE +SETPG1: TRO T,400000 ;DO NOT STORE ZERO + PUSH P,EPTUPT ;SAVE OLD VALUE + PUSH P,T ;SAVE NEW VALUE + SETZM EPTUPT ;RESTORE PHYSICAL ADDRESSING + MOVE R,T ;COPY ADDRESS + LSH R,9 ;CONVERT TO WORD ADDR + TLNN R,777377 ;TEST FOR JUNK + PUSHJ P,FETCH ;TEST ADDRESS + JRST SETPGE ;ERROR + TRZN F,Q2F ;EXEC GIVEN + JRST SETPGX ;NO--DONE + MOVE R,WRD2 ;GET SECOND WORD + TRO R,400000 ;MAKE SURE NON-ZERO + HRLM R,(P) ;STORE IN ANSWER + LSH R,9 ;TEST FOR VALID + TLNN R,777377 ; POINTER + PUSHJ P,FETCH ; .. + JRST SETPGE ;BAD ADDRESS +SETPGX: POP P,EPTUPT ;SET ANSWER + POP P,T ;RESTORE T + JRST RET ;DONE + +SETPGE: POP P,T ;UNDO THIS COMMAND + POP P,EPTUPT ; .. + JRST ERR ;SET ERROR + > ;END EDDT AND FILDDT SWITCH + > ;END IFE FTDEC20 + > +LIST + +SUBTTL GO AND EXECUTE LOGIC + + IFE FTFILE,< +CNTRLZ: IFN FTEXEC,< + SKPUSR ;SEE IF USER MODE + JRST ERR> ;NO--ERROR +; IFE FTDEC20,< + MOVE T,[CALLI 1,12] ;> ;GET MONRET +; IFN FTDEC20,< + MOVE T,[HALTF] ;> ;HALT THIS FORK + JRST XEC0 ;GO EXECUTE IT + +GO: HRLI T,(JRST) ;G + TLOE F,(QF) ;DID USER TYPE AN ARG TO $G? + JRST XEC ;YES, GO DO IT +XLIST + REPEAT 0,< + IFN FTDEC20,< + IFN FTEXEC,< + SKPUSR + JRST ERR> ;NO SUCH COMMAND IN EDDT + MOVEI T1,.FHSLF + GEVEC ;GET ENTRY VECTOR + HLRZ TT,T2 ;GET ITS LENGTH + CAIN TT,(JRST) ;TOPS10 FORMAT? + JRST GO1 ;YES + CAIL TT,1000 ;REASONABLE? + JRST ERR ;NO + HRR T,T2 ;SETUP FIRST LOCATION + TRNN F,Q2F ;SECOND QUANT? (I.E. $1G) + SETZM WRD2 ;NO, ASSUME ZERO + CAMG TT,WRD2 ;WITHIN RANGE? + JRST ERR ;NO + ADD T,WRD2 ;ADD OFFSET WITHIN VECTOR + JRST XEC ;NOW HAVE JRST ADR IN T, XCT IT +GO1:> ;END IFN FTDEC20 + HRR T,.JBSA ;NO, GET ADDR FROM .JBSA + IFN FTEXEC,< + SKPEXC ;EXEC MODE HAS NO .JBSA, SO ERROR + > +> +LIST + HRR T,.JBSA + TRNN T,-1 ;WAS C(.JBSA) NONZERO? + JRST ERR ;NO, SO ERROR + +XEC: TLNN F,(QF) ;SKIP IF QUANTITY TYPED + TDZA T,T ;MAKE SURE COUNT IS ZERO + TLNN T,777000 ;SKIP IF VALID INSTRUCTION + JRST $X ;GOTO SINGLE STEP EXECUTE ROUTINE +XEC0: MOVEM T,TEM + PUSHJ P,CRF + PUSHJ P,INSRTB + SETZM SKPCT ;INIT SKIP COUNT + JSP T,RESTORE + XCT TEM +XEC1: AOS SKPCT ;NOTE NOSKIP, SKIP, DOUBLE SKIP + AOS SKPCT + JSR SAVE ;SAVE CONTEXT + PUSHJ P,REMOVB ;REMOVE BRKPTS + MOVEI TT,3 + SUB TT,SKPCT ;COMPUTE AMOUNT OF PC INCREMENT + IFE FTDEC20,< + CAIG TT,1 ;INSTRUCTION SKIPPED? + JRST DD1 ;NO + MOVE W1,[ASCII ""] ;MAKE SURE IT IS CLEAR + PUSHJ P,TEXT2 ; THAT THIS WAS A SKIP + PUSHJ P,CRF ;TYPE 2 CR-LFEEDS + JRST DD1 + > + IFN FTDEC20,< + MOVEI W1,"$" + PUSHJ P,TEXT ;PRINT $ FOR EACH INCREMENT + SOJG TT,.-2 + JRST DD1> + > + + IFN FTFILE,< +BCOM==> + > + +SUBTTL SINGLE STEP EXECUTE LOGIC + + IFE FTFILE,< + +;$X IS A FEATURE THAT OPERATES AS FOLLOWS: +; $X OR N$X OR $$X OR N$$X, WHERE N .LT. 2^27, WILL DISPATCH TO +; THIS CODE. THE FOLLOWING ACTIONS WILL BE PERFORMED: +; +; $X EXECUTE A SINGLE INSTRUCTION, THEN INCREMENT THE PC. THE +; OPERANDS TO THE INSTRUCTION WILL BE PRINTED OUT AS THEY +; EXIST **AFTER** EXECUTION OF THE INSTRUCTION. AN EXTRA +; LINE FEED WILL BE PRINTED IF THE INSTRUCTION SKIPPED OR +; JUMPED. THE NEXT INSTRUCTION WILL THEN BE PRINTED. +; $P WILL ALWAYS DO THE RIGHT THING AFTER ANY NUMBER OF $X'S. +; +; N$X REPEAT THE $X CYCLE N TIMES. +; +; N$$X SAME AS N$X EXCEPT THAT ALL PRINTOUT IS SUPPRESSED FOR +; ALL BUT THE LAST $X CYCLE. +; +; $$X PERFORM A NON-PRINTING $X CYCLE UNTIL THE PC REACHES EITHER +; .+1 OR .+2; I.E. UNTIL ONE OF THE NEXT 2 INSTRUCTIONS IS +; EXECUTED. THIS IS USEFUL FOR TREATING A SUBROUTINE CALL +; AS A SINGLE INSTRUCTION FOR THE PURPOSES OF $X. + + +;FLAGS USED IN $X LOGIC ONLY + + FAC== 1 ;SIGNALS AC TO BE PRINTED + DFAC== 2 ;SIGNALS INST THAT USES 2 AC'S + FLG== 4 ;INST MODIFIES FLAGS (JRST,JFCL) + IMM== 10 ;SIGNALS IMMEDIATE MODE INST + EA== 20 ;SIGNALS MEMORY REFERENCE INST + DEA== 40 ;SIGNALS INST THAT REFERENCES 2 MEM LOCS + FLA== 100 ;SIGNALS FLOATING AC OPERAND + FLE== 200 ;SIGNALS FLOATING MEM OPERAND + +;COME HERE FROM $X COMMAND, WITH T SET TO ZERO IF NO QUANTITY WAS +; TYPED. + +$X: MOVEM T,XTEM ;STORE REPETITION COUNT + JUMPG T,$X00 ;JUMP IF POSITIVE COUNT + HRRZ T,PROC0 ;ZERO, FETCH CURRENT PC + MOVEM T,LOCSAV ;AND REMEMBER IT + SETOM XTEM ;SET REPETITION COUNT NEGATIVE + TLNN F,(CCF) ;$$X WITH NO ARG? + MOVNS XTEM ;NO, ONLY $X. TREAT AS 1$X +$X00: PUSHJ P,CRF ;OUTPUT CRLF TO START + +;HERE ON REPEATED $X CYCLES + +$X01: SOSN XTEM ;DECREMENT AND TEST COUNTER + TLZ F,(CCF) ;CLEAR $$ FLAG TO END REPETITIONS + TLZ F,(QF!CF!STF) ;TURN OFF QUANT, $, ! FLAGS + MOVEM F,FLAGS ;SAVE REGULAR DDT FLAGS + HRRZI T,100 ;SETUP MAX XCT DEPTH + HRRZM T,XCTS + HRRZ R,PROC0 ;FETCH ADR OF CURRENT INST + CAIN R,XEC1 ;JUST HIT BREAKPOINT OR DID $X LAST? + JRST ERR ;NO, JUST ENTERED DDT, SO ERROR + SKIPL XTEM ;INDEFINITE $$X BEING EXECUTED? + MOVEM R,LOCSAV ;NO, REMEMBER OLD PC FOR THIS INST +$X02: PUSHJ P,FETCH ;FETCH CURRENT INSTRUCTION + JRST ERR ;ERROR +$XO3: MOVEM T,I.NST ;STORE CURRENT INSTRUCTION + JSR SWAP ;SWAP TO USER CONTEXT + MOVEM T,SAFETY ;SAVE T + MOVEI T,@I.NST ;COMPUTE EFFECTIVE ADR OF INST + DPB T,[POINT 23,I.NST,35] ;STORE COMPUTED ADR IN CURRENT INST + HRRZM T,I.NSTEA ;REMEMBER IT AGAIN + MOVE T,SAFETY ;RESTORE T + JSR SWAP ;SWAP BACK TO DDT CONTEXT + LDB W1,[POINT 4,I.NST,12] ;EXTRACT AC FIELD + MOVEM W1,I.NSTAC ;STORE IT AWAY + MOVSI T,777000 ;MASK FOR OPCODE + AND T,I.NST ;FETCH OPCODE + HLRZ F,T ;SAVE IN RH FOR LATER + CAMLE T,$XTBL(T) ;IN RANGE OF CURRENT TABLE ENTRY? + AOJA T,.-1 ;NO, KEEP SEARCHING + JRST @$XTBL(T) ;YES, DISPATCH + + IFE FTEXEC,< + MONUI== JUSTI ;IF USER DDT, TREAT MONITOR UUOS + MONUE== JUSTE ; AS HARDWARE INSTRUCTIONS + MONUAI==SETI + MONUAE==SETEA + MONINI==ERR ;CANNOT TRACE INIT + > + +;OPCODE DISPATCH TABLE. +; LH OF EACH ENTRY CONTAINS LARGEST OPCODE COVERED BY THAT ENTRY, +; RH CONTAINS DISPATCH ADDRESS. + +$XTBL: SETZB SET ; 400-403 SETZX + ORCBB CHECKI ; 404-473 ALL LOGICAL EXCEPT SETX + SETOB SET ; 474-477 SETOX + HLRES CHEKIS ; 500-577 HALFWORD + TSON TESTS ; 600-677 TEST CLASS + 777000,,IOTS ; 700-777 I/O INSTRUCTIONS + 0 ,, ERR ; 000 ALWAYS ILLEGAL + 037000,,USRUUO ; 001-037 USER UUOS + CALL MONUAE ; 040 CALL + INIT MONINI ; 041 INIT + CALLI MONUAI ; 042-047 UNDEFINED AND CALLI + TTCALL MONUE ; 050-051 OPEN,TTCALL + 054000,,MONUAI ; 052-054 UNDEFINED + OUT MONUE ; 055-057 RENAME,IN,OUT + STATO MONUI ; 060-061 SETSTS,STATO + GETSTS MONUE ; 062 GETSTS + OUTBUF MONUI ; 063-065 STATZ,INBUF,OUTBUF + OUTPUT MONUE ; 066-067 INPUT,OUTPUT + USETO MONUI ; 070-075 CLOSE,RELEAS,MTAPE,UGETF,USETI,USETO + ENTER MONUE ; 076-077 LOOKUP,ENTER + 103000,,SETI ; 100-103 UNDEFINED + 104000,,DOIT ; 104 JSYS + 107000,,SETI ; 105-107 UNDEFINED + DFDV DFLOT ; 110-113 DFAD,DFSB,DFMP,DFDV *** KI10 + 117000,,SETI ; 114-117 UNDEFINED + DMOVN DMOV ; 120-121 DMOVE,DMOVN *** KI10 + FIX FXAFLE ; 122 FIX *** KI10 + 123000,,SETI ; 123 UNDEFINED + DMOVNM DMOV ; 124-125 DMOVEM,DMOVNM *** KI10 + FIXR FXAFLE ; 126 FIXR *** KI10 + FLTR FLAFXE ; 127 FLTR *** KI10 + UFA IUFA ; 130 UFA + DFN IDFN ; 131 DFN + FSC IFSC ; 132 FSC + IBP JUSTE ; 133 IBP + DPB SETEA ; 134-137 XLDB,XDPB + FDVRB FLOAT ; 140-177 FADXX,FSBXX,FMPXX,FDVXX + +;CONTINUATION OF OPCODE DISPATCH TABLE. + + MOVMS CHEKIS ; 200-217 MOVXX + IMULB CHECKI ; 220-223 IMULX + DIVB MULDIV ; 224-237 MULX,XDIVX + LSH SETI ; 240-242 ASH,ROT,LSH + JFFO IJFFO ; 243 JFFO + LSHC DBLI ; 244-246 ASHC,ROTC,LSHC + 247000,,SETI ; 247 UNDEFINED + EXCH SETEA ; 250 EXCH + BLT SETI ; 251 BLT + AOBJN IAOBJ ; 252-253 AOBJP,AOBJN + JRST IJRST ; 254 JRST + JFCL IJFCL ; 255 JFCL + XCT IIXCT ; 256 XCT + MAP SETEA ; 257 MAP *** KI10 + PUSHJ IIPUSHJ ; 260 PUSHJ + POP SETEA ; 261-262 PUSH,POP + POPJ IPOPJ ; 263 POPJ + JSR I.JSR ; 264 JSR + JSP I.JSP ; 265 JSP + JSA I.JSA ; 266 JSA + JRA IAOBJ ; 267 JRA + SUBB CHECKI ; 270-277 ADDX,SUBX + CAIG SETI ; 300-307 CAIXX + CAMG SETEA ; 310-317 CAMXX + SOSG JMPSKP ; 320-377 JUMPXX,SKIPXX,AOJXX,AOSXX,SOJXX,SOSXX + +;MONITOR UUO HANDLER + + IFN FTEXEC,< +MONUAI: TLO F,FAC ;REMEMBER TO PRINT AC +MONUI: SKPEXC ;SKIP IF EXEC MODE + JRST JUSTI ;USER MODE, TREAT UUO AS SINGLE INST + JRST MONUE ;EXEC MODE, TRACE THE UUO + +MONUAE: TLO F,FAC ;REMEMBER TO PRINT AC +MONUE: SKPEXC ;SKIP IF EXEC MODE + JRST JUSTE ;USER MODE, TREAT UUO AS SINGLE INST + SKPKA ;CAN SIMULATE ON A KA + JRST ERR ;PUNT ON A KL OR KI + JRST USRUUO ;EXEC MODE, TRACE THE UUO + +MONINI: SKPEXC ;SKIP IF EXEC MODE + JRST ERR ;USER MODE, CAN'T FOLLOW AN INIT + ;EXEC MODE, TRACE NORMALLY + > +;USER UUO HANDLER + +USRUUO: MOVEI R,40 ;SETUP JOBUUO + EXCH F,FLAGS ;RESTORE REGULAR FLAGS + MOVE T,I.NST ;FETCH INST WITH EFF ADR COMPUTED + PUSHJ P,DEPMEM ;STORE USER UUO IN JOBUUO + JRST ERR ;ERROR + EXCH F,FLAGS ;RESTORE $X FLAGS + MOVE T,[XCT 41] ;PRETEND INSTRUCTION WAS AN XCT + JRST $XO3 + +;INTERPRET UFA + +IUFA: TLOA F,FLA+FLE+DFAC ;REMEMBER FLTG PT, USES 2 AC'S + +;INTERPRET DFN + +IDFN: TLO F,FLA!FLE ;DFN, REMEMBER AC AND E FLOAT + JRST SETEA + +;INTERPRET FLOATING POINT INSTRUCTIONS + +FLOAT: ANDI F,7000 ;FLOATING PT, GET MODE + CAIN F,1000 ;LONG MODE? + TLOA F,DFAC ;YES, PRINT 2 AC'S + CAIE F,5000 ;IMMEDIATE MODE? + TLOA F,FLA+FLE+FAC+EA ;NO, PRINT AC AND E BOTH FLOATING +FLOATI: TLO F,FLA+FLE+FAC+IMM ;YES, PRINT AC AND E IMMEDIATE FLTG + JRST DOIT + +;INTERPRET JRST + +IJRST: TLO F,IMM ;REMEMBER TO PRINT E + TRNE W1,2 ;IS INSTRUCTION JRSTF? + TLO F,FLG ;YES, REMEMBER TO PRINT FLAGS +IJRST0: PUSHJ P,FETCH ;FETCH INST OR INDIRECT WORD + JRST ERR ;ERROR + MOVE W1,T ;COPY INTO W1 + LDB R,[POINT 4,T,17] ;LOAD INDEX FIELD + JUMPE R,IJRST1 ;JUMP IF NO INDEXING TO PERFORM + MOVE T,AC0(R) ;FETCH CONTENTS OF INDEX REGISTER + TLZ T,(Z @(17)) ;CLEAR I AND X FIELDS IN INDEX REG + ADDI T,(W1) ;COMPUTE INDEXED ADDRESS + TLZ T,(Z @(17)) ;CLEAR ANY OVERFLOW +IJRST1: MOVEI R,(T) ;COPY RESULTING ADDRESS + TLNE W1,(@) ;INDIRECT? + JRST IJRST0 ;YES, FOLLOW NEXT LEVEL OF INDIRECTION + +;LH OF T NOW CONTAINS FLAGS THAT WILL BE RESTORED + + IFN FTEXEC!FTMON,< + IFN FTEXEC,< ;DEC20 MONITOR DDT DOESN'T HAVE SKPEXC + SKPEXC ;NOW IN EXEC MODE? + JRST IJRST3 ;NO, USER MODE + > + MOVE W1,I.NSTAC ;YES, FETCH AC FIELD OF JRST INST + TRNE W1,1 ;JUMP TO USER MODE? + JRST JRSPRC ;YES, CAN'T TRACE. GO DO $P + TRNE W1,2 ;JRSTF? + TLNN T,(1B5) ;YES, GOING TO ENTER USER MODE? + JRST IJRST3 ;NO TO EITHER, HANDLE NORMALLY +JRSPRC: EXCH F,FLAGS ; $X OPERATION IMPOSSIBLE. RESTORE FLAGS + TLZ F,(QF+CCF) ;CLEAR QUANT AND $$ FLAGS + JRST PROCD1 ;AND EXECUTE $P TO GO INTO USER MODE + > + +IJRST3: HRRI T,NOSKIP ;MODIFY THE JRST EFFECTIVE ADR + MOVEM T,BCOM ;STORE NEW FLAGS,,NOSKIP + MOVE T,I.NST ;FETCH INST AGAIN + HRRM T,PROC0 ;STORE EFF ADR AS NEW PC + HRRI T,BCOM ;TURN INTO JRST @BCOM + TLO T,(@) + MOVEM T,I.NST ;AND STORE + JRST DOIT ;DO IT + +;INTERPRET XCT + +IIXCT: + IFN FTEXEC!FTMON,< + DPB W1,[POINT 4,I.XCT,12]> ; USE IN XCT PAGED + MOVE F,FLAGS ;GET BACK NORMAL DDT FLAGS + SOSG XCTS ;CHECK XCT COUNTER + JRST ERR ;ERROR - DEPTH EXCEEDED + TLNE F,(CCF) ;$$X? + JRST IIXCT1 ;YES, DON'T PRINT ANYTHING + HRRZ T,I.NSTEA ;GET EFF ADR OF XCT + PUSHJ P,PINST ;PRINT INST BEING XCT'ED + PUSHJ P,CRF ;OUTPUT CRLF AFTER INST +IIXCT1: HRRZ R,I.NSTEA ;GET EFF ADR OF XCT AGAIN + JRST $X02 ;PROCESS EXECUTED INST + +;INTERPRET PUSHJ + +IIPUSHJ:AOS T,PROC0 ;GET CURRENT PC +1 + HLL T,SAVPI ;PUT FLAGS IN LH + MOVEM T,I.NSTPC ;STORE AWAY TO BE STACKED + MOVSI T,(1B4) ;CLEAR BIS FLAG IN NEW PC WORD + ANDCAM T,SAVPI + SOS T,I.NST ;GET EFF ADR OF PUSHJ, -1 TO FOOL DOIT + HRRM T,PROC0 ;STORE NEW PC -1 + HRLZI T,(-) ;WANT TO TURN PUSHJ INTO A PUSH + DPB T,[POINT 5,I.NST,17] ;CLEAR I AND AC FIELD + JRST IPOPJ2 ;REST OF CODE COMMON WITH POPJ + +;INTERPRET POPJ + +IPOPJ: EXCH F,FLAGS ;POPJ, RESTORE NORMAL DDT FLAGS + HRRZ R,AC0(W1) ;FETCH CONTENTS OF CORRECT USER AC + PUSHJ P,FETCH ;FETCH PCWORD IT POINTS TO + JRST ERR ;ERROR + EXCH F,FLAGS ;RESTORE $X FLAGS + HRRI T,-1(T) ;DECREMENT PC TO FOOL CODE AT DOIT + HRRM T,PROC0 ;STORE AS CURRENT PC + HRLZI T,(-) ;SETUP TO TURN POPJ INTO POP + +;COMMON CODE FOR PUSHJ, POPJ + +IPOPJ2: ADDM T,I.NST ;TURN PUSHJ INTO PUSH OR POPJ INTO POP + HRRZI T,I.NSTPC ;SETUP ADR OF PC WORD FOR PUSHJ + HRRM T,I.NST + TLOA F,FAC ;REMEMBER TO PRINT AC + +;INTERPRET FSC + +IFSC: TLO F,FAC+FLA+IMM ;FLOATING AC, FIXED IMMEDIATE E + JRST DOIT + +;INTERPRET JSA + +I.JSA: AOS T,PROC0 ;JSA, SETUP RETURN PC + HRL T,I.NSTEA ;PUT EFF ADR IN LH LIKE JSA DOES + EXCH T,AC0(W1) ;STORE IN USER AC, GET OLD CONTENTS + JRST I.JSR2 ;STORE OLD CONTENTS LIKE JSR, THEN JUMP + +;INTERPRET JSR + +I.JSR: AOS T,PROC0 ;JSR, GET CURRENT PC + HLL T,SAVPI ;SETUP LH OF PC WORD + TLO F,FAC ;REMEMBER NOT TO PRINT AC FIELD + MOVSI W1,(1B4) ;CLEAR BIS FLAG IN NEW PC WORD + ANDCAM W1,SAVPI +I.JSR2: TLO F,EA ;PRINT E NORMALLY + EXCH F,FLAGS ;RESTORE NORMAL DDT FLAGS + HRRZ R,I.NSTEA ;FETCH EFF ADR OF JSR OR JSA + PUSHJ P,DEPMEM ;STORE PC WORD + JRST ERR ;ERROR + EXCH F,FLAGS ;RESTORE $X FLAGS + HRRZ T,I.NSTEA ;GET EFF ADR AGAIN + AOJA T,I.JSR4 ;INC PAST STORED PC WORD + +;INTERPRET JSP + +I.JSP: AOS T,PROC0 ;JSP, SETUP RETURN PC + HLL T,SAVPI ;SETUP LH OF PC WORD + MOVEM T,AC0(W1) ;STORE IN USER AC + MOVSI T,(1B4) ;CLEAR BIS FLAG IN NEW PC WORD + ANDCAM T,SAVPI + HRRZ T,I.NSTEA ;GET BACK EFF ADR +I.JSR4: HRRM T,PROC0 ;STORE NEW PC + TLC F,FAC ;REMEMBER TO PRINT AC + JRST TELL ;GO PERFORM PRINTOUT + + +;INTERPRET KI10 INSTRUCTIONS + +DFLOT: TLO F,FLA+FLE ;REMEMBER THAT AC AND E ARE FLOATING +DMOV: TLO F,DFAC+DEA ;REMEMBER AC AND E BOTH DOUBLE + JRST SETEA + +FXAFLE: TLOA F,FLE ;REMEMBER THAT E FLOATS (FIX,FIXR) +FLAFXE: TLO F,FLA ;REMEMBER THAT AC FLAOATS (FLTR) + JRST SETEA + +;INTERPRET JFFO + +IJFFO: TLO F,DFAC ;REMEMBER JFFO USES 2 AC'S + +;INTERPRET JUMP AND SKIP INSTRUCTIONS + +JMPSKP: TRNE F,10000 ;JUMP/SKIP, WHICH IS IT? + JRST SKP ;SKIP CLASS + +;INTERPRET AOBJN AND AOBJP + +IAOBJ: TLOA F,FAC+IMM ;HANDLE AS IMMEDIATE MODE INST WITH AC + +;INTERPRET JFCL + +IJFCL: TLO F,FLG ;REMEMBER TO PRINT FLAGS + MOVEI T,JMP ;JUMP CLASS OR AOBJ, COME BACK TO $X + HRRM T,I.NST ;STORE MODIFIED INST + JRST DOIT ;GO EXECUTE CONDITIONAL INST + +;HERE AFTER EXECUTING CONDITIONAL JUMP INSTRUCTION THAT ACTUALLY +; DOES JUMP + +JMP: EXCH T,I.NSTEA ;SAVE T, GET EFF ADR OF JUMP + HRRM T,PROC0 ;STORE EFF ADR AS NEW PC + EXCH T,I.NSTEA + JRST NOSKIP ;NOW DO PRINTOUT + +;HERE FOR ALL SKIP INSTRUCTIONS + +SKP: JUMPN W1,SETEA ;SKIP CLASS - AC FIELD ZERO? +JUSTE: TLOA F,EA ;YES, JUST PRINT E + +;INTERPRET SHIFT COMBINED INSTRUCTIONS + +DBLI: TLO F,FAC+DFAC+IMM ;REMEMBER 2 AC'S USED, IMMEDIATE + JRST DOIT ;EXECUTE NORMALLY + +;INTERPRET TEST CLASS INSTRUCTIONS + +TESTS: TRNN F,10000 ;SKIP ON TD OR TS BUT NOT ON TR OR TL + TLOA F,FAC+IMM ;IMMEDIATE MODE + TLO F,FAC+EA ;NORMAL MODE + JRST DOIT + +;I/O INSTRUCTIONS + +IOTS: TRNE W1,4 ;SKIP IF BLKI,DATAI,BLKO,DATAO + CAIN W1,5 ;SKIP IF NOT CONI + TLOA F,EA ;MEM REF INSTRUCTION +JUSTI: TLO F,IMM ;IMMEDIATE INST + JRST DOIT + +;ALL PATHS CONVERGE HERE + +CHEKIS: TRC F,3000 ;HERE TO TEST FOR IMMEDIATE OR SELF MODE + TRCE F,3000 ;SKIP IF SELF MODE + JRST CHECKI ;NO, CHECK IMMEDIATE + JRST SKP ;YES, GO TEST FOR NONZERO AC FIELD +SET: ANDI F,3000 ;HERE FOR SETZX,SETOX + CAIE F,2000 ;SETZM,SETOM? + TLO F,FAC ;NO, AC IS ALWAYS AFFECTED + TRNE F,2000 ;SETZM,SETZB,SETOM,SETOB? + TLO F,EA ;YES, MEM IS ALWAYS AFFECTED + JRST DOIT + +;FIXED POINT MULTIPLY AND DIVIDE (NOT INCLUDING IMULX) + +MULDIV: ANDI F,3000 ;MASK MODE BITS + CAIE F,2000 ;TO MEMORY ONLY? + TLO F,DFAC ;NO, INST USES 2 AC'S +CHECKI: TRNE F,1000 ;TEST FOR IMMEDIATE MODE INST + TRNE F,2000 +SETEA: TLOA F,FAC+EA ;MEM REF INSTRUCTION +SETI: TLO F,FAC+IMM ;IMMEDIATE MODE INSTRUCTION +DOIT: EXCH F,FLAGS ;RESTORE NORMAL DDT FLAGS + PUSHJ P,TTYLEV ;RESTORE STATUS OF CTY (EXEC MODE) + JSR SWAP ;SWAP TO USER CONTEXT + XCT I.XCT ;EXECUTE THE INSTRUCTION (IF IN EXEC MODE + ; ON A KI10 THIS MAY BE EXECUTIVE XCT) + JRST IXS1 ;NO SKIP, INCREMENT PC ONCE + JRST IXS2 ;SKIP, INCREMENT PC TWICE + AOS PROC0 ;DOUBLE SKIP, INCREMENT PC THRICE +IXS2: AOS PROC0 +IXS1: AOS PROC0 + +;HERE AFTER SIMULATING OR EXECUTING INSTRUCTION. +; PERFORM REQUIRED PRINTOUT. + +NOSKIP: JSR SWAP ;RESTORE DDT CONTEXT + PUSHJ P,TTYRET ;RESTORE DDT TTY MODES + JRST .+2 +TELL: EXCH F,FLAGS ;GET DDT'S FLAGS + IFN FTEXEC!FTMON,< + MOVEI T,0 ;CLEAR THE AC FIELD OF I.XCT + DPB T,[POINT 4,I.XCT,12] ;SO NEXT INSTRUCTION HAPPENS OK + > + TLNE F,(CCF) ;IF $$X, DON'T PRINT ANYTHING + JRST NXTIT + EXCH F,FLAGS ;RESTORE $X'S FLAGS + PUSH P,SCH ;SAVE CURRENT OUTPUT MODE + TLNE F,FLA ;FLOATING AC? + MOVEI SCH,TFLOT ;YES, SETUP TO OUTPUT IN FLOATING PT + TLNE F,FAC ;AC TO BE PRINTED? + PUSHJ P,FAC0 ;YES, DO IT + TLNE F,DFAC ;INST USE 2 AC'S? + PUSHJ P,DBL0 ;YES, PRINT LOW-ORDER AC + TLNE F,FLG ;INSTRUCTION ACCESS THE FLAGS? + PUSHJ P,FLG0 ;YES, PRINT FLAGS + MOVE SCH,(P) ;RESTORE OLD MODE + TLNE F,FLE ;FLOATING MEMORY OPERAND? + MOVEI SCH,TFLOT ;YES, SETUP FLTG OUTPUT + TLNE F,IMM ;IMMEDIATE MODE? + PUSHJ P,IMM0 ;YES, JUST PRINT E + TLNE F,EA ;MEM REF INST? + PUSHJ P,EA0 ;YES, PRINT C(E) + TLNE F,DEA ;DOUBLE-WORD MEM OPERAND? + PUSHJ P,DEA0 ;YES, OUTPUT 2ND WORD + POP P,SCH ;RESTORE CURRENT OUTPUT MODE + EXCH F,FLAGS ;RESTORE DDT FLAGS + PUSHJ P,CRF ;OUTPUT CRLF + +;NOW TEST WHETHER TO CONTINUE, AND PRINT NEXT INST IF REQUIRED. + +NXTIT: HRRZ T,PROC0 ;FETCH NEW PC + MOVEI W1,1(T) ;COMPUTE PC+1 + HRRZM W1,BCOM ;STORE FOR $P + HRRZ W1,LOCSAV ;FETCH OLD PC + SKIPL XTEM ;INDEFINITE $$X IN PROGRESS? + JRST NXT0 ;NO + CAIE T,1(W1) ;YES, ARE WE NOW AT OLD PC +1? + CAIN T,2(W1) ; OR +2? + JRST $XQUIT ;YES, STOP ITERATION NOW +NXT0: PUSHJ P,LISTEN ;NO, HAS USER TYPED ANYTHING? + JRST NXT1 ;NO, CONTINUE +$XQUIT: SETZM XTEM ;YES, STOP ITERATION BY ZEROING COUNTER + TLZ F,(CCF) ; AND CLEARING CONTROL FLAG +NXT1: TLNE F,(CCF) ;$$ STILL IN EFFECT? + JRST NXT2 ;YES, DON'T PRINT ANYTHING + HRRZ T,PROC0 ;NO, GET CURRENT PC AGAIN + CAIN T,1(W1) ;DOES IT EQUAL OLD PC +1? + JRST NXT1A ;YES--JUST CONTINUE + CAIN T,2(W1) ;SKIP OR JUMP + SKIPA W1,[ASCII ""] ;SKIP + MOVE W1,[ASCII ""] ;JUMP + PUSHJ P,TEXT2 ;SAY SKIP OR JUMP + PUSHJ P,CRF ;ADD CRLF +NXT1A: HRRZ T,PROC0 ;FETCH CURRENT PC AGAIN + PUSHJ P,PINST ;PRINT INSTRUCTION ABOUT TO BE EXECUTED + SKIPE XTEM ;ARE WE STILL LOOPING? + PUSHJ P,CRF ;YES, PRINT CRLF AFTER INST +NXT2: SKIPE XTEM ;SKIP IF REPEAT COUNTER IS ZERO + JRST $X01 ;NONZERO, REPEAT $X CYCLE AGAIN + JRST TTYCLR ;ZERO, FLUSH ANY WAITING INPUT CHARACTERS + ; AND RETURN FROM $X INSTRUCTION + +;OUTPUT ROUTINES + +;ROUTINE TO PRINT SECOND ACCUMULATOR + +DBL0: AOS T,I.NSTAC ;INCREMENT AC NUMBER + TRZA T,777760 ;ENSURE 17 WRAPS AROUND TO 0 + +;ROUTINE TO PRINT CONTENTS OF ACCUMULATOR + +FAC0: MOVE T,I.NSTAC ;FETCH AC NUMBER + JRST EA2 + +;ROUTINE TO PRINT THE FLAGS + +FLG0: PUSHJ P,LCT ;PRINT TAB + HLRZ T,SAVPI ;GET LH OF PC WORD + JRST IMM1 ;PRINT FLAGS + +;ROUTINE TO PRINT JUST E FOR AN IMMEDIATE MODE INSTRUCTION + +IMM0: PUSHJ P,LCT ;PRINT TAB + HRRZ T,I.NSTEA ;FETCH E + TLNE F,FLE ;FLTG PT MEM OPERAND? + MOVS T,T ;YES, IMMEDIATE SWAPS HALVES +IMM1: EXCH F,FLAGS ;RESTORE DDT FLAGS + PUSHJ P,CONSYM ;OUTPUT CONTENTS OF T + JRST EA6 ;RESTORE $X FLAGS AND RETURN + +;ROUTINE TO PRINT 2ND MEMORY OPERAND + +DEA0: AOS I.NSTEA ;INC TO ADR OF 2ND OPERAND + +;ROUTINE TO PRINT MEMORY OPERAND + +EA0: MOVE T,I.NSTEA ;FETCH ADR OF MEM OPERAND +EA2: EXCH F,FLAGS ;HERE FROM DBL0,FAC0 + PUSH P,T ;SAVE ARG + PUSHJ P,LCT ;OUTPUT TAB + POP P,T ;RESTORE ADR OF LOC TO BE PRINTED + PUSHJ P,LI1 ;PRINT ADR/ CONTENTS +EA6: EXCH F,FLAGS ;RESTORE $X FLAGS + POPJ P, + +;ROUTINE TO PRINT INSTRUCTION ALWAYS IN SYMBOLIC DESPITE CURRENT MODE + +PINST: PUSH P,SCH ;SAVE CURRENT OUTPUT MODE + MOVEI SCH,PIN ;SET TO PRINT SYMBOLIC INST MODE + PUSHJ P,LI1 ;OUTPUT INST + POP P,SCH ;RESTORE CURRENT MODE + POPJ P, + +;ROUTINE TO SWAP BETWEEN DDT AND USER CONTEXTS. +; AC'S AND FLAGS ARE SWAPPED, BUT BREAKPOINTS AND OTHER STUFF +; ARE NOT TOUCHED, SINCE CONTROL IS EXPECTED TO RETURN TO DDT SOON. + +SWAPG: EXCH 0,AC0 ;SWAP AC 0 + MOVEM 0,SAV0 ;SAVE 0 FOR WORK + HLLZ 0,SWAP ;GET CURRENT FLAGS + HLR 0,SAVPI ;GET SAVED FLAGS + HRLM 0,SWAP ;SWITCH FLAGS + HLLM 0,SAVPI + MOVE 0,[EXCH 1,AC0+1] ;SETUP INST FOR SWAPPING AC'S +SWAPL: XCT 0 ;SWAP AN AC + ADD 0,[Z 1,1] ;INC AC AND MEM FIELDS + TLNN 0,1000 ;AC 20 REACHED? + JRST SWAPL ;NO, LOOP + MOVE 0,SAV0 ;YES, RESTORE SAVED AC + JRSTF @SWAP ;RETURN, RESTORING NEW FLAGS + > ;END IFE FTFILE + + +SUBTTL ENTER AND LEAVE DDT LOGIC + +;SKIPS IF CONTEXT ALREADY SAVED + + IFE FTFILE,< +SAVEG: ;SAVE THE ACS AND PI SYSTEM + IFN FTEXEC,< + SKIPN TRCON ;TRACE FACILITY IN USE? + JRST SAVEG1 ;NO + DATAI PI,TRCDMP ;YES, DUMP CURRENT POINTER + DATAO PI,[0] ;TURN IT OFF +SAVEG1: + MOVEM 0,TEM + SETZM TOPS20 + JSP 0,.+1 + TLNN 0,(1B5) + JRST .+6 + MOVE [112,,11] + GETTAB + CAM + CAIN 40000 + SETOM TOPS20 + MOVE 0,TEM + MOVEM T,TEM ;FREE AN AC +; IFE FTDEC20,< + SKIPE TOPS20 + JRST SAVEG2 + JSP T,.+1 ;GET USR FLAG + XOR T,SAVPI ;COMPARE WITH OLD USR FLAG(LAST DDT EXIT) + TLNE T,(1B5) ;SAME? + SETZM SARS ;> ;NO, SAVE AC'S AND PC FOR EXIT + ; SO EXEC/USER MODE FLOP RESTORED AS ENTERED +SAVEG2: JSP T,.+1 ;GET PC WORD AGAIN + ROT T,5 ;ROTATE USER MODE BIT TO SIGN + MOVEM T,USRFLG ; AND SAVE IT + MOVE T,TEM ;RESTORE THE AC + > ;END FTEXEC +;NOW SAVE USER STATUSES AND MODES AND SETUP DDT MODES. DON'T SAVE +;MODES IF ALREADY SAVED (I.E. WHEN REENTERING DDT), BUT DO SET DDT +;MODES IN CASE THEY WERE CHANGED. + + SKIPE SARS ;ALREADY SAVED? + AOS SAVE ;YES, SKIP RETURN + IFN FTEXEC,< + SKPEXC + JRST SAV11 + SKIPE SARS ;ALREADY SAVED? + JRST SAV3 ;YES + CONI PI,SAVPI + HRRZS SAVPI+1 +SAV3: CONO PI, @SAVPI+1> +SAV11: SKIPE SARS ;ALREADY SAVED? + JRST SAV5 ;YES + MOVEM 17,AC17 ;SAVE ACS + HRRZI 17,AC0 + BLT 17,AC0+16 + MOVE T,SAVE ;SAVE PC FLAGS + HLLM T, SAVPI +SAV5: MOVE P,[IOWD LPDL,PDL] ;SETUP STACK + ; .. + +;IF EDDT, DETERMINE PROCESSOR +;TYPE. USER DDT DOES NOT NEED TO KNOW PROCESSOR TYPE + + IFN FTEXEC,< + MOVNI T,1 ;LOAD T WITH ALL ONES + AOBJN T,.+1 ;ADD ONE TO BOTH HALFS + MOVEM T,KAFLG ;0 MEANS KI10; 1,,0 MEANS KA10 + SETZ T, ;TEST FOR KL10 + BLT T,0 ;NOP BLT + CAMN T,[1,,1] ;KL WILL STORE POINTER AS 1,,1 + SETOM KAFLG ;A KL10 + IFE FTDEC20,< + SKIPE TOPS20 + JRST SAV20 +; HRRI T,XJBSYM ;GET EXEC SYMBOL POINTER ADR +; SKPEXC ;EXEC MODE? + HRRI T,.JBSYM ;NO, GET USER MODE SYM POINTER ADR + HRRM T,SYMP ; AND SAVE IT +; HRRI T,XJBUSY ;GET EXEC UNDEF SYM TABLE POINTER ADR +; SKPEXC ;EXEC MODE? + HRRI T,.JBUSY ;NO, GET USER MODE UNDEF SYM POINTER ADR + HRRM T,USYMP ; AND SAVE RESULTING ADR + SKPEXC + JRST SAV12 ;TRANSFER IF IN USER MODE + SKPKA ;IS THIS A KA10? + JRST SAV12 ;NO--LEAVE APR ALONE + CONI T ;GET APR FLAGS + TRNE T,NXMKA ;TEST NXM FLAG AND + TLO T,(1B0) ; MOVE IT TO BIT 0 + TLZ T,37 ;FLUSH I AND X SO INDIRECT WORKS + MOVEM T,SAVAPR ;SAVE STATE OF APR REGISTER + JRST SAV12 + >> ;END IFN EDDT + ; .. + +;SAVE STATE AND SETUP DDT MODES... + +; IFN FTDEC20,< +SAV20: SETOM LASTPG# ;FORGET LAST PAGE ACCESS + IFN FTEXEC,< + SKPUSR + JRST SAV2> + MOVSI T,(1B0) + MOVEI T1,.FHSLF + SKPIR ;PSI SYSTEM ON? + SETZ T, ;NO + SKIPN SARS ;SKIP IF ALREADY HAVE SAVED STATUS + MOVEM T,SAVSTS# ;REMEMBER STATUS +SAV2: ;> ;END IFN FTDEC20 +SAV12: PUSHJ P,TTYRET ;INITIALIZE TTY + REPEAT 0,< ;WAIT FOR 5.3 RELEASE FOR THIS TEST + IFN FTYANK, ;END IFN FTYANK + > ;END OF REPEAT 0 CONDITIONAL + MOVEI F,0 ;INIT FLAG REGISTER + SETOM SARS ;FLAG PROTECTING SAVED REGISTERS + MOVE T,[XWD SCHM,SCH] + BLT T,ODF ;LOAD THE ACS WITH MODE SWITCHES + JRST @SAVE + +RESTOR: ;RESTORE ACS AND PI SYSTEM + HRRM T,SAVE + PUSHJ P,TTYLEV ;RESTORE STATUS OF CONSOL TTY (EXEC MODE) + MOVE T,SAVPI + TLZ T,010037 ;DON'T TRY TO RESTORE USER MODE FLAG + HLLM T, SAVE + IFN FTEXEC,< + SKPEXC + JRST RESTR2 + AND T, SAVPI+1 + IORI T, 2000 ;TURN ON CHANNELS + TRZ T,1000 ;MAKE SURE WE DON'T ASK FOR BOTH + HRRZM T, SAVPI + > ;END FTEXEC +RESTR2: HRLZI 17,AC0 + BLT 17,17 + SETZM SARS + IFN FTEXEC,< + SKPEXC + JRST RESTR3 ;TRANSFER IF IN USER MODE + IFE FTDEC20,< + SKIPGE SAVAPR ;WANT NXM SET? + MOVES 777777 ;YES--ASSUME KA-10 + > + SKIPE TRCON ;TRACE FACILITY ON? + DATAO PI,TRCON ;YES, START TRACING + CONO PI,@SAVPI +RESTR3:> + JRST 2,@SAVE + +SUBTTL BREAK POINT LOGIC + +BCOMG: POP T,LEAV ;MOVE INSTRUCTION TO LEAV + MOVEI T,B1SKP-B1INS+1(T) + HRRM T,BCOM3 ;CONDITIONAL BREAK SETUP + MOVEI T,B1CNT-B1SKP(T) + HRRM T,BCOM2 ;PROCEED COUNTER SETUP + MOVE T,BP1-B1CNT(T) ;GET PC WORD + HLLM T,LEAV1 ;SAVE FLAGS FOR RESTORING + EXCH T,BCOM ; ALSO SAVE PC WORD IN BCOM + + XCT BCOM3 ;(SKIPE) CONDITIONAL BPT SETUP? + XCT @BCOM3 ;YES, XCT IT + XCT BCOM2 ;(SOSG) PROCEED COUNTER NOW 0? + JRST BREAK + + MOVEM T,AC0+T + LDB T,[POINT 9,LEAV,8] ;GET INSTRUCTION + CAIL T,264 ;JSR + CAILE T,266 ;JSA,JSP + TRNN T,700 ;UUO + JRST PROC1 ;MUST BE INTERPRETED + CAIE T,260 ;PUSHJ + CAIN T,256 ;XCT + JRST PROC1 ;MUST BE INTERPRETED + IFN FTEXEC,< + MOVSI T,010000 ;DON'T TRY TO RESTORE USER MODE BIT + ANDCAM T,LEAV1 > + MOVE T,AC0+T + JRST 2,@LEAV1 ;RESTORE FLAGS, GO TO LEAVG + +BREAK: IFN FTDEC20,< + SETZM SARS> ;BE SURE TO SAVE ACS ON BKPT + JSR SAVE ;SAVE THE WORLD + PUSHJ P,REMOVB ;REMOVE BREAKPOINTS + PUSHJ P,TTYCLR ;FLUSH WAITING TTY CHARACTERS FOR INPUT + SOS T,BCOM3 + HRRZS T ;GET ADR OF CONDITIONAL BREAK INST + SUBI T,B1ADR-3 ;CHANGE TO ADDRESS OF $0B + IDIVI T,3 ;QUOTIENT IS BREAK POINT NUMBER + HRRM T,BREAK2 ;SAVE BREAK POINT # + MOVE W1,[BYTE (7) "$","0","B",76,0] ;PRELIMINARY TYPEOUT MESSAGE +REPEAT 0,> + SKIPG @BCOM2 ;TEST PROCEED COUNTER + TRO W1,76_1 ;CHANGE T TO /$0BGG/ + DPB T,[POINT 4,W1,13] ;INSERT BREAK POINT # IN MESSAGE + PUSHJ P,TEXT2 + MOVE T,BCOM + HLLM T, SAVPI ;SAVE PROCESSOR FLAGS + MOVEI T,-1(T) + PUSHJ P,PSHLLC ;PUSH OLD SEQUENCE + MOVEM T,LWT ;BKPT ADR BECOMES LAST WORD TYPED + MOVEM T,LLOC ;BKPT ADR BECOMES CURRENT LOC + PUSHJ P,PAD ;TYPE PC AT BREAK + HRRZ T,@BCOM3 + HRRM T,PROC0 ;SETUP ADDRESS OF BREAK + HLRZ T,@BCOM3 + JUMPE T,BREAK1 ;TEST FOR REGISTER TO EXAMINE + PUSHJ P,LCT ;PRINT TAB + HLRZ T,@BCOM3 + MOVEM T,LLOC ;EXAMINE ADR BECOMES CURRENT LOC + PUSHJ P,LI1 ;EXAMINE REGISTER C($NB)LEFT +BREAK1: MOVSI S,400000 + XCT BREAK2 ;ROT BY # OF BREAK POINT + PUSHJ P,LISTEN ;DONT PROCEED IF TTY KEY HIT + TDNN S,AUTOPI ;DONT PROCEED IF NOT AUTOMATIC + JRST RET ;DONT PROCEED + JRST PROCD1 + +PROCED: HRRZ TT,BCOM2 ;SEE IF PROCEED POSSIBLE + JUMPE TT,ERR ;JUMP IF NOT SETUP + TLNN F,(QF) ;N$P ;PROCEED AT A BREAKPOINT + MOVEI T,1 + MOVEM T,@BCOM2 + HRRZ R,BCOM3 + PUSHJ P,AUTOP +PROCD1: PUSHJ P,CRF + XCT PROC0 ;(HRRZI) GET ADR OF BPT + PUSHJ P,FETCH + JRST BPLUP1 ;ONLY GET HERE IF MEMORY SHRANK + MOVEM T,LEAV + PUSHJ P,INSRTB + JRST PROC2 + +PROC1: MOVE T,AC0+T + JSR SAVE + JFCL + MOVE T,BCOM ;STORE FLAGS WHERE "RESTORE" + HLLM T,SAVPI ; CAN FIND THEM +PROC2: MOVEI W,100 + MOVEM W,TEM1 ;SETUP MAX LOOP COUNT + HLLZS BCOM2 ;CLEAR FLAG, PREVENT SECOND $P + JRST IXCT5 + +IXCT4: + IFN FTEXEC,< SKPUSR + JRST IXCT41> ;INIT NOT SPECIAL CASE IN EXEC MODE + SUBI T,041 ;IS UUO "INIT"? + JUMPE T,BPLUP + AOJGE T,IXCT6 ;DONT PROCEED FOR INIT + ;DONT INTERPRET FOR SYSTEM UUOS +IXCT41: MOVEM R,40 ;INTERPRET FOR NON-SYSTEM UUOS + MOVEI R,41 +IXCT: SOSL TEM1 + PUSHJ P,FETCH + JRST BPLUP ;BREAKPOINT LOOPING OR FETCH FAILED + MOVEM T,LEAV +IXCT5: LDB T,[POINT 9,LEAV,8] ;GET INSTRUCTION + CAIN T,254 ;DON'T DO ANYTHING TO JRST + JRST IXCT6 +IXCT51: HRLZI 17,AC0 + BLT 17,17 + MOVEI T,@LEAV + DPB T,[POINT 23,LEAV,35] ;STORE EFFECTIVE ADDRESS + LDB W1,[POINT 4,LEAV,12] ;PICK UP AC FIELD + LDB T,[POINT 9,LEAV,8] ;PICK UP INSTRUCTION FIELD + MOVE P,[IOWD LPDL,PDL] + CAIN T,260 + JRST IPUSHJ ;INTERPRET PUSHJ + + CAIN T,264 + JRST IJSR ;INTERPRET JSR + CAIN T,265 + JRST IJSP ;INTERPRET JSP + CAIN T,266 + JRST IJSA ;INTERPRET JSA + MOVE R,LEAV + TRNN T,700 + JRST IXCT4 ;INTERPRET UUO + CAIN T,256 + JSP T,[JUMPE W1,IXCT ;INTERPRET XCT IF AC = 0 + TLNN T,(1B5) ;AC FIELD NOT 0 - IN EXEC MODE? + JRST IXCT6 ;YES, DON'T INTERPRET MAPPED XCT + JRST IXCT] ;NO, INTERPRET. IGNORE AC FIELD +IXCT6: JSP T,RESTORE +LEAVG: XCT LEAV ;DO BPT INSTRUCTION + JRST @BCOM + SKIPA ;SINGLE SKIP + AOS BCOM ;DOUBLE SKIP + AOS BCOM + JRST @BCOM + +BPLUP: PUSHJ P,REMOVB ;BREAKPOINT PROCEED ERROR +BPLUP1: JSR SAVE + JFCL + JRST ERR + +IPUSHJ: DPB W1,[POINT 4,CPUSHP,12] ;STORE AC FIELD INTO A PUSH + HLL T,SAVPI ;PICK UP FLAGS + HLLM T,BCOM ;SET UP THE OLD PC WORD + MOVSI T,(1B4) ;TURN OFF BIS FLAG IN NEW PC WORD + ANDCAM T,SAVPI + JSP T,RESTORE ;RESTORE THE MACHINE STATE + XCT CPUSHP ;(PUSH ..,BCOM) + JRST @LEAV ;JUMP TO "E" OF THE PUSHJ + +IJSA: MOVE T,BCOM ;INTERPRET JSA + HRL T,LEAV + EXCH T,AC0(W1) + JRST IJSR2 + +IJSR: MOVE T,BCOM ;INTERPRET JSR + HLL T,SAVPI ;SET UP THE OLD PC WORD + MOVSI W,(1B4) ;TURN OFF BIS IN NEW PC WORD + ANDCAM W,SAVPI +IJSR2: MOVE R,LEAV + PUSHJ P,DEPMEM + JRST BPLUP ;ERROR, CAN'T STORE + AOSA T,LEAV +IJSR3: MOVE T,LEAV + JRST RESTORE + +IJSP: MOVE W,BCOM ;INTERPRET JSP + HLL W,SAVPI ;PICK UP PC WORD FLAGS + MOVEM W,AC0(W1) ;INSERT OLD PC WORD INTO AC + MOVSI T,(1B4) ;TURN OFF BIS FLAG IN NEW PC WORD + ANDCAM T,SAVPI + JRST IJSR3 + +;INSERT BREAKPOINTS + +INSRTB: MOVE S,[JSR BP1] +INSRT1: SKIPE R,B1ADR-BP1(S) + PUSHJ P,FETCH + JRST INSRT3 + MOVEM T,B1INS-BP1(S) + MOVE T,S + PUSHJ P,DEPMEM + JFCL ;HERE ONLY IF CAN'T WRITE IN HIGH SEG +INSRT3: ADDI S,3 + CAMG S,[JSR BPN] + JRST INSRT1 + POPJ P, + +;REMOVE BREAKPOINTS + +REMOVB: MOVEI S,BNADR +REMOV1: MOVE T,B1INS-B1ADR(S) + SKIPE R,(S) + PUSHJ P,DEPMEM + JFCL ;HERE ONLY IF NO WRITE IN HIGH SEG + SUBI S,3 + CAIL S,B1ADR + JRST REMOV1 + POPJ P, + +;ALL $B COMMANDS GET HERE IN FORM: $B + + +BPS: TLZE F,(QF) ;HAS BEEN TYPED? + JRST BPS1 ;YES + TRZE F,Q2F ;NO, HAS BEEN TYPED? + JRST BPS2 ;YES + MOVE T,[XWD B1ADR,B1ADR+1] ;NO, COMMAND IS $B - CLEAR ALL BREAKPOINTS + CLEARM B1ADR + BLT T,AUTOPI ;CLEAR OUT ALL BREAKPOINTS AND AUTO PROCEED REGISTER + JRST RET + +BPS1: MOVE R,T + PUSHJ P,FETCH ;CAN BREAKPOINT BE INSERTED HERE? + JRST ERR ;NO + PUSHJ P,DEPERR ; AGAIN NO + TRZN F,Q2F ;HAS BEEN TYPED? + JRST BPS3 ;NO + TRO F,2 ;YES, PROCESS THE COMMAND A$NB +BPS2: MOVE T,WRD2 + CAIL T,1 + CAILE T,NBP + JRST ERR + IMULI T,3 + ADDI T,B1ADR-3 + TRZN F,2 + JRST MASK2 + EXCH R,T + JRST BPS5 + +BPS3: MOVE T,R ;PUT THE BREAKPOINT ADR BACK IN T + MOVEI R,B1ADR ;PROCESS THE COMMAND A$B +BPS4: HRRZ W,(R) + CAIE W,(T) + SKIPN (R) + JRST BPS5 + ADDI R,3 + CAIG R,BNADR + JRST BPS4 + JRST ERR +BPS5: MOVEM T,(R) + SETZM 1(R) + SETZM 2(R) + +AUTOP: SUBI R,B1ADR ;AUTO PROCEED SETUP SUBROUTINE + IDIVI R,3 + MOVEI S,1 + LSH S,(R) + ANDCAM S,AUTOPI + TLNE F,(CCF) + IORM S,AUTOPI + POPJ P, + + > ;END FTFILE + + IFN FTFILE,> +SUBTTL MEMORY MANAGER SUBROUTINES + +;DEPOSIT INTO MEMORY SUBROUTINE + +DEPRS: MOVEM T,LWT ;DEPOSIT REGISTER AND SAVE AS LWT + MOVE R,LLOCO ;QUAN TYPED IN REGIS EXAM + TLZE F,(ROF) + TLNN F,(QF) + POPJ P,0 + JRST DMEMER + +;DEPOSIT INTO MEMORY SUBROUTINE + + IFE FTFILE,< +DEPSYM: +DEPMEM: IFE FTDEC20,< + SKIPE TOPS20 + JRST DEPM20 + PUSHJ P,CHKPAG ;GET PAGE ACCESS BITS INTO TT1 + JUMPL TT1,CPOPJ ;ILLEGAL ADDRESS IF NEGATIVE + TLNE TT1,(1B1) ;IS PAGE KNOWN TO BE WRITEABLE? + JRST DEP1 ;YES--GO DO THE DEPOSIT RIGHT AWAY + JUMPN TT1,DEP4 ;IF WE KNOW ANYTHING THEN IT MUST BE + ; A WRITE LOCKED HISEG + JSP TT1,CHKADR ;LEGAL ADDRESS? + JRST DEP4 ;YES BUT IN HI SEGMENT +DEP1: TRNN R,777760 + JRST DEPAC ;DEPOSIT IN AC + MOVEM T,(R) + JRST CPOPJ1 ;SKIP RETURN + +DEPAC: MOVEM T,AC0(R) ;DEPOSIT IN AC + JRST CPOPJ1 ;SKIP RETURN +DEP4: IFN FTEXEC,< + SKPUSR ;IN EXEC MODE WE CAN NOT DO + POPJ P,0 ; SETUWP -- INDICATE ERROR + > + MOVEI TT1,0 + SETUWP TT1, ;IS HI SEGMENT PROTECTED? TURN OFF + POPJ P, ;PROTECTED, NO SKIP RETURN + MOVEM T,(R) ;STORE WORD IN HI SEGMENT + TRNE TT1,1 ;WAS WRITE PROTECT ON? + SETUWP TT1, ;YES, TURN IT BACK ON + JFCL + JRST CPOPJ1 ;SKIP RETURN +; > ;END IFE FTDEC20 +; IFN FTDEC20,< ;DEPSYM, DEPMEM FOR DEC20 +DEPM20: TRNN R,777760 ;AC? + JRST [MOVEM T,AC0(R) ;YES, DO IT + JRST CPOPJ1] + PUSHJ P,CHKADR ;GET ACCESS + JUMPE TT,DEP2 ;EMPTY PAGE OK + TLNN TT,(PM%WT+PM%CPY) ;WRITE OR COPY-WRITE? + POPJ P, ;NO, FAIL +DEP2: SETOM LASTPG ;WRITE MAY CHANGE ACCESS + MOVEM T,0(R) ;DO IT + JRST CPOPJ1 +; > ;END IFN FTDEC20 + +DSYMER: PUSHJ P,CLRCSH ;DEPOSIT FOR SYM TABLE ROUTINES + > ;END IFE FTFILE +DEPERR: +DMEMER: PUSHJ P,DEPMEM ;DEPOSIT AND GO TO ERR IF IT FAILS + JRST ERR + POPJ P, +XLIST + + IFN FTFILE,< +DSYMER: PUSHJ P,DEPSYM ;TRY SYMBOL TABLE DEPOSIT + HALT . ;GIVE UP + POPJ P, ;AND RETURN + +DEPSYM: PUSH P,TT ;SAVE THREE LOCATIONS + PUSH P,TT1 ; TO PROTECT FILDDT + PUSH P,R ; .. + MOVE TT,FISPTR ;GET DEF POINTER + HLRE TT1,TT ;GET LENGTH + SUB TT,TT1 ;COMPUTE END OF SYMBOLS + TLZ TT,-1 ;CLEAR JUNK + MOVE TT1,FIUPTR ;GET START OF UNDEF S.T. + CAMLE TT1,ESTUT ; IN THE CASE OF UND1 CODE ALREADY + ; TRYING TO EXTEND S.T. + MOVE TT1,ESTUT ;YES--USE THAT VALUE + SKIPL TT1 ;MIGHT NOT BE ANY UNDEFINED SYMBOLS + MOVE TT1,FISPTR ;FAILING THAT, GET START OF SYMBOLS + TLZ TT1,-1 ;CLEAR JUNK + TLZ R,-1 ; .. + CAIG TT1,(R) ;SEE IF TOO LOW + CAIGE TT,(R) ;OR TOO HIGH + HALT . ;YES--QUIT + POP P,R + POP P,TT1 ;OK--RESTORE TEMPS + POP P,TT ; AND PROCEDE + CAME T,(R) ;SEE IF DIFFERENT + SETOM CHGSFL ;YES--FLAG THAT SYMBOLS CHANGED + MOVEM T,(R) ;STORE NEW VALUE + JRST CPOPJ1 ;RETURN + +DEPMEM: HRRZ TT1,R ;COPY ADDRESS + CAIG TT1,17 ;IS IT AN AC? + JRST [MOVEM T,AC0(TT1) ;STORE + JRST CPOPJ1] + SKIPN PATCHS ;SEE IF PATCHING + JRST DEPNPT ;NO--GIVE NOOP + PUSHJ P,CVTADR ;CHANGE ADDRESS PER $U + POPJ P,0 ;ERROR + SKIPN CRASHS ;SEE IF CRASHING + JRST MONPOK ;NO--POKE MONITOR + PUSH P,T ;PRESERVE T + PUSHJ P,FETCH ;YES--GET WORD + JRST [POP P,T + POPJ P,] + POP P,T ;RESTORE WORD TO STORE + MOVSI TT2,(1B5) ;SET CHANGED BIT + CAME T,@FETADR ;UNLESS NO CHANGE + IORM TT2,@FETPAG ; .. + MOVEM T,@FETADR ;CHANGE WINDOW +DEPRET: JRST CPOPJ1 ;GIVE GOOD RETURN + +MONPOK: PUSH P,T ;SAVE ARGUMENT + MOVEM T,POKER+2 ;SET AS NEW VALUE + HRRZM R,POKER ;SET ADDRESS + ;NOTE--LAST TYPEOUT IS IN POKER+1 + ; SO THAT USER MUST KNOW WHAT + ; HE IS CHANGING + MOVE T,[3,,POKER] ;GET POINTER + CALLI T,114 ;POKE. MONITOR + JRST ERR ;COMPLAIN IF WE CAN'T + POP P,T ;RESTORE VALUE + JRST CPOPJ1 ;SKIP RETURN + +POKER: BLOCK 3 ;ARGUMENTS FOR POKING + +DEPNPT: AOSG DEPNCT ;FIRST TRY? + OUTSTR [ASCIZ \ +?Patching was not enabled by /P +\] + JRST CPOPJ1 +DEPNCT: BLOCK 1 + +;STILL UNDER FTFILE + +;HERE WHEN ^Z TYPED TO CLOSE OUT + +CNTRLZ: SKIPE CRASHS ;SEE IF NOT /M + SKIPN PATCHS ;OR NOT /P + JRST NOCHNZ ;RIGHT--JUST WRAP UP + SKIPN CHGSFL ;SEE IF SYMBOL TABLE CHANGED + JRST NOSCPY ;JUMP IF NOT + PUSHJ P,SYMPTR ;YES--REFETCH FILE POINTER + HLRE W1,FIUPTR ;GET LENGTH OF UNDEFINED S.T. + HLRE R,FISPTR ;GET LENGTH OF STANDARD S.T. + ADD W1,R ;ADD TOGETHER + MOVM W1,W1 ;MAKE POSITIVE + HRRZ R,TT ;GET BASE OF UNDEFINED S.T. + SKIPN TT ;IN CASE NOTHING THERE + HRRZ R,T ;USE BASE OF DEFINED S.T. + ADD W1,R ;ADD BASE AND LENGTH OF TABLES + MOVEM W1,MONSIZ ;STORE AS NEW SIZE OF .XPN FILE + MOVE W1,FIUPTR ;PREPARE TO + MOVE R,T + JUMPGE W1,NOUCPY ;JUMP IF NONE + JUMPE TT,NOUCPY + MOVE R,TT ; COPY UNDEF SYMS +OUCPY: MOVE T,(W1) + PUSHJ P,DMEMER + AOS R + AOBJN W1,OUCPY + +NOUCPY: HRRZ T,TT ;GET START + HLL T,FIUPTR ;GET NEW LENGTH + PUSH P,R ;SAVE START OF SYMBOLS + HLRZ R,S ;GET LOCATION POINTER IS KEPT + PUSHJ P,DMEMER ;STORE NEW POINTER + + HRRZ R,(P) ;START AT BEGINNING + MOVE W1,FISPTR ;PREPARE TO COPY SYMS + JUMPGE W1,NOSCP +OSCPY: MOVE T,(W1) + PUSHJ P,DMEMER + AOS R + AOBJN W1,OSCPY + +NOSCP: POP P,T ;GET START + HLL T,FISPTR ;GET NEW LENGTH + HRRZ R,S ;GET LOCATION POINTER IS KEPT + PUSHJ P,DMEMER ;STORE NEW POINTER + +;STILL UNDER FTFILE + +NOSCPY: SETZM WINNUM ;START WITH WINDOW ZERO +WRTLP: MOVE T,WINNUM ;GET WINDOW NUMBER + MOVE T,WINDIR(T) ;GET PAGTBL ADDRESS + MOVSI TT1,(1B5) ;SEE IF PAGE CHANGED + TDNE TT1,(T) ; .. + PUSHJ P,WRTWIN ;WRITE THE WINDOW + AOS T,WINNUM ;STEP TO NEXT WINDOW + CAIGE T,CT.RES ;MORE + JRST WRTLP ;NO--KEEP GOING + MOVSI TT,-MX.SIZ ;LOOK FOR CHNAGED BITS + MOVSI TT1,(1B5) ; .. + TDNN TT1,PAGTBL(TT) ; .. + AOBJN TT,.-1 ; .. + SKIPG TT ;ANY FOUND + OUTSTR [ASCIZ " +?FILDDT INTERNAL ERROR -- VERIFY YOUR PATCHES +"] + CLOSE 1, + STATZ 1,760000 ;ALL OK + OUTSTR [ASCIZ " +?OUTPUT ERROR ON CLOSE +"] +NOCHNZ: CALLI 12 + > ;END FILDDT CASE +LIST +;FETCH FROM MEMORY SUBROUTINE + +;HFETCH GETS A WORD FROM THE HISEG GIVEN AN OFFSET INTO THE SEGMENT +;CALL WITH: +; R = HISEG OFFSET +; PUSHJ P,HFETCH +; NO HISEG RETURN +; HERE WITH WORD IN T +; +HFETCH: + IFN FTEXEC,< +; SKPUSR ;NO HISEG SYMBOLS IN EXEC MODE (OR KLDDT) + POPJ P,0> ; .. + PUSHJ P,GETHSO ;GET START OF HISEG + JUMPE T,CPOPJ ;EXIT IF NONE + ADD R,T ;RELOCATE +;FALL INTO FETCH + +;SUBROTINE GET A WORD FROM MEMORY +;CALL WITH: +; R = JUNK,,ADDRESS +; PUSHJ P,FETCH +; HERE IF ADDRESS IS NOT VALID +; HERE WITH WORD IN T AND R UNCHANGED +; +;AC'S TT1 AND TT2 CHANGED + +FETCH: IFE FTDEC20,< + IFE FTFILE,< + SKIPE TOPS20 + JRST FET20 + PUSHJ P,CHKPAG ;GET ACCESS BITS FOR PAGE + JUMPL TT1,CPOPJ ;ERROR IF PAGE DOES NOT EXIST + TLNE TT1,(1B2) ;IS PAGE READABLE? + JRST FET1 ;YES--GO READ IT + JUMPN TT1,CPOPJ ;EXIT IF KNOW CONCEALED + JSP TT1,CHKADR ;LEGAL ADDRESS? + JFCL ;HIGH OR LOW OK FOR FETCH +FET1: TRNN R,777760 ;ACCUMULATOR? + SKIPA T,AC0(R) ;YES + MOVE T,(R) ;NO + JRST CPOPJ1> ;SKIP RETURN ONLY FOR LEGAL ADDRESS +; > ;END OF IFE FTDEC20 +; IFN FTDEC20,< ;FETCH FOR DEC20 +FET20: TRNN R,777760 ;AC? + JRST [MOVE T,AC0(R) ;YES, DO IT + JRST CPOPJ1] + PUSHJ P,CHKADR ;GET ACCESS + TLNE TT,(PA%EX) ;EXISTS? + TLNN TT,(PM%RD) ;HAVE READ? + POPJ P, ;NO, FAIL + MOVE T,0(R) ;YES, DO IT + JRST CPOPJ1 +; > ;END IFN FTDEC20 +XLIST + + IFN FTFILE,< + HRRZ TT1,R ;STRIP OF COUNT + CAIG TT1,17 ;IS IT AN AC + JRST [MOVE T,AC0(TT1) ;YES--GET THE AC + JRST CPOPJ1] ;GIVE GOOD RETURN + PUSH P,R ;SAVE JUNK IN R + TLZ R,-1 ;CLEAR JUNK + PUSHJ P,CVTADR ;MAP THE ADDRESS + SKIPA ;ERROR + PUSHJ P,FETX ;GET THE WORD + SOS -1(P) ;ERROR + POP P,R ;RESTORE R + JRST CPOPJ1 ;RETURN +FETX: SKIPN CRASHS ;CRASH.SAV EXIST? + JRST MONPEK ;NO - GO PEEK AT RUNNING MONITOR + HRRZ TT1,R ;STRIP OFF POSSIBLE COUNT + LSH TT1,-9 ;CONVERT TO PAGE # + CAIL TT1,MX.SIZ ;TOO BIG? + POPJ P,0 ;YES--PUNT + SKIPN PAGTBL(TT1) ;SOMETHING THERE? + POPJ P,0 ;NO--ERROR + ADDI TT1,PAGTBL ;SET TO START OF TABLE + MOVEM TT1,FETPAG ;SAVE FOR LATER + LDB T,[POINT 9,@FETPAG,17] ;GET WINDOW NUMBER + SOJGE T,INCORE ;JUMP IF IN CORE + AOS T,WINNUM ;STEP TO NEXT WINDOW + CAIL T,CT.RES ;ARE THERE THAT MANY? + SETZB T,WINNUM ;NO--WRAP AROUND + MOVEI TT2,1(T) ;STORE WINDOW # PLUS 1 + DPB TT2,[POINT 9,@FETPAG,17] ;IN PAGTBL + MOVSI TT1,(1B5) ;CHANGE BIT + TDNE TT1,@WINDIR(T) ;DID THIS PAGE CHANGE? + PUSHJ P,WRTWIN ;YES--WRITE OUT WINDOW + MOVE T,WINNUM ;GET WINDOW NUMBER BACK + MOVEI TT1,0 ;MARK CURRENT PAGE AS NOT IN CORE + DPB TT1,[POINT 9,@WINDIR(T),17] + MOVE TT1,FETPAG ;FIX UP DIRECTORY + MOVEM TT1,WINDIR(T) ; .. + PUSHJ P,REDWIN ;READ NEW DATA + MOVE T,WINNUM ;GET NUMBER OF CURRENT WINDOW +INCORE: LSH T,9 ;CONVERT TO WORDS + ADDI T,WIND0 ;BUMP TO BASE OF WINDOWS + LDB TT1,[POINT 9,R,35] ;GET WORD OFFSET + ADD T,TT1 ;ADDRESS OF WORD + MOVEM T,FETADR ;SAVE FOR DEPOSIT + MOVE T,(T) ;GET DATA + JRST CPOPJ1 ;GOOD RETURN + +MONPEK: HRRZ T,R + CALLI T,33 + JRST CPOPJ1 + +WRTWIN: SKIPA T,[OUT 1,TT1] +REDWIN: MOVE T,[IN 1,TT1] + PUSH P,T ;SAVE UUO + MOVE T,WINNUM ;GET CURRENT WINDOW NUMBER + MOVSI TT2,(1B5) ;CLEAR MODIFIED BIT + ANDCAM TT2,@WINDIR(T) ; IN THE PAGE TABLE + HRRZ TT1,@WINDIR(T) ;GET FILE PAGE # + LSH TT1,2 ;CONVERT TO BLOCK + USETI 1,1(TT1) ;POINT FILSER + LSH T,9 ;CONVERT WINDOW # TO WORDS + ADDI T,WIND0 ;BASE OF WINDOWS + MOVSI TT1,-1000 ;NEGATIVE WORD COUNT + HRRI TT1,-1(T) ;IOWD + MOVEI TT2,0 ;TERMINATE LIST + POP P,T ;RESTORE UUO + XCT T ;DO I/O + POPJ P,0 ;DONE + GETSTS 1,T + SETSTS 1,17 + TLNN T,740000 + POPJ P,0 ;JUST EOF + OUTSTR [ASCII "?FATAL I/O ERROR +"] + CALLI 1,12 ;SAY . + SETSTS 1,17 ;CLEAR ERROR BITS + POPJ P,0 ;IGNORE ERROR + > ;END FILDDT CONDITIONAL +LIST + + IFE FTDEC20,< +CHKADR: SKIPE TOPS20 + JRST CHKA20 + HRRZ TT,.JBREL ;GET HIGHEST ADDRESS IN LOW SEGMENT + IFN FTEXEC,< + SKPUSR + JRST CHKA4 ;DO MAP IN EXEC MODE + > + CAIL TT,(R) ;CHECK FOR WITHIN LOW SEGMENT + JRST 1(TT1) ;ADDRESS IS OK IN LOW SEGMENT, SKIP RETURN + SKIPN .JBHRL ;ANY HISEG? + POPJ P,0 ;NO--ERROR + PUSH P,T ;SAVE T + PUSHJ P,GETHSO ;GET START OF HISEG + HRRZ TT,R ;COPY DESIRED ADDRESS + SUB TT,T ;GET OFFSET INTO HISEG + POP P,T + JUMPL TT,CPOPJ ;MUST BE POSITIVE + HRRZ TT,.JBHRL ;TOP OF HISEG + CAIGE TT,(R) ;IS ADDRESS TOO BIG? + POPJ P,0 ;YES--ERROR + JRST (TT1) ;NO--INDICATE HISEG + +CHKPAG: IFN FTEXEC,< + MOVEI TT1,0 ;PRESET UNKNOWN ANSWER + SKPUSR ;SKIP IF IN USER MODE + POPJ P,0 ;DO NOT DO UUO'S IN EXEC MODE + > + HRRZ TT1,R ;COPY ADDRESS + LSH TT1,-9 ;SHIFT LEFT 9 BITS + HRLI TT1,6 ;FUNCTION TO GET ACCESS BITS + PAGE. TT1, ;ASK THE MONITOR + TDZA TT1,TT1 ;RETURN ZERO IF UNKNOWN + TRO TT1,1 ;MAKE SURE NON-ZERO IF UUO WON + POPJ P,0 ;ELSE RETURN GOOD STUFF + +GETHSO: IFN FTEXEC,< + SKPUSR + JRST [MOVEI T,400000 + POPJ P,0] + > + SKIPE TOPS20 + JRST GETH20 + MOVE T,[-2,,.GTUPM] + GETTAB T, + MOVEI T,0 + HLRZ T,T + CAIGE T,777 + MOVEI T,400000 + POPJ P, +; > ;END IFE FTDEC20 +; IFN FTDEC20,< +CHKA20: IFN FTEXEC,< + SKPUSR + JRST CHKA4> + PUSH P,T2 + PUSH P,R + HRRZ T2,0(P) ;GET DESIRED ADDRESS + XOR T2,LASTPG ;COMPARE WITH LAST ONE TESTED + TRNN T2,777000 ;SAME PAGE? + JRST CHKA1 ;YES, ALREADY HAVE ACCESS + XORM T2,LASTPG ;NO, SET NEW LAST PAGE + JSP T1,.+1 ;GET USER FLAG + TLNN T1,(PC%USR) ;IN USER MODE? + JRST [HRRZ T1,0(P) ;NO, MONITOR. GET ADDRESS + MRPAC ;READ MONITOR PAGE ACCESS + JRST CHKA2] ;RETURN IT + LDB T1,[POINT 9,0(P),26] ;GET PAGE NUMBER + HRLI T1,.FHSLF + RPACS ;READ PAGE ACCESS +CHKA2: HLLM T2,LASTPG ;SAVE ACCESS WITH ADDRESS +CHKA1: HLLZ TT,T2 ;RETURN ACCESS IN TT + POP P,R + POP P,T2 + POPJ P, +; > ;END FTDEC20 + + IFN FTEXEC,< +CHKA4: SKPNKL ;KL10? + JRST [MAP TT,0(R) ;YES, GET PAGING DATA + TLNN TT,(1B8) ;MAPPED REF? + JRST CHKA5 ;NO, ALLOW IT + TLNN TT,(1B1) ;HARD PAGE FAIL? + TLNN TT,(1B2) ;OR NO ACCESS? + JRST CHKA3 ;YES + TLNN TT,(1B3+1B4) ;WRITE ALLOWED? + JRST CHKA7 ;NO + JRST CHKA5] ;YES + SKPKI ;KI10? + JRST CHKA8 ;NO, NO MAP INSTRUCTION + MAP TT,0(R) ;GET ACCESS BITS FOR PAGE + TRNN TT,1B18 ;PAGE FAIL? + JRST CHKA6 ;NO, GO INSPECT DATA + TRNE TT,1B22 ;YES, HAVE MATCH? + JRST CHKA3 ;NO, PAGE HAS NO ACCESS +CHKA6: TRNN TT,1B20+1B22 ;WRITABLE OR NO MATCH? (UNMAPPED REF) + IFN FTDEC20,< +CHKA7: SKIPA TT,[PM%RD+PA%EX] ;NO +CHKA8: +CHKA5: MOVSI TT,(PM%RD+PM%WT+PA%EX) ;YES + POPJ P, + +CHKA3: MOVSI TT,(1B5) ;SAY NO ACCESS + POPJ P, + > + IFE FTDEC20,< +CHKA7: JRST (TT1) ;CAN NOT WRITE -- INDICATE HISEG +CHKA5: JRST 1(TT1) ;CAN WRITE -- INDICATE LOWSEG +CHKA3: POPJ P,0 ;PAGE FAIL -- INDICATE ERROR +CHKA8: CONO APR,NXMKA ;CLEAR NXM FLAG + MOVE TT,(R) ;SEE IF NXM SETS + CONSO APR,NXMKA ;TEST NXM FLAG + JRST 1(TT1) ;OK + POPJ P,0 ;ERROR + >> ;END FTEXEC AND FTDEC20 +; IFN FTDEC20,< +GETH20: IFN FTEXEC,< + SKPUSR + JRST GETHSZ> ;NO HIGHSEG IN EXEC MODE +; SKIPN JDTFLG# ;JOB DATA AREA VALID? +; JRST GETHSZ ;NO, ASSUME NO HIGHSEG +; MOVE T,.JBHSO ;CHECK SPECIAL LOSEG CELL +; LSH T,^D9 ;MAKE PAGE INTO ADDRESS +; SKIPN T ;BUT IF NOTHING SETUP, +; MOVEI T,400000 ;ASSUME USUAL +; SKIPN .JBHRL ;ANY HIGHSEG? +GETHSZ: SETZ T, ;NO, SAY NO HIGHSEG + POPJ P, ; >;END IFN FTDEC20 +XLIST + + IFN FTFILE,< +;MAP AN ADDRESS +CVTADR: SKIPN EPTUPT ;$U GIVEN + JRST CPOPJ1 ;NO + HLRZ T,EPTUPT ;EXEC PAGING + JUMPE T,CVTAD2 ;NO + LDB T,[POINT 9,R,26];GET PAGE # + CAIGE T,340 ;IS THERE A MAP ENTRY? + JRST CPOPJ1 ;NO--LOOK IN PHYSICAL CORE + CAIL T,400 ;PER PROCESS + JRST CVTAD1 ;NO--JUST LIKE USER + PUSH P,R ;SAVE ARGUMENT + LSH T,-1 ;CONVERT TO 1/2 WORD + HRRZ R,EPTUPT ;GET ADDRESS OF UPT + ANDI R,17777 ;JUST PAGE # + LSH R,9 ;CONVERT TO WORD + ADDI R,400-<340/2>(T) ;FOR THIS PAGE + JRST CVTAD3 ;COMPUTE ADDRESS +CVTAD1: HLRZ T,EPTUPT ;GET EPT ADDRESS + SKIPA +CVTAD2: HRRZ T,EPTUPT ;GET UPT ADDRESS + ANDI T,17777 ;JUST PAGE # + PUSH P,R ;SAVE R + LSH T,9 ;CONVERT TO WORD + LSH R,-12 ;CONVERT TO 1/2 WORD IN MAP + ANDI R,377 ;MASK OUT JUNK + ADD R,T ;ADDRESS OF MAP ENTRY +CVTAD3: PUSHJ P,FETX ;FETCH PAGE TABLE ENTRY + MOVEI T,017000 ;ERROR + POP P,R ;RESTORE R + TRNN R,1000 ;ODD PAGE + HLRZ T,T ;NO--FLIP ENTRY + TRZN T,400000 ;VAILD ENTRY + POPJ P,0 ;NO--ERROR + ANDI T,17777 ;JUST PAGE # + LSH T,9 ;CONVERT TO PAGE # + ANDI R,000777 ;GET NEW ADDRESS + IOR R,T ; .. + JRST CPOPJ1 ;GIVE GOOD RETURN + > ;END FTFILE +LIST + +SUBTTL BINARY TO SYMBOLIC CONVERSION + +; PUSHJ P,LOOK ;AC T CONTAINS BINARY TO BE INTERPRETED +; RETURN 1 ;NOTHING AT ALL FOUND THAT'S USEFUL +; RETURN 2 ;SOMETHING FOUND, BUT NO EXACT MATCH +; RETURN 3 ;EXACT MATCH FOUND AND PRINTED + +LOOK: MOVEM T,TEM ;SAVE VALUE BEING LOOKED UP + PUSHJ P,CSHVER ;SEE IF CACHE IS USEFUL + JRST LOOKC2 ;ITS NOT. DO IT THE OLD WAY + MOVE T,TEM ;RECOVER VALUE + MOVSI R,-NSYMCS ;CHECK SYMBOL CACHE FIRST +LOOKC1: SKIPE W1,SYMCSH(R) ;GET POINTER AND CHECK IN USE + CAME T,1(W1) ;VALUE SAME? + SKIPA ;NO. DON'T LOOK AT IT THEN + JRST [MOVE W2,0(W1) ;CHECK SYMBOL + TLNE W2,(DELI+DELO) ;DELETED? + JRST .+1 ;YES, IGNORE IT + MOVEM W1,SYMPNT ;GOOD ONE + JUMPL W1,LOOKO2 ;WAS OUTSIDE LOCAL + JRST LOOKO4] ;WAS GLOBAL OR PROGRAM + AOBJN R,LOOKC1 +LOOKC2: PUSHJ P,SYMSET ;SET UP SYM SEARCH POINTER AND COUNT + SETZM SYMPNT ;INIT "OUTSIDE LOCAL" FLAG + TRZ F,MDLCLF!PNAMEF ;INIT FLAGS + TLZ F,(1B0) ;CLEAR SYMBOL TYPED FLAG + MOVE T,TEM ;RESTORE VALUE BEING LOOKED UP + JUMPGE R,CPOPJ ;RETURN, NOTHING FOUND + +LOOK1: MOVE W2,(R) ;GET FLAGS FOR SYMBOL + TLNN W2,(PNAME) ;PROGRAM NAME? + JRST [JUMPE W2,LOOK3 ;YES, IGNORE NULL PROGRAM NAMES + TRO F,PNAMEF ;SET PROGRAM NAME FLAG + JRST LOOK3] ;GET NEXT SYMBOL + CAML T,1(R) ;VALUE TOO LARGE? + TLNE W2,(DELI!DELO) ;DELETED? + JRST LOOK3 ;YES, GET NEXT SYMBOL + TLNN W2,(GLOBL) ;NOT PROGRAM NAME. GLOBAL SYMBOL? + TRNN F,PNAMEF ;LOCAL SYMBOL. INSIDE SPECIFIED PROGRAM? + JRST LOOK5 ;CHECK FOR BEST VALUE SO FAR + CAIGE T,20 ;QUANT IS IN AC RANGE? + JRST LOOK3 ;YES, IGNORE OUTSIDE LOCALS + MOVE W,1(R) ;GET VALUE + XOR W,T ;COMPARE + JUMPL W,LOOK3 ;REJECT IF SIGNS DIFFERENT + SKIPN W2,SYMPNT ;HAVE ANY OUTSIDE LOCAL NOW? + JRST LOOK2 ;NO, USE THIS ONE + MOVE W,1(R) ;COMPARE VALUES + SUB W,1(W2) + JUMPLE W,LOOK3 ;REJECT UNLESS BETTER + +LOOK2: TRZ F,MDLCLF ;NOTE NO AMBIGUITY NOW + HRRZM R,SYMPNT ;SAVE POINTER TO SYMBOL +LOOK3: AOBJN R,.+1 + AOBJN R,LOOK3A ;ADVANCE POINTER TO NEXT SYM. ANY LEFT? + IFE FTFILE,< + TRNN R,1B18 ;HIGH SEGMENT SEARCH? + SKIPL R,SAVHSM ;NO, SEARCH HIGH SEG TABLE , IF ANY + > + MOVE R,@SYMP ;NO, WRAP AROUND END OF TABLE +LOOK3A: AOJLE S,LOOK1 ;TRANSFER IF MORE SYMBOLS TO LOOK AT + SKIPE W2,SYMPNT ;OUTSIDE LOCALS FOUND? + TRNE F,MDLCLF ;THAT ARE NOT MULTIPLY SYMBOLED? + JRST LOOK4 ;NO + JUMPGE F,LOOKO1 ;JUMP IF NO REGULAR SYMBOL FOUND + MOVE W,1(W2) ;GET OUTSIDE LOCAL VALUE + CAMG W,1(W1) ;BETTER THAN REGULAR SYM VALUE? + JRST LOOK4 ;NO, USE REGULAR SYM +LOOKO1: HRLI W1,(1B0) ;FLAG OUTSIDE LOCAL + PUSHJ P,SYMCSI ;ADD TO SYMBOL CACHE +LOOKO2: MOVE W1,SYMPNT ;PICK UP POINTER TO SYMBOL + CAME T,1(W1) ;VALUE IDENTICAL? + JRST [SUB T,1(W1) ;NO, COMPUTE DIFFERENCE + JRST CPOPJ1] ;RETURN INEXACT + PUSHJ P,SPT0 ;YES, TYPE IT OUT + MOVEI T,"#" + PUSHJ P,TOUT ;TYPE # TO SHOW POSSIBLE AMBIGUITY + JRST LOOKO3 ;DOUBLE SKIP RETURN + +LOOK4: SETZM SYMPNT ;FORGET ANY OUTSIDE LOCAL SEEN + JUMPGE F,CPOPJ ;RETURN 1 IF NO GOOD SYMBOLS FOUND + SUB T,1(W1) ;SOMETHING FOUND, CALCULATE HOW FAR OFF + JRST CPOPJ1 ;RETURN 2, SOMETHING FOUND BUT NOT EXACT + +LOOK5: MOVE W2,1(R) ;GET VALUE FROM TABLE + XOR W2,T ;COMPARE SIGNS + JUMPL W2,LOOK3 ;REJECT IF SIGNS DIFFERENT + JUMPGE F,LOOK6 ;TRANSFER IF NOTHING FOUND YET + MOVE W,1(R) ;GET VALUE FROM TABLE + SUB W,1(W1) ;COMPARE WITH BEST VALUE SO FAR + JUMPLE W,LOOK3 ;REJECT IF WORSE +LOOK6: HRR W1,R ;SAVE AS BEST VALUES SO FAR + TLO F,(1B0) ;SET FLAG SHOWING SOMETHING FOUND + JUMPN W2,LOOK3 ;IF NOT PERFECT, CONTINUE LOOKING + HRLI W1,0 ;FLAG GLOBAL OR PROGRAM LOCAL + PUSHJ P,SYMCSI ;ADD TO SYMBOL CACHE +LOOKO4: PUSHJ P,SPT0 ;PERFECT, TYPE IT OUT +LOOKO3: AOS (P) ;SKIP TWICE + JRST CPOPJ1 +;ADD SYMBOL TO SYMBOL CACHE + +SYMCSI: AOS W2,SYMCSP ;ROUND-ROBIN INSERT + CAIL W2,NSYMCS ;WRAPAROUND? + SETZB W2,SYMCSP ;YES + MOVEM W1,SYMCSH(W2) ;STORE POINTER + POPJ P, + + +;VERIFY CACHE IS NOW USEFUL, I.E. IT POINTS TO THE PROPER SYMBOL +;TABLE + +CSHVER: PUSHJ P,SYMSET ;GET CURRENT POINTERS + CAMN R,OLDSYM ;SAME AS PREVIOUS? + JRST CPOPJ1 ;YES. GO USE IT + MOVEM R,OLDSYM ;SAVE CURRENT SYMBOL POINTER + ; AND FALL THROUGH TO FLUSH CACHE +;CLEAR SYMBOL CACHE + +CLRCSH: MOVE TT1,[SYMCSH,,SYMCSH+1] + SETZM -1(TT1) + BLT TT1,SYMCSH+NSYMCS-1 + POPJ P, + +CONSYM: MOVEM T,LWT + IFN FTFILE,< + MOVEM T,POKER+1> ;STORE FOR /P/M LOGIC + TRNN F,LF1 + JRST @SCH ;PIN OR FTOC + TRNE F,CF1 + JRST FTOC + +PIN: TLC T,700000 ;PRINT INSTRUCTION + TLCN T,700000 + JRST INOUT ;IN-OUT INSTRUCTION OR NEG NUM + AND T,[XWD 777000,0] ;EXTRACT OPCODE BITS + JUMPE T,HLFW ;TYPE AS HALF WORDS +; IFN FTDEC20,< + TLNE T,(700B8) ;NO BUILT-IN OPCODES .L. 100 +;> + PUSHJ P,OPTYPE +; IFN FTDEC20,< + TRNE F,ITF ;INSTRUCTION TYPED? + JRST PFULI1 ;YES + MOVE T,LWT ;NO, GET WORD + PUSHJ P,LOOK ;TRY FOR FULL WORD MATCH + JRST PFULI1 ;NOT FOUND + JRST PFULI1 ;CLOSE IS NOT GOOD ENOUGH + POPJ P, ;FOUND AND PRINTED + +PFULI1: ;> + MOVSI T,777000 + AND T,LWT + TRNE F,ITF ;HAS INSTRUCTION BEEN TYPED? + JRST PIN2 ;YES + PUSHJ P,LOOK ;NO, LOOK IN SYMBOL TABLE + JRST HLFW ;NOTHING FOUND, OUTPUT AS HALFWORDS + JRST HLFW ;NO EXACT MATCH, OUTPUT AS HALFWORDS +PIN2: TRO F,NAF ;EXACT MATCH TYPED, ALLOW NEG ADDRESSES + + PUSHJ P,TSPC + LDB T,[XWD 270400,LWT] ;GET AC FIELD + JUMPE T,PI4 + HLRZ W,LWT + CAIL W,(JRST) + CAILE W,256777 ;IS INST BETWEEN JRST AND XCT? + JRST [PUSHJ P,PAD ;NO, PRINT SYMBOLIC AC + JRST PI3A] + PUSHJ P,TOC ;YES, PRINT NUMERIC AC +PI3A: MOVEI W1,"," + PUSHJ P,TEXT +PI4: MOVE W1,LWT + MOVEI T,"@" + TLNE W1,20 ;CHECK FOR INDIRECT BIT + PUSHJ P,TOUT + HRRZ T,LWT + LDB W,[XWD 331100,LWT] ;INSTRUCTION BITS + IFN FTDEC20,< + MOVE W1,W ;GET COPY + TRC W1,600 + TRNN W1,710 ;IS INST TRXX OR TLXX? + JRST [PUSHJ P,TOC ;YES, PRINT ADDRESS NUMERIC + JRST PI7]> ;END IFN FTDEC20 + CAIL W,240 + CAILE W,247 + JRST PI8 ;ALL (EXCEPT ASH,ROT,LSH) HAVE SYMBOLIC ADRS + TLNN W1,20 + CAIN W,_-33 + JRST PI8 ;JFFO AND @ GET SYMBOLIC ADDRESSES + PUSHJ P,PADS3A ;ONLY ABSOLUTE ADDRESSING FOR LSH, ASH, AND ROT +PI7: TRZ F,NAF + LDB R,[XWD 220400,LWT] ;INDEX REGISTER CHECK + JUMPE R,CPOPJ ;EXIT + MOVEI T,"(" + PUSHJ P,TOUT + MOVE T,R + PUSHJ P,PAD + MOVEI T,")" + JRST TOUT ;EXIT + +PI8: PUSHJ P,PAD + JRST PI7 + +HLFW: REPEAT 0,< MOVE T,LWT + CAML T,[DDTINT SAVPI] + CAMLE T,[DDTINT BNADR+2] + SKIPA + JRST PAD> + HLRZ T,LWT ;PRINT AS HALF WORDS + JUMPE T,HLFW1 ;TYPE ONLY RIGHT ADR IF LEFT ADR=0 + TRO F,NAF ;ALLOW NEGATIVE ADDRESSES + PUSHJ P,PAD + MOVSI W1,(ASCII /,,/) + PUSHJ P,TEXT2 ;TYPE ,, +HLFW1: HRRZ T,LWT + +;PRINT ADDRESSES (ARG USUALLY 18 BITS BUT CAN BE 36 BITS) + +PAD: ANDI T,-1 + JRST @AR ;PADSO OR PAD1 + +PADSO: JUMPE T,FP7B ;PRINT A ZERO + PUSHJ P,LOOK + JRST PADS3 ;NOTHING FOUND, TYPE NUMERIC + SKIPA W2,1(W1) ;SOMETHING FOUND, GET VALUE + POPJ P, ;EXACT MATCH FOUND AND TYPED + IFN FTDEC20,< + CAIGE T,1000> + IFE FTDEC20,< + IFE FTEXEC!FTFILE,< + CAIGE T,100> ;IN USER MODE, PRINT NUMERIC IF SYMBOL OFF + IFN FTEXEC!FTFILE,< + CAIGE T,200> ; BY 100(8) OR MORE- 200(8) FOR KLDDT + > + CAIGE W2,30000 ;PRINT ADRS .LT. 30000 NUMERICALLY (KLDDT) + JRST PADS3 ;PRINT ADDRESS NUMERICALLY + MOVE W2,TEM ;GET ORIGINAL QUANTITY + CAIL W2,-100 ;ADDRESS BETWEEN -100 AND -1? + JRST PADS3 ;YES, PRINT NUMERICALLY + MOVEM T,TEM + PUSHJ P,SPT0 + MOVEI T,"#" + SKIPE SYMPNT ;SYMBOL IS OUTSIDE LOCAL? + PUSHJ P,TOUT ;YES, FLAG + MOVEI T,"+" +PADS1A: PUSHJ P,TOUT + HRRZ T,TEM +PAD1: JRST TOC ;EXIT +PADS3: MOVE T,TEM +PADS3A: TRNE F,NAF + CAIGE T,776000 + JRST TOC +PADS3B: MOVNM T,TEM + MOVEI T,"-" + JRST PADS1A + +INOUT: TDC T,[XWD -1,400000] ;IO INSTRUCTION OR NEG NUM + TDCN T,[XWD -1,400000] + JRST PADS3B ;TYPE AS NEG NUM + LDB R,[POINT 7,T,9] ;PICK OUT IO DEVICE BITS + CAIL R,700_-2 ;IF DEVICE .L. 700, THEN TYPE + JRST HLFW ;TYPE AS HALF WORDS + LDB R,[POINT 3,T,12] + DPB R,[POINT 6,T,8] ;MOVE IO BITS OVER FOR OP DECODER + PUSHJ P,OPTYPE + PUSHJ P,TSPC + MOVSI T,077400 + AND T,LWT + JUMPE T,PI4 + PUSHJ P,LOOK ;LOOK FOR DEVICE NUMBER + JRST INOUT2 ;NOTHING FOUND, PRINT AS OCTAL + JRST INOUT2 ;NO EXACT MATCH, PRINT AS OCTAL + JRST PI3A ;EXACT MATCH TYPED +INOUT2: MOVE T,TEM + LSH T,-30 + PUSHJ P,TOC + JRST PI3A + +MASK: TLNE F,(QF) + JRST MASK1 + IFE FTFILE,< + MOVEI T,MSK +MASK2: MOVEI W,1 + MOVEM W,FRASE1 + JRST QUANIN + > + IFN FTFILE, +MASK1: MOVEM T,MSK + JRST RET + +SUBTTL SEARCH LOGIC + +EFFEC: TLO F,(LTF) + HRRZ T,T +WORD: MOVEI R,322000-326000 ;JUMPE-JUMPN +NWORD: ADDI R,326000+40*T ;JUMPN T, + HRLM R,SEAR2 + TLZN F,(QF) + JRST ERR + SETCAM T,WRD + MOVSI T,FRASE-DEN-1 ;PREVENT TYPE OUT OF DDT PARTS + SETCMM FRASE(T) + AOBJN T,.-1 + MOVE T,ULIMIT + TLNE F,(SAF) + TLO F,(QF) ;SIMULATE A $Q TYPED + PUSHJ P,SETUP + PUSHJ P,CRF +SEAR1: PUSHJ P,FETCH + IFE FTDEC20,< + JRST SEAR2B> + IFN FTDEC20,< + JRST [MOVEI R,777 ;FETCH FAILED, BUMP TO NEXT PAGE + IORB R,DEFV + JRST SEAR2A]> ;CONTINUE SEARCH + TLNE F,(LTF) ;CHECK FOR EFFECTIVE ADDRESS SEARCH + JRST EFFEC0 + EQV T,WRD + AND T,MSK +SEAR2G: XCT SEAR2 ;(JUMPE T, OR JUMPN T,) TO SEAR3 IF FOUND +SEAR2A: AOS R,DEFV ;GET NEXT LOCATION + TRNN R,777 ;CHECK LISTEN ONLY ONCE PER PAGE + PUSHJ P,LISTEN ;ANYTHING TYPED? + CAMLE R,ULIMIT ;OR END OF SEARCH? + JRST SEARFN ;YES + JRST SEAR1 ;NO, LOOK SOME MORE + + IFE FTDEC20,< +SEAR2B: MOVEI R,400000-1 ;MOVE UP TO HI SEGMENT + IORB R,DEFV ;PUT IN MEMORY TOO + TRNN R,400000 ;ALREADY IN HI SEGMENT? + JRST SEAR2A> ;NO +SEARFN: SETCMM LWT ;COMPLEMENT BITS BACK AND STOP SEARCH + JRST DD1 + +SEAR3: PUSHJ P,LISTEN ;ANY TYPEIN? + SKIPA ;NO + JRST SEARFN ;YES, TERMINATE SEARCH + MOVE R,DEFV + PUSHJ P,FETCH + JRST ERR + TLZ F,(STF) ;GET RID OF SUPPRESS TYPEOUT MODE + MOVE T,DEFV + PUSHJ P,PSHLLC ;PUSH OLD LOCATION COUNTER + PUSHJ P,LI1 ;CALL REGISTER EXAMINATION LOGIC TO TYPE OUT + PUSHJ P,CRF + SETCMM LWT + SETCMM TEM +SEAR4: JRST SEAR2A + +EFFEC0: MOVEI W,100 + MOVEM W,TEM +EFFEC1: MOVE W,T + LDB R,[POINT 4,T,17] ;GET IR FIELD + JUMPE R,EFFEC2 + PUSHJ P,FETCH + JRST ERR + HRRZS T ;GET RID OF BITS IN LEFT IN ORDER + ADDI T,(W) ; PREVENT AROV WHEN ADDING ADDRESSES +EFFEC2: HRR R,T + TLNN W,20 ;INDIRECT BIT CHECK + JRST EFFEC3 + SOSE,TEM + PUSHJ P,FETCH + JRST SEAR4 + JRST EFFEC1 +EFFEC3: EQV T,WRD + ANDI T,777777 + JRST SEAR2G + +SETUP: TLNN F,(QF) ;QUANTITY TYPED? + IFE FTDEC20,< + MOVEI T,777777> ;NO, DEFAULT HIGH ADR IS TOP OF MEMORY + IFN FTDEC20,< + IFN FTEXEC,< + HRRZ T,.JBFF> ;DEFAULT UPPER LIMIT + IFE FTEXEC,< + MOVEI T,777777>> + HRRZM T,ULIMIT ;SAVE LAST ADDRESS OF SEARCH + HRRZS R,DEFV ;GET 1ST ADDRESS + TLNN F,(FAF) ;WAS A 1ST ADR SPECIFIED? + SETZB R,DEFV ;NO, MAKE IT ZERO + CAMLE R,ULIMIT ;LIMITS IN A REASONABLE ORDER? + JRST ERR ;NO + POPJ P, ;YES, RETURN + +ZERO: TLNN F,(CCF) + JRST ERR + PUSHJ P,SETUP + HRRZ S,@SYMP ;GET 1ST ADR OF SYMBOL TABLE + HLRE W1,@SYMP ;GET LENGTH OF SYM TABLE + SUB W1,S ;GET NEG OF LAST ADR + MOVNS W1 ;GET POS LAST ADR + MOVEI T,0 ;0 TO STORE IN MEMORY +ZERO1: TRNN R,777760 + JRST ZEROR ;OK TO ZERO AC'S + IFE FTDEC20,< + IFN FTEXEC,< + SKPUSR + > + IFN FTEXEC!FTFILE,< + JRST [CAIGE R,XZLOW + MOVEI R,XZLOW ;IN EXEC MODE, DON'T ZERO 20-40 + JRST ZERO3 ] > + > + IFE FTFILE,< + CAIGE R,ZLOW + MOVEI R,ZLOW ;DON'T ZERO 20 THRU ZLOW +ZERO3: CAIL R,DDTX + CAILE R,DDTEND + JRST .+2 + MOVEI R,DDTEND ;DON'T ZERO DDT + IFE FTDEC20,< + CAML R,S + CAMLE R,W1> + JRST .+2 + HRRZ R,W1 ;DON'T ZERO SYMBOL TABLE + > + IFN FTFILE,< +ZERO3:> +ZEROR: CAMLE R,ULIMIT ;ABOVE LIMITS? + JRST DD1 ;YES, STOP + PUSHJ P,DEPMEM ;DEPOSIT T + IFE FTFILE,< + TROA R,377777 ; + AOJA R,ZERO1 + TRNN R,400000 ;HI SEGMENT? + AOJA R,ZERO1 ;NO, KEEP GOING + > + JRST DD1 ;FINISH + IFN FTFILE, + +SUBTTL OUTPUT SUBROUTINES + +FTOC: ;NUMERIC OUTPUT SUBROUTINE +TOC: HRRZ W1,ODF + CAIN W1,10 ;IS OUPUT RADIX NOT OCTAL, OR + TLNN T,-1 ;ARE THERE NO LEFT HALF BITS? + JRST TOCA ;YES, DO NOTHING SPECIAL + HRRM T,TOCS ;NO, TYPE AS HALF WORD CONSTANT + HLRZS T ;GET LEFT HALF + PUSHJ P,TOC0 ;TYPE LEFT HALF + MOVSI W1,(ASCII /,,/) + PUSHJ P,TEXT2 ;TYPE ,, + XCT TOCS ;GET RIGHT HALF BACK +TOCA: HRRZ W1,ODF ;IS OUTPUT RADIX DECIMAL? + CAIN W1,12 + JRST TOC4 ;YES,TYPE SIGNED WITH PERIOD +TOC0: LSHC T,-43 + LSH W1,-1 ;W1=T+1 + DIVI T,@ODF + HRLM W1,0(P) + SKIPE T + PUSHJ P,TOC0 + HLRZ T,0(P) + ADDI T,"0" + JRST TOUT + +TOC4: MOVE A,T ;TYPE AS SIGNED DECIMAL INTEGER + JUMPGE T,TOC5 + MOVEI T,"-" + PUSHJ P,TOUT +TOC5: PUSHJ P,FP7 ;DECIMAL PRINT ROUTINE +TOC6: MOVEI T,"." + JRST TOUT + +;SYMBOL OUTPUT SUBROUTINE + +SPT0: HRRZM W1,SPSAV ;SAVE POINTER TO TYPED SYM +SPT: ;RADIX 50 SYMBOL PRINT + LDB T,[POINT 32,0(W1),35] ;GET SYMBOL +SPT1: IDIVI T,50 + HRLM W1,0(P) + JUMPE T,SPT2 + PUSHJ P,SPT1 +SPT2: HLRZ T,0(P) + JUMPE T,CPOPJ ;FLUSH NULL CHARACTERS + ADDI T,260-1 + CAILE T,271 + ADDI T,301-272 + CAILE T,332 + SUBI T,334-244 + CAIN T,243 + MOVEI T,256 + JRST TOUT + +SYMD: ;$D ;DELETE LAST SYM & PRINT NEW + HRRZ R,SPSAV ;PICK UP POINTER TO LAST SYM + JUMPE R,ERR + MOVE T,(R) ;PICK UP SYMBOL + TLO T,(DELO) ;TURN ON "SUPPRESS OUTPUT" BIT + PUSHJ P,DSYMER ;STORE BACK IN SYMBOL TABLE + MOVE T,LWT + JRST CONSYM ;PRINT OUT NEXT BEST SYMBOL + +;FLOATING POINT OUTPUT + +TFLOT: MOVE A,T + JUMPGE A, TFLOT1 + MOVNS A + JFCL ;PREVENT OVERFLOW MESSAGE + ; FROM FORTRAN PROGRAMS + MOVEI T,"-" + PUSHJ P,TOUT + TLZE A,400000 + JRST FP1A +TFLOT1: TLNN A, 400 + JRST TOC5 ;IF UNNORMALIZED, TYPE AS DECIMAL INTEGER + +FP1: MOVEI B,0 + CAMGE A,FT01 + JRST FP4 + CAML A,FT8 + AOJA B,FP4 +FP1A: MOVEI C,0 + +FP3: MULI A,400 + ASHC B,-243(A) + SETZM TEM1 ;INIT 8 DIGIT COUNTER + SKIPE A,B ;DON'T TYPE A LEADING 0 + PUSHJ P,FP7 ;PRINT INTEGER PART OF 8 DIGITS + PUSHJ P,TOC6 ;PRINT DECIMAL POINT + MOVNI A,10 + ADD A,TEM1 + MOVE W1,C +FP3A: MOVE T,W1 + MULI T,12 + PUSHJ P,FP7B + SKIPE,W1 + AOJL A,FP3A + POPJ P, + +FP4: MOVNI C,6 + MOVEI W2,0 +FP4A: ASH W2,1 + XCT,FCP(B) + JRST FP4B + FMPR A,@FCP+1(B) + IORI W2,1 +FP4B: AOJN C,FP4A + PUSH P,W2 ;SAVE EXPONENT + PUSH P,FSGN(B) ;SAVE "E+" OR "E-" + PUSHJ P,FP3 ;PRINT OUT FFF.FFF PART OF NUMBER + POP P,W1 ;GET "E+" OR "E-" BACK + PUSHJ P,TEXT + POP P,A ;GET EXPONENT BACK + +FP7: IDIVI A,12 ;DECIMAL OUTPUT SUBROUTINE + MOVMS B ;MAKE POSITIVE + AOS TEM1 + HRLM B,(P) + JUMPE A,FP7A1 + PUSHJ P,FP7 + +FP7A1: HLRZ T,(P) +FP7B: ADDI T,260 + JRST TOUT + + 353473426555 ;1.0E32 + 266434157116 ;1.0E16 +FT8: 233575360400 ;1.0E8 + 216470400000 ;1.0E4 + 207620000000 ;1.0E2 + 204500000000 ;1.0E1 +FT: 201400000000 ;1.0E0 + 026637304365 ;1.0E-32 + 113715126246 ;1.0E-16 + 146527461671 ;1.0E-8 + 163643334273 ;1.0E-4 + 172507534122 ;1.0E-2 +FT01: 175631463146 ;1.0E-1 +FT0=FT01+1 + +FCP: CAMLE A, FT0(C) + CAMGE A, FT(C) + Z FT0(C) + +FSGN: ASCII .E-. + ASCII .E+. + +TEXTT: MOVE W1,T +TEXT: TLNN W1,774000 ;LEFT JUSTIFIED UNLESS LEFT CHAR IS NULL + LSH W1,35 +TEXT2: MOVEI T,0 ;7 BIT ASCII TEXT OUTPUT SUBROUTINE + LSHC T,7 + PUSHJ P,TOUT + JUMPN W1,TEXT2 + POPJ P, + +R50PNT: LSH T,-36 ;RADIX 50 SYMBOL PRINTER + TRZ T,3 + PUSHJ P,TOC + PUSHJ P,TSPC + MOVEI W1,LWT ;SETUP FOR SPT + JRST SPT + +SIXBP: MOVNI W2,6 ;SIXBIT PRINTER + MOVE W1,LWT +SIXBP1: MOVEI T,0 + ROTC T,6 + ADDI T,40 + PUSHJ P,TOUT + AOJL W2,SIXBP1 + POPJ P, + +CRN: MOVEI T,15 ;CARRIAGE RETURN + JRST TOUT + + +CRF: PUSHJ P,CRN + MOVEI T,12 ;LINE FEED + JRST TOUT + +LCT: IFE FTDEC20,< + MOVEI T,11 + IFN FTEXEC,< + SKPEXC > + JRST TOUT> ;IN USER MODE, TYPE A TAB + IFN FTEXEC!FTDEC20,< + PUSHJ P,TSPC + PUSHJ P,TSPC > + +TSPC: MOVEI T,40 ;SPACE + JRST TOUT + +BITO: MOVEI R,BITT ;BYTE OUTPUT SUBROUTINE + SKIPN OLDAR + MOVEM AR,OLDAR + HRRZI AR,TOC + TRZN F,Q2F + JRST ERR + MOVE T,WRD2 + MOVEM T,SVBTS + MOVEI T,^D36 + IDIV T,WRD2 + SKIPE T+1 + ADDI T,1 + MOVEM T,SVBTS2 + HRRZ SCH,R + JRST BASE1O + +BITT: MOVE T,SVBTS2 + MOVEM T,SVBT2 + MOVE T+1,LWT + MOVEM T+1,SVBT3 + PUSH P,LWT +BITT2: MOVEI T,0 + MOVE T+2,SVBTS + LSHC T,(T+2) + MOVEM T,LWT + MOVEM T+1,SVBT3 + CAIE AR,PADSO + PUSHJ P,TOCA + CAIE AR,TOC + PUSHJ P,PIN + SOSG SVBT2 + JRST BITT4 + MOVEI T,"," + PUSHJ P,TOUT + MOVE T+1,SVBT3 + JRST BITT2 + +BITT4: POP P,LWT + POPJ P, +XLIST + +SUBTTL PUNCH PAPER TAPE LOGIC + + IFN FTPTP,> ;END OF IFN FTPTP + ;FOR PAPER TAPE IO +LIST + +SUBTTL TELETYPE IO LOGIC + + IFN FTEXEC,< ;EXECUTIVE MODE TELETYPE I/O + + DTE==200 + DTEII=142 ;DTE20 INTERRUPT INST + DTEUNS=143 ;UNUSED + DTEEPW=144 ;EXAMINE PROTECTION WORD + DTEERW=145 ;EXAMINE RELOCATION WORD + DTEDPW=146 ;DEPOSIT PROTECTION WORD + DTEDRW=147 ;DEPOSIT RELOCATION WORD + DTEFLG=444 + DTET11=447 + DTEF11=450 + DTECMD=451 + DTEOPR=453 + DTEMTD=455 + DTEMTI=456 + .DTMTO==10B27 + .DTMMC==11B27 + .DTNMC==12B27 + + DTEN==4 ;MAX NUMBER OF DTE'S + TO11DB==1B22 ;TO 11 DOORBELL + CL11PT==1B26 ;CLEAR TO 10 DOORBELL + PI0ENB==1B32 ;PI CHANNEL 0 ENABLE + PIENB==1B31 ;ENABLE PI SETTING + DTEPRV==1B20 ;RESTRICTED BIT +;APR INTERNAL CLOCK SERVICE + +;CONI/CONO MTR, + +MTR==024 ;DEVICE CODE + +MTRLOD==1B18 ;LOAD BITS 21-23 +; 19-20 ;UNUSED, MBZ +MTREPA==1B21 ;ENABLE EXEC PI ACCOUNTING +MTRENA==1B22 ;ENABLE EXEC NON-PI ACCOUNTING +MTRAMN==1B23 ;ACCOUNTING METERS ON +MTRTBF==1B24 ;TIME BASE OFF +MTRTBN==1B25 ;TIME BASE ON +MTRCTB==1B26 ;CLEAR TIME BASE +; 27-32 ;UNUSED, MBZ +MTRPIA==7B35 ;PI ASSIGNMENT + +;CONI/CONO TIM + +TIM==020 ;DEVICE ASSIGNMENT + +TIMCIC==1B18 ;CLEAR INTERVAL COUNTER +; 19-20 ;UNUSED, MBZ +TIMITO==1B21 ;INTERVAL TIMER ON +TIMDON==1B22 ;DONE/CLEAR DONE +TIMICO==1B23 ;COUNTER OVERFLOW + +;GET TYPEIN CHARACTER - EXEC MODE + +XTIN: PUSHJ P,XLISTE ;TELETYPE CHARACTER INPUT + JRST .-1 + JUMPE T,XTIN ;FILTER NULLS + CAIE T,175 + CAIN T,176 + MOVEI T,33 ;CHANGE ALL ALT MODES TO NEW + IFN FTDEC20&<^-FTEDIT>,< ;IF NO FANCY EDITING... + CAIE T,"U"-100 ;^U? + CAIN T,177 ;RUBOUT? + JRST WRONG ;YES, TYPE XXX + > + IFE FTDEC20&<^-FTEDIT>,< ;IF FANCY EDITING... + CAIE T,177 ;DON'T ECHO EDIT CHARACTERS + CAIN T,"U"-100 + JRST XTIN1 + CAIE T,"R"-100 + CAIN T,"W"-100 + JRST XTIN1> + CAIN T,15 ;CR? + JRST [MOVEI T,12 ;YES, PRESET LF FOR NEXT TIME + MOVEM T,XNXTCH + MOVEI T,15 ;ECHO AND RETURN CR NOW + JRST .+1] + SKIPN TEXINF ;DON'T ECHO TAB UNLESS TEXT INPUT + CAIE T,11 + PUSHJ P,ECHO ;ECHO THE CHAR +XTIN1: POPJ P, + +;TYPEOUT CHARACTER FROM T + +XTOUT: SKPNKL ;KL10? + JRST KLXTYO ;YES + HRLM T,(P) + IMULI T,200401 ;GENERATE PARITY + AND T,[11111111] + IMUL T,[11111111] + HLR T,(P) + TLNE T,10 + TRC T,200 ;MAKE PARITY EVEN + CONSZ TTY,20 + JRST .-1 + DATAO TTY,T + ANDI T,177 ;FLUSH PARITY + POPJ P,0 +XLIST + REPEAT 0,< +KLXTYO: PUSHJ P,EBRIDX ;GET INDEX OF EPR IN TT2 + MOVEI T,.DTMTO(T) ;GET MONITOR OUTPUT COMMAND AND CHAR IN T + MOVEM T,DTECMD(TT2) ;PUT IN COMMAND WORD + SETZM DTEMTD(TT2) ;CLEAR DONE FLAG. + XCT DING11 ;RING THE DOORBELL + SKIPN DTEMTD(TT2) ;DONE YET? + JRST .-1 ;NO, LOOP + ANDI T,377 ;CLEAN UP CHARACTER IN T + POPJ P,0 ;RETURN +> +LIST +KLXTYO: PUSH P,0 + MOVE 0,T + PUSHJ P,$DTEXX ;PRINT CHAR + POP P,0 + ANDI T,177 + POPJ P, + +$DTEXX: PUSHJ P,EBRIDX ;GET INDEX OF EBR IN TT2 + SETZM DTEFLG(TT2) + MOVEM 0,DTECMD(TT2) ;LOAD COMMAND CODE + XCT DING11 ;RING -11 DOORBELL + SKIPN DTEFLG(TT2) + JRST .-1 ;WAIT TILL DONE + MOVE 0,DTEF11(TT2) + SETZM DTEFLG(TT2) + POPJ P, +;SKIP IF HAVE INPUT CHAR AND RETURN IT IN T + +XLISTE: SKIPE T,XNXTCH ;PRESET CHAR? + JRST [SETZM XNXTCH ;YES, RETURN IT ONCE + JRST XLIST1] + IFN FTYANK,< + SKIPE COMAND ;COMAND FILE? + JRST XPTRIN ;YES, READ IT + > + SKPNKL + JRST KLXLIS ;DO KL10 INPUT + CONSO TTY,40 ;NO, LISTEN FOR TTY + POPJ P, + DATAI TTY,T +XLIST1: ANDI T,177 + JRST CPOPJ1 +XLIST + REPEAT 0,< + +KLXLIS: PUSHJ P,EBRIDX ;GET EPT INDEX IN TT2 + SKIPN DTEMTI(TT2) ;ANY INPUT YET? + POPJ P, ;NO + MOVE T,DTEF11(TT2) ;GET IT + SETZM DTEMTI(TT2) ;YES + JRST XLIST1 +> +LIST +KLXLIS: PUSH P,0 + MOVEI 3400 ;SETUP DDT MODE INPUT REQ CODE + PUSHJ P,$DTEXX ;REQUEST TTY INPUT FROM PDP-11 + MOVEM 0,T + POP P,0 + ANDI T,177 + CAIN T,003 ;CONTROL C ? + JRST KLCC ;YES + SKIPN T ;ANY RESPONSE ? + POPJ P, ;NO, NON-SKIP RETURN + JRST XLIST1 +KLCC: MOVE T,[JRST KLCC1] + JRST XEC0 ;RESTORE BP'S ETC. + +KLCC1: CONO 0,0 ;CLEAR APR + MOVEM 0,KLCC0# + CONI 10,0 + TRNN 600000 ;IS CACHE ON ? + JRST KLCC2 ;NO + BLKO 14,0 ;YES, FLUSH CACHE + CONSZ 0,200000 + JRST .-1 ;WAIT TILL BUSY GOES AWAY + +KLCC2: PUSH P,TT2 + PUSHJ P,EBRIDX + MOVEI 403 + MOVEM DTECMD(TT2) ;END OF PROGRAM CALL + POP P,TT2 + MOVE 0,KLCC0 + XCT DING11 ;DOORBELL THE -11 + JRST . ;HANG UP, -11 WILL ABORT +;SAVE USER STATUS ('RETURN' TO DDT) + +XTTYRE: SKPNKL + JRST LTTYRE ;DO KL10 SAVE STATUS + SKIPE SAVTTY ;ALREADY HAVE IT? + JRST TTY1 ;YES + CONI TTY,SAVTTY ;SAVE PI ASSMT + CONO TTY,0 ;SET PI ASSMT TO 0 + MOVSI W2,(1000000) + CONSZ TTY,120 ;WAIT FOR PREVIOUS ACTIVITY TO FINISH + SOJG W2,.-1 ;BUT DON'T WAIT FOREVER + CONI TTY,W2 ;UPDATE STATUS BITS + DPB W2,[POINT 15,SAVTTY,32] + DATAI TTY,W2 + HRLM W2,SAVTTY +TTY1: CONO TTY,3410 ;INIT TTY FOR DDT + POPJ P, + +;RESTORE USER STATUS ('LEAVE' DDT) + +XTTYLE: SKPNKL + JRST LTTYLE ;DO KL10 RESTORE STATUS + CONSZ TTY,120 ;WAIT FOR LAST OUTPUT + JRST .-1 + CONO TTY,1200 ;CLEAR DONE FLAGS + MOVE T,SAVTTY + CONO TTY,0(T) ;RESTORE USER STATE + SETZM SAVTTY ;NOTE USER STATE NOW IN EFFECT + POPJ P, + +LTTYRE: SETZM DTEFLG + SETZM DTET11 + SETZM DTEF11 + MOVE T,DTEOPR + OR T,[CONO 200,TO11DB] + MOVEM T,DING11 + POPJ P, + +LTTYLE: MOVEI T,3000 + PUSHJ P,KLXTYO + JRST LTTYRE + +EBRIDX: SETZM TT2 + POPJ P, +XLIST +REPEAT 0,< +;ROUTINES TO SAVE AND RESTORE KL10 TTY STATUS +; WHICH AMOUNTS TO SAVING AND RESTORING DTE INTERRUPT +; INSTRUCTION IN LOCATION DTEII + +LTTYLE: MOVE T,MSTRDT ;GET ID OF MASTER DTE + LSH T,3 ;FIND EPT CHUNK + MOVE W2,SAVEBR ;THE OLD EBR + LSH W2,^D9 ;MAKE IT A CORE ADDRESS + ADDI W2,0(T) ;POINT TO BEGINNING OF EPT CHUNK + MOVEI T,DTEII(W2) ;WHERE TO DO RESTORE + HRLI T,SAVTTY ;WHERE TO RESTORE FROM + BLT T,DTEDRW(W2) ;UP THROUGH DEPOSIT, LAST WORD + HRRZ T,MTRCNI ;GET SAVED MTR CONI + CONO MTR,MTRLOD(T) ;RESTORE ALL STATES + HRRZ T,TIMCNI ;GET SAVED TIM CONI + TRZ T,TIMDON+TIMICO ;FLUSH CONI-ONLY BITS + CONO TIM,0(T) ;RESTORE STATE + SETZM SAVTTY ;NOTE PGM MODES NOW IN EFFECT + CONSZ PAG,TRPENB ;IS PAGING NOW ENABLED? + SKIPN DTEEPW(W2) ;YES SECONDARY PROTOCOL IN EFFECT, + POPJ P, ;JUST RETURN, DON'T TURN IT OFF + MOVEI T,.DTNMC ;WE WERE IN REGULAR PROTOCOL, SETUP OFF COMMAND + JRST DTEDCM ;DO COMMAND + + + +;CODE TO SAVE TTY STATE (I.E. THE DTE STATE FOR THE MASTER -11) + +LTTYRE: SKIPE SAVTTY ;PGM MODES IN EFFECT? + JRST LTTYR1 ;NO, DON'T SAVE + CONI MTR,MTRCNI ;SAVE MTR STATE + CONI TIM,TIMCNI ;SAVE TIM STATE + CONI PAG,T ;READ EBR + ANDI T,017777 + CONSO PAG,TRPENB ;PAGING ON NOW? + JRST LTTYR0 ;NO. EBR IS BOTH PHYSICAL AND VIRTUAL + MOVEI W1,0 ;YES. MUST SCAN MAP FOR VIRTUAL ADDRESS + LSH T,^D9 ;MAKE THIS A PHYSCIAL ADDRESS +LTTYR5: MAP W2,0(W1) ;GET PHYSICAL ADDRESS + TLNN W2,(1B2) ;ACCESSIBLE? + JRST LTTYR6 ;NO. SKIP THIS PAGE + AND W2,[37777777] ;GET PHYSICAL ADDRESS + CAMN W2,T ;IS THIS ONE THE EBR? + JRST [MOVE T,W1 ;YES. GET VIRTUAL ADDRESS + LSH T,-^D9 ;MAKE IT A PAGE + JRST LTTYR0] ;AND DONE +LTTYR6: ADDI W1,1000 ;NEXT PAGE + CAIG W1,777777 ;SCANNED ENTIRE SECTION? + JRST LTTYR5 ;NO. LOOK AT SOME MORE PAGES + HALT . ;YES. CAN'T FIND EPT. +LTTYR0: MOVEM T,SAVEBR ;SAVE EPT VIRTUAL ADDRESS + MOVSI T,-DTEN ;POLL ALL DTES + MOVE W2,[CONSO DTE,DTEPRV] ;GET TEST WORD + MOVE W1,[CONSO DTE,PI0ENB+7] ;TEST FOR PI0 ENABLED + ; OR PI ASSIGNMENT UP + MOVE W,[CONO DTE,0] ;PROTOTYPE CONO +LTTYR2: XCT W1 ;PI 0 UP ON THIS GUY? + JRST [HRRI W,PIENB+PI0ENB ;NO. SET PI0 + XCT W + XCT W1 ;NOW UP? + JRST LTTYR4 ;NO. DOESN'T EXIST THEN + TRZ W,PI0ENB ;TURN OFF ZERO + XCT W ;DO IT + JRST .+1] ;AND PROCEED + XCT W2 ;THIS THE MASTER? + JRST [MOVEI T,0(T) ;YES. GET ITS NUMBER + MOVEM T,MSTRDT ;SAVE IT + LSH T,^D<35-9> ;POSITION CODE IN B9 + ADD T,[CONO DTE,TO11DB] ;GET THE INSTRUCTION + MOVEM T,DING11 ;SAVE IT + JRST LTTYR3] ;AND DONE +LTTYR4: ADD W2,[1B9] ;NEXT DTE + ADD W,[1B9] + ADD W1,[1B9] ;ADJUST ALL I/O INSTRUCTIONS + AOBJN T,LTTYR2 ;POLL ALL OF THEM + HALT . ;CAN'T HAPPEN!!!!!!!!!!!!! +LTTYR3: MOVE T,SAVEBR ;GET EBR AGAIN + LSH T,^D9 ;MAKE IT A CORE ADDRESS + MOVE W2,MSTRDT ;GET MASTER'S NUMBER + LSH W2,3 ;HIS CHUNK + ADD T,W2 ;THE POSITION IN THE EPT + MOVE W2,T ;SAVE EBR FOR INDEXING + MOVSI T,DTEII(T) ;START OF EPT LOCATIONS TO SAVE + HRRI T,SAVTTY ;WHERE TO SAVE THEM + BLT T,SAVDRW + SKIPN DTEEPW(W2) ;USING PRIMARY PROTOCAL? + JRST LTTYR1 ;NO. GO ON + MOVE T,MSTRDT ;GET MASTER'S ID + LSH T,^D<35-9> ;POSITION CODE IN B9 + ADD T,[CONSZ DTE,TO11DB] ;GET TEST INSTRUCTION + XCT T ;WAIT FOR -11 TO ANSWER ALL DOORBELLS + JRST .-1 ;THE WAIT +LTTYR1: CONO MTR,MTRLOD+MTRTBF ;TURN OFF ALL METERS AND TIME BASE + CONO TIM,0 ;TURN OFF INTERVAL TIMER + MOVSI T,(HALT) + MOVEM T,DTEII(W2) ;NO INTERRUPTS + SETZM DTEEPW(W2) ;CLEAR EXAMINE PROTECTION WORD + MOVEI T,.DTMMC ;TURN ON SECONDARY TTY I/O SYSTEM +DTEDCM: PUSHJ P,EBRIDX ;GET EPT INDEX IN TT2 + SETZM DTEFLG(TT2) ;CLEAR DONE FLAG + MOVEM T,DTECMD(TT2) ;STORE COMMAND FOR 11 + XCT DING11 ;RING HIS DOORBELL + SKIPN DTEFLG(TT2) ;WAIT FOR FINISH + JRST .-1 + POPJ P, ;RETURN + +;ROUTINE TO LOAD EPT ADDRESS IN TT2. CALLED BY ROUTINES WISHING +;TO LOCATE THE MONITOR PROTOCOL LOCATIONS + +EBRIDX: MOVE TT2,SAVEBR ;GET EBR ADDRSSS + LSH TT2,^D9 ;MAKE IT A CORE ADDRESS + POPJ P, ;AND DONE + > ;END IFN FTEXEC +> +LIST + +;TELETYPE OUTPUT - COMMON START POINT + +TOUT: SETZM CHINP ;RESET INPUT LINE + SETZM CHINC +ECHO: PUSH P,T ;SAVE ORIG CHAR + CAIN T,33 ;CONVERT ESC + JRST [MOVEI T,"$" + JRST ECHO1] + CAIE T,15 ;CR OR LF? + CAIN T,12 + JRST ECHO1 ;YES, NO CONVERSION + CAIN T,"G"-100 ;BELL? + JRST ECHO1 ;NO CONVERSION + CAIN T,11 ;TAB? + IFE FTEXEC,< + JRST ECHO1> ;NO CONVERSION OF TAB IN USER MODE + IFN FTEXEC,< + JRST [SKPEXC + JRST ECHO1 ;DITTO + MOVEI T," " ;CONVERT TAB TO SPACES IN EXEC MODE + PUSHJ P,TOUT0 + MOVEI T," " + PUSHJ P,TOUT0 + MOVEI T," " + JRST ECHO1] + > ;END FTEXEC + CAIL T,40 ;CONTROL CHAR? + JRST ECHO1 ;NO + MOVEI T,"^" ;YES, INDICATE + PUSHJ P,TOUT0 + MOVE T,0(P) ;RECOVER ORIG CHAR + ADDI T,100 ;CONVERT TO PRINTING EQUIVALENT +ECHO1: PUSHJ P,TOUT0 ;DO DEVICE-DEPENDENT OUTPUT + POP P,T + POPJ P, + + IFE FTDEC20,< +OPDEF TTCALL [51B8] + +TOUT0: + IFN FTEXEC,< SKPUSR + JRST XTOUT > + IFN FTFILE,< SKIPE COMAND ;IS THERE A COMMAND FILE? + JRST PUTCHR> ;YES + + SKIPE TOPS20 + JRST .+3 + TTCALL 1,T ;OUTPUT A CHARACTER + POPJ P, + EXCH T1,T + PBOUT + EXCH T1,T + POPJ P, + +LISTEN: + IFN FTEXEC,< SKPUSR + JRST XLISTE > + IFE FTFILE,< + IFN FTYANK,< + SKIPE COMAND + JRST PTRIN>> + IFN FTFILE,< ;FILDDT? + SKIPE COMAND ;STILL READING COMAND FILE? + POPJ P,0 ; IF YES, DO NOT LOOK FOR INPUT + ; 1. SPEED UP FILDDT AND + ; 2. ALLOW USER TO TYPE AHEAD + ; (ONE CONTROL C) + > + SOSLE LCNT ;TIME TO DO TTCALL + POPJ P,0 ;NO--RETURN + MOVEI T,12 ;YES--RESET COUNT + MOVEM T,LCNT ; .. + SKIPE TOPS20 + JRST .+4 + TTCALL 2,T ;GET NEXT CHAR, NO IO WAIT + POPJ P, ;NO CHARACTER EXISTED, RETURN + JRST CPOPJ1 ;CHARACTER WAS THERE, SKIP RETURN + EXCH T1,T + MOVEI T1,.PRIIN + SIBE + AOS (P) + EXCH T1,T + POPJ P, + IFN FTEXEC,< +TTYRET: SKPUSR + JRST XTTYRET + SKIPN TOPS20 + POPJ P, + SKIPE SAVTTY ;ALREADY HAVE STATE ? + JRST TTYR1 ;YES + MOVEI T1,.PRIIN + RFMOD ;GET MODES + MOVEM T2,SAVTTY + RFCOC ;GET CC MODES + MOVEM T2,SAVTT2 + MOVEM T3,SAVTT3 +TTYR1: MOVEI T1,.PRIIN + RFMOD + TRZ T2,TT%WAK+TT%DAM + TRO T2,TT%WKF+TT%WKN+TT%WKP+TT%ECO+01B29 + SFMOD + MOVE T2,TTYCC2 + MOVE T3,TTYCC3 + SFCOC ;SETUP PROPER DDT MODES + MOVEI T1,.FHSLF + DIR + POPJ P, > + +TTYCC2: BYTE (2) 0,1,1,1,1,1,1,2,1,2,3,1,1,2,1,1,1,1 +TTYCC3: BYTE (2) 1,1,1,1,1,1,1,1,1,3,1,1,1,1 + IFE FTEXEC, +TTYCLR: + IFN FTEXEC,< SKPUSR > + POPJ P, + SKIPE TOPS20 + JRST .+5 + TTCALL 14, ;CLEAR ^O, SKIP ON INPUT CHARS + POPJ P, ;NO INPUT CHARS, OR EXEC MODE + TTCALL 11, ;FLUSH ALL + JRST .+7 + MOVEI 1,.PRIOU + RFMOD + TLZ 2,(TT%OSP) + SFMOD + MOVEI 1,.PRIIN + CFIBF + PUSHJ P,LISTEN + JFCL + POPJ P, ;WAITING INPUT CHARACTERS + + IFN FTEXEC,< +TTYLEV: SKPUSR + JRST XTTYLEV + SKIPN TOPS20 + POPJ P, + MOVEI T1,.PRIIN + MOVE T2,SAVTTY + SFMOD ;RESTORE MODES + MOVE T2,SAVTT2 + MOVE T3,SAVTT3 + SFCOC ;RESTORE CC MODES + MOVEI 1,.FHSLF + SKIPGE SAVSTS + EIR + SETZM SAVTTY + POPJ P, > + + IFE FTEXEC, + > ;END IFE FTDEC20 + +TEXIN: AOSA TEXINF ;NOTE TEXT INPUT +TIN: SETZM TEXINF ;NOTE NOT TEXT INPUT + IFN FTDEC20&FTEXEC&<^-FTEDIT>,< + SKPUSR ;EXEC MODE? + JRST XTIN> ;YES, SIMPLE INPUT +TIN1: SOSGE CHINC ;CHARACTER LEFT IN LINE BUFFER? + JRST CHIN1 ;NO, GO REFILL BUFFER + ILDB T,CHINP ;GET CHARACTER + POPJ P, +;REFILL LINE BUFFER WITH EDITING + +CHIN1: SKPUSR ;EXEC MODE? + JRST XCHIN1 ;YES, USE SIMULATION ROUTINES + SKIPN TOPS20 + JRST XCHIN1 ;TOPS-10 + SKIPE T1,CHINP ;REINIT LINE? + JRST CHIN2 ;NO + MOVEI T1,NLINBF*5 ;YES, SETUP MAX CHAR COUNT + MOVEM T1,LINSPC + MOVE T1,LINBP ;SETUP POINTER + MOVEM T1,CHINP +CHIN2: MOVEM T1,TEXTIB+.RDBKL ;SET BACKUP LIMIT + SKIPG LINSPC ;ROOM LEFT IN BUFFER? + JRST ERR ;NO, TOO MUCH TYPIN + SETZ T1, + SKIPE WAKALL ;WAKEUP ON EVERYTHING? + MOVEI T1,ONES4 ;YES, USE WAKEUP TABLE + MOVEM T1,ETXTB + PUSH P,LINSPC ;SAVE CURRENT SPACE + PUSH P,CHINP ;AND POINTER + SKIPN TEXINF ;TEXT INPUT? + PUSHJ P,TTYTOF ;NO, SUPPRESS TAB ECHO + MOVEI T1,TEXTIB ;POINT TO ARG BLOCK + TEXTI ;INPUT TO NEXT BREAK CHAR + JRST ERR ;BAD ARGS (IMPOSSIBLE) + PUSHJ P,TTYTON ;RESTORE NORMAL TAB ECHO + POP P,CHINP ;RESTORE POINTER TO CHARS JUST TYPED + MOVE T1,TEXTIB+.RDFLG ;GET FLAGS + TXNE T1,RD%BFE+RD%BLR ;DELETIONS? + JRST CHIN3 ;YES + POP P,T1 ;RECOVER OLD SPACE COUNT + SUB T1,LINSPC ;COMPUTE NUMBER CHARS JUST TYPED + MOVEM T1,CHINC ;SETUP COUNT + JRST TIN1 ;GO RETURN NEXT CHAR + +;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE +;LINE MUST BE REPROCESSED FROM BEGINNING. POSSIBLY ALL TEXT HAS BEEN +;DELETED. + +CHIN3: MOVEI T1,NLINBF*5 ;COMPUTE NUMBER CHARS NOW IN LINE + SUB T1,LINSPC + JUMPE T1,WRONG ;JUMP IF WHOLE LINE DELETED + MOVEM T1,CHINC ;LINE NOT NULL, SETUP CHAR COUNT + MOVE T1,LINBP ;REINIT POINTER + MOVEM T1,CHINP + JRST DD2 ;CLEAR WORLD AND REDO LINE + + IFN <^-FTDEC20>!,< + IFNDEF T1,< + T1==A + PURGT1==-1 + > +XCHIN1: SKIPE T1,CHINP ;REINIT LINE? + JRST XCHIN2 ;NO + MOVEI T1,NLINBF*5 ;YES, SETUP MAX CHAR COUNT + MOVEM T1,LINSPC + MOVE T1,LINBP ;SETUP POINTER + MOVEM T1,CHINP +XCHIN2: MOVEM T1,LINDB ;SET BEGINNING OF DELETE BUFFER + SKIPG LINSPC ;ROOM LEFT IN BUFFER? + JRST ERR ;NO, TOO MUCH TYPIN + MOVEI T1,LINBP-TEXTIB ;SIZE OF BLOCK + SKIPE WAKALL ;WAKEUP ON EVERYTHING? + MOVEI T1,ETXTB-TEXTIB ;YES, INCLUDE WAKEUP TABLE + MOVEM T1,TEXTIB ;SET SIZE IN BLOCK + PUSH P,LINSPC ;SAVE CURRENT SPACE + PUSH P,CHINP ;AND POINTER + MOVEI T1,TEXTIB ;POINT TO ARG BLOCK + PUSHJ P,TXTI + JRST ERR ;BAD ARGS (IMPOSSIBLE) + POP P,CHINP ;RESTORE POINTER TO CHARS JUST TYPED + POP P,T1 ;RECOVER OLD SPACE COUNT + IFN FTYANK,< + AOSN PTDFLG ;EOF ON COMMAND FILE + JRST [SETZM CHINC + SETZM CHINP + JRST DD2] ;YES--GET BACK TO TOP LEVEL + > ;END FTYANK + SKIPN 0(P) ;REPROCESS NEEDED? + JRST [MOVEI T1,NLINBF*5 + SUB T1,LINSPC ;YES, COMPUTE NUMBER CHARS IN LINE + JUMPE T1,WRONG ;JUMP IF WHOLE LINE DELETED + MOVEM T1,CHINC ;LINE NOT NULL, SETUP CHAR COUNT + MOVE T1,LINBP ;REINIT POINTER + MOVEM T1,CHINP + JRST DD2] ;CLEAR WORLD AND REDO LINE + SUB T1,LINSPC ;COMPUTE NUMBER CHARS JUST TYPED + JUMPG T1,[MOVEM T1,CHINC ;SETUP COUNT + JRST TIN1] ;GO RETURN NEXT CHAR + +;CONTINUED ON NEXT PAGE + +;USER HAS DELETED BACK INTO TEXT ALREADY PROCESSED, THEREFORE LINE +;MUST BE REPROCESSED FROM BEGINNING. POSSIBLY ALL TEXT HAS BEEN +;DELETED. + + PUSHJ P,RDBKIN + SETZM 0(P) ;REQUEST REPROCESS OF LINE + MOVE T1,LINBP ;RESET DELETE BOUNDARY TO BEGINNING OF LINE + JRST XCHIN2 + + IFDEF PURGT1,> + > ;END IFN ^-FTDEC20... + +ONES4: OCT -1,-1,-1,-1 ;WAKEUP MASK + +;ROUTINES TO TURN TAB ECHO ON/OFF + +TTYTOF: MOVE T1,TTYCC2 ;NORMAL MODE WORD + TRZA T1,3B19 ;TURN TAB OFF +TTYTON: MOVE T1,TTYCC2 + PUSH P,T2 ;PRESERVE REGS + PUSH P,T3 + MOVEM T1,T2 + MOVEI T1,.PRIIN + MOVE T3,TTYCC3 + SFCOC ;SET CONTROL CHAR MODES + POP P,T3 + POP P,T2 + POPJ P, +XLIST + + IFN FTDEC20,< +TOUT0: IFN FTEXEC,< + SKPUSR + JRST XTOUT> + EXCH T1,T + PBOUT ;CHAR TO TTY FROM T1 + EXCH T1,T + POPJ P, + +LISTEN: IFN FTEXEC,< + SKPUSR + JRST XLISTE> + EXCH T1,T + MOVEI T1,.PRIIN ;PRIMARY INPUT (TTY) + SIBE ;INPUT BUFFER EMPTY? + AOS 0(P) ;NO, GIVE SKIP RETURN + EXCH T1,T + POPJ P, ;RETURN NOSKIP + +;HANDLE TTY WHEN RETURNING TO DDT FROM USER CONTEXT + +TTYRET: IFN FTEXEC,< + SKPUSR + JRST XTTYRET> + SKIPE SAVTTY ;ALREADY HAVE STATE? + JRST TTYR1 ;YES + MOVEI T1,.PRIIN + RFMOD ;GET MODES + MOVEM T2,SAVTTY + RFCOC ;GET CC MODES + MOVEM T2,SAVTT2 + MOVEM T3,SAVTT3 +TTYR1: MOVEI T1,.PRIIN + RFMOD + TXZ T2,TT%WAK+TT%DAM + TXO T2, + SFMOD + MOVE T2,TTYCC2 + MOVE T3,TTYCC3 + SFCOC ;SETUP PROPER DDT MODES + MOVEI T1,.FHSLF + IFN FTEXEC,< + SKPEXC> + DIR + POPJ P, + +TTYLEV: IFN FTEXEC,< + SKPUSR + JRST XTTYLE> + MOVEI T1,.PRIIN + MOVE T2,SAVTTY + SFMOD ;RESTORE MODES + MOVE T2,SAVTT2 + MOVE T3,SAVTT3 + SFCOC ;RESTORE CC MODES + MOVEI T1,.FHSLF + SKIPGE SAVSTS ;PSI SYSTEM ON FOR USER? + EIR ;YES + SETZM SAVTTY ;NOTE USER MODES IN EFFECT + POPJ P, + +TTYCLR: MOVEI T1,.PRIIN + IFN FTEXEC,< + SKPEXC> ;SKIP CFIBF IF EXEC + CFIBF + PUSHJ P,LISTEN + JFCL + POPJ P,0 + +TTYCC2: BYTE (2) 0,1,1,1,1,1,1,2,1,2,3,1,1,2,1,1,1,1 +TTYCC3: BYTE (2) 1,1,1,1,1,1,1,1,1,3,1,1,1,1 + > ;END IFN FTDEC20 + + IFE FTDEC20,< +SUBTTL DDT COMMAND FILE LOGIC + +;START PAPER TAPE INPUT + IFN FTYANK,< +TAPIN: + IFN FTEXEC,< SKPEXC ;SKIP IF EXEC MODE + JRST UTAPIN ;USER MODE + CONSO PTR,400 ;TAPE IN READER? + JRST ERR ;NO - ERROR + SETZM EPTPTR ;YES. INDICATE START READING IN + SETOM COMAND ;SHOW THERE IS A COMMAND FILE + JRST RET + > ;END IFN EEDT&1 +UTAPIN: + HIADDR=W ; NEW JOB BOUNDARY(.JBREL) + CM=17 ;CHAN FOR COMMANDS + INIT CM,0 ; ASCII MODE + SIXBIT /DSK/ ;ALWAYS ON DEVICE DSK + XWD 0,CBUF ; ESTABLISH RING HEADER + JRST ERR ; NOT ASSIGNED, ERROR + TLNE F,(QF) ;NAME GIVEN? + SKIPA T,SYL ;YES. USE IT + IFE FTFILE,< + MOVE T,[SIXBIT /PATCH/] ;NO, DEFAULT=PATCH + > + IFN FTFILE,< + MOVE T,[SIXBIT /FILDDT/] + > + MOVEM T,COMNDS ;SAVE NAME IN LOOKUP BLOCK + MOVSI T,'DDT' ;EXTENSION + MOVEM T,COMNDS+1 ; .. + SETZM COMNDS+3 ;CLEAR PPN + LOOKUP CM,COMNDS ; LOOKUP CMD FILE(IN CASE DIR DEV) + JRST ERR ; NOT FOUND + MOVE T,.JBFF ; LOAD .JBFF + MOVEM T,SVJBFF ; AND SAVE IT + IFE FTFILE,< + HRRZ T,.JBREL ; LOAD .JBREL + MOVEI HIADDR,2000(T) ; NEEDED, NOW PRPARE NEW .JBREL + IORI HIADDR,1777 ; NEW .JBREL TO ASK FOR + HRRZ TT,@SYMP ; BOTTM OF SYM TBL + HLRE TT1,@SYMP ; NEG LENGTH + SUB TT,TT1 ; TOP OF SYMBOL TBL + MOVEM TT,.JBFF ; ASSUME THIS NEW .JBFF AND SAVE IT + SUB T,TT ; COMPUTE WDS BETWEEN SYM TOP AND .JBREL + CAILE T,207 ; ENUFF FOR DSK BUFF+FUDGE FACTOR? + JRST HAVECM ; YES + CALLI HIADDR,11 ; NO, GET ANOTHER 1K + JRST ERR ; NOT AVIL, TREAT AS NO CMD FILE + > ;END FTFILE + +HAVECM: SETOM COMAND ; FLAG CMD FILE FOUND + SETZM CHINP + SETZM CHINC + INBUF CM,1 ; 1 BUFFER ONLY + IFN FTFILE,< + INIT DP,1 ;ALSO DO LISTING FILE + SIXBIT /LPT/ + XWD LBUF,0 + JRST [SETZM COMAND + JRST ERR] + MOVSI TT,'LST' + MOVEM TT,COMNDS+1 + SETZM COMNDS+3 + SETZM COMNDS+2 + ENTER DP,COMNDS + JRST [SETZM COMAND + JRST ERR] + OUTBUF DP,2 + > + JRST RET + > ;END IFN FTYANK + + IFN FTYANK,< + IFN FTEXEC,< +XPTRIN: PUSHJ P,PTRXNX ;GET NEXT CHAR FROM PTR + JRST PTRDON ;THROUGH + JRST PTRCHR ;PROCESS THE CHAR. + > +PTRIN: PUSHJ P,PTRNX ;GET NEXT CHAR + JRST PTRDON ;EOF ON COMMAND FILE +PTRCHR: CAIE T,177 ;RUBOUT? + SKIPN TT2,T ;NULL? + JRST PTRNXT ;IGNORE IT + IFN FTEXEC,< + SKPEXC ;EXEC MODE? + JRST PTRCH2 + CAIE T,15 ;YES. CR? + JRST CPOPJ1 ;NO. ECHO OF CHAR WILL HAPPEN LATER + PUSHJ P,PTRXNX ;READ (AND IGNORE) NEXT CHAR + JFCL ; WHICH OUGHT TO BE A LINE-FEED + MOVEI T,15 ;RETURN CR AS CHAR + JRST CPOPJ1 +PTRCH2: >;END IFN FTEXEC + CAIE T,33 ;ESCAPE? + CAIL T,175 ;ALT-MODE? + MOVEI T,"$" ;YES, ECHO "$" + PUSHJ P,ECHO ;ECHO CHAR + MOVE T,TT2 ;RESTORE T + JRST CPOPJ1 ;SKIP-RETURN WITH DATA + +PTRNXT: + IFN FTEXEC,< SKPUSR + JRST XPTRIN> + JRST PTRIN + +;THROUGH WITH COMMAND FILE +PTRDON: SETZM COMAND + PUSH P,CHINC + PUSH P,CHINP + PUSHJ P,CRF ;2 CR-LFS + PUSHJ P,CRF + POP P,CHINP + POP P,CHINC + SETOM PTDFLG + POPJ P, ;NON-SKIP RETURN + +;COMMAND FILE IO +PTRNX: SOSLE CBUF+2 ;DATA LEFT? + JRST PTRNX1 ;YES + INPUT CM, ;GET NEXT BUF + STATZ CM,740000 ;ERROR? + HALT .+1 ;TOO BAD + STATZ CM,20000 ;EOF? + JRST PTRNX2 ;YES +PTRNX1: ILDB T,CBUF+1 + JRST CPOPJ1 ;SKIP-RETURN WITH DATA +PTRNX2: RELEASE CM, ;EOF - DONE + IFN FTFILE,< + CLOSE DP, + RELEAS DP, + > + MOVE TT,SVJBFF + MOVEM TT,.JBFF ;RESET .JBFF + POPJ P, ;NON-SKIP MEANS DONE WITH COMMAND FILE + + IFN FTEXEC,< +PTRXNX: SKIPE TT2,EPTPTR ;DATA IN PTR BUF? + JRST PTRXN3 ;YES + MOVE TT2,[POINT 7,EPTRBF] ;NO SET UP TO STORE IN PTR BUFFER + SETZM EPTRBF ;SWITCH FOR END OF TAPE TEST + CONO PTR,20 ;START PTR GOING +PTRXN1: CONSO PTR,400 ;EOT? + JRST PTRXN4 ;YES + CONSO PTR,10 ;DATA? + JRST PTRXN1 ;WAIT SOME MORE + DATAI PTR,T ;READ A CHAR + JUMPE T,PTRXN1 ;IGNORE NULLS +PTRXN2: IDPB T,TT2 ;SAVE IN DATA BUFFER + CAIE T,12 ;LF + CAMN TT2,EPTRND ; OR BUFFER FULL? + SKIPA TT2,[POINT 7,EPTRBF] ;YES. START TAKING CHARS OUT OF BUF + JRST PTRXN1 ;NO - READ ANOTHER + CONO PTR,0 ;SHUT OFF PTR BEFORE READING NEXT CHAR + +PTRXN3: ILDB T,TT2 ;GET A CHAR + CAIE T,12 ;LF + CAMN TT2,EPTRND ; OR END OF BUFFER? + SETZ TT2, ;YES, START PTR FOR NEXT CHAR + MOVEM TT2,EPTPTR ;SAVE PNTR FOR NEXT CHAR + JRST CPOPJ1 ;HAVE A CHAR RETURN + +;EOT +PTRXN4: SKIPN EPTRBF ;ANY DATA? + POPJ P, ;NO - DONE RETURN + SETZ T, ;YES - FILL REST OF BUFFER WITH 0'S + JRST PTRXN2 + +EPTPTR: 0 +EPTRBF: BLOCK 5 ;BUFFER SO PTR WONT CHATTER +EPTRND: POINT 7,EPTRBF+4,34 ;PNTR FOR LAST CHAR IN BUF + > ;END IFN FTEXEC +COMAND: 0 +SVJBFF: 0 +CBUF: BLOCK 3 +COMNDS: SIXBIT /PATCH/ + SIXBIT /DDT/ + 0 + 0 + > ;END FTYANK + + IFN FTFILE,< +PUTCHR: SOSLE LBUF+2 ;ANY ROOM? + JRST PUTOK ;YES + OUTPUT DP, + STATZ DP,740000 ;ERRORS? + HALT .+1 ;YES + +PUTOK: + IDPB T,LBUF+1 ;DEPOSIT CHAR. + POPJ P, + + > ;END OF IFN FTFILE + > ;END IFE FTDEC20 +LIST + +SUBTTL DISPATCH TABLE + +BDISP: POINT 12,DISP(R),11 + POINT 12,DISP(R),23 + POINT 12,DISP(R),35 +DISP: +DEFINE D (Z1,Z2,Z3)< + BYTE (12) Z1-DDTOFS,Z2-DDTOFS,Z3-DDTOFS + IFN <!!>&<-1,,770000>, + > +;THIS MACRO PACKS 3 ADDRESSES INTO ONE WORD; EACH ADR IS 12 BITS + + IFE FTYANK, + IFE FTEXEC&FTPTP,< PUNCH==ERR + BLKEND==ERR + LOADER==ERR> + IFN FTDEC20, + +D (ERR,ERR,ERR); (0) +D (CNTRLZ,ERR,ERR); (3) +D (ERR,ERR,VARRW); (6) +D (TAB,LINEF,ERR); (11) +D (ERR,CARR,ERR); (14) +D (ERR,ERR,ERR); (17) +D (PUNCH,ERR,ERR); (22) +D (ERR,ERR,ERR); (25) +D (ERR,ERR,CNTRLZ); (30) +D (CONTROL,ERR,ERR); (33) +D (ERR,ERR,SPACE); (36) +D (SUPTYO,TEXI,ASSEM); (41) +D (DOLLAR,PERC,ERR); (44) +D (DIVD,LPRN,RPRN); (47) +D (MULT,PLUS,ACCF); (52) +D (MINUS,PERIOD,SLASH); (55) +D (NUM,NUM,NUM); (60) +D (NUM,NUM,NUM); (63) +D (NUM,NUM,NUM); (66) +D (NUM,TAG,SEMIC); (71) +D (FIRARG,EQUAL,ULIM); (74) +D (QUESTN,INDIRE,ABSA); (77) +D (BPS,CON,SYMD); (102) +D (EFFEC,SFLOT,GO); (105) +D (HWRDS,PILOC,BLKEND); (110) +D (KILL,LOADER,MASK); (113) +D (NWORD,BITO,PROCEDE); (116) +D (QUAN,RELA,SYMBOL); (121) +D (TEXO,SETPAG,ERR); (124) +D (WORD,XEC,TAPIN); (127) +D (ZERO,OCON,ICON); (132) +D (OSYM,VARRW,PSYM); (135) + +;THIS TABLE DOES NOT HAVE ENTRIES FOR CHARS .GE. 140; THESE +; ARE DETECTED AS ERRORS NEAR L21: + +SUBTTL FANCY TERMINAL INPUT LOGIC + + IFN ^-FTDEC20!,< +TXTI: +DOTXTI: PUSH P,A ;SAVE ALL AC'S USED + PUSH P,B + PUSH P,C + PUSH P,T + PUSH P,W1 + PUSH P,W2 + MOVE W1,LINSPC ;COUNT OF BYTES IN DESTINATION + SKIPN W2,LINDB ;WAS IT NON-ZERO? + MOVE W2,CHINP ;NO. USE DEFAULT + +; VERIFY ALL OF THE STRING POINTERS + +RDTXT1: MOVE A,CHINP ;HAVE A DEST POINTER? + PUSHJ P,RDCBP ;YES. CHECK IT OUT + MOVEM A,CHINP ;GET CONVERTED POINTER + SKIPN A,LINBP ;HAVE A ^R BUFFER? + JRST RDTOPM ;NO. GO AROUND THEN + PUSHJ P,RDCBP ;YES. VERIFY IT + MOVEM A,LINBP ;STORE VERIFIED POINTER +RDTOPM: MOVE A,W2 ;GET TOP OF BUFFER + PUSHJ P,RDCBP ;VERIFY IT + MOVE W2,A ;ALL VERIFIED NOW + JUMPLE W1,WRAP0 ;MAKE SURE COUNT HAS ROOM IN IT + ; .. + +;MAIN LOOP - DOES INPUT OF BYTE AND DISPATCH ON CHARACTER CLASS +;ACTION ROUTINES EXIT TO: +; INSRT - APPEND CHARACTER AND CONTINUE +; NINSRT - CONTINUE WITHOUT APPENDING CHARACTER +; DING - BUFFER NOW EMPTY, POSSIBLE RETURN TO USER +; WRAP, WRAP0 - RETURNS TO USER + +NINSRT: MOVEM W1,LINSPC ;STORE COUNT + PUSHJ P,RDBIN ;DO BIN + MOVE A,B ;SAVE BYTE + IDIVI B,CHRWRD ;SETUP TO GET CHAR CLASS + LDB B,CCBTAB(C) ;GET IT FROM BYTE TABLE + IDIVI B,2 ;SETUP TO REF DISPATCH TABLE + JUMPE C,[HLRZ T,DISPTC(B) ;GET LH ENTRY + JRST .+2] + HRRZ T,DISPTC(B) ;GET RH ENTRY + MOVE B,A ;ROUTINES GET BYTE IN B + JRST 0(T) ;DISPATCH TO ACTION ROUTINE + +;RETURN FROM ACTION ROUTINE TO APPEND CHARACTER AND CONTINUE. +; B/ CHARACTER + +INSRT: SKIPE WAKALL ;BREAK ON EVERYTHING? + JRST WRAP ;YES. WRAP IT UP THEN + IDPB B,CHINP ;APPEND BYTE TO USER STRING + SOJG W1,NINSRT ;CONTINUE IF STILL HAVE COUNT + JRST WRAP0 ;COUNT EXHAUSTED, RETURN + +;RETURNS TO USER. + +;RETURN TO USER IF BUFFER EMPTY + +NDING: CAME W2,CHINP ;BUFFER EMPTY? + JRST NINSRT ;NO, GO GET MORE INPUT + JRST WRAP0 + +;APPEND LAST CHARACTER AND RETURN + +WRAP: IDPB B,CHINP ;APPEND BYTE + SUBI W1,1 ;UPDATE COUNT + +;STORE NULL ON STRING AND RETURN + +WRAP0: JUMPLE W1,WRAP1 ;DON'T STORE NULL IF COUNT EXHAUSTED + SETZ B, + MOVE A,CHINP + IDPB B,A ;STORE NULL WITHOUT CHANGING USER PTR + +;UPDATE USER VARIABLES AND RETURN + +WRAP1: MOVEM W1,LINSPC ;UPDATE USER'S BYTE COUNT + POP P,W2 + POP P,W1 + POP P,T + POP P,C + POP P,B + POP P,A + JRST CPOPJ1 + +;PARAMETERS FOR CLASS TABLE + +CCBITS==4 ;BITS/BYTE +CHRWRD==^D36/CCBITS ;BYTES/WORD + +;DEFINED CHARACTER CLASSES: + +TOP==0 ;TOPS10 BREAK +BRK==1 ;REGULAR BREAK SET +ZER==2 ;NULL +EOLC==3 ;EOL +PUN==4 ;PUNCTUATION +SAFE==5 ;ALL OTHERS +RUBO==6 ;DELETE A CHARACTER +RTYP==7 ;RETYPE THE LINE +KLL==10 ;DELETE THE LINE +KWRD==11 ;DELETE A WORD +RDCRC==12 ;CARRIAGE RETURN +RDQTC==13 ;QUOTE CHARACTER + +;TABLE OF BYTE PTRS TO REFERENCE CLASS TABLE + + XX==CCBITS-1 + XALL +CCBTAB: REPEAT CHRWRD,< + POINT CCBITS,CTBL(B),XX + XX=XX+CCBITS> + SALL + +;CLASS DISPATCH TABLE + +DISPTC: WRAP,,WRAP + ZNULL,,EOL1 + WRAP,,INSRT + DELC,,RTYPE + DELIN,,KLWORD + RDCR,,RDQT + +;CHARACTER CLASS TABLE + +DEFINE CCN (A,B)< + REPEAT B,< + CC1 (A)>> + +DEFINE CC1 (C)< + QQ=QQ+CCBITS + IFG QQ-^D35,< + QW + QW=0 + QQ=CCBITS-1> + QW=QW+B> + + QW==0 + QQ==-1 + +CTBL: CC1(ZER) ;0 + CCN(PUN,6) ;1-6 + CC1(TOP) ;7 + CCN(PUN,2) ;10-11 + CC1(EOLC) ;12 + CC1(PUN) ;VT + CC1(TOP) ;FF + CC1(RDCRC) ;CR + CCN(PUN,4) ;16-21 (^N-^Q) + CC1(RTYP) ;^R + CCN(PUN,2) ;^S,^T + CC1(KLL) ;^U + CC1(RDQTC) ;^V + CC1(KWRD) ;^W + CCN(PUN,2) ;^X,^Y + CCN(BRK,2) ;^Z,$ + CCN(PUN,4) ;34-37 + CCN(PUN,^D16) ;40-/ + CCN(SAFE,^D10) ;0-9 + CCN(PUN,7) ;:-@ + CCN(SAFE,^D26) ;A-Z + CCN(PUN,6) ;]-140 + CCN(SAFE,^D26) ;A-Z + CCN(PUN,4) ;173-176 + CC1(RUBO) ;177 + QW ;GET LAST WORD IN + +;LOCAL ROUTINES TO DO LOGICAL BIN AND BOUT. + +RDBIN: SKIPE B,SAVCHR ;WANT TO BACK UP? + JRST [SETZM SAVCHR ;ONLY ONCE + POPJ P,0] ;RETURN + IFN FTEXEC,< + SKPUSR + JRST [PUSH P,T ;SAVE T + IFN FTYANK,< + SKIPE COMAND + PUSHJ P,XPTRIN> + PUSHJ P,XTIN ;GET A BYTE + MOVE B,T ;PUT IN CORRECT PLACE + POP P,T ;RESTORE T + JRST RDBIN1] ;SKIP NEXT INST + > + IFN FTDEC20, ;SHOULD NOT BE HERE IN USER MODE + IFE FTDEC20,< + IFN FTYANK,< + PUSH P,T ;SAVE AN AC + SKIPE COMAND ;COMMAND FILE OPEN? + PUSHJ P,PTRIN ;READ COMMAND FILE + JRST [MOVEI T," " ;ASSUME EOF + SKIPL PTDFLG ;WAS IT EOF? + INCHRW T ;NO--READ A BYTE + JRST .+1] ;CONTINUE + MOVE B,T ;COPY BYTE + POP P,T> ;RESTORE T + SKIPE TOPS20 + JRST .+3 + IFE FTYANK,> ;READ BYTE UNDER TOPS-10 + JRST RDBIN1 + PUSH P,1 + PBIN + MOVE B,1 + POP P,1 +RDBIN1: MOVEM B,LASCHR ;SAVE LAST CHAR READ + POPJ P,0 ;RETURN + + +;RDBOUT +; B/ BYTE +; PUSHJ P,RDBOUT +; RETURN +1 ALWAYS + +RDBOUT: PUSH P,T ;SAVE AN AC + PUSH P,CHINC + PUSH P,CHINP + MOVE T,B ;SET FOR ECHO + PUSHJ P,TOUT ;TYPE IT + POP P,CHINP + POP P,CHINC + POP P,T + POPJ P,0 + +;RDSOUT - OUTPUT STRING ALA RDBOUT +; B/ STRING PTR +; PUSHJ P,RDSOUT +; RETURN +1 ALWAYS + +RDSOUT: MOVE A,B ;COPY POINTER + PUSHJ P,RDCBP +RDSL: ILDB B,A + JUMPE B,CPOPJ ;EXIT ON NULL + PUSHJ P,RDBOUT + JRST RDSL + +;CHECK BYTE POINTER GIVEN AS ARGUMENT +; A/ BYTE POINTER +; PUSHJ P,RDCBP +; RETURN +1: OK, LH INITIALIZED IF NECESSARY + +RDCBP: HLRZ B,A ;GET LH + CAIN B,-1 ;IS DEFAULT? + HRLI A,() ;YES, FILL IN 7-BIT + LDB B,[POINT 6,A,11] ;CHECK BYTE SIZE + CAIGE B,7 ;7 OR GREATER? + HALT . ;BAD BYTE SIZE + IBP A ;INCR IT AND DECR IT ONCE SO WILL + JRST DBP ; BE IN KNOWN STATE FOR COMPARES + +;LOCAL ROUTINES FOR EDITING FUNCTIONS + +;DELETE CHARACTER FROM DESTINATION - BACKUP PTR AND CHECK +;FOR TOP OF BUFFER +; PUSHJ P,BACK +; RETURN +1: AT TOP OF BUFFER, NO CHARACTER TO DELETE +; RETURN +2: CHARACTER DELETED + +BACK: CAMN W2,CHINP ;AT TOP OF BUFFER? + POPJ P,0 ;YES + MOVE A,CHINP ;GET DEST PTR + PUSHJ P,DBP ;DECREMENT IT + MOVEM A,CHINP ;PUT IT BACK + AOJA W1,CPOPJ1 ;UPDATE COUNT AND RETURN + +;PUT BYTE BACK INTO SOURCE +; B/ BYTE +; PUSHJ P,RDBKIN +; RETURN +1 ALWAYS + +RDBKIN: +DOBKIN: MOVE A,LASCHR ;GET LAST BYTE READ + MOVEM A,SAVCHR ;MAKE NEXT BYTE READ + POPJ P,0 + +;FIND BEGINNING OF CURRENT LINE. +; PUSHJ P,FNDLIN +; RETURN +1: AT TOP OF BUFFER +; RETURN +2: A/ BACKED-UP BYTE PTR TO BEGINNING OF LINE +; B/ BYTE COUNT CONSISTENT WITH CHINP IN A + +FNDLIN: CAMN W2,CHINP ;AT TOP OF BUFFER? + POPJ P,0 ;YES + PUSH P,CHINP ;SAVE CURRENT LINE VARIABLES + PUSH P,W1 +FNDLN1: MOVE A,CHINP ;BACKUP ONE CHARACTER + PUSHJ P,DBP + MOVEM A,CHINP + ADDI W1,1 + CAMN W2,CHINP ;NOW AT TOP OF BUFFER? + JRST FNDLN2 ;YES, RETURN + LDB B,CHINP ;NO, LOOK AT NEXT CHAR TO BE DELETED + CAIN B,12 ;EOL OR LF? + JRST FNDLN2 ;YES, RETURN + JRST FNDLN1 ;NO, KEEP LOOKING + +FNDLN2: MOVE A,CHINP ;RETURN NEW LINE VARIABLES + MOVE B,W1 + POP P,W1 ;RESTORE OLD LINE VARIABLES + POP P,CHINP + JRST CPOPJ1 + +;ACTION ROUTINES + +;ZERO BYTE + +ZNULL: SKIPE WAKALL ;USER HAVE A MASK? + JRST INSRT ;YES. GO SEE ABOUT IT THEN + JRST WRAP0 ;NO. ALWAYS BREAK THEN + +;CARRIAGE RETURN - IF LINE FEED FOLLOWS, TREAT LIKE EOL + +RDCR: CAIGE W1,2 ;ROOM FOR CR AND LF? + JRST [PUSHJ P,RDBKIN ;NO, PUT THE CR BACK + JRST WRAP0] ;WILL GET IT NEXT TIME + PUSHJ P,RDBIN ;GET THE NEXT CHAR + CAIN B,12 ;LF? + JRST RDCR1 ;YES, NORMAL NEWLINE + PUSHJ P,RDBKIN ;NO, PUT BACK THE SECOND BYTE + MOVEI B,15 ;APPEND A REAL CR + JRST WRAP + +RDCR1: MOVEI B,15 + IDPB B,CHINP ;APPEND CR + SOS W1 +RDCR2: MOVEI B,12 +EOL1: JRST WRAP ;YES + +;QUOTE CHARACTER (^V) - INHIBITS EDITING ACTION OF FOLLOWING CHARACTER + +RDQT: CAIGE W1,2 ; ROOM FOR BOTH? + JRST [PUSHJ P,RDBKIN ; NO. BACK UP + JRST WRAP0] ; AND WAIT FOR NEXT TIME + IDPB B,CHINP ;STORE QUOTE + SOS W1 ; ONE LESS + PUSHJ P,RDBIN ;GET THE NEXT CHAR + JRST WRAP ;YES + +;DELETE CHARACTER (RUBOUT) + +DELC: PUSHJ P,BACK ;BACKUP PTR + JRST WRAP0 ;NOTHING LEFT IN BUFFER + MOVE T,CHINP + ILDB B,T ;GET CHAR JUST DELETED + CAIN B,12 ;WAS IT LF? + JRST DELC2 ;YES + PUSH P,B + MOVEI B,"\" + PUSHJ P,RDBOUT + POP P,B + PUSHJ P,RDBOUT ;TYPE IT OUT + MOVEI B,"\" ;INDICATE DELETION + PUSHJ P,RDBOUT +DELC4: JRST NINSRT ;CONTINUE INPUT UNLESS BUFFER EMPTY ETC. + +DELC2: CAMN W2,CHINP ;AT BEGINNING OF DEST BUFFER? + JRST DELC1 ;YES + LDB B,CHINP ;NO, CHECK CHARACTER PRECEEDING LF + CAIE B,15 ;A CR? + JRST DELC1 ;NO, LEAVE IT ALONE + PUSHJ P,BACK ;YES, DELETE IT ALSO + JRST WRAP ;(CAN'T HAPPEN) +DELC1: HRROI B,[ASCIZ / +/] + PUSHJ P,RDSOUT ;DO CRLF WHEN DELETING EOL OR CRLF + JRST DELC4 + +;DELETE LINE (CONTROL-U) + +DELIN: MOVEI C,0 + PUSHJ P,FNDLIN ;FIND BEGINNING OF LINE + JRST NDING ;NOTHING IN BUFFER + LDB C,CHINP ;GET LAST CHAR IN BUFFER + MOVEM A,CHINP ;SET LINE VARIABLES TO BEGINNING + MOVEM B,W1 + JRST NDING ;CONTINUE INPUT UNLESS BUFFER EMPTY ETC. + +;DELETE WORD (CONTROL-W) + +KLWORD: PUSHJ P,BACK ;DELETE AT LEAST ONE CHARACTER + JRST WRAP0 ;WASN'T ONE + MOVE T,CHINP + ILDB B,T ;GET CHAR JUST DELETED + CAIN B,12 ;LF OR EOL? + JRST BWRD3 ;YES, DON'T DELETE +BWRD1: PUSHJ P,BACK ;DELETE NEXT CHARACTER + JRST BWRD2 ;NO MORE LEFT + MOVE T,CHINP ;LOOK AT CHARACTER JUST DELETED + ILDB B,T + IDIVI B,CHRWRD ;GET ITS CHARACTER CLASS + LDB B,CCBTAB(C) + CAIN B,SAFE ;IS IT A WORD SEPARATOR? + JRST BWRD1 ;KEEP DELETING +BWRD3: IBP CHINP ;YES, KEEP THAT CHARACTER + SUBI W1,1 +BWRD2: MOVEI B,"_" ;INDICATE WORD DELETION + PUSHJ P,RDBOUT + JRST NINSRT ;CONTINUE INPUT UNLESS BUFFER EMPTY ETC. + +;RETYPE LINE (CONTROL-R) + +RTYPE: PUSHJ P,RTYPES ;DO THE WORK + JRST NINSRT + +;SUBROUTINE TO RETYPE LINE + +RTYPES: HRROI B,[ASCIZ / +/] + PUSHJ P,RDSOUT ;NON-DISPLAY, GET CLEAN LINE + PUSHJ P,FNDLIN ;FIND BEGINNING OF LINE + MOVE A,W2 ;AT TOP OF BUFFER - USE IT + MOVE T,A ;SAVE PTR TO BEGINNING OF LINE + CAME T,W2 ;BEG OF LINE IS TOP OF BUFFER? + JRST RTYP1 ;NO, DON'T TYPE ^R BFR + SKIPE T,LINBP ;GET ^R BFR IF ANY +RTYW1: CAMN T,W2 ;UP TO TOP OF BFR? + JRST RTYP4 ;YES, DONE WITH ^R BFR + ILDB B,T ;GET CHAR FROM ^R BFR + JUMPN B,[PUSHJ P,RDBOUT ;TYPE IT + JRST RTYW1] +RTYP4: MOVE T,W2 ;DONE WITH ^R BFR, NOW DO MAIN BFR +RTYP1: CAMN T,CHINP ;BACK TO END OF LINE? + POPJ P,0 ;YES + ILDB B,T ;NO, GET NEXT BYTE + PUSHJ P,RDBOUT ;TYPE IT + JRST RTYP1 ;LOOP UNTIL AT END OF BUFFER + +;DECREMENT BYTE POINTER +; A/ BYTE PTR +; PUSHJ P,DBP +; RETURNS +1, CLOBBERS B AND C + +DBP: LDB B,[POINT 6,A,5] ;GET P + LDB C,[POINT 6,A,11] ;GET S + ADD B,C ;NEW P = P + S + CAIGE B,^D36 ;NEW P .GE 36? + JRST DBP1 ;NO, BYTE IS IN SAME WORD. + HRRI A,-1(A) ;DECREMENT ADDRESS + MOVEI B,^D36 ;MAKE P = REMAINDER (36,S) + IDIV B,C + MOVEI B,0(C) +DBP1: DPB B,[POINT 6,A,5] + POPJ P,0 + > ;END IFN ^-FTDEC20... + +SUBTTL OP DECODER + +;DESCRIPTION OF OP DECODER FOR DDT: +; +; THE ENTIRE INSTRUCTION SET FOR THE PDP-10 CAN BE COMPACTED INTO +;A SPACE MUCH SMALLER THAN ONE REGISTER FOR EVERY SYMBOL. THIS OCCURS +;BECAUSE OF THE MACHINE ORGANIZATION AND INSTRUCTION MNEMONICS CHOSEN +;FOR THE PDP-10. FOR EXAMPLE, IF BITS (0-2) OF AN INSTRUCTION EQUAL +;101(2) THE INSTRUCTION IS A HALF WORD INSTRUCTION AND AN "H" MAY +;BE ASSUMED. "T" MAY BE ASSUMED FOR ALL TEST INSTRUCTIONS (WHICH +;BEGIN WITH 110(2). +; +; THE TABLE TBL IN DDT CONSISTS OF 9 BIT BYTES, 4 TO A WORD. +;THE NUMBERS IN THE BYTES HAVE THE FOLLOWING SIGNIFICANCE: +;0-37(8): THIS IS A DISPATCH COMMAND FOR THE OP-DECODER INTERPRETER. +; LET THE RIGHT MOST TWO BITS EQUAL N; LET THE NEXT 3 BITS +; EQUAL P. +; +; THE CONTENTS OF INST (INSTRUCTION) CONTAIN IN THE RIGHT +; MOST NINE BITS THE BINARY FOR THE MACHINE INSTRUCTION. +; P AND N REFER TO THE CONTENTS OF INST, AND THE OP DECODER +; WILL PRODUCE AN ANSWER D GIVEN P, N, AND THE CONTENTS +; OF INSTX N+1 GIVES THE NUMBER OF BITS IN INST; P GIVES THE +; POSITION (FROM THE RIGHT EDGE) OF THE N+1 BITS. +; +; EXAMPLE: P = 6 +; N = 2 +; +;; C(INST) = .010 101 100(2) +; +; THE RESULT = D = 010(2) = 2(8) +; +; D IS USED AS A DISPATCH ON THE NEXT BYTES IN THE TABLE. +; IF D = 5, 5 BYTES IN THE TABLE (DON'T COUNT THE BYTES WHICH +; PRINT TEXT OR ARE THE EXTEND BYTE, 41-73(8)) +; ARE SKIPPED OVER AND THE 6TH BYTE RESUMES +; THE INTERPRETATION. +; +;40(8) THIS IS A STOP CODE; WHEN THIS IS REACHED INTERPRETATION +; IS FINISHED. +;41(8)-72(8) THE ALPHABET IS ENCODED INTO THIS RANGE. +; 41- A +; 42- B +; 72- Z +; WHEN A BYTE IN THIS RANGE IS REACHED, ITS CORRESPONDING +; LETTER IS TYPED. + +;73(8) THIS IS THE "EXTEND" BYTE. THE NEXT BYTE IN THE TABLE +; IS A TRANSFER BYTE BUT MUST HAVE THE ADDRESS EXTENDED +; BY <1000-74*2+FIR.> FIRST. +; +;74(8)-777(8) THIS IS A TRANSFER BYTE. IF THE BYTE IN THIS RANGE IS +; CONSIDERED TO BE A, TRANSFER INTERPRETATION TO THE +; RD BYTE IN THE TABLE. +; +;MACROS ASSEMBLE THE TABLE TBL: +; 1. A NUMBER FOLLOWED BY ^ ASSEMBLES A DISPATCH BYTE. THE FIRST +; DIGIT IS THE POSITION; THE SECOND DIGIT IS THE SIZE. +; 2. A POINT (.) ASSEMBLES A STOP CODE. +; 3. A NAME FOLLOWED BY A SLASH ASSEMBLES A TRANSFER TO THE +; SYMBOLICALLY NAMED BYTE. +; 4. A STRING OF LETTERS TERMINATED BY A SPACE, COMMA, OR POINT, +; ASSEMBLE INTO A STRING OF BYTES, EACH BYTE BEING ONE LETTER. +; +;EXAMPLE OF BINARY TO SYMBOLIC DECODING: +; THE MACHINE CODE FOR JRST IS 254 +; INST 0 1 0 1 0 1 1 0 0 +; THE INTERPRETER STARTS WITH THE FIRST BYTE IN THE TABLE (63^). +; THE RESULT OF APPLYING THIS TO C(INST) GIVES 2. SKIPPING OVER +; 2 BYTES IN THE TABLE AND INTERPRETING THE THIRD RESULTS IN +; HAK/ BEING INTERPRETED. AT HAK:, THERE IS A 33^. APPLYING +; THIS TO C(INST) RESULTS IN 5 NON PRINTING BYTES BEING SKIPPED +; OVER: +; 1. MV/ +; MOV PRINTING TEXT +; 2. MO/ +; 3. ML/ +; 4. DV/ +; 5. SH/ +; +;H1/ IS THE NEXT BYTE INTERPRETER. AT H1: 03^ IS FOUND SO +;4 BYTES ARE SKIPPED OVER: +; EXC PRINTING TEXT +; 1. S3/ +; BL PRINTING TEXT +; T PRINTING TEXT +; 2. . +; 3. AO/ +; 4. AOB/ +; THE NEXT LETTERS JRS ARE TYPED OUT. THEN T/ IS FOUND. AT +;T; A T IS TYPED OUT; THEN A "." IS FOUND AND EVERYTHING STOPS. +; +; THE TABLE IS ALSO USED GOING FROM SYMBOLIC TO BINARY BUT A +; TREE SEARCH METHOD IS USED. + +REPEAT 0,< + +DEFINE REDEF (XX)< +DEFINE INFO (AA,BB)< +AA XX'BB>> + + +DEFINE BYT9 (L)< +XLIST +REDEF % + ZZ==0 + ZZZ==0 + ZZM==1 + + IRPC L,< + Z=="L" + IFE Z-":",,<==CLOC> + IFNDEF FIR., + IFGE CLOC+73-1000-FIR., + Z==0> + IFE Z-"/", + IF2, + Z==0> + IFE Z-"^", + Z==0> + IFE **, + ZZZ==ZZZ/100>> + IFE Z-".", + Z==0> + IFN Z,*ZZM + ZZM==ZZM*100> + IFE Z,> +LIST> + +DEFINE OUTP (A)< + BINRY==BINRY*400+BINRY*400+A + BINC==BINC-1 + IFE BINC, + CLOC==CLOC+1> + +TBL: ;OPDECODER BYTE TABLE + .XCREF ;KEEP THIS MESS OUT OF CREF + +BINRY==0 +CLOC==0 ;SET BYTE LOCATION COUNTER TO 0 +BINC==4 ;INIT BYTES/WORD COUNTER + +BYT9 <63^UUO/FLO/HAK/ACCP/BOOLE/H HWT/T ACBM/> + +;IO INSTRUCTIONS +BYT9 <21^BD/CON,11^OI/S,01^Z/O/> +BYT9 + +;UUOS +BYT9 +BYT9 +BYT9 +BYT9 +BYT9 +;BYTE AND FLOATING INSTRUCTIONS + +BYT9 +BYT9 <21^LMB/R,IMB/LMB:02^.,L:L.,M:M.,B:B.,BYTE:32^.,I110//,I120/,03^UF,PA/DF,N/> +BYT9 + +;FWT,FIXED POINT ARITH,MISC. + +BYT9 +BYT9 <21^ADD IMB/SU BIMB:B IMB:02^.,I:I.,M/B/MO:22^> +BYT9 +BYT9 +BYT9 +BYT9 +BYT9 +BYT9 +BYT9 <01^.,J/SH:02^A S2/ROT S1/L S2:S S3:H S1/21^JFF O/.,S1:21^.,C:C.,> + +;ARITH COMP,SKIP,JUMP + +BYT9 +BYT9 +BYT9 +BYT9 <03^.,L/E:E.,L E/PA/G E/N:N.,G.,> + +;HALF WORDS + +BYT9 +BYT9 <21^L HW4/R HW4:L HW3:32^IMS/Z IMS/O IMS/EIMS/> + +;TEST INSTRUCTIONS + +BYT9 +BYT9 + + +;BOOLEAN + +BYT9 +BYT9 +BYT9 +BYT9 +BYT9 + +;INSTRUCTION GROUP 120 +BYT9 +BYT9 + +;MORE UUO'S +BYT9 +BYT9 + +;INSTRUCTION GROUP 110 - DF ARITHMETIC +BYT9 + +REPEAT BINC, + IFN BINRY, + .CREF ;TURN CREF BACK ON + > ;END OF REPEAT 0 + +;THE FOLLOWING IS AN ALTERNATE SET OF MACROS FOR BUILDING THE OP +;TABLE. THEY ASSEMBLE MUCH FASTER THAN THE ONES ABOVE. THEY ARE: +;.ADR - DECLARE TAG; .TRA - TRANSFER BYTE; .TRAX - EXTENDED TRANSFER +;BYTE; .DIS - DISPATCH BYTE; .TXT - TEXT BYTES; .END - TEXT BYTES +;FOLLOWED BY STOP BYTE. + +DEFINE BYT9 (A) < + XLIST + IRP A,< +A> + LIST> + + IF1,< + +DEFINE .ADR (A) < +%'A== CLOC +FIR.== CLOC +DEFINE .ADR (B) < +%'B== CLOC +LASTB==CLOC+74-FIR.>> + +DEFINE .TRA (A) +DEFINE .TRAX (A) + +SYN .TRA, .DIS + +DEFINE .TXT (A) < + IFNB , >> +DEFINE .END (A) < + IFNB , > +CLOC== CLOC+1> + + > ;END OF IF1 + IF2,< + +DEFINE .ADR (A)> + +DEFINE .TRA (A) + +DEFINE .TRAX (A), + IFL Z1,> + +DEFINE .DIS (A) + +DEFINE .TXT (A) ,>> + +DEFINE .END (A) < + IFNB , > +OUTP 40> + +DEFINE OUTP (A)< + IFGE -1000, + IFE -^D27, + IFE BINC-^D18, + IFE BINC-9, + IFE BINC,< BYTE (9) BINR1,BINR2,BINR3, + BINC==^D36> +CLOC==CLOC+1 > + > + +TBL: .XCREF ;OPDECODER BYTE TABLE + +CLOC== 0 ;SET BYTE LOCATION COUNTER TO 0 +BINC== ^D36 ;INIT BYTES/WORD COUNTER + +;**********THE ARGUMENT FOR THE FOLLOWING "BYT9" MACRO +;**************TERMINATES AT THE NEXT COMMENT WITH: ************** + + IFN FTDEC20,< + BYT9 < +.DIS 63,.END,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE + .TXT H,.TRA HWT,.TXT T,.TRA ACBM> + > ;END FTDEC20 + + IFE FTDEC20,< + BYT9 < +.DIS 63,.TRA UUO,.TRA FLO,.TRA HAK,.TRA ACCP,.TRA BOOLE + .TXT H,.TRA HWT,.TXT T,.TRA ACBM> + > ;END FTDEC20 + + BYT9 < + +;IO INSTRUCTIONS + +.DIS 21,.TRA BD,.TXT CON,.DIS 11,.TRA OI,.TXT S,.DIS 01,.TRA Z,.TRA O +.ADR BD,.DIS 01,.TXT BLK,.TRA IO,.TXT DATA,.ADR IO,.DIS 11,.TRA I,.TRA O + .ADR OI,.DIS 01,.TRA O,.TRA I +;UUOS + +.ADR UUO,.DIS 51,.END,.TXT,.DIS 32,.TRA U40,.TRAX U50,.TRA U60 + .DIS 21,.TRAX U703,.DIS 11,.TRA USET,.DIS 01 +.TXT LOOKU,.TRA P,.TXT ENTE,.TRA R,.ADR USET,.TXT USET,.DIS 01,.TRA I,.TRA O +.ADR U40,.DIS 03,.TRAX CAL,.TXT INI,.TRA T,.END,.END,.END,.END,.END,.TXT CALL,.TRA I +.ADR U60,.DIS 21,.TRA U603,.DIS 01,.TXT IN,.TRA BPUT,.TXT OUT + .ADR BPUT,.DIS 11,.TXT BU,.ADR F,.END F,.TXT,.TXT PU,.TRA T +.ADR U603,.DIS 01,.TRA U6062,.TXT STAT,.DIS 11,.ADR O,.END O,.TXT,.ADR Z,.END Z,.TXT + .ADR U6062,.DIS 11,.TXT S,.TRA U62,.TXT G,.ADR U62,.TXT ETST,.TRA S + +;BYTE AND FLOATING INSTRUCTIONS + +.ADR FLO,.DIS 51,.TRA BYTE,.TXT F,.DIS 32,.TXT,.TXT AD,.TRA A,.TXT SB + .TRA A,.TXT MP,.TRA A,.TXT DV,.ADR A +.DIS 21,.TRA LMB,.TXT R,.TRA IMB,.ADR LMB,.DIS 02,.END,.TXT + .ADR L,.END L,.TXT,.ADR M,.END M,.TXT +.ADR B,.END B,.TXT,.ADR BYTE,.DIS 32,.TRAX I100,.TRAX I110,.TRA I120,.TXT + .DIS 03,.TXT UF,.TRA PA,.TXT DF,.TRA N +.TXT FS,.TRA C,.TXT IB,.ADR P,.END P,.TXT,.TXT I,.TRA LD + .ADR LD,.TXT LD,.TRA B,.TXT I,.TRA DP,.ADR DP,.TXT DP,.TRA B + +;FWT-FIXED POINT ARITH-MISC + +.ADR HAK,.DIS 33,.TRA MV,.ADR MV,.TXT MOV,.TRA MO,.TRA ML,.TRA DV + .TRA SH,.TRA H1,.TRA JP +.DIS 21,.TXT ADD,.TRA IMB,.TXT SU,.ADR BIMB,.TXT B,.ADR IMB,.DIS 02,.END,.TXT + .ADR I,.END I,.TXT,.TRA M,.TRA B,.ADR MO,.DIS 22 +.ADR EIMS,.TXT E,.TRA IMS,.TXT S,.TRA IMS,.TXT N,.TRA IMS,.TXT M + .ADR IMS,.DIS 02,.END,.TXT,.TRA I,.TRA M,.ADR S,.END S,.TXT +.ADR ML,.DIS 21,.TXT I,.TRA ML1,.ADR ML1,.TXT MUL,.TRA IMB + .ADR DV,.DIS 21,.TXT I,.TRA DV1 +.ADR DV1,.TXT DI,.ADR DV2,.TXT V,.TRA IMB,.ADR H1,.DIS 03,.TXT EXC,.TRA S3,.TXT BL + .ADR T,.END T,.TXT,.TRA AO,.ADR AO,.TXT AOBJ +.TRA AOB,.TXT JRS,.TRA T,.TXT JFC,.TRA L,.TXT XC,.TRA T,.TXT MA,.TRA P + .ADR AOB,.DIS 01,.TRA P,.TRA N +.ADR JP,.DIS 03,.TRA PU,.ADR PU,.TXT PUSH,.TRA PUS,.TRA PO + .ADR PO,.TXT POP,.TRA POP,.TXT JS,.ADR R,.END R,.TXT +.TXT JS,.TRA P,.TXT JS,.ADR PA,.END A,.TXT,.TXT JR,.TRA PA + .ADR PUS,.DIS 01,.ADR J,.END J,.END,.TXT,.ADR POP +.DIS 01,.END,.TXT,.TRA J,.ADR SH,.DIS 02,.TXT A,.TRA S2,.TXT ROT,.TRA S1,.TXT L + .ADR S2,.TXT S,.ADR S3,.TXT H,.TRA S1,.DIS 21,.TXT JFF,.TRA O,.END + .ADR S1,.DIS 21,.END,.TXT,.ADR C,.END C,.TXT + +;ARITH COMP-SKIP-JUMP + +.ADR ACCP,.DIS 42,.TXT CA,.TRA CA1,.TRA SJ,.TXT A,.TRA JS,.TXT S + .ADR JS,.TXT O,.DIS 31 +.TXT J,.TRA COMP,.TXT S,.TRA COMP,.ADR CA1,.DIS 31,.TXT I,.TRA COMP,.TXT M,.TRA COMP +.ADR SJ,.DIS 31,.TXT JUM,.TRA PSJ,.TXT SKI,.ADR PSJ,.TXT P,.ADR COMP +.DIS 03,.END,.TXT,.TRA L,.ADR E,.END E,.TXT,.TXT L,.TRA E,.TRA PA,.TXT G,.TRA E + .ADR N,.END N,.TXT,.END G,.TXT + +;HALF WORDS + +.ADR HWT,.DIS 51,.TRA HW1,.DIS 21,.TXT R,.TRA HW2,.TXT L,.ADR HW2,.TXT R,.TRA HW3 +.ADR HW1,.DIS 21,.TXT L,.TRA HW4,.TXT R,.ADR HW4,.TXT L + .ADR HW3,.DIS 32,.TRA IMS,.TXT Z,.TRA IMS,.TXT O,.TRA IMS,.TRA EIMS + +;TEST INSTRUCTIONS + +.ADR ACBM,.DIS 31,.TRA AC1,.DIS 01,.TXT D,.TRA AC2,.TXT S,.TRA AC2 + .ADR AC1,.DIS 01,.TXT R,.TRA AC2,.TXT L +.ADR AC2,.DIS 42,.TXT N,.TRA EAN,.TXT Z,.TRA EAN,.TXT C,.TRA EAN,.TXT O + .ADR EAN,.DIS 12,.END,.TXT,.TRA E,.TRA PA,.TRA N + +;BOOLEAN + +.ADR BOOLE,.DIS 24,.TRA ST,.ADR AN,.TXT AND,.TRA B2,.TRA AN,.TRA ST,.TRA AN,.TRA ST +.TXT X,.ADR OR,.TXT OR,.TRA B2,.TXT I,.TRA OR,.TRA AN,.TXT EQ + .TRA DV2,.TRA ST,.TRA OR,.TRA ST,.TRA OR,.TRA OR +.ADR ST,.TXT SET,.ADR B2,.DIS 24,.TXT Z,.TRA IMB,.TRA IMB + .ADR CA,.TXT C,.TRA TA,.ADR TM,.TXT M,.TRA IMB +.ADR CM,.TXT C,.TRA TM,.ADR TA,.TXT A,.TRA IMB,.TRA IMB,.TRA IMB + .ADR CB,.TXT C,.TRA BIMB,.TRA IMB,.TRA CA +.TRA CA,.TRA CM,.TRA CM,.TRA CB,.TXT O,.TRA IMB + +;INSTRUCTION GROUP 120 +.ADR I120,.DIS 11,.TRAX DMOV,.DIS 01,.TXT FIX,.TRAX FIX2,.DIS 21,.END EXTEND + .TXT FLT,.ADR FIX2,.DIS 21,.END,.TRA R +.ADR DMOV,.TXT DMOV,.DIS 01,.TXT E,.TRAX EM,.TXT N + .ADR EM,.DIS 21,.END,.TRA M + +;MORE UUO'S + +.ADR U50,.DIS 03,.TXT OPE,.TRA N,.TXT TT,.ADR CAL,.TXT CAL,.TRA L,.END,.END,.END + .TXT,.TXT RENAM,.TRA E,.TXT I,.TRA N,.TXT OU,.TRA T +.ADR U703,.DIS 02,.TXT CLOS,.TRA E,.TXT RELEA,.TRA S + .TXT MTAP,.TRA E,.TXT UGET,.TRA F + +;INSTRUCTION GROUP 110 - DF ARITHMETIC +.ADR I110,.DIS 21,.TXT DF,.TRAX DF,.TXT D,.TRAX FXDP,.ADR DF,.DIS 02 + .END AD,.END SB,.TXT M,.TRA P,.END DV + +;KL10 FIXED POINT DOUBLE PRECISION OPERATIONS +.ADR FXDP,.DIS 02,.END ADD,.END SUB,.END MUL,.END DIV + +;OPCODES 100 TO 107 COME HERE +.ADR I100,.DIS 21,.END,.DIS 02,.END,.END ADJSP,.END,.END +;**********THIS TERMINATES THE "BYT9" MACRO ARGUMENT****** + > + + IF1,< BLOCK /4> + IF2,< IFN BINC-^D36, > + + IFNDEF CLOC., + IFN CLOC.-CLOC, + + .CREF ;TURN CREF BACK ON + +BTAB: POINT 9,TBL ;TABLE USED TO GET NEXT BYTE POINTER + POINT 9,TBL,8 ;FOR TRANSFER BYTE + POINT 9,TBL,17 + POINT 9,TBL,26 + +OPEVAL: MOVEI T,0 ;EVALUATE FOR AN OP CODE + IDPB T,CHP ;INSERT NULL IN TEXT FOR SYMBOL + MOVEM P,SAVPDL + TRZA F,OUTF +OPTYPE: TRO F,OUTF ;TYPE AN OPCODE SYMBOLICALLY + LSH T,-33 + MOVEM T,INST ;GET OPCODE INTO RIGHT 9 BITS + MOVE T,[XWD 440700,TXT] + MOVEM T,CHP ;FOR OPEVAL,SETUP POINTER TO INPUT TEXT + TRZ F,ITF ;CLEAR INSTRUCTION TYPED FLAG + CLEARB R,W1 + MOVE W2,BTAB +DC1: ILDB T,W2 ;GET NEXT BYTE IN TBL + CAILE T,40 + CAIL T,74 + SOJGE R,DC1 ;SKIP OVER # BYTES = C(R) + JUMPG R,DC1 ;SKIP OVER ALPHA TEXT (AND EXTEND BYTES) WITHOUT COUNTING + SUBI T,40 + JUMPE T,DECX ;TRANSFER ON ASTOP CODE + JUMPG T,DC2 + DPB T,[XWD 340500,PNTR] ;SETUP R ON A DISPATCH BYTE + TRZ T,-4 + AOS T + DPB T,[XWD 300600,PNTR] + TRNN F,OUTF + JRST DC6 ;FOR OPEVAL ONLY + LDB R,PNTR ;GET # BYTES TO SKIP OVER + JRST DC1 + +DC2: HRREI T,-33(T) ;TOTAL SUBTRACTED NOW IS 73 + JUMPL T,DECT ;TYPE OUT A LETTER + JUMPG T,DC3 ;XFER IF BYTE .GE. 74 + ILDB T,W2 ;BYTE IS EXTEND BYTE (73), GET NEXT + MOVEI T,1000-74*2+1(T) ; BYTE AND ADD IN EXTENSION (-OFFSET) +DC3: MOVEI W1,FIR.-1(T) ;BYTE IS AN XFER (1ST XFER IS 74) + IDIVI W1,4 + MOVE W2,BTAB(W2) ;CALCULATE POINTER TO NEXT BYTE + ADDI W2,(W1) + JRST DC1 + +DECT: TRNE F,OUTF + JRST DC8 ;TYPE OUT A LETTER + ILDB W1,CHP ;GET NEXT INPUT LETTER + CAIE W1,133(T) ;COMPARE WITH ASSUMED NEXT LETTER + JRST NOMAT ;DOESNT MATCH + JRST DC1 ;MATCHES, TRY NEXT + +DECX: TRNE F,OUTF ;STOP (CODE 40) HAS BEEN SEEN + POPJ P, ;IF FOR OUTPUT, RETURN + ILDB W1,CHP ;GET NEXT INPUT CHAR IF ANY + JUMPE W1,DC7 ;DOES # OF CHARS MATCH +NOMAT: POP P,R ;NO, BACK UP AND TRY SOME MORE + POP P,W2 + POP P,PNTR + POP P,CHP +NOMAT1: AOS R ;ASSUME NEXT NUMBER FOR BIN VALUE + DPB R,PNTR ;STUFF INTO ANSWER + LDB R,PNTR + JUMPN R,DC6AA ;IF =0, BYTE WAS TOO BIG + CAME P,SAVPDL + JRST NOMAT ;NOT AT TOP LEVEL + POPJ P, ;UNDEFINED, FINALLY + +DC6: MOVEI R,0 ;ASSUME 0 FOR INITIAL BINARY VALUE + DPB R,PNTR +DC6AA: CAMN P,SAVPDL + JRST DC6BB + LDB T,-2(P) ;OLD VALUE OF PNTR + CAME T,(P) + JRST NOMAT1 +DC6BB: PUSH P,CHP + PUSH P,PNTR + PUSH P,W2 + PUSH P,R + JRST DC1 + +DC7: MOVE P,SAVPDL ;RESTORE PUSH DOWN POINTER + MOVE T,INST + LSH T,33 ;PUSH BINARY INTO POSITION FOR OPEVAL + LDB R,[POINT 3,T,8] + TLC T,700000 + TLCN T,700000 + DPB R,[POINT 10,T,12] ;ONLY DONE FOR IO INSTRUCTIONS + JRST CPOPJ1 ;SYMBOL FOUND, SKIP RETURN + +DC8: TRO F,ITF ;SET INSTRUCTION TYPED FLAG + MOVEI T,133(T) + PUSHJ P,TOUT ;OUTPUT A LETTER + CLEARM SPSAV ;SO $D WONT TRY TO DELETE OP CODES + JRST DC1 + +;*** LITERALS XLISTED *** + + XLIST + LIT + LIST +END.C: ;END OF CODE + +SUBTTL VARIABLE STORAGE + + IFN FTDEC20,< IFDEF VARLOC,< +PHVAR: PHASE VARLOC>> ;PHASE VARIABLES FOR UDDT AND MDDT + +BEG.V: ;BEGINNING OF VARIABLES +NM1A: MOVEI W2,0 +ACCCF: MOVEI T,.-. ;LEFT HALF OF A,,B +SEAR2: JUMPE T,SEAR3 ;OR JUMPN T +TOCS: MOVEI T,.-. ;GET RIGHT HALF BACK + +;VARIABLES FOR LINE BUFFER INPUT + +TEXINF: 0 ;NON-0 FOR TEXT INPUT MODE +CHINC: 0 ;COUNT OF CHARACTERS +WAKALL: 0 ;NON-0 TO WAKEUP ON EVERYTHING +;*** DO NOT REORDER THE FOLLOWING *** +TEXTIB: 10 ;TEXTI ARG BLOCK - SIZE +; IFN FTDEC20,< + RD%BRK+RD%TOP+RD%PUN+RD%RND+RD%JFN+RD%BBG+RD%SUI ;FLAGS + .PRIIN,,.PRIOU ;INPUT/OUTPUT JFNS +; > +CHINP: 0 ;POINTER TO NEXT CHAR +LINSPC: 0 ;FREE SPACE COUNT +LINDB: POINT 7,LINBF ;BEGINNING OF BUFFER +LINBP: POINT 7,LINBF ;BEGINNING OF ^R BUFFER +ETXTB: 0 ;WAKEUP TABLE (ALL ONES) + 0 ;BACKUP LIMIT POINTER +;***END OF "DO NOT REORDER" BLOCK*** + + IFN ^-FTDEC20!,< +SAVCHR: 0 ;PRESET RESULT FOR NEXT CALL TO RDBIN +LASCHR: 0 ;ANSWER FROM LAST CALL TO RDBIN + > + +NLINBF==^D20 +LINBF: BLOCK NLINBF ;LINE BUFFER + +SUBTTL STORAGE -- $X LOGIC AND PATCH COMMAND + + IFE FTFILE,< +;VARIABLES USED IN $X LOGIC + +I.XCT: XCT I.NST +I.NST: 0 ;INSTRUCTION BEING EXECUTED +SAV0: 0 ;SAVES AC 0 IN SWAP ROUTINE +XCTS: 0 ;XCT DEPTH COUNTER +I.NSTAC:0 ;AC FIELD OF INST BEING EXECUTED +I.NSTEA:0 ;E FIELD OF INST BEING EXECUTED +XTEM: 0 ;$X REPEAT COUNTER +I.NSTPC:0 ;PC OF INST BEING EXECUTED +FLAGS: 0 ;SAVES DDT FLAG REGISTER +LOCSAV: 0 ;SAVES LOCATION OF INST BEING EXECUTED +SAFETY: 0 ;SAVES T + > ;END FTFILE + +;VARIABLES FOR PATCH COMMAND + +PTLOC: 0 ; SOURCE OF PATCH ADR ,, PATCH ADR +PTLLC: 0 ; BEFORE/AFTER FLAG ,, OLD LLOCO +PTWRD: 0 ; ORIGINAL WORD AT OLD LLOCO + +SUBTTL STORAGE -- BREAKPOINTS + IFE FTFILE,< +SAVE: 0 ;SAVE THE ACS AND PI SYSTEM + JRST SAVEG + +BP1: REPEAT NBP,< + 0 ;JSR TO HERE FOR BREAKPOINT + JSA T, BCOM + 0 ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE + > + +B1INS=BP1+2 +BPN=.-3 + +BCOM: 0 + JRST BCOMG +BCOM3: SKIPE 0 ;ADDR MOD TO LOOK AT COND. INST. +BCOM2: SOSG 0 ;ADDR MOD TO LOOK AT PROCEED COUNTER +LEAV1: XWD 0,LEAVG +BREAK2: ROT S,.-. ;ROT BY # OF BREAK POINT +PROC0: HRRZI R,XEC1 ;MODIFIED TO ADDR OF BREAKPOINT +LEAV: 0 ;INSTRUCTION MODIFIED +CPUSHP: PUSH .-.,BCOM ;GETS MODIFIED IN AC FIELD +SWAP: 0 + JRST SWAPG + > ;END IFE FTFILE + +SVBTS: 0 +SVBTS2: 0 +OLDAR: 0 +SVBT3: 0 +SVBT2: 0 +PSVBTS: BLOCK 3 + +SUBTTL STORAGE -- SYMBOL TABLE LOGIC + +PNTR: EXP INST ;POINTER TO BITS IN INST +INST: 0 ;BINARY FOR INSTRUCTION +CHP: 0 ;CHAR POINTER INTO TXT, TXT+1 +TXT: BLOCK 2 ;STORE INPUT TEXT FOR OPEVAL +SAVPDL: 0 ;SAVE PUSH DOWN LIST POINTER +WRD: 0 +WRD2: 0 +PRNC: 0 + +FRASE: 0 ;DONT CHANGE ORDER, SEE SEARC+3 +SYL: 0 +LWT: 0 +TEM2: 0 +FRASE1: +TEM3: 0 +DEN: 0 + +SAVHSM: BLOCK 1 ;C(.JBHSM), USED BY EVAL, LOOK +SEGNAM: 0 ;THE HIGH SEGMENT NAME (OR 0) + ;WHEN $: IS SUCCESSFULLY DONE +PRGM: 0 +ESTUT: 0 +FSV: 0 +FH: 0 +SYM: 0 + IFE FTDEC20,< + IFE FTFILE,< +SYMP: Z .JBSYM ;POINTS TO LOW SEG SYM TABLE POINTER +USYMP: Z .JBUSY ;POINTS TO UNDEF SYM TABLE POINTER + > + IFN FTFILE,< +SYMP: Z FISPTR +USYMP: Z FIUPTR + >> + IFN FTDEC20,< + IFN FTEXEC,< +SYMP: Z .JBSYM +USYMP: Z .JBUSY> + IFE FTEXEC,< +SYMP: Z .DDSYM +USYMP: Z .DDUSY + > +JDTFLG: -1 ;JOB DATA AREA VALID IF NON-0 + > ;END IFN FTDEC20 + +SYMPNT: 0 ;USED BY SYM TABLE SEARCHES +SPSAV: 0 ;POINTER TO LAST SYMBOL TYPED +DEFV: 0 +ULIMIT: 0 +LLOC: 0 +LLOCO: 0 +SAVLP: 0 ;POINTER TO SAVLOC TABLE +NSAVTB==20 ;SIZE OF SAVLOC TABLE (RING BUFFER) +SAVLTB: BLOCK NSAVTB ;SAVLOC TABLE +SYMORD: 0 ;HOLDS ADDRESSES OF EVAL-OPEVAL ROUTINES + ;SPECIFYING WHICH ORDER TO SEARCH THEM FOR SYMBOLS +QLPNT: 0 ;USED IN "QLIST" AS POINTER TO A SYMBOL +LCNT: 12 ;USED IN LISTEN +SKPCT: 0 ;SKIP COUNT FOR XCT +EFAFLG: 0 ;EFF ADR COMP MODE + IFN FTEXEC!FTFILE,< +;EPTUPT: 0 ;LH - EPT POINTER , RH - UPT POINTER + > + IFN FTYANK,< +PTDFLG: 0 ;EOF SEEN ON COMMAND FILE + > + +SUBTTL STORAGE -- SAVE AREAS FOR PREVIOUS CONTEXT + + IFE FTFILE,< +SAVAPR: 0 ;USED TO SAVE APR REGISTER IN EXEC MODE +SAVPI: 0 + 1177 + +;THESE LOCATIONS MUST BE IN ORDER - THEY ARE USED TO SAVE AND +;RESTORE THE STATE OF DTE FOR KL10 + +SAVTTY: 0 + IFN FTEXEC,< +;SAVUNS: 0 +;SAVEPW: 0 +;SAVERW: 0 +;SAVDPW: 0 +;SAVDRW: 0 + +;SAVEBR: 0 ;SAVED EXEC BASE REG +;MTRCNI: 0 ;RESULT OF CONI MTR, +;TIMCNI: 0 ;RESULT OF CONI TIM, +;MSTRDT: 0 ;ID OF MASTER -11 +DING11: 0 ;PROTOTYPE CONO WORD FOR DTE + > ;END IFN EDDT + +; IFN FTDEC20,< +SAVTT2: 0 +SAVTT3: 0 +LASTPG: 0 +SAVSTS: 0 +; > ;END IFN FTDEC20 + > ;END IFE FTFILE +MSK: XWD -1,-1 + IFN FTEXEC,< ;CELLS FOR TRACE FACILITY +TRCON: 0 ;ASSUMED AT $M+1 +TRCDMP: 0> ;ASSUMED AT $M+2 + + IFE FTFILE,< +B1ADR: 0 +B1SKP: 0 +B1CNT: 0 + +REPEAT NBP*3-3, < 0> + +BNADR=.-3 +AUTOPI: 0 + +AC0: BLOCK 17 + +AC17: 0 + > + +SUBTTL STORAGE -- STATE VARIABLES + +SCHM: EXP PIN ;DO NOT CHANGE ORDER +ARM: EXP PADSO +ODFM: EXP 10 + +SARS: 0 +TEM: 0 +TEM1: 0 + +NSYMCS==20 ;SIZE OF SYMBOL TABLE CACHE +SYMCSH: BLOCK NSYMCS ;SYMBOL TABLE CACHE +SYMCSP: BLOCK 1 ;POINTER TO NEXT FREE ENTRY +OLDSYM: BLOCK 1 ;REMEMBER CACHE SYMBOL TABLE + IFN FTEXEC,< +USRFLG: 0 ;-1 IN USER MODE, 0 IN EXEC MODE +KAFLG: 0 ;0 FOR KI10; 1,,0 FOR KA10 OR PDP-6 +TOPS20: 0 ;0 FOR TOPS10, -1 FOR TOPS20 +XNXTCH: 0 ;PRESET INPUT CHAR AT XLISTE + > ;END IFN FTEXEC +XLIST + + IFN FTFILE,< ;FILDDT STUFF +FWAZER:! ;START OF AREA TO ZERO +FILDEV: BLOCK 3 ;OPEN BLOCK FOR CRASH FILE +FILBLK: BLOCK 4 ;LOOKUP BLOCK FOR CRASH FILE +LBUF: BLOCK 3 +SYMGET: Z ;-1 IF /S, 0 IF NOT +CRASHS: Z ;-1 IF CRASH.SAV ON DISK ,0 IF PEEK AT MONITOR +FDIDOT: Z ;-1 IF . TYPED IN, 0 IF NOT +PATCHS: Z ;-1 IF PATCHING MODE +CHGSFL: Z ;CHANGED SYMBOL TABLE +AC0=. +AC17=.+17 +CRSHAC: BLOCK 20 ;CRASH AC'S +FETPAG: BLOCK 1 ;ADDRESS OF PAGTBL ENTRY FOR LAST + ; CALL TO FETCH +FETADR: BLOCK 1 ;INCORE ADDRESS OF DATA WORD FROM LAST + ; CALL TO FETCH +WINNUM: BLOCK 1 ;WINDOW TO READ OR WRITE +WINDIR: BLOCK CT.RES ;ADDRESS OF PAGTBL ENTRY FOR + ; EACH WINDOW SLOT +PAGTBL: BLOCK MX.SIZ ;1 WORD FOR EVERY VIRT. PAGE + ;BITS 0-4 .EXE FORMAT FLAGS + ;BIT 5 PAGE IN CORE CHANGED + ;BITS 9-17 WINDOW # PLUS 1 + ;RH - FILE PAGE NUMBER +WIND0: BLOCK CT.RES*1000 ;WINDOWS +XPNFMT: BLOCK 1 ;FILE IS IN .XPN FORMAT +LWAZER==.-1 ;END OF AREA TO ZERO + +FISPTR: Z ;POINTER TO SYMBOLS +FIUPTR: Z ;POINTER TO UNDEF SYMS + +MONSIZ: BLOCK 1 ;HIGHEST LOC+1 IN CRASH.SAV FILE + ;(USED SO WE WON'T EXAMINE PAST END) +SAVEFF: Z ;WHERE TO LOAD SYMBOLS IF /S + > ;END IFN FTFILE +LIST + +SUBTTL STORAGE -- PUSH DOWN LIST + +PDL: BLOCK LPDL ;STORAGE FOR PUSH DOWN LIST + +END.V==. + IFN FTDEC20,< IFE FTEXEC,< +VAREND: ;END OF INITIALIZED VARIABLES AREA +.DDSYM: 0 ;SYMTAB PTR (COPIED FROM .JBSYM USUALLY) +.DDUSY: 0 ;UNDEF SYMTAB PTR (COPIED FROM .JBUSY " ) + +SETRT1: 0 ;SCRATCH FOR VARIABLE INITIALIZATION +END.V==. + DEPHASE + >> + +DDTEND: + + IFDEF VARLOC,< IFDEF RUNLOC,< IFDEF PHDDT,< + IFL -,< + PRINTX ?VARIABLES OVERLAP CODE + >>>> + +DEFINE PRSIZE(CODEN,DATAN),< + IF2,< PRINTX [ CODEN WORDS CODE + DATAN WORDS DATA] + >> + + RADIX 10 + PRSIZE(\,\) + RADIX 8 + +;THE FOLLOWING DEFINES CERTAIN SYMBOLS RELEVANT TO HARDWARE OR TO +;DDT ITSELF. THESE ARE *NOT* NEEDED FOR THE ASSEMBLY OF DDT AND +;IN FACT MAY BE IN CONFLICT WITH DEFINITIONS WHICH ARE USED +;DURING ASSEMBLY (E.G. TTY). HENCE, THESE DEFINITIONS ARE ASSEMBLED +;LAST AND ON PASS 2 ONLY. THE SYMBOLS ARE ALL DECLARED INTERNAL +;SO THAT THEY WILL BE KEPT IN THE PROGRAM SYMBOL TABLE AFTER +;LOADING. THESE SYMBOLS ARE THEN USED DURING DDT INSTRUCTION +;ASSEMBLY OR DEASSEMBLY ONLY. + + IFE FTDEC20,< ;DDT SYMTAB NEVER USED ON DEC20 + IF2,< +DEFINE XP (SS,VV)< + SS=VV + INTERN SS> + +OPDEF DDTINT [Z 0,] ;ADDRESS FLAG FOR INTERNAL REGISTERS + +;DEFINE $ SYMBOLS INTERNAL TO DDT + + IFE FTFILE,< +RADIX 10 + +DEFINE DBPNT (Z.)> + +ZZ==0 +REPEAT NBP,> +RADIX 8 + +XP $M, +XP $I, + > ;END FTFILE + +;DEFINE I/O DEVICE MNEMONICS + + IFN FTEXEC,< + +XP PI,004B11 +XP PAG,010B11 +XP CCI,014B11 +XP DLB,060B11 +XP DLC,064B11 +XP CLK,070B11 +XP PTP,100B11 +XP PTR,104B11 +XP CDP,110B11 +XP CDR,114B11 +XP TTY,120B11 +XP LPT,124B11 +XP DIS,130B11 +XP PLT,140B11 +XP CR,150B11 +XP DSK,170B11 +XP DTE,200B11 +XP UTC,210B11 +XP UTS,214B11 +XP MTC,220B11 +XP MTS,224B11 +XP MTM,230B11 +XP DLS,240B11 +XP DPC,250B11 +XP DCSA,300B11 +XP DCSB,304B11 +XP DTC,320B11 +XP DTS,324B11 +XP TMC,340B11 +XP TMS,344B11 > + +;DEFINE EXTENDED OPERATIONS + + IFE FTFILE,< +XP JOV,2554B11 +XP JEN,2545B11 +XP HALT,2542B11 > + > ;END IF2 + > ;END IFE FTDEC20 + +;ONLY STARTING ADDRESS FOR FILDDT AND VMDDT +;NO START ADDRESS FOR EXEC OR USER DDT +;BECAUSE USER PROGRAMS AND MONITOR ARE LOADED +;WITH EXEC OR USER DDT +;BUT STILL WANT TO BE STARTED AT THEIR OWN START ADDRESSES + + REPEAT 0,< + IFN FTVMX, + IFN FTFILE, + + IFE FTEXEC,< + IFN FTDEC20,< + IFE FTMON,< + END BLTDDT>>> ;UDDT HAS SPECIAL START ADR +> + +; END + END DDT ;KLDDT HAS START ADDRESS + diff --git a/apps/pdp10/diags/klad/PARAM.KLM.txt b/apps/pdp10/diags/klad/PARAM.KLM.txt new file mode 100644 index 000000000..1fbbae6b2 --- /dev/null +++ b/apps/pdp10/diags/klad/PARAM.KLM.txt @@ -0,0 +1,1087 @@ +SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979 + +DEFINE S,<; *********************************************************************> + +; ********************************************************************** +;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) +;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE +;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS +; ********************************************************************** + +ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION +RSTART==200000 ;RESTART TEST, PRINT TOTALS +TOTALS==100000 ;PRINT TOTALS, CONTINUE + +NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) +PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) +DING== 010000 ;RING BELL ON ERROR + +LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR +ERSTOP==002000 ;HALT ON TEST ERROR +PALERS==001000 ;PRINT ALL ERRORS + +RELIAB==000400 ;RELIABILITY MODE +TXTINH==000200 ;INHIBIT ERROR TEXT +INHPAG==000100 ;INHIBIT PAGING + +MODDVC==000040 ;MODIFY DEVICE CODE +INHCSH==000020 ;INHIBIT CACHE +OPRSEL==000010 ;OPERATOR SELECTION + +CHAIN== 000004 ;CHAIN CONTROL SWITCH + +KAHZ50==000002 ;KA10 50 HERTZ POWER + + ;SWITCH 17 RESERVED !!! +SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 + +; ********************************************************************** +;*SPECIAL SUBPROGRAM LINKAGES +; ********************************************************************** + +FSELNK= 27772 ;FILE SELECT LINK +FRDLNK= 27773 ;FILE READ LINK +LDLNK= 27774 ;LOAD LINKAGE ADDRESS +DDTLNK= 27775 ;DDT LINKAGE ADDRESS +MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS +SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + +; ********************************************************************** +;*SPECIAL SUBROUTINE FATAL HALTS +;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE +; ********************************************************************** + +;ADDRESS TAG REASON +;--------------------- + +; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION +; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR +; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR +; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT +; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL +; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET +; 1016 CPIERR ;CPU INITIALIZATION ERROR +; 1017 EOPERR ;END OF PROGRAM ERROR +; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + +; ********************************************************************** +; ********************************************************************** +;OPERATOR DEFINITIONS (NON-UUO'S) +; ********************************************************************** + +OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL +OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN +OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST +OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST +OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S +OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT +OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT +OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + +; ********************************************************************** +;SUBROUTINE INITIALIZATION CALL +; ********************************************************************** + +OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + +; ********************************************************************** +;HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). +; ********************************************************************** + +OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT +OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + +; ********************************************************************** +;TERMINAL INPUT UUO'S +;ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE +;CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. +; ********************************************************************** + +OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER +OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y +OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N +OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD +OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD +OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD +OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK +OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK +OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD +OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT +;TERMINAL OUTPUT UUO'S. + +OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD +OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED +OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE +OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED +OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE +OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED +OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE +OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED +OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE +OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED +OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE +OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED +OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER +OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED +OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT +OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED +OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS +OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED +OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS +OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED +OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS +OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED +OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS +OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED +OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS +OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED +OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS +OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED +OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS +OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. +OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS +OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED +OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL +OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED +OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 +OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED +OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S +OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED +OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S +OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED +OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S +OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED +OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME +OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD +OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED +OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE +OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD +OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED +OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED +OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED +OPDEF PSP [37B8!0B12!40] ;PRINT SPACE +OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED +OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED +OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + +OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + +DEFINE PMSG (ARG),< + PSIXM [SIXBIT\ARG'_\]> + +DEFINE PMSGF (ARG),< + PSIXMF [SIXBIT\ARG'_\]> + +;SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING +; CONSERVES CORE OVER ASCIZ + +DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + +;CONSOLE SWITCH INPUT UUO. +;READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF +; USER MODE. + +OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + +;CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION +;EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + +OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK +OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + +;KL10 ONLY CACHE OPERATION UUO'S + +OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE +OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH +OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +;END OF PASS/PROGRAM UUOS + +;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, +;DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + +OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS +OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + +;MEMORY MANAGEMENT UUO'S +;UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, +;ADDRESS CONVERSION, ETC... + +OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY +OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY +OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT +OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT +OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK +OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP +OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + +;DEVICE CODE MODIFICATION UUO +;ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO +;IOT'S TO A DIFFERENT DEVICE CODE. + +OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER +OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + + IFNDEF MODDVL, + IFNDEF MODDVU, + +;"DIAMON" FILE SELECTION AND READ UUOS + +OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION +OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA +OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA +OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + +;KI10 ONLY UUO FOR PRINTING MARGIN VALUES + +OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + + XLIST +IFNDEF KLOLD, + +;A MACRO TO REPORT AN ERROR AND NOT LOOP + + DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + SALL + ERUUO FORMAT,[T,,[SIXBIT\F'_\] + CORECT,,ACTUAL + [SIXBIT\D'_\],,ERR] + XALL> + +>;END OF KLOLD CONDITIONAL + + XLIST +IFDEF $PAPER, +SUBTTL STANDARD PROGRAM ASSIGNMENTS + +; ********************************************************************** +;ACCUMULATORS +; ********************************************************************** + +P= 17 ;PUSHDOWN POINTER AC (IF PUSH LIST USED) +REPT== 15 ;ERROR HANDLER REPEAT AC +REPT1== 16 ; " + +; ********************************************************************** +;PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..) +; ********************************************************************** + +AROV== 400000 ;ARITHMETIC OVERFLOW +CRY0== 200000 ;CARRY 0 +CRY1== 100000 ;CARRY 1 +FOV== 40000 ;FLOATING POINT OVERFLOW +BIS== 20000 ;BYTE INTERRUPT +USERF== 10000 ;USER MODE +EXIOT== 4000 ;USER PRIV I/O +FXU== 100 ;FLOATING POINT UNDERFLOW +DCK== 40 ;DIVIDE CHECK + +; ********************************************************************** +;PDP-10 STANDARD ADDRESS ASSIGNMENTS +; ********************************************************************** + +LUUO== 40 ;UUO STORAGE, UUO 1-37 +LUUOI== 41 ;UUO SERVICE INSTRUCTION + +; ********************************************************************** +;JOB DATA AREA EXTERNALS (OLD DEFINITIONS) +; ********************************************************************** + +JOBUUO==40 +JOB41== 41 +JOBREL==44 +JOBDDT==74 +JOBSYM==116 +JOBUSY==117 +JOBSA== 120 +JOBFF== 121 +JOBREN==124 +JOBAPR==125 +JOBCNI==126 +JOBTPC==127 +JOBOPC==130 +JOBVER==137 +; ********************************************************************** +;JOB DATA AREA EXTERNALS (NEW DEFINITIONS) +; ********************************************************************** + +.JBUUO==40 +.JB41== 41 +.JBREL==44 +.JBDDT==74 +.JBSYM==116 +.JBUSY==117 +.JBSA== 120 +.JBFF== 121 +.JBREN==124 +.JBAPR==125 +.JBCNI==126 +.JBTPC==127 +.JBOPC==130 +.JBVER==137 + +; ********************************************************************** +;USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL) +; ********************************************************************** + +PDLOVU==200000 ;PUSHDOWN LIST OVERFLOW +MPVU== 20000 ;MEMORY PROTECTION VIOLATION +NXMU== 10000 ;NON-X-MEMORY +PARU== 4000 ;PARITY ERROR +CLKU== 1000 ;CLOCK +FOVU== 100 ;FLOATING OVERFLOW +AROVU== 10 ;ARITHMETIC OVERFLOW + +; ********************************************************************** +;USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE) +;THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN +;USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS. +; ********************************************************************** + +$DEVCH==17 ;LOGICAL DEVICE CHANNEL +$DVCH1==16 ;LOGICAL DEV UPDATE INPUT CHANNEL + +; ********************************************************************** +;PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS +; ********************************************************************** + +PAG== 010 ;PAGING I/O DEVICE CODE, KI/KL + +CCA== 014 ;CACHE I/O DEVICE CODE, KL10 +; ********************************************************************** +;PDP-10 STANDARD APR CONO ASSIGNMENTS +; ********************************************************************** + +IOCLR== 200000 ;CLEAR ALL I/O DEVICES +CLKDIS==4000 ;DISABLE CLOCK INTERRUPTS +CLKENB==2000 ;ENABLE CLOCK INTERRUPTS +CLKCLR==1000 ;CLEAR CLOCK FLAG + +; ********************************************************************** +;PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +CLKENB==2000 ;CLOCK INTERRUPT ENABLED +CLK== 1000 ;CLOCK FLAG +ANXM== 10000 ;KA10, NON-X-MEMORY +INXM== 100 ;KI10 + +; ********************************************************************** +;PDP-10 STANDARD PI CONO ASSIGNMENTS +; ********************************************************************** + +PWFCLR==400000 ;CLEAR POWER FAIL FLAG +PARCLR==200000 ;CLEAR PARITY ERROR FLAG +PARDIS==100000 ;DISABLE PARITY INTERRUPTS +PARENB==40000 ;ENABLE PARITY INTERRUPTS +PICLR== 10000 ;CLEAR PI SYSTEM +REQSET==4000 ;SET PROGRAM PI REQUEST +CHNON== 2000 ;TURN ON CHANNEL +CHNOFF==1000 ;TURN OFF CHANNEL +PIOFF== 400 ;TURN OFF PI SYSTEM +PION== 200 ;TURN ON PI SYSTEM + +; ********************************************************************** +;PDP-10 STANDARD PI CONI ASSIGNMENTS +; ********************************************************************** + +PION== 200 ;PI SYSTEM ON + +; ********************************************************************** +;PDP-10 STANDARD PI CHANNEL ASSIGNMENTS +; ********************************************************************** + +PICHN1==100 ;PI CHANNEL 1 +PICHN2==40 ;PI CHANNEL 2 +PICHN3==20 ;PI CHANNEL 3 +PICHN4==10 ;PI CHANNEL 4 +PICHN5==4 ;PI CHANNEL 5 +PICHN6==2 ;PI CHANNEL 6 +PICHN7==1 ;PI CHANNEL 7 +PICHNA==177 ;ALL PI CHANNELS, 1 THRU 7 + XLIST + IFDEF KA10,< +IFDEF $PAPER, +; ********************************************************************** +;KA10 APR CHANNEL ASSIGNMENTS +; ********************************************************************** + +AAPRC1==1 ;APR INTERRUPT CHANNEL + +; ********************************************************************** +;KA10 APR CONO ASSIGNMENTS +; ********************************************************************** + +APDCLR==400000 ;CLEAR PUSHDOWN OVERFLOW +AABCLR==40000 ;CLEAR ADDRESS BREAK +AMPCLR==20000 ;CLEAR MEMORY PROTECTION +ANXCLR==10000 ;CLEAR NON-X-MEMORY +AFODIS==400 ;DISABLE FLOATING POINT OVERFLOW +AFOENB==200 ;ENABLE FLOATING POINT OVERFLOW +AFOCLR==100 ;CLEAR FLOATING POINT OVERFLOW +AOVDIS==40 ;DISABLE OVERFLOW +AOVENB==20 ;ENABLE OVERFLOW +AOVCLR==10 ;CLEAR OVERFLOW + +; ********************************************************************** +;KA10 APR CONI ASSIGNMENTS +; ********************************************************************** + +APDLOV==200000 ;PUSHDOWN OVERFLOW +AUSRIO==100000 ;USER I/O +AADRBK==40000 ;ADDRESS BREAK +AMPV== 20000 ;MEMORY PROTECTION VIOLATION +ANXM== 10000 ;NON-EXISTENT MEMORY +AFOENB==200 ;FLT PT INTERRUPT ENABLED +AFOV== 100 ;FLOATING POINT OVERFLOW +ATRPOS==40 ;TRAPS OFFSET +AOVENB==20 ;OVERFLOW INTERRUPT ENABLED +AOVFLO==10 ;ARITHMETIC OVERFLOW + +; ********************************************************************** +;KA10 PI CONI ASSIGNMENTS +; ********************************************************************** + +APWRFL==400000 ;POWER FAILURE +APARER==200000 ;PARITY ERROR +APAREN==100000 ;PARITY INTERRUPT ENABLED + +> ;END CONDITIONAL ON KA10 + XLIST + IFDEF KI10,< +IFDEF $PAPER, +; ********************************************************************** +;KI10 PC CONTROL FLAGS +; ********************************************************************** + +LIP== 2000 ;LAST INSTRUCTION PUBLIC +TN0== 400 ;TN=00, NO TRAP ;TN=01, ARITH TRAP +TN1== 200 ;TN=10, PDL OV ;TN=11, TRAP 3 + +; ********************************************************************** +;KI10 SPECIAL EXEC MODE FLAGS +; ********************************************************************** + +UOLIP== 400000 ;UUO OLD L.I.P. +UOUSR== 4000 ;UUO OLD USER + +; ********************************************************************** +;KI10 APR CHANNEL ASSIGNMENTS +; ********************************************************************** + +IAPRC1==1 ;APR CLOCK CHANNEL +IAPRE1==10 ;APR ERROR CHANNEL + +; ********************************************************************** +;KI10 APR CONO ASSIGNMENTS +; ********************************************************************** + +ITMSET==400000 ;SET TIME OUT TIMER +ITMDIS==100000 ;DISABLE TIME OUT +ITMENB==40000 ;ENABLE TIME OUT +IASRTC==20000 ;CLEAR AUTO RESTART +IASRTS==10000 ;SET AUTO RESTART +IIOPFC==200 ;CLEAR I/O PAGE FAIL +INXCLR==100 ;CLEAR NON-X-MEM + +; ********************************************************************** +;KI10 APR CONI ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +ITMOUT==400000 ;TIMER TIMED OUT +IPARER==200000 ;PARITY ERROR +IPAREN==100000 ;PARITY ENABLED +ITMOEN==40000 ;TIME OUT ENABLED +IPWRFL==20000 ;POWER FAIL +IASRTE==10000 ;AUTO RESTART ENABLED +IIOPFL==200 ;I/O PAGE FAIL +INXM== 100 ;NON-X-MEMORY +; ********************************************************************** +;KI10 APR CONI ASSIGMENTS, LEFT HALF +; ********************************************************************** + +IMLAPD==200000 ;MEMORY OVERLAP DISABLED +IFMMAN==100000 ;FAST MEMORY MANUAL +IMIPGD==40000 ;MI PROGRAM DISABLE +ICNSLR==20000 ;CONSOLE READ ONLY +ICNSLL==10000 ;CONSOLE LOCKED +IP50HZ==4000 ;50 HZ POWER +IMGINM==2000 ;MANUAL MARGINS +IMAINT==1000 ;MAINTENANCE MODE +IPWRLO==400 ;POWER LOW +IMGNLO==200 ;MARGIN COMPARATOR LOW +SENSE1==40 ;SENSE SWITCHES 1 +SENSE2==20 ; 2 +SENSE3==10 ; 3 +SENSE4==4 ; 4 +SENSE5==2 ; 5 +SENSE6==1 ; 6 + +; ********************************************************************** +;KI10 APR DATAO ASSIGNMENTS +; ********************************************************************** + +IEVNPR==20000 ;WRITE EVEN PARITY +ISPDOF==10000 ;SPEED MARGINS OFF +ISPDON==4000 ;SPEED MARGINS ON +IMGNOF==2000 ;MARGINS OFF - LH +IMGNON==1000 ;MARGINS ON - LH + +; ********************************************************************** +;KI10 PI CONO ASSIGNMENTS +; ********************************************************************** + +IRQCLR==20000 ;CLEAR PROGRAM PI REQUEST +; ********************************************************************** +;KI10 PI CONI ASSIGNMENTS +; ********************************************************************** + +IINSTF==400000 ;ADDRESS CONDITIONS, INST FETCH +IDATAF==200000 ; DATA FETCH +IWRITE==100000 ; WRITE +IADSTP==40000 ;ADDRESS STOP +IADBRK==20000 ;ADDRESS BREAK +IADEXC==10000 ;ADDRESS SWITCHES EXEC +IADUSR==4000 ; " " USER +IPRSTP==2000 ;PARITY STOP +INXSTP==1000 ;NON-X-MEM STOP + +; ********************************************************************** +;KI10 PAG CONI ASSIGNMENTS +; ********************************************************************** + +EXCMEM==400 ;EXEC MEMORY SPACE +AMCLRB==40 ;ASSOCIATIVE MEMORY CLEAR BIT + +; ********************************************************************** +;KI10 PAG DATAO ASSIGNMENTS, LEFT HALF +; ********************************************************************** + +LDUSRB==400000 ;LOAD USER BASE REGISTER +SMLUSR==40000 ;SMALL USER, 32K OR UNDER +USRCMP==20000 ;USER ADR COMPARE ENABLE + +; ********************************************************************** +;KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF +; ********************************************************************** + +LDEXCB==400000 ;LOAD EXEC BASE REGISTER +TRPENB==20000 ;ENABLE TRAPS + +; ********************************************************************** +;KI10 PAG DATAI ASSIGNMENTS +; ********************************************************************** + +SMLUSR==40000 ;SMALL USER +USRCMP==20000 ;USER ADR COMPARE ENABLED +TRPENB==20000 ;RH, TRAPS ENABLED + +; ********************************************************************** +;KI10 PTR DATAO ASSIGNMENTS +; ********************************************************************** + + ;ADDRESS CONDITIONS, ADDRESS BREAK ;AS ABOVE, PI CONI + ;ADDRESS SWITCHES, 14-35 +; ********************************************************************** +;KI10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +PGFTRP==420 ;PAGE FAULT TRAP +AROVTP==421 ;ARITHMETIC TRAP +PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP +TRP3TP==423 ;TRAP 3 TRAP + +; ********************************************************************** +;KI10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +PGFTRP==420 ;PAGE FAULT TRAP +AROVTP==421 ;ARITHMETIC TRAP +PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP +TRP3TP==423 ;TRAP 3 TRAP + +MUUO== 424 ;MUUO STORAGE +MUUOPC==425 ;C(PC) OF MUUO STORAGE + +EXCPFW==426 ;EXEC PAGE FAIL WORD +USRPFW==427 ;USER PAGE FAIL WORD + +KNTRP== 430 ;KERNAL NO TRAP - NEW PC'S- +KTRP== 431 ;" TRAP +SNTRP== 432 ;SUPERVISOR NO TRAP +STRP== 433 ;" TRAP +CNTRP== 434 ;CONCEAL NO TRAP +CTRP== 435 ;" TRAP +PNTRP== 436 ;PUBLIC NO TRAP +PTRP== 437 ;" TRAP + +> ;END CONDITIONAL ON KI10 + XLIST + IFDEF KL10,< + IFNDEF KL10P0,< +IFDEF $PAPER, +;KL10 CONO APR 000 ASSIGMENTS +; ********************************************************************** + +LIOCLR==200000 ;CLEAR ALL I/O DEVICES +LFLGEN==100000 ;ENABLE SELECTED FLAG +LFLGDS==40000 ;DISABLE SELECTED FLAG +LFLGCL==20000 ;CLEAR SELECTED FLAG +LFLGST==10000 ;SET SELECTED FLAG +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LPARER==1000 ;PARITY ERROR FLAG +LIOPFE==400 ;I/O PAGE FAIL FLAG +LPWRFL==100 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LESBER==104000 ;ENABLE SBUS ERRORS +LDSBER==044000 ;DISABLE SBUS ERRORS +LCSBER==024000 ;CLR SBUS ERRORS +LSSBER==014000 ;SET SBUS ERROR +LENXER==102000 ;ENABLE NON-EXISTENT MEMORY +LDNXER==042000 ;DISABLE NON-EXISTENT MEORY +LCNXER==022000 ;CLR NON-EXISTENT MEMORY +LSNXER==012000 ;SET NON-EXISTENT MEMORY +LEPAER==101000 ;ENABLE PARITY ERRORS +LDPAER==041000 ;DISABLE PARITY ERRORS +LCPAER==021000 ;CLR PARITY ERROR +LSPAER==011000 ;SET PARITY ERROR +LEIOPF==100400 ;ENABLE I/O PAGE FAILS +LDIOPF==040400 ;DISABLE I/O PAGE FAILS +LCIOPF==020400 ;CLR I/O PAGE FAIL +LSIOPF==010400 ;SET I/O PAGE FAIL +LEPWRF==100100 ;ENABLE POWER FAIL +LDPWRF==040100 ;DISABLE POWER FAIL +LCPWRF==020100 ;CLR POWER FAIL +LSPWRF==010100 ;SET POWER FAIL +LECASD==100020 ;ENABLE CACHE SWEEP DONE +LDCASD==040020 ;DISABLE CACHE SWEEP DONE +LCCASD==020020 ;CLR CACHE SWEEP DONE +LSCASD==010020 ;SET CACHE SWEEP DONE +LAPRAL==127520 ;CLR ALL ERROR FLAGS & ENABLE +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LSBSEN==4000 ;SBUS ERRORS ENABLED +LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED +LPAREN==1000 ;PARITY ERRORS ENABLED +LIOPFE=400 ;I/O PAFE FAILURES ENABLED +LPWRFE==100 ;POWER FAILURES ENABLED +LCASDE==20 ;CACHE SWEEP DONE ENABLED + +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LCASWB==200000 ;CACHE SWEEP BUSY +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LPARER==1000 ;PARITY ERROR FLAG +LIOPFE==400 ;I/O PAGE FAIL FLAG +LPWRFL==100 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LINT==10 ;APR INTERRUPT + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAO APR,ADDRESS SWITCHES=13-35 +> + XLIST + IFDEF KL10P0,< +IFDEF $PAPER, +;KL10 CONO APR 000 ASSIGMENTS +; ********************************************************************** +LIOCLR==200000 ;CLEAR ALL I/O DEVICES +LFLGEN==100000 ;ENABLE SELECTED FLAG +LFLGDS==40000 ;DISABLE SELECTED FLAG +LFLGCL==20000 ;CLEAR SELECTED FLAG +LFLGST==10000 ;SET SELECTED FLAG +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LIOPFE==1000 ;I/O PAGE FAIL FLAG +LPARER==400 ;MB PARITY ERROR FLAG +LCADRP==200 ;CACHE ADDRESS PARITY ERROR FLAG +LSADRP==100 ;S-BUS ADDRESS PARITY ERROR FLAG +LPWRFL==40 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LESBER==104000 ;ENABLE SBUS ERRORS +LDSBER==044000 ;DISABLE SBUS ERRORS +LCSBER==024000 ;CLR SBUS ERRORS +LSSBER==014000 ;SET SBUS ERROR +LENXER==102000 ;ENABLE NON-EXISTENT MEMORY +LDNXER==042000 ;DISABLE NON-EXISTENT MEORY +LCNXER==022000 ;CLR NON-EXISTENT MEMORY +LSNXER==012000 ;SET NON-EXISTENT MEMORY +LEIOPF==101000 ;ENABLE I/O PAGE FAILS +LDIOPF==041000 ;DISABLE I/O PAGE FAILS +LCIOPF==021000 ;CLR I/O PAGE FAIL +LSIOPF==011000 ;SET I/O PAGE FAIL +LEPAER==100400 ;ENABLE PARITY ERRORS +LDPAER==040400 ;DISABLE PARITY ERRORS +LCPAER==020400 ;CLR PARITY ERROR +LSPAER==010400 ;SET PARITY ERROR +LECAER==100200 ;ENABLE CACHE ADR PARITY ERRORS +LDCAER==040200 ; " DISABLE +LCCAER==020200 ; " CLR +LSCAER==010200 ; " SET +LESAER==100100 ;ENABLE S-BUS ADR PARITY ERRORS +LDSAER==040100 ; " DISABLE +LCSAER==020100 ; " CLR +LSSAER==010100 ; " SET +LEPWRF==100040 ;ENABLE POWER FAIL +LDPWRF==040400 ;DISABLE POWER FAIL +LCPWRF==020040 ;CLR POWER FAIL +LSPWRF==010040 ;SET POWER FAIL +LECASD==100020 ;ENABLE CACHE SWEEP DONE +LDCASD==040020 ;DISABLE CACHE SWEEP DONE +LCCASD==020020 ;CLR CACHE SWEEP DONE +LSCASD==010020 ;SET CACHE SWEEP DONE +LAPRAL==127760 ;CLR ALL ERROR FLAGS & ENABLE +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LSBSEN==4000 ;SBUS ERRORS ENABLED +LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED +LIOPFE==1000 ;I/O PAGE FAILURES ENABLED +LPAREN==400 ;PARITY ERRORS ENABLED +LCADEN==200 ;CACHE ADR PARITY ERRORS ENABLED +LSADEN==100 ;S-BUS ADR PARITY ERRORS ENABLED +LPWRFE==40 ;POWER FAILURES ENABLED +LCASDE==20 ;CACHE SWEEP DONE ENABLED + +; ********************************************************************** +;KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LCASWB==200000 ;CACHE SWEEP BUSY +LSBUSE==4000 ;SBUS ERROR FLAG +LNXMER==2000 ;NON-EXISTENT MEMORY FLAG +LIOPFE==1000 ;I/O PAGE FAIL FLAG +LPARER==400 ;PARITY ERROR FLAG +LCADRP==200 ;CACHE ADR PARITY ERROR FLAG +LSADRP==100 ;S-BUS ADR PARITY ERROR FLAG +LPWRFL==40 ;POWER FAIL FLAG +LCASWD==20 ;CACHE SWEEP DONE FLAG +LAPRP7==7 ;APR PI CHANNEL 7 +LAPRP6==6 ;APR PI CHANNEL 6 +LAPRP5==5 ;APR PI CHANNEL 5 +LAPRP4==4 ;APR PI CHANNEL 4 +LAPRP3==3 ;APR PI CHANNEL 3 +LAPRP2==2 ;APR PI CHANNEL 2 +LAPRP1==1 ;APR PI CHANNEL 1 +LINT==10 ;APR INTERRUPT + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAO APR,ADDRESS SWITCHES=13-35 +> + XLIST +IFDEF $PAPER, +; ********************************************************************** +;KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH +LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH +LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE +LUSCMP==40 ;USER ADDRESS COMPARE +LEXCMP==0 ;EXEC ADDRESS COMPARE + +; ********************************************************************** +;KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;DATAI APR,ADDRESS SWITCHES=13-35 + +; ********************************************************************** +;KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE) +; ********************************************************************** + +;REFILL ALGORITHM BITS 18-20 +;REFILL ALGORITHM ADDRESS 27-33 + +; ********************************************************************** +;KL10 BLKI APR 000 ASSIGMENTS +; ********************************************************************** + +;MICRO-CODE OPTIONS = 0-8 +;MICRO-CODE VERSION NUMBER = 9-17 +;HARDWARE OPTIONS =18-23 +;PROCESSOR SERIAL NUMBER = 24-35 +; ********************************************************************** +;KL10 CONO PI 004 ASSIGMENTS +; ********************************************************************** + +LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS +LEVNPD==200000 ;WRITE EVEN PARITY DATA +LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0 +LRQCLR==20000 ;DROP INTERRUPT ON SELECTED CHANNEL +LPICLR==10000 ;CLEAR PI SYSTEM +LREQSE==4000 ;REQUEST INTERRUPT ON SELECTED CHANNEL +LCHNON=2000 ;TURN ON SELECTED CHANNEL +LCHNOF==1000 ;TURN OFF SELECTED CHANNEL +LPIOFF==400 ;TURN PI SYSTEM OFF +LPION==200 ;TURN PI SYSTEM ON +LPICH1==100 ;PI CHANNEL 1 +LPICH2==40 ;PI CHANNEL 2 +LPICH3==20 ;PI CHANNEL 3 +LPICH4==10 ;PI CHANNEL 4 +LPICH5==4 ;PI CHANNEL 5 +LPICH6==2 ;PI CHANNEL 6 +LPICH7==1 ;PI CHANNEL 7 +LPICHA==177 ;ALL PI CHANNELS + +; ********************************************************************** +;KL10 CONI PI 004 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LPRCH1==100 ;PROGRAM REQUEST ON CHANNEL 1 +LPRCH2==40 ;PROGRAM REQUEST ON CHANNEL 2 +LPRCH3==20 ;PROGRAM REQUEST ON CHANNEL 3 +LPRCH4==10 ;PROGRAM REQUEST ON CHANNEL 4 +LPRCH5==4 ;PROGRAM REQUEST ON CHANNEL 5 +LPRCH6==2 ;PROGRAM REQUEST ON CHANNEL 6 +LPRCH7==1 ;PROGRAM REQUEST ON CHANNEL 7 +; ********************************************************************** +;KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS +LEVNPD==200000 ;WRITE EVEN PARITY DATA +LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0 +LPIIP1==40000 ;PI IN PROGRESS ON CHANNEL 1 +LPIIP2==20000 ;PI IN PROGRESS ON CHANNEL 2 +LPIIP3==10000 ;PI IN PROGRESS ON CHANNEL 3 +LPIIP4==4000 ;PI IN PROGRESS ON CHANNEL 4 +LPIIP5==2000 ;PI IN PROGRESS ON CHANNEL 5 +LPIIP6==1000 ;PI IN PROGRESS ON CHANNEL 6 +LPIIP7==400 ;PI IN PROGRESS ON CHANNEL 7 +LPION==200 ;PI SYSTEM ON +LPICH1==100 ;PI CHANNEL 1 ON +LPICH2==40 ;PI CHANNEL 2 ON +LPICH3==20 ;PI CHANNEL 3 ON +LPICH4==10 ;PI CHANNEL 4 ON +LPICH5==4 ;PI CHANNEL 5 ON +LPICH6==2 ;PI CHANNEL 6 ON +LPICH7==1 ;PI CHANNEL 7 ON +; ********************************************************************** +;KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LLACBL==400000 ;LOAD AC BLOCKS +LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION +LLDUSB==100000 ;LOAD USER BASE REGISTER +LCWSX==40 ; + +;CURRENT AC BLOCKS BITS 6 - 8 +;PREVIOUS AC BLOCKS BITS 9 - 11 +;PREVIOUS CONTEXT SECTION BITS 13 - 17 + +; ********************************************************************** +;KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;USER BASE REGISTER BITS 23 - 35 + +; ********************************************************************** +;KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF) +; ********************************************************************** + +LLACBL==400000 ;LOAD AC BLOCKS +LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION +LLDUSB==100000 ;LOAD USER BASE REGISTER +LCWSX==40 ; + +;CURRENT AC BLOCKS BITS 6 - 8 +;PREVIOUS AC BLOCKS BITS 9 - 11 +;PREVIOUS CONTEXT SECTION BITS 13 - 17 + +; ********************************************************************** +;KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF) +; ********************************************************************** + +;USER BASE REGISTER BITS 23 - 35 +; ********************************************************************** +;KL10 CONO PAG 010 ASSIGMENTS +; ********************************************************************** + +LCASLO==400000 ;CACHE STRATEGY LOOK +LCASLD==200000 ;CACHE STRATEGY LOAD +LSMODE==40000 ;SECTION MODE +LTRPEN==20000 ;TRAP AND PAGE ENABLE + +;EXEC BASE REGISTER = 23-35 + +; ********************************************************************** +;KL10 CONI PAG 010 ASSIGMENTS +; ********************************************************************** + + +LCSLOO==400000 ;CACHE STRATEGY LOOK +LCSLOA==200000 ;CACHE STRATEGY LOAD +LSECMO==40000 ;SECTION MODE +LTRPAE==20000 ;TRAP AND PAGE ENABLE + +;EXEC BASE REGISTER = 23-35 + +; ********************************************************************** +;KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE) +; ********************************************************************** + + XLIST + IFNDEF KL10P0,< +IFDEF $PAPER, +; ********************************************************************** +;KL10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +; ********************************************************************** +;KL10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LEUPFW==420 ;EXEC & USER PAGE FAIL WORD +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LMUUO== 424 ;MUUO STORAGE +LMUUOP==425 ;C(PC) OF MUUO STORAGE + +LPFWPC==426 ;C(PC) OF PAGE FAIL WORD +LPGFTR==427 ;PAGE FAIL NEW PC TRAP + +LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S- +LKTRP== 431 ;" TRAP +LSNTRP==432 ;SUPERVISOR NO TRAP +LSTRP== 433 ;" TRAP +LCNTRP==434 ;CONCEAL NO TRAP +LCTRP== 435 ;" TRAP +LPNTRP==436 ;PUBLIC NO TRAP +LPTRP== 437 ;" TRAP + +> + XLIST + IFDEF KL10P0,< +IFDEF $PAPER, +; ********************************************************************** +;KL10 EXEC PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LTBASH==510 ;TIME-BASE, HI +LTBASL==511 ;TIME-BASE, LO +LPRFMH==512 ;PERFORMANCE ANAYLYSIS, HI +LPRFML==513 ;PERFORMANCE ANAYLYSIS, LO + +; ********************************************************************** +;KL10 USER PAGE MAP PAGE ASSIGNMENTS +; ********************************************************************** + +LAROVT==421 ;ARITHMETIC TRAP +LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP +LTRP3T==423 ;TRAP 3 TRAP + +LMUUO== 424 ;MUUO STORAGE +LMUUOP==425 ;C(PC) OF MUUO STORAGE +LCNTXT==426 ;PROCESS CONTEXT WORD + +LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S- +LKTRP== 431 ;" TRAP +LSNTRP==432 ;SUPERVISOR NO TRAP +LSTRP== 433 ;" TRAP +LCNTRP==434 ;CONCEAL NO TRAP +LCTRP== 435 ;" TRAP +LPNTRP==436 ;PUBLIC NO TRAP +LPTRP== 437 ;" TRAP + +LEUPFW==500 ;EXEC & USER PAGE FAIL WORD +LPFWPC==501 ;C(PC) OF PAGE FAIL WORD +LPGFTR==502 ;PAGE FAIL NEW PC + +LEBXMH==504 ;E-BOX CLOCK TICK METER, HI +LEBXML==505 ;E-BOX CLOCK TICK METER, LO +LMBXMH==506 ;M-BOX CYCLE METER, HI +LMBXML==507 ;M-BOX CYCLE METER, LO + +>> ;END CONDITIONAL ON KL10 + LIST + diff --git a/apps/pdp10/diags/klad/README.md b/apps/pdp10/diags/klad/README.md index a58cca5af..a68e68b6d 100644 --- a/apps/pdp10/diags/klad/README.md +++ b/apps/pdp10/diags/klad/README.md @@ -10,7 +10,80 @@ PDP-10 KLAD Diagnostics 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-B-D)](dakaa/) -- [KA10 Basic Instruction Diagnostic #2 (MAINDEC-10-DAKAB-B-D)](dakab/) -- [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC-B-D)](dakac/) -- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD-B-D)](dakad/) +- [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 diff --git a/apps/pdp10/diags/klad/SMFILE.MAC b/apps/pdp10/diags/klad/SMFILE.MAC.txt similarity index 99% rename from apps/pdp10/diags/klad/SMFILE.MAC rename to apps/pdp10/diags/klad/SMFILE.MAC.txt index 65c3ff41d..b3f713dd7 100644 --- a/apps/pdp10/diags/klad/SMFILE.MAC +++ b/apps/pdp10/diags/klad/SMFILE.MAC.txt @@ -7395,4 +7395,3 @@ IPAG: BLOCK ^D512 END <3,,EV> - diff --git a/apps/pdp10/diags/klad/UUOERR.KLM.txt b/apps/pdp10/diags/klad/UUOERR.KLM.txt new file mode 100644 index 000000000..6b7482024 --- /dev/null +++ b/apps/pdp10/diags/klad/UUOERR.KLM.txt @@ -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,> + 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, + 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,> + JRST UUOEXT + +%ERRS4: MOVE 0,CONSW + TLNN PALERS ;PRINT ALL ERRORS ? + JRST %ERRS1 ;NO + JRST %ERMS1 ;YES + diff --git a/apps/pdp10/diags/klad/dakaa/README.md b/apps/pdp10/diags/klad/dakaa/README.md index c39febd1d..60a3c03cd 100644 --- a/apps/pdp10/diags/klad/dakaa/README.md +++ b/apps/pdp10/diags/klad/dakaa/README.md @@ -13,7 +13,7 @@ machines: PDP-10 KA10 Basic Instruction Diagnostic #1 ------------------------------------------- -The *PDP-10 KA10 Basic Instruction Diagnostic #1* (MAINDEC-10-DAKAA-B-D) test code has been extracted from +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. @@ -54,20 +54,20 @@ MAINDEC-10-DAKAA IDENTIFICATION -------------- - PRODUCT CODE: MAINDEC-10-DAKAA-B-D + PRODUCT CODE: MAINDEC-10-DAKAA-B-D - PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC - INSTRUCTION DIAGNOSTIC (1) + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (1) - FUNCTION: BASIC INSTRUCTIONS + FUNCTION: BASIC INSTRUCTIONS - VERSION: 0.2 + VERSION: 0.2 - DATE RELEASED: JANUARY 1977 + DATE RELEASED: JANUARY 1977 - MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP - AUTHOR: JOHN R. KIRCHOFF + AUTHOR: JOHN R. KIRCHOFF COPYRIGHT(C) 1976,1977 DIGITAL EQUIPMENT CORPORATION @@ -87,6 +87,7 @@ 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 @@ -123,6 +124,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 8.0 MISCELLANEOUS 9.0 LISTING + MAINDEC-10-DAKAA.TXT PAGE 3 @@ -157,7 +159,8 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 2.3 PRELIMINARY PROGRAMS CONSOLE FUNCTIONS WORKING PROPERLY - PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY + PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY + MAINDEC-10-DAKAA.TXT PAGE 4 diff --git a/apps/pdp10/diags/klad/dakab/README.md b/apps/pdp10/diags/klad/dakab/README.md index 73922a3cd..de51d0e45 100644 --- a/apps/pdp10/diags/klad/dakab/README.md +++ b/apps/pdp10/diags/klad/dakab/README.md @@ -13,7 +13,7 @@ machines: PDP-10 KA10 Basic Instruction Diagnostic #2 ------------------------------------------- -The *PDP-10 KA10 Basic Instruction Diagnostic #2* (MAINDEC-10-DAKAB-B-D) test code has been extracted from +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. @@ -52,20 +52,20 @@ MAINDEC-10-DAKAB.TXT IDENTIFICATION -------------- - PRODUCT CODE: MAINDEC-10-DAKAB-B-D + PRODUCT CODE: MAINDEC-10-DAKAB-B-D - PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC - INSTRUCTION DIAGNOSTIC (2) + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (2) - FUNCTION: BASIC INSTRUCTIONS 2 + FUNCTION: BASIC INSTRUCTIONS 2 - VERSION: 0.2 + VERSION: 0.2 - DATE RELEASED: JANUARY 1977 + DATE RELEASED: JANUARY 1977 - MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP - AUTHOR: JOHN R. KIRCHOFF + AUTHOR: JOHN R. KIRCHOFF COPYRIGHT(C) 1976,1977 DIGITAL EQUIPMENT CORPORATION @@ -85,6 +85,7 @@ 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 @@ -121,6 +122,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 8.0 MISCELLANEOUS 9.0 LISTING + MAINDEC-10-DAKAB.TXT PAGE 3 @@ -152,6 +154,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. CONSOLE FUNCTIONS WORKING PROPERLY PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY PREVIOUS PROCESSOR DIAGNOSTICS + MAINDEC-10-DAKAB.TXT PAGE 4 diff --git a/apps/pdp10/diags/klad/dakac/README.md b/apps/pdp10/diags/klad/dakac/README.md index 870792225..ac0beedb3 100644 --- a/apps/pdp10/diags/klad/dakac/README.md +++ b/apps/pdp10/diags/klad/dakac/README.md @@ -13,7 +13,7 @@ machines: PDP-10 KA10 Basic Instruction Diagnostic #3 ------------------------------------------- -The *PDP-10 KA10 Basic Instruction Diagnostic #3* (MAINDEC-10-DAKAC-B-D) test code has been extracted from +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. @@ -52,20 +52,20 @@ MAINDEC-10-DAKAC.TXT IDENTIFICATION -------------- - PRODUCT CODE: MAINDEC-10-DAKAC-B-D + PRODUCT CODE: MAINDEC-10-DAKAC-B-D - PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC - INSTRUCTION DIAGNOSTIC (3) + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (3) - FUNCTION: LOGICAL, HALF WORD, ADDER + FUNCTION: LOGICAL, HALF WORD, ADDER - VERSION: 0.2 + VERSION: 0.2 - DATE RELEASED: JANUARY 1977 + DATE RELEASED: JANUARY 1977 - MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP - AUTHOR: JOHN R. KIRCHOFF + AUTHOR: JOHN R. KIRCHOFF COPYRIGHT(C) 1976,1977 DIGITAL EQUIPMENT CORPORATION @@ -85,6 +85,7 @@ 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 @@ -121,6 +122,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 8.0 MISCELLANEOUS 9.0 LISTING + MAINDEC-10-DAKAC.TXT PAGE 3 @@ -151,6 +153,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. CONSOLE FUNCTIONS WORKING PROPERLY PAPER-TAPE OR DECTAPE READ-IN WORKING PROPERLY PREVIOUS PROCESSOR DIAGNOSTICS + MAINDEC-10-DAKAC.TXT PAGE 4 diff --git a/apps/pdp10/diags/klad/dakad/DAKAD.MAC.txt b/apps/pdp10/diags/klad/dakad/DAKAD.MAC.txt index d726f2cc7..8f6ad01a7 100644 --- a/apps/pdp10/diags/klad/dakad/DAKAD.MAC.txt +++ b/apps/pdp10/diags/klad/dakad/DAKAD.MAC.txt @@ -14,7 +14,6 @@ EXIOT=4000 ;USER PRIV I/O FLAG FXU=100 ;FLOATING UNDERFLOW DCK=40 ;DIVIDE CHECK - ;MACROS ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) @@ -33,6 +32,7 @@ DEFINE SFLAG (A)< MOVSI 1,A JFCL 17,.+1 ;RESET ALL FLAGS JRST 2,.+1(1) ;SET A FLAG> + SUBTTL DIAGNOSTIC SECTION START: ;SETZM USER# ;CLEAR USER CONTROL WORD diff --git a/apps/pdp10/diags/klad/dakad/README.md b/apps/pdp10/diags/klad/dakad/README.md index bb416d238..ec7024ef2 100644 --- a/apps/pdp10/diags/klad/dakad/README.md +++ b/apps/pdp10/diags/klad/dakad/README.md @@ -13,7 +13,7 @@ machines: PDP-10 KA10 Basic Instruction Diagnostic #4 ------------------------------------------- -The *PDP-10 KA10 Basic Instruction Diagnostic #4* (MAINDEC-10-DAKAD-B-D) test code has been extracted from +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. @@ -67,20 +67,20 @@ MAINDEC-10-DAKAD.TXT IDENTIFICATION -------------- - PRODUCT CODE: MAINDEC-10-DAKAD-B-D + PRODUCT CODE: MAINDEC-10-DAKAD-B-D - PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC - INSTRUCTION DIAGNOSTIC (4) + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (4) - FUNCTION: REGISTER ADDRESSING, PC CHANGE, XCT + FUNCTION: REGISTER ADDRESSING, PC CHANGE, XCT - VERSION: 0.2 + VERSION: 0.2 - DATE RELEASED: JANUARY 1977 + DATE RELEASED: JANUARY 1977 - MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP - AUTHOR: JOHN R. KIRCHOFF + AUTHOR: JOHN R. KIRCHOFF COPYRIGHT(C) 1976,1977 DIGITAL EQUIPMENT CORPORATION @@ -100,6 +100,7 @@ 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 @@ -136,6 +137,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 8.0 MISCELLANEOUS 9.0 LISTING + MAINDEC-10-DAKAD.TXT PAGE 3 @@ -167,6 +169,7 @@ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. CONSOLE FUNCTIONS WORKING PROPERLY PAPER-TAPE OR DECTAPE READ-IN WORKING PROPERLY PREVIOUS PROCESSOR DIAGNOSTICS + MAINDEC-10-DAKAD.TXT PAGE 4 diff --git a/apps/pdp10/diags/klad/dakae/DAKAE.LST.txt b/apps/pdp10/diags/klad/dakae/DAKAE.LST.txt new file mode 100644 index 000000000..9f89017bd --- /dev/null +++ b/apps/pdp10/diags/klad/dakae/DAKAE.LST.txt @@ -0,0 +1,5687 @@ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1 +DAKAET MAC 21-Dec-78 14:28 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0007 + + 1 ;DAKAE + 2 + 3 + 4 + 5 000003 DECVER==3 + 6 000000 MCNVER==0 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 + 14 ^ + 15 + 16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE + 17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD. + 18 + 19 ;COPYRIGHT 1972,1977,1978 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;DICK MALISKA + 24 ;JOHN R. KIRCHOFF + 25 ;BILL SCORZELLI + 26 + 27 000137 LOC 137 + 28 000137 000000 000003 MCNVER,,DECVER + 29 + 30 NOSYM +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2 +DAKAET MAC 21-Dec-78 14:28 DIAGNOSTIC PARAMETERS SEQ 0008 + + 31 SUBTTL DIAGNOSTIC PARAMETERS + 32 + 33 ;PARAMETER DEFINITIONS + 34 000001 EXCASB==1 + 35 000001 USRASB==1 + 36 000001 PGMEND==1 + 37 000100 DEBUG==100 + 38 + 39 ;FLAG DEFINITIONS + 40 010000 USERF=10000 ;USER MODE FLAG + 41 + 42 + 43 ;MACROS + 44 + 45 ;SPECIAL FEATURE PARAMETERS + 46 + 47 030674 SADR1=START + 48 030674 SADR2=START + 49 030674 SADR3=START + 50 030674 SADR4=START + 51 254000 030674 SADR5=JRST START + 52 254000 030674 SADR6=JRST START + 53 254000 030674 SADR7=JRST START + 54 254000 030674 SADR8=JRST START + 55 254000 030674 SADR9=JRST START + 56 254000 030674 SADR10=JRST START + 57 254000 030674 SADR11=JRST START + 58 + 59 000000 PAREA0=0 + 60 000000 PAREA1=0 + 61 000000 PAREA2=0 + 62 444153 414500 PAREA3=SIXBIT/DAKAE/ + 63 645560 000000 PAREA4=SIXBIT/TMP/ + 64 000000 PAREA5=0 + 65 000000 PAREA6=0 + 66 001000 ITERAT==1000 + 67 000001 PGMEND==1 +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3 +DAKAET MAC 21-Dec-78 14:28 DIAGNOSTIC PARAMETERS SEQ 0009 + + 68 SUBTTL DIAGNOSTIC PARAMETERS + 69 + 70 ;ACCUMULATOR ASSIGNMENTS + 71 + 72 ;CONTROL WORDS + 73 + 74 400000 AROV=400000 ;ARITHMETIC OVERFLOW + 75 200000 CRY0=200000 ;CARRY 0 + 76 100000 CRY1=100000 ;CARRY 1 + 77 040000 FOV=40000 ;FLOATING OVERFLOW + 78 020000 BIS=20000 ;BYTE INTERRUPT + 79 010000 USERF=10000 ;USER MODE FLAG + 80 004000 EXIOT=4000 ;USER PRIV I/O FLAG + 81 000100 FXU=100 ;FLOATING UNDERFLOW + 82 000040 DCK=40 ;DIVIDE CHECK + 83 + 84 + 85 ;MACROS + 86 + 87 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) + 88 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + 89 + 90 DEFINE STOP (A)< + 91 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 92 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 93 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 94 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 95 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + 96 + 97 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + 98 + 99 DEFINE SFLAG (A)< + 100 MOVSI 1,A + 101 JFCL 17,.+1 ;RESET ALL FLAGS + 102 JRST 2,.+1(1) ;SET A FLAG> +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1 +PARAM KLM 1-Aug-77 08:33 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0010 + + 103 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 + 104 + 105 DEFINE S,<;*********************************************************************> + 106 + 107 S^;*********************************************************************^ + 108 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 109 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 110 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 111 S^;*********************************************************************^ + 112 + 113 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 114 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 115 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 116 + 117 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 118 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 119 010000 DING== 010000 ;RING BELL ON ERROR + 120 + 121 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 122 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 123 001000 PALERS==001000 ;PRINT ALL ERRORS + 124 + 125 000400 RELIAB==000400 ;RELIABILITY MODE + 126 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 127 000100 INHPAG==000100 ;INHIBIT PAGING + 128 + 129 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 130 000020 INHCSH==000020 ;INHIBIT CACHE + 131 000010 OPRSEL==000010 ;OPERATOR SELECTION + 132 + 133 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 134 + 135 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 136 + 137 ;SWITCH 17 RESERVED !!! +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2 +PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0011 + + 138 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 + 139 + 140 S^;*********************************************************************^ + 141 ;*SPECIAL SUBPROGRAM LINKAGES + 142 S^;*********************************************************************^ + 143 + 144 027772 FSELNK= 27772 ;FILE SELECT LINK + 145 027773 FRDLNK= 27773 ;FILE READ LINK + 146 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 147 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 148 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 149 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 150 + 151 S^;*********************************************************************^ + 152 ;*SPECIAL SUBROUTINE FATAL HALTS + 153 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 154 S^;*********************************************************************^ + 155 + 156 ;ADDRESS TAG REASON + 157 ;--------------------- + 158 + 159 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 160 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 161 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 162 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 163 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 164 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 165 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 166 ; 1017 EOPERR ;END OF PROGRAM ERROR + 167 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 168 + 169 S^;*********************************************************************^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3 +PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0012 + + 170 S^;*********************************************************************^ + 171 ;OPERATOR DEFINITIONS (NON-UUO'S) + 172 S^;*********************************************************************^ + 173 + 174 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 175 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 176 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 177 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 178 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 179 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 180 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 181 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 182 + 183 S^;*********************************************************************^ + 184 ;*SUBROUTINE INITIALIZATION CALL + 185 S^;*********************************************************************^ + 186 + 187 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 188 + 189 S^;*********************************************************************^ + 190 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 191 S^;*********************************************************************^ + 192 + 193 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 194 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 195 + 196 S^;*********************************************************************^ + 197 ;*TERMINAL INPUT UUO'S + 198 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 199 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 200 S^;*********************************************************************^ + 201 + 202 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 203 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 204 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 205 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 206 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 207 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 208 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 209 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 210 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 211 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT + 212 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4 +PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0013 + + 213 ;*TERMINAL OUTPUT UUO'S. + 214 + 215 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 216 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 217 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 218 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 219 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 220 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 221 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 222 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 223 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 224 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 225 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 226 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 227 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 228 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 229 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 230 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 231 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 232 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 233 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 234 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 235 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 236 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 237 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 238 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 239 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 240 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 241 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 242 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 243 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 244 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 245 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 246 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 247 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 248 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 249 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 250 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 251 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 252 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 253 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 254 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 255 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 256 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5 +PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0014 + + 257 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 258 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 259 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 260 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 261 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 262 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 263 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 264 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 265 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 266 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 267 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) + 268 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 269 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 270 + 271 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 272 + 273 DEFINE PMSG (ARG),< + 274 PSIXM [SIXBIT\ARG'_\]> + 275 + 276 DEFINE PMSGF (ARG),< + 277 PSIXMF [SIXBIT\ARG'_\]> + 278 + 279 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 280 ;* CONSERVES CORE OVER ASCIZ + 281 + 282 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 283 + 284 ;*CONSOLE SWITCH INPUT UUO. + 285 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 286 ;* USER MODE. + 287 + 288 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 289 + 290 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 291 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 292 + 293 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 294 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 295 + 296 ;*KL10 ONLY CACHE OPERATION UUO'S + 297 + 298 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 299 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 300 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6 +PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0015 + + 301 ;*END OF PASS/PROGRAM UUOS + 302 + 303 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 304 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 305 + 306 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 307 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 308 + 309 ;*MEMORY MANAGEMENT UUO'S + 310 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 311 ;*ADDRESS CONVERSION, ETC... + 312 + 313 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 314 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 315 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 316 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 317 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 318 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 319 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 320 + 321 ;*DEVICE CODE MODIFICATION UUO + 322 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 323 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 324 + 325 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 326 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 327 + 328 030000 IFNDEF MODDVL, + 329 030000 IFNDEF MODDVU, + 330 + 331 ;*"DIAMON" FILE SELECTION AND READ UUOS + 332 + 333 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 334 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 335 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 336 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 337 + 338 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 339 + 340 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 341 + 342 XLIST + 343 IFNDEF KLOLD, + 368 + 369 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 370 + 371 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 372 SALL + 373 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 374 CORECT,,ACTUAL + 375 [SIXBIT\D'_\],,ERR] + 376 XALL> + 377 + 378 >;END OF KLOLD CONDITIONAL + 379 + 380 XLIST + 381 LIST +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0017 + + 382 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 + 383 + 384 030000 LOC 30000 + 385 + 386 S^;*********************************************************************^ + 387 ;*PROGRAM STARTING ADDRESSES + 388 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 389 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 390 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 391 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 392 S^;*********************************************************************^ + 393 + 394 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 395 030001 254 00 0 00 030674 $START: JRST START ;MODE CHECK STARTING ADDRESS + 396 + 397 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 398 + 399 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 400 + 401 030004 254 00 0 00 030674 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 402 + 403 030005 254 00 0 00 030674 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 404 + 405 030006 254 00 0 00 030674 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 406 + 407 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 408 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 409 + 410 030010 254 00 0 00 030723 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 411 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 412 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 413 + 414 030013 254000 030674 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 415 030014 254000 030674 START2: SADR8 ; " + 416 030015 254000 030674 START3: SADR9 ; " + 417 030016 254000 030674 START4: SADR10 ; " + 418 030017 254000 030674 START5: SADR11 ; " +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0018 + + 419 S^;*********************************************************************^ + 420 ;*PROGRAM FIXED PARAMETER AREA + 421 S^;*********************************************************************^ + 422 + 423 030020 444153 414500 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 424 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 425 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 426 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 427 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 428 030025 000000 030707 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 429 030026 000000 000003 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 430 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 431 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 432 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 433 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 434 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 435 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 436 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 437 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 438 + 439 S^;*********************************************************************^ + 440 ;*PROGRAM VARIABLE PARAMETER AREA + 441 S^;*********************************************************************^ + 442 + 443 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 444 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 445 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 446 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 447 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 448 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 449 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 450 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 451 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 452 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 453 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 454 030052 000000 000000 ERRPC: 0 ;ERROR PC + 455 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 456 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 457 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 458 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0019 + + 459 S^;*********************************************************************^ + 460 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 461 S^;*********************************************************************^ + 462 + 463 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 464 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 465 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 466 030062 254000 030674 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 467 030063 254000 030674 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 468 030064 CPOPJ1: ;SKIP RETURN + 469 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 470 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 471 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 472 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 473 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 474 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 475 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 476 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 477 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 478 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 479 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 480 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 481 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 482 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 483 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 484 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 485 + 486 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 487 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 488 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 489 + 490 S^;*********************************************************************^ + 491 ;*PROCESSOR CONTROL STORAGE + 492 S^;*********************************************************************^ + 493 + 494 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 495 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 496 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 497 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 498 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 499 + 500 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 501 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 502 + 503 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 504 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 505 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 506 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 507 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 508 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 509 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0020 + + 510 S^;*********************************************************************^ + 511 ;*UUO DISPATCH TABLE + 512 S^;*********************************************************************^ + 513 XLIST + 514 LIST + 515 030124 030070 030070 UUODIS: LUUO1,,$UUOER + 516 030125 030070 030070 LUUO3,,LUUO2 + 517 030126 030070 030070 LUUO5,,LUUO4 + 518 030127 030070 030070 LUUO7,,LUUO6 + 519 030130 030070 030070 LUUO11,,LUUO10 + 520 030131 030070 030070 LUUO13,,LUUO12 + 521 030132 030070 030070 LUUO15,,LUUO14 + 522 030133 030070 030070 LUUO17,,LUUO16 + 523 030134 030070 030070 LUUO21,,LUUO20 + 524 030135 030070 030070 LUUO23,,LUUO22 + 525 030136 030070 030070 LUUO25,,LUUO24 + 526 030137 030070 030070 LUUO27,,LUUO26 + 527 030140 030070 030070 LUUO31,,LUUO30 + 528 030141 030070 030070 LUUO33,,LUUO32 + 529 + 530 S^;*********************************************************************^ + 531 ;*MEMORY MANAGMENT STORAGE + 532 S^;*********************************************************************^ + 533 + 534 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 535 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 536 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 537 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 538 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 539 + 540 S^;*********************************************************************^ + 541 ;*PRINT CONTROL STORAGE + 542 S^;*********************************************************************^ + 543 + 544 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 545 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 546 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 547 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 548 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 549 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 550 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 551 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 552 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 553 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 554 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 555 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 556 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 557 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 558 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 559 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 560 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 561 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 562 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0021 + + 563 S^;*********************************************************************^ + 564 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 565 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 566 ;* MOVEI NAME + 567 ;* PNTA ;OR PNTAF + 568 S^;*********************************************************************^ + 569 + 570 030242 CRLF: ASCII/ + 571 030242 015 012 000 000 000 / + 572 030243 CRLF2: ASCII/ + 573 + 574 030243 015 012 015 012 000 / + 575 030244 054 000 000 000 000 COMMA: ASCII/,/ + 576 030245 056 000 000 000 000 PERIOD: ASCII/./ + 577 030246 040 000 000 000 000 SPACE: ASCII/ / + 578 030247 011 000 000 000 000 TAB: ASCII/ / + 579 030250 MINUS: + 580 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 581 030251 053 000 000 000 000 PLUS: ASCII/+/ + 582 030252 052 000 000 000 000 AST: ASCII/*/ + 583 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 584 030254 050 000 000 000 000 LFP: ASCII/(/ + 585 030255 051 000 000 000 000 RTP: ASCII/)/ + 586 030256 007 0000000000 BELL: BYTE (7) 007 + 587 030257 077 000 000 000 000 QUEST: ASCII/?/ + 588 030260 057 000 000 000 000 SLASH: ASCII!/! + 589 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 590 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 591 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 592 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 593 + 594 S^;*********************************************************************^ + 595 ;*USER MODE OUTPUT FILE INFORMATION + 596 S^;*********************************************************************^ + 597 + 598 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 599 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 600 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 601 030272 BLOCK 2 + 602 + 603 S^;*********************************************************************^ + 604 ;*DISK UPDATE MODE FILE INFORMATION + 605 S^;*********************************************************************^ + 606 + 607 030274 $IBUF: BLOCK 3 + 608 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 609 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 610 030301 BLOCK 2 +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0022 + + 611 S^;*********************************************************************^ + 612 ;*PUSHDOWN LIST CONTROL INFORMATION + 613 S^;*********************************************************************^ + 614 + 615 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 616 030304 PLISTS: BLOCK 200 + 617 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 618 + 619 S^;*********************************************************************^ + 620 ;*POWER LINE CLOCK FREQUENCY FLAG + 621 S^;*********************************************************************^ + 622 + 623 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 624 + 625 S^;*********************************************************************^ + 626 ;*KL10 CACHE CONTROL FLAGS + 627 S^;*********************************************************************^ + 628 + 629 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 630 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 631 + 632 S^;*********************************************************************^ + 633 ;*NUMBER INPUT DIGIT FLAG + 634 S^;*********************************************************************^ + 635 + 636 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 637 + 638 S^;*********************************************************************^ + 639 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 640 S^;*********************************************************************^ + 641 + 642 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 643 + 644 S^;*********************************************************************^ + 645 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 646 S^;*********************************************************************^ + 647 + 648 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 649 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 650 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 651 + 652 S^;*********************************************************************^ + 653 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 654 S^;*********************************************************************^ + 655 + 656 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 7 +FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0023 + + 657 S^;*********************************************************************^ + 658 ;*USER MODE MONITOR TYPE FLAG + 659 S^;*********************************************************************^ + 660 + 661 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20 + 662 + 663 S^;*********************************************************************^ + 664 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 665 S^;*********************************************************************^ + 666 + 667 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 668 + 669 S^;*********************************************************************^ + 670 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 671 S^;*********************************************************************^ + 672 + 673 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 674 + 675 S^;*********************************************************************^ + 676 ;*"SWITCH" CALL USAGE CONTROL + 677 S^;*********************************************************************^ + 678 + 679 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 680 + 681 S^;*********************************************************************^ + 682 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 683 S^;*********************************************************************^ + 684 + 685 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 686 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 687 + 688 S^;*********************************************************************^ + 689 ;*SM10 (KS-10) PROCESSOR TYPE FLAG + 690 S^;*********************************************************************^ + 691 + 692 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10 + 693 + 694 S^;*********************************************************************^ + 695 ;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS + 696 S^;*********************************************************************^ + 697 + 698 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE + 699 + 700 S^;*********************************************************************^ + 701 ;*SPECIAL FUTURE EXPANSION ROOM + 702 S^;*********************************************************************^ + 703 + 704 S^;*********************************************************************^ + 705 ;*END OF FIXED STORAGE + 706 S^;*********************************************************************^ + 707 + 708 030577 LOC 30577 + 709 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1 +SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024 + + 710 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 + 711 + 712 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE + 713 + 714 000000 AC0= 0 + 715 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS + 716 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS + 717 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS + 718 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10) + 719 + 720 ;DTE20 DEVICE CODES + 721 + 722 000200 DTE== 200 ;DTE0 + 723 000204 DTE0== 204 + 724 000204 DTE1== 204 + 725 000210 DTE2== 210 + 726 000214 DTE3== 214 + 727 + 728 ;KL10 EPT COMMUNICATION AREA + 729 + 730 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS + 731 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS + 732 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS + 733 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS + 734 + 735 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG + 736 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG + 737 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION + 738 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT + 739 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT + 740 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD + 741 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER + 742 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE # + 743 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER + 744 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG + 745 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG + 746 + 747 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2 +SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025 + + 748 ;SPECIAL "FIXED" REASSIGNMENTS + 749 + 750 030600 $$LOC=. ;SAVE CURRENT LOCATION + 751 + 752 030000 LOC 30000 + 753 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START + 754 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS + 755 + 756 000440 LOC 440 + 757 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD" + 758 000443 LOC 443 + 759 000443 254 00 0 00 030626 $STM: JRST $SPEC ;SIMPLE RUN CONTROL + 760 + 761 030057 LOC 30057 + 762 030057 254 00 0 00 030631 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND" + 763 + 764 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP + 765 + 766 000420 LOC 420 + 767 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL + 768 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW + 769 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW + 770 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3 + 771 000424 000000 000000 $$424: 0 ;MMUO + 772 000425 000000 000000 $$425: 0 ;MMUO PC + 773 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT + 774 000427 254 04 0 00 000427 $$427: HALT . + 775 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S + 776 000431 000000 000427 $$431: 427 + 777 000432 000000 000427 $$432: 427 + 778 000433 000000 000427 $$433: 427 + 779 000434 000000 000427 $$434: 427 + 780 000435 000000 000427 $$435: 427 + 781 000436 000000 000427 $$436: 427 + 782 000437 000000 000427 $$437: 427 + 783 + 784 000500 LOC 500 + 785 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD + 786 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC + 787 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC + 788 000503 254 04 0 00 000503 $$503: HALT . +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3 +SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026 + + 789 030600 LOC $$LOC ;RESET CURRENT LOCATION + 790 + 791 ;SPECIAL STARTUP SEQUENCE + 792 + 793 030600 402 00 0 00 030037 $$START:SETZM USER + 794 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ? + 795 030602 603 00 0 00 010000 TLNE 0,USERF + 796 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD + 797 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ? + 798 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC + 799 030606 332 00 0 00 030037 SKIPE USER + 800 030607 254 00 0 00 030674 JRST START ;USER MODE, DON'T NEED CPU TYPE + 801 + 802 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ? + 803 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER + 804 030612 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10 + 805 030613 200 01 0 00 033460 MOVE 1,[1,,1] + 806 030614 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS + 807 030615 316 01 0 00 033460 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10 + 808 030616 254 00 0 00 030674 JRST START ;KI10, NO ADDITIONAL SETUP + 809 + 810 030617 402 00 0 00 000444 $STKL: SETZM $DTFLG + 811 030620 402 00 0 00 000445 SETZM $DTCLK + 812 030621 200 00 0 00 000453 MOVE $DTOPR ;GET DTE # + 813 030622 436 00 0 00 030657 ORM $$DTE0 ;INSERT IN DTE I/O INSTS + 814 030623 436 00 0 00 030670 ORM $$DTE2 + 815 030624 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG + 816 030625 254 00 0 00 030674 JRST START + 817 + 818 030626 200 00 0 00 033461 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL + 819 030627 202 00 0 00 030633 MOVEM $SPB1 + 820 030630 254 00 0 00 030674 JRST START +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4 +SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027 + + 821 ;SPECIAL "BEGEND" ROUTINE + 822 + 823 030631 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT + 824 030632 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT + 825 030633 336 00 0 00 030037 $SPB1: SKIPN USER + 826 030634 254 00 0 00 030642 JRST $SPBEX ;EXEC MODE + 827 + 828 030635 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ? + 829 030636 254 00 0 00 030723 JRST STARTA ;NO, KEEP RUNNING + 830 030637 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ? + 831 030640 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR + 832 030641 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON" + 833 + 834 030642 332 00 0 00 030041 $SPBEX: SKIPE KLFLG + 835 030643 254 00 0 00 030650 JRST $SPBKL ;KL10 & EXEC + 836 030644 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT + 837 030645 332 00 0 00 030024 SKIPE ITRCNT + 838 030646 254 00 0 00 030723 JRST STARTA ;NOT COMPLETED YET + 839 030647 254 00 1 00 030012 JRST @RETURN ;DONE + 840 + 841 030650 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT + 842 030651 254 00 0 00 030663 JRST $SPKLD ;KL10, EXEC & COMPLETED + 843 + 844 030652 335 00 0 00 030043 SKIPGE MONCTL + 845 030653 254 00 0 00 030723 JRST STARTA ;"DIAMON" CONTROL + 846 030654 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS + 847 030655 202 00 0 00 000451 MOVEM 0,$DTCMD + 848 030656 402 00 0 00 000444 SETZM $DTFLG + 849 030657 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 + 850 030660 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS + 851 030661 254 00 0 00 030660 JRST .-1 + 852 030662 254 00 0 00 030723 JRST STARTA ;KEEP RUNNING + 853 + 854 ;SPECIAL KL10 COMPLETED ROUTINE + 855 + 856 030663 332 00 0 00 030044 $SPKLD: SKIPE MONTEN + 857 030664 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON" + 858 + 859 030665 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION + 860 030666 202 00 0 00 000451 MOVEM 0,$DTCMD + 861 030667 402 00 0 00 000444 SETZM $DTFLG + 862 030670 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11 + 863 030671 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN + 864 030672 254 00 0 00 030671 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM + 865 030673 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT. +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1 +DAKAEM MAC 28-Dec-78 13:35 DIAGNOSTIC SECTION SEQ 0028 + + 866 SUBTTL DIAGNOSTIC SECTION + 867 + 868 030674 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD + 869 030675 265 00 0 00 030676 JSP 0,.+1 ;GET FLAGS + 870 030676 603 00 0 00 010000 TLNE USERF ;IN USER MODE? + 871 030677 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD + 872 030700 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE? + 873 030701 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD + 874 030702 336 00 0 00 030037 SKIPN USER + 875 030703 254 00 0 00 030723 JRST STARTA + 876 030704 331 00 0 00 030043 SKIPL MONCTL + 877 030705 051 03 0 00 030707 TTCALL 3,PGMNAM ;MENTION OUR NAME + 878 030706 254 00 0 00 030723 JRST STARTA + 879 + 880 030707 PGMNAM: ASCIZ/ + 881 030707 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) [DAKAE] + 882 030710 055 061 060 040 113 + 883 030711 101 061 060 040 102 + 884 030712 101 123 111 103 040 + 885 030713 111 116 123 124 122 + 886 030714 125 103 124 111 117 + 887 030715 116 040 104 111 101 + 888 030716 107 116 117 123 124 + 889 030717 111 103 040 050 065 + 890 030720 051 040 133 104 101 + 891 030721 113 101 105 135 015 + 892 030722 012 000 000 000 000 / + 893 + 894 + 895 ;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF + 896 ;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES + 897 ;IN THE FIELD. + 898 + 899 030723 254 00 0 00 030724 STARTA: JRST .+1 +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0029 + + 900 SUBTTL TEST OF JSR INSTRUCTION + 901 + 902 ;********** + 903 + 904 ;THIS TEST VERIFIES THAT JSR STORES THE FLAGS AND PC IN LOCATION E. + 905 ;IN THIS CASE, E IS CLEARED, CRY0 IS SET AND JSR IS EXECUTED. + 906 ;NEXT, E IS CHECKED FOR ITS CONTENTS NON-ZERO. IF C(E) IS NON-ZERO, + 907 ;THIS TEST PASSES. + 908 + 909 030724 C23000: SFLAG CRY0 ^;SET CRY0 FLAG + 910 + 911 030724 205 01 0 00 200000 MOVSI 1,CRY0 + 912 030725 255 17 0 00 030726 JFCL 17,.+1 ;RESET ALL FLAGS + 913 030726 254 02 0 01 030727 JRST 2,.+1(1) ;SET CRY0 FLAG + 914 030727 402 00 0 00 030731 SETZM .+2 ;PRELOAD E WITH 0 + 915 030730 264 00 0 00 030731 JSR .+1 ;*JSR SHOULD PLACE FLAGS AND PC INTO AC + 916 030731 000000 000000 0 ;E: PRESET TO 0, SHOULD RECEIVE FLAGS AND PC FROM JSR + 917 030732 336 00 0 00 030731 SKIPN .-1 ;PASS IF C(E) IS NON-ZERO. + 918 STOP^ + 919 030733 254 04 0 00 030734 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 920 030734 324 00 0 00 030735 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 921 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 922 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 923 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 924 + 925 ;********** + 926 + 927 ;THIS TEST VERIFIES THAT JSR IGNORES THE AC FIELD; + 928 ;HENCE, IT DOES NOT MODIFY THE SPECIFIED AC. + 929 ;IN THIS CASE, CRY0 IS SET. THE AC IS PRELOADED WITH -1,,-1 AND JSR IS EXECUTED. + 930 ;THE AC IS THEN CHECKED. IF C(AC)=-1,,-1, THIS TEST PASSES. + 931 + 932 030735 C23100: SFLAG CRY0 ^;SET CRY0 + 933 + 934 030735 205 01 0 00 200000 MOVSI 1,CRY0 + 935 030736 255 17 0 00 030737 JFCL 17,.+1 ;RESET ALL FLAGS + 936 030737 254 02 0 01 030740 JRST 2,.+1(1) ;SET CRY0 FLAG + 937 030740 474 01 0 00 000000 SETO 1, ;PRELOAD AC WITH -1,,-1 + 938 030741 264 01 0 00 030742 JSR 1,.+1 ;*JSR SHOULD NOT MODIFY THE AC + 939 030742 000000 000000 0 ;STORE PC + FLAGS HERE + 940 030743 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 941 STOP^ + 942 030744 254 04 0 00 030745 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 943 030745 324 00 0 00 030746 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 947 + 948 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0030 + + 949 ;THIS TEST VERIFIES THAT JSR STORES THE FLAGS IN E-LEFT HALF. + 950 ;IN THIS TEST, CRY0 IS SET, E IS CLEARED AND JSR IS EXECUTED. + 951 ;NEXT, C(E-LEFT) ARE PLACED INTO AC0 AND AC0 IS CHECKED FOR ITS CONTENTS NON-ZERO. + 952 ;IF C(AC0) ARE NON-ZERO, THIS TEST PASSES. + 953 + 954 030746 C23200: SFLAG CRY0 ^;SET CRY0 + 955 + 956 030746 205 01 0 00 200000 MOVSI 1,CRY0 + 957 030747 255 17 0 00 030750 JFCL 17,.+1 ;RESET ALL FLAGS + 958 030750 254 02 0 01 030751 JRST 2,.+1(1) ;SET CRY0 FLAG + 959 030751 402 00 0 00 030753 SETZM .+2 ;CLEAR E + 960 030752 264 00 0 00 030753 JSR .+1 ;*JSR SHOULD STORE FLAGS IN E + 961 030753 000000 000000 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + 962 030754 510 00 0 00 030753 HLLZ .-1 ;PUT FLAGS INTO AC0 + 963 030755 336 00 0 00 000000 SKIPN ;PASS IF C(AC0) NON-ZERO + 964 STOP^ + 965 030756 254 04 0 00 030757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 966 030757 324 00 0 00 030760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 967 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 968 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 969 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 970 + 971 ;********** + 972 + 973 ;THIS TEST VERIFIES THAT JSR TRANSFERS CONTROL TO E+1. + 974 ;IN THIS CASE, CRY0 IS SET AND E AND AC0 CLEARED; THEN, JSR IS EXECUTED. + 975 ;IF JSR RESUMES CONTROL AT E INSTEAD OF E+1, AC0 WILL BE MODIFIED; + 976 ;HENCE, THE TEST WILL FAIL WHEN AC0 IS CHECKED FOR 0 BECAUSE + 977 ;C(E) IS DECODED AS A MOVE INSTRUCTION. + 978 + 979 030760 C23300: SFLAG CRY0 ^;SET CRY0 + 980 + 981 030760 205 01 0 00 200000 MOVSI 1,CRY0 + 982 030761 255 17 0 00 030762 JFCL 17,.+1 ;RESET ALL FLAGS + 983 030762 254 02 0 01 030763 JRST 2,.+1(1) ;SET CRY0 FLAG + 984 030763 403 00 0 00 030765 SETZB .+2 ;CLEAR AC0 AND E + 985 030764 264 00 0 00 030765 JSR .+1 ;*JSR SHOULD RESUME CONTROL AT E+1 + 986 030765 000000 000000 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + 987 030766 332 00 0 00 000000 SKIPE 0 ;PASS IF C(AC0)=0 + 988 STOP^ + 989 030767 254 04 0 00 030770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 990 030770 324 00 0 00 030771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 991 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 992 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 993 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 994 + 995 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0031 + + 996 ;THIS TEST VERIFIES THAT JSR JUMPS TO E+1 + 997 ;IN THIS CASE, AC0 IS CLEARED AND CRY0 IS SET; THEN, JSR .+2 IS EXECUTED. + 998 ;IF JSR DID NOT JUMP, ONES ARE LOADED WITH AC0; AND THE TEST FAILS. + 999 ;OTHERWISE, AC0 REMAINS CLEAR AND THE TEST PASSES + 1000 + 1001 030771 C23400: SFLAG CRY0 ^;SET CRY0 + 1002 + 1003 030771 205 01 0 00 200000 MOVSI 1,CRY0 + 1004 030772 255 17 0 00 030773 JFCL 17,.+1 ;RESET ALL FLAGS + 1005 030773 254 02 0 01 030774 JRST 2,.+1(1) ;SET CRY0 FLAG + 1006 030774 400 00 0 00 000000 SETZ ;CLEAR AC0 + 1007 030775 264 00 0 00 030777 JSR .+2 ;*JSR SHOULD JUMP + 1008 030776 474 00 0 00 000000 SETO ;LOAD AC0 WITH ONES IF JSR FAILED TO JUMP + 1009 030777 000000 000000 0 ;STORE FLAGS HERE + 1010 031000 332 00 0 00 000000 SKIPE ;PASS IF JSR JUMPED CORRECTLY + 1011 STOP^ + 1012 031001 254 04 0 00 031002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1013 031002 324 00 0 00 031003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1014 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1015 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1016 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1017 + 1018 ;********** + 1019 + 1020 ;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC + 1021 ;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. + 1022 ;THIS TEST WILL FAIL IF JSR STORES E INSTEAD OF PC IN E - RIGHT HALF. + 1023 ;IN CASE OF FAILURE, AR PC EN AT ET2 WAS FAULTY. + 1024 + 1025 031003 C23500: SFLAG 0 ^;CLEAR ALL FLAGS + 1026 + 1027 031003 205 01 0 00 000000 MOVSI 1,0 + 1028 031004 255 17 0 00 031005 JFCL 17,.+1 ;RESET ALL FLAGS + 1029 031005 254 02 0 01 031006 JRST 2,.+1(1) ;SET 0 FLAG + 1030 031006 264 00 0 00 031010 JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + 1031 031007 254 04 0 00 031007 HALT . ;JSR SHOULD SKIP OVER THIS HALT + 1032 031010 000000 000000 0 ;STORE FLAGS AND PC HERE + 1033 031011 550 00 0 00 031010 HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + 1034 031012 306 00 0 00 031010 CAIN .-2 ;FAIL IF C(AC0)=E + 1035 STOP^ + 1036 031013 254 04 0 00 031014 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1037 031014 324 00 0 00 031015 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1038 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1039 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1040 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1041 + 1042 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0032 + + 1043 ;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC + 1044 ;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. + 1045 ;THIS TEST WILL PASS IF JSR STORES PC IN E - RIGHT HALF. + 1046 + 1047 031015 264 00 0 00 031017 C23600: JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + 1048 031016 254 04 0 00 031016 HALT . ;JSR SHOULD SKIP OVER THIS HALT + 1049 031017 000000 000000 0 ;STORE FLAGS AND PC HERE + 1050 031020 550 00 0 00 031017 HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + 1051 031021 302 00 0 00 031016 CAIE C23600+1 ;PASS IF C(AC0)=C23600+1 [PC] + 1052 STOP^ + 1053 031022 254 04 0 00 031023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1054 031023 324 00 0 00 031024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1055 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1056 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1057 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1058 + 1059 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0033 + + 1060 SUBTTL TEST OF JSA INSTRUCTION + 1061 + 1062 ;********** + 1063 + 1064 ;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. + 1065 ;IN THIS TEST, AC1 IS CLEARED AND A CAM 0,0 IS LOADED + 1066 ;INTO THE AC OF THE JSA INSTRUCTION. + 1067 ;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH ONES. AC1 IS CHECKED FOR ZEROS. + 1068 ;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + 1069 + 1070 031024 400 01 0 00 000000 C23700: SETZ 1, ;CLEAR AC1 + 1071 031025 200 00 0 00 033463 MOVE [CAM] ;LOAD CAM INTO AC0 + 1072 031026 266 00 0 00 031030 JSA .+2 ;*JSA SHOULD JUMP TO E+1 + 1073 031027 474 00 0 00 000001 SETO 1 ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 1074 031030 000000 000000 0 ;PASS IF JSA JUMPED + 1075 031031 332 00 0 00 000001 SKIPE 1 + 1076 STOP^ + 1077 031032 254 04 0 00 031033 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1078 031033 324 00 0 00 031034 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1079 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1080 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1081 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1082 + 1083 ;********** + 1084 + 1085 ;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. + 1086 ;IN THIS TEST, AC1 IS CLEARED AND A MOVEI 1,1234 IS LOADED + 1087 ;INTO THE AC OF THE JSA INSTRUCTION. + 1088 ;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH 0,,1234. AC1 IS CHECKED FOR ZEROS. + 1089 ;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + 1090 + 1091 031034 400 01 0 00 000000 C24000: SETZ 1, ;CLEAR AC1 + 1092 031035 200 00 0 00 033464 MOVE [MOVEI 1,1234] ;LOAD MOVEI 1,1234 INTO AC + 1093 031036 266 00 0 00 031037 JSA .+1 ;*JSA SHOULD JUMP TO E+1 + 1094 031037 000000 000000 0 ;JSA SHOULD JUMP OVER THIS LOCATION + 1095 031040 306 01 0 00 001234 CAIN 1,1234 ;FAIL IF JSA DID NOT JUMP OVER PREVIOUS INSTRUCTION + 1096 STOP^ + 1097 031041 254 04 0 00 031042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1098 031042 324 00 0 00 031043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1099 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1100 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1101 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1102 + 1103 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 7 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0034 + + 1104 ;THIS TEST VERIFIES THAT JSA LOADS PC OF LOC OF JSA+1 INTO AC RIGHT. + 1105 ;THIS TEST WILL FAIL IF JSA LOADS E INTO AC RIGHT INSTEAD OF PC. + 1106 + 1107 031043 266 00 0 00 031045 C24100: JSA .+2 ;*JSA SHOULD LOAD PC INTO AC RIGHT + 1108 031044 254 04 0 00 031044 HALT . ;JSA SHOULD JUMP OVER THIS LOCATION + 1109 031045 000000 000000 0 ;JSA SHOULD JUMP OVER THIS LOCATION + 1110 031046 552 00 0 00 000001 HRRZM 1 ;PUT C(AC-RIGHT) INTO AC1 + 1111 031047 306 01 0 00 031045 CAIN 1,.-2 ;FAIL IF E WAS LOADED INTO AC-RIGHT INSTEAD OF PC + 1112 STOP^ + 1113 031050 254 04 0 00 031051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1114 031051 324 00 0 00 031052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1118 + 1119 ;********** + 1120 + 1121 ;THIS TEST VERIFIES THAT JSA PLACES C(AC) INTO E + 1122 ;THIS TEST WILL FAIL IF EITHER 0,,E OR 0,,PC IS LOADED + 1123 ;INTO E INSTEAD OF C(AC) + 1124 + 1125 031052 403 00 0 00 031054 C24200: SETZB .+2 ;CLEAR AC,E + 1126 031053 266 00 0 00 031054 JSA .+1 ;*JSA SHOULD LOAD C(AC) [ZEROS] INTO E + 1127 031054 000000 000000 0 ;JSA SHOULD PLACE ZEROS HERE + 1128 031055 200 01 0 00 031054 MOVE 1,.-1 ;SAVE C(AC) + 1129 031056 306 01 0 00 031054 CAIN 1,.-2 ;FAIL IF JSA LOADED 0,,E OR 0,,PC INTO E + 1130 STOP^ + 1131 031057 254 04 0 00 031060 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1132 031060 324 00 0 00 031061 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1133 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1134 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1135 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1136 + 1137 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 8 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0035 + + 1138 ;THIS TEST VERIFIES THAT JSA PLACES PC INTO AC-RIGHT + 1139 ;THIS TEST WILL FAIL IF PC IS NOT LOADED INTO AC-RIGHT + 1140 + 1141 031061 201 00 0 00 777777 C24300: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + 1142 031062 266 00 0 00 031063 JSA .+1 ;*JSA SHOULD PLACE E,,PC INTO THE AC + 1143 031063 000000 000000 0 ;JSA SHOULD PLACE C(AC) HERE + 1144 031064 606 00 0 00 777777 TRNN -1 ;FAIL IF AR LT AR RT EN FAILED + 1145 STOP^ + 1146 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1147 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1148 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1149 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1150 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1151 + 1152 ;********** + 1153 + 1154 ;THIS TEST VERIFIES THAT JSA PLACES THE PC OF THE LOCATION OF JSA+1 IN AC-RIGHT + 1155 ;THIS TEST FAILS IF A PC WAS NOT LOADED INTO AC RIGHT + 1156 + 1157 031067 400 00 0 00 000000 C24400: SETZ ;CLEAR AC + 1158 031070 266 00 0 00 031071 JSA .+1 ;*JSA SHOULD LOAD PC INTO AC - RIGHT + 1159 031071 000000 000000 0 ;JSA SHOULD PLACE C(AC) HERE + 1160 031072 606 00 0 00 777777 TRNN -1 ;PASS IF AC - RIGHT IS NON-ZERO + 1161 STOP^ + 1162 031073 254 04 0 00 031074 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1163 031074 324 00 0 00 031075 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1164 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1165 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1166 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1167 + 1168 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 9 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0036 + + 1169 ;THIS TEST VERIFIES THAT JSA PLACES IN AC-LEFT + 1170 ;THIS TEST FAILS IF JSA LOADS PC INSTEAD OF E INTO AC-LEFT + 1171 + 1172 031075 266 00 0 00 031077 C24500: JSA .+2 ;*JSA SHOULD LOAD E INTO AC-LEFT + 1173 031076 254 04 0 00 031076 HALT . ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 1174 031077 000000 000000 0 ;E: + 1175 031100 556 00 0 00 000001 HLRZM 1 ;SAVE C(AC - LEFT) + 1176 031101 306 01 0 00 031076 CAIN 1,.-3 ;FAIL IF JSA LOADED PC INSTEAD OF E INTO AC-LEFT + 1177 STOP^ + 1178 031102 254 04 0 00 031103 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1179 031103 324 00 0 00 031104 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1180 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1181 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1182 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1183 + 1184 ;********** + 1185 + 1186 ;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC + 1187 ;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, JSA IS EXECUTED. + 1188 ;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + 1189 + 1190 031104 474 00 0 00 000000 C24600: SETO ;PRELOAD AC WITH -1,,-1 + 1191 031105 266 00 0 00 031107 JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + 1192 031106 254 04 0 00 031106 HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 1193 031107 000000 000000 0 ;JSA SHOULD STORE C(AC) HERE, E: + 1194 031110 312 00 0 00 033465 CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + 1195 STOP^ + 1196 031111 254 04 0 00 031112 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1197 031112 324 00 0 00 031113 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1198 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1199 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1200 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1201 + 1202 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 10 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0037 + + 1203 ;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC + 1204 ;FIRST, THE AC IS PRELOADED WITH 0 JSA IS EXECUTED. + 1205 ;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + 1206 + 1207 031113 400 00 0 00 000000 C24700: SETZ ;PRELOAD AC WITH 0 + 1208 031114 266 00 0 00 031116 JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + 1209 031115 254 04 0 00 031115 HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 1210 031116 000000 000000 0 ;JSA SHOULD STORE C(AC) HERE, E: + 1211 031117 312 00 0 00 033466 CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + 1212 STOP^ + 1213 031120 254 04 0 00 031121 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1214 031121 324 00 0 00 031122 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1215 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1216 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1217 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1218 + 1219 ;********** + 1220 + 1221 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. + 1222 ;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; + 1223 ;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, + 1224 ;THIS TEST PASSES. + 1225 + 1226 031122 400 00 0 00 000000 C25000: SETZ ;CLEAR AC + 1227 031123 476 00 0 00 031125 SETOM .+2 ;PRELOAD E WITH -1,,-1 + 1228 031124 266 00 0 00 031125 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 1229 031125 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA + 1230 031126 332 00 0 00 031125 SKIPE .-1 ;PASS IF C(E)=0 + 1231 STOP^ + 1232 031127 254 04 0 00 031130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1233 031130 324 00 0 00 031131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1234 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1235 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1236 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1237 + 1238 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 11 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0038 + + 1239 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. + 1240 ;AC IS FIRST PRELOADED WITH -1,,-1 AND E IS CLEARED; + 1241 ;THEN, JSA IS EXECUTED. E IS CHECKED FOR -1,,-1. IF C(E)=-1,,-1, + 1242 ;THIS TEST PASSES. + 1243 + 1244 031131 477 00 0 00 000001 C25100: SETOB 1 ;PRELOAD AC -1,,-1 + 1245 031132 402 00 0 00 031134 SETZM .+2 ;PRELOAD E WITH 0 + 1246 031133 266 00 0 00 031134 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 1247 031134 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA + 1248 031135 312 01 0 00 031134 CAME 1,.-1 ;PASS IF C(E)=-1,,-1 + 1249 STOP^ + 1250 031136 254 04 0 00 031137 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1251 031137 324 00 0 00 031140 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1252 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1253 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1254 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1255 + 1256 ;********** + 1257 + 1258 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. + 1259 ;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; + 1260 ;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, + 1261 ;THIS TEST PASSES. + 1262 + 1263 031140 201 00 0 00 777777 C25200: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + 1264 031141 266 00 0 00 031142 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 1265 031142 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA + 1266 031143 200 01 0 00 031142 MOVE 1,.-1 ;PASS IF C(E)=0,,-1 + 1267 031144 302 01 0 00 777777 CAIE 1,-1 + 1268 STOP^ + 1269 031145 254 04 0 00 031146 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1270 031146 324 00 0 00 031147 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1271 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1272 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1273 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1274 + 1275 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 12 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0039 + + 1276 ;THIS TEST VERIFIES THAT JSA DOES NOT MODIFY AC+1 + 1277 ;IN THIS TEST, AC+1 IS PRELOADED WITH -1,,-1; THEN JSA IS EXECUTED + 1278 ;AC+1 IS THEN CHECKED FOR ITS ORIGINAL CONTENTS, -1,,-1. + 1279 ;IF C(AC+1)=-1,,-1, THIS TEST PASSES + 1280 + 1281 031147 476 00 0 00 000001 C25300: SETOM 1 ;PRELOAD AC+1 WITH -1,,-1 + 1282 031150 266 00 0 00 031151 JSA .+1 ;*JSA SHOULD NOT MODIFY AC+1 + 1283 031151 310 00 0 00 000000 CAM ;JSA SHOULD JUMP OVER THIS, E:PC: + 1284 031152 312 01 0 00 033462 CAME 1,[-1] ;PASS IF AC+1 WAS NOT MODIFIED BY JSA + 1285 STOP^ + 1286 031153 254 04 0 00 031154 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1287 031154 324 00 0 00 031155 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1291 + 1292 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 13 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0040 + + 1293 SUBTTL TEST OF JRA INSTRUCTION + 1294 + 1295 ;********** + 1296 + 1297 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E + 1298 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + 1299 + 1300 031155 200 00 0 00 033467 C25400: MOVE [JRST .+4] ;PRELOAD AC0 WITH JRST .+4 + 1301 031156 205 01 0 00 031160 MOVSI 1,.+2 ;PRELOAD AC WITH E,,0 + 1302 031157 267 01 0 00 031160 JRA 1,.+1 ;*JRA SHOULD JUMP TO NEXT INSTRUCTION + 1303 031160 334 00 0 00 000000 SKIPA ;PASS IF JRA JUMPS TO E + 1304 STOP^ + 1305 031161 254 04 0 00 031162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1306 031162 324 00 0 00 031163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1307 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1308 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1309 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1310 + 1311 ;********** + 1312 + 1313 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E + 1314 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + 1315 + 1316 031163 205 00 0 00 031166 C25500: MOVSI .+3 ;PRELOAD AC WITH E+1 + 1317 031164 267 00 0 00 031165 JRA .+1 ;*JRA SHOULD JUMP TO NEXT SEQUENTIAL INSTRUCTION + 1318 031165 334 00 0 00 000000 SKIPA ;PASS IF JRA JUMPS TO E + 1319 STOP^ + 1320 031166 254 04 0 00 031167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1321 031167 324 00 0 00 031170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1322 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1323 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1324 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1325 + 1326 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 14 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0041 + + 1327 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E + 1328 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + 1329 + 1330 031170 403 00 0 00 000001 C25600: SETZB 1 ;PRELOAD AC0, AC1 WITH ZEROS + 1331 031171 267 00 0 00 031173 JRA .+2 ;*JRA SHOULD JUMP OVER NEXT SEQUENTIAL INSTRUCTION + 1332 031172 474 01 0 00 000000 SETO 1, ;LOAD AC1 WITH ONES IF JRA DOES NOT JUMP + 1333 031173 332 00 0 00 000001 SKIPE 1 ;PASS IF JRA JUMPED + 1334 STOP^ + 1335 031174 254 04 0 00 031175 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1336 031175 324 00 0 00 031176 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1337 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1338 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1339 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1340 + 1341 ;********** + 1342 + 1343 ;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC AND JUMPS TO E + 1344 ;THIS TEST FAILS IF JRA JUMPS TO E+1 OR DOES NOT LOAD THE AC CORRECTLY. + 1345 + 1346 031176 400 00 0 00 000000 C25700: SETZ ;CLEAR AC + 1347 031177 267 00 0 00 031200 JRA .+1 ;*JRA SHOULD PLACE 0 INTO THE AC AND JUMP .+1 + 1348 031200 332 00 0 00 000000 SKIPE ;PASS IF AC WAS LOADED CORRECTLY + 1349 ;AND JRA JUMPED CORRECTLY. + 1350 STOP^ + 1351 031201 254 04 0 00 031202 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1352 031202 324 00 0 00 031203 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1353 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1354 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1355 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1356 + 1357 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 15 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0042 + + 1358 ;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC + 1359 ;FIRST, THE AC IS PRELOADED WITH 1,,2 AND AC1 AND AC2 ARE + 1360 ;INITIALIZED WITH THEIR RESPECTIVE ADDRESSES; JRA IS EXECUTED, AND + 1361 ;THE AC IS CHECKED FOR 0,,1, THE ORIGINAL C(C(AC-LEFT)). IF C(AC)=0,,1, + 1362 ;THIS TEST PASSES + 1363 + 1364 031203 200 00 0 00 033470 C26200: MOVE [XWD 1,2] ;PRELOAD AC WITH 1,,2 + 1365 031204 201 01 0 00 000001 MOVEI 1,1 ;INITIALIZE AC1 WITH 0,,1 + 1366 031205 201 02 0 00 000002 MOVEI 2,2 ;INITIALIZE AC2 WITH 0,,2 + 1367 031206 267 00 0 00 031207 JRA .+1 ;*JRA SHOULD PLACE 0,,1 INTO THE AC + 1368 031207 302 00 0 00 000001 CAIE 1 ;PASS IF C(AC)=0,,1 + 1369 STOP^ + 1370 031210 254 04 0 00 031211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1371 031211 324 00 0 00 031212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1372 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1373 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1374 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1375 + 1376 ;********** + 1377 + 1378 ;THIS TEST VERIFIES THAT JRA CAN RESTORE AC0 FROM AC0 WHEN AC0 IS THE + 1379 ;SPECIFIED AC AND C(AC0-LEFT)=0. + 1380 ;FIRST, AC0 IS PRELOADED AND JRA IS EXECUTED. THEN, AC0 IS CHECKED FOR + 1381 ;ITS INITIAL CONTENTS. IF THE RESULT IN AC0, IS CORRECT, THIS TEST PASSES. + 1382 + 1383 031212 551 00 0 00 033471 C26300: HRRZI [135531,,246642] ;PRELOAD AC0 WITH 0,, LITERAL ADDRESS + 1384 031213 267 00 0 00 031214 JRA .+1 ;*JRA SHOULD PLACE C(AC0) INTO AC0 + 1385 031214 302 00 0 00 033471 CAIE [135531,,246642] ;PASS IF JRA PLACED C(AC0) INTO AC0 + 1386 STOP^ + 1387 031215 254 04 0 00 031216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1388 031216 324 00 0 00 031217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1389 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1390 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1391 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1392 + 1393 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 16 +DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0043 + + 1394 ;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE + 1395 ;SPECIFIED AC. + 1396 ;FIRST, AC0 IS PRELOADED WITH [LITERAL ADDRESS ,,0] AND JRA IS EXECUTED. THEN, + 1397 ;AC0 IS CHECKED FOR THE SPECIFIED LITERAL, 135246,,246135. IF + 1398 ;C(AC0)=135246,,246135, THE TEST PASSES. + 1399 + 1400 031217 515 00 0 00 033472 C26400: HRLZI [135246,,246135] ;PRELOAD AC0 WITH [LITERAL ADDRESS ,,0] + 1401 031220 267 00 0 00 031221 JRA .+1 ;*JRA SHOULD PLACE 135246,,246135 INTO AC0 + 1402 031221 312 00 0 00 033472 CAME [135246,,246135];PASS IF C(AC0)=135246,,246135 + 1403 STOP^ + 1404 031222 254 04 0 00 031223 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1405 031223 324 00 0 00 031224 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1406 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1407 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1408 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1409 + 1410 ;********** + 1411 + 1412 ;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE + 1413 ;SPECIFIED AC. + 1414 ;FIRST, AC0 IS PRELOADED WITH [-1,, ADDRESS OF JCA INSTRUCTION] AND JRA IS EXECUTED. + 1415 ;THEN, AC0 IS CHECKED FOR THE JRA INSTRUCTION. IF + 1416 ;C(AC0)= THE JRA INSTRUCTION, THE TEST PASSES. + 1417 + 1418 031224 525 00 0 00 031225 C26500: HRLOI .+1 ;PRELOAD AC WITH -1,, ADDRESS OF JRA INSTRUCTION + 1419 031225 267 00 0 00 031226 JRA .+1 ;*JRA SHOULD PLACE ITSELF INTO AC0 + 1420 031226 312 00 0 00 031225 CAME .-1 ;PASS IF AC CONTAINS JRA INSTRUCTION + 1421 STOP^ + 1422 031227 254 04 0 00 031230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1423 031230 324 00 0 00 031231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1424 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1425 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1426 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1427 + 1428 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 17 +DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0044 + + 1429 SUBTTL TESTS OF BIS FLAG + 1430 + 1431 ;********** + 1432 + 1433 ;THIS TEST VERIFIES THAT JRST 2, CAN CLEAR BIS + 1434 ;FIRST, BIS IS SET VIA JRST 2, ;THEN, BIS IS CLEARED VIA JRST 2,. + 1435 ;THE FLAGS ARE SAVED AND BIS IS CHECKED. THIS TEST PASSES IF BIS IS RESET; + 1436 ;OTHERWISE JRST 2, FAILED TO RESET BIS. + 1437 + 1438 031231 C26600: SFLAG BIS ^;SET BIS FLAG + 1439 + 1440 031231 205 01 0 00 020000 MOVSI 1,BIS + 1441 031232 255 17 0 00 031233 JFCL 17,.+1 ;RESET ALL FLAGS + 1442 031233 254 02 0 01 031234 JRST 2,.+1(1) ;SET BIS FLAG + 1443 SFLAG ^;*RESET BIS FLAG + 1444 + 1445 031234 205 01 0 00 000000 MOVSI 1, + 1446 031235 255 17 0 00 031236 JFCL 17,.+1 ;RESET ALL FLAGS + 1447 031236 254 02 0 01 031237 JRST 2,.+1(1) ;SET FLAG + 1448 031237 265 00 0 00 031240 JSP .+1 ;SAVE FLAGS + 1449 031240 603 00 0 00 020037 TLNE BIS+37 ;PASS IF BIS FLAG IS RESET + 1450 STOP^ + 1451 031241 254 04 0 00 031242 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1452 031242 324 00 0 00 031243 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1453 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1454 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1455 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1456 + 1457 ;********** + 1458 + 1459 ;THIS TEST VERIFIES THAT JRST 2, CAN SET BIS. + 1460 ;FIRST, BIS IS SET VIA JRST 2, AND THE FLAGS ARE SAVED. + 1461 ;BIS IS THEN CHECKED. IF BIS IS SET, THIS TEST PASSES. + 1462 + 1463 031243 C26700: SFLAG BIS ^;*SET BIS FLAG VIA JRST + 1464 + 1465 031243 205 01 0 00 020000 MOVSI 1,BIS + 1466 031244 255 17 0 00 031245 JFCL 17,.+1 ;RESET ALL FLAGS + 1467 031245 254 02 0 01 031246 JRST 2,.+1(1) ;SET BIS FLAG + 1468 031246 265 00 0 00 031247 JSP .+1 ;SAVE FLAGS + 1469 031247 607 00 0 00 020000 TLNN BIS ;PASS IF BIS FLAG IS SET + 1470 STOP^ + 1471 031250 254 04 0 00 031251 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1472 031251 324 00 0 00 031252 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1473 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1474 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1475 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1476 + 1477 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 18 +DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0045 + + 1478 ;THIS TEST VERIFIES THAT JSR ALWAYS RESETS BIS. + 1479 ;FIRST BIS IS SET; THEN JSR IS EXECUTED. THE FLAGS ARE + 1480 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSR, THIS TEST PASSES. + 1481 + 1482 031252 C27000: SFLAG BIS ^;SET BIS + 1483 + 1484 031252 205 01 0 00 020000 MOVSI 1,BIS + 1485 031253 255 17 0 00 031254 JFCL 17,.+1 ;RESET ALL FLAGS + 1486 031254 254 02 0 01 031255 JRST 2,.+1(1) ;SET BIS FLAG + 1487 031255 264 00 0 00 031256 JSR .+1 ;*JSR SHOULD RESET BIS + 1488 031256 000000 000000 0 ;JSR SAVES FLAGS HERE + 1489 031257 265 00 0 00 031260 JSP .+1 ;SAVE FLAGS + 1490 031260 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET + 1491 STOP^ + 1492 031261 254 04 0 00 031262 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1493 031262 324 00 0 00 031263 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1494 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1495 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1496 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1497 + 1498 ;********** + 1499 + 1500 ;THIS TEST VERIFIES THAT JSP ALWAYS RESETS BIS. + 1501 ;FIRST BIS IS SET; THEN JSP IS EXECUTED. THE FLAGS ARE + 1502 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSP, THIS TEST PASSES. + 1503 + 1504 031263 C27001: SFLAG BIS ^;SET BIS + 1505 + 1506 031263 205 01 0 00 020000 MOVSI 1,BIS + 1507 031264 255 17 0 00 031265 JFCL 17,.+1 ;RESET ALL FLAGS + 1508 031265 254 02 0 01 031266 JRST 2,.+1(1) ;SET BIS FLAG + 1509 031266 265 00 0 00 031267 JSP .+1 ;*JSP SHOULD RESET BIS + 1510 031267 265 00 0 00 031270 JSP .+1 ;SAVE FLAGS + 1511 031270 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET + 1512 STOP^ + 1513 031271 254 04 0 00 031272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1514 031272 324 00 0 00 031273 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1515 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1516 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1517 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1518 + 1519 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 19 +DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0046 + + 1520 ;THIS TEST VERIFIES THAT THE BITS IN POSITIONS 8, 9 AND 10 ARE CLEARABLE. + 1521 ;FIRST, THE ARITHMETIC FLAGS ARE CLEARED; + 1522 ;THEN, BITS 8, 9 AND 10 OF THE PC-WORD IS EXAMINED. + 1523 ;IF ANY OF THESE BITS ARE SET, THIS TEST FAILS BECAUSE THEY SHOULD BE CLEAR. + 1524 + 1525 031273 C27100: SFLAG ^;CLEAR ARITHMETIC FLAGS + 1526 + 1527 031273 205 01 0 00 000000 MOVSI 1, + 1528 031274 255 17 0 00 031275 JFCL 17,.+1 ;RESET ALL FLAGS + 1529 031275 254 02 0 01 031276 JRST 2,.+1(1) ;SET FLAG + 1530 031276 265 00 0 00 031277 JSP .+1 ;SAVE FLAGS + 1531 031277 603 00 0 00 001600 TLNE 1600 ;PASS IF THESE BITS ARE CLEAR + 1532 STOP^ + 1533 031300 254 04 0 00 031301 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1534 031301 324 00 0 00 031302 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1535 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1536 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1537 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1538 + 1539 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 20 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0047 + + 1540 SUBTTL TEST OF MSCL FWT INSTRUCTIONS + 1541 + 1542 ;********** + 1543 + 1544 ;THIS TEST VERIFIES THAT MOVEM PLACES C(AC) INTO E AND DOES + 1545 ;NOT MODIFY C(AC). + 1546 ;IN THIS CASE, C(AC)=252525,,252525 ANS C(E)=707070,,707070. + 1547 ;HENCE, THE RESULT IN E SHOULD BE 252525,,252525. + 1548 ;THE AC IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS + 1549 ;FOUND IN THE AC, IT WAS CLOBBERED BY MOVEM, AND THIS TEST FAILS. + 1550 ;E IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS FOUND + 1551 ;IN E, IT WAS UPDATED INCORRECTLY BY MOVEM. + 1552 + 1553 031302 200 00 0 00 033473 C50000: MOVE [252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 1554 031303 200 01 0 00 033474 MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + 1555 031304 202 00 0 00 000001 MOVEM 0,1 ;*MOVEM SHOULD PLACE 252525,,252525 + 1556 ;INTO E AND NOT AFFECT THE AC + 1557 031305 312 00 0 00 033473 CAME 0,[252525,,252525] ;PASS IF C(AC) IS NOT CLOBBERED + 1558 STOP^ + 1559 031306 254 04 0 00 031307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1560 031307 324 00 0 00 031310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1561 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1562 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1563 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1564 031310 312 01 0 00 033473 CAME 1,[252525,,252525] ;PASS IF E WAS UPDATED CORRECTLY + 1565 STOP^ + 1566 031311 254 04 0 00 031312 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1567 031312 324 00 0 00 031313 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1568 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1569 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1570 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1571 + 1572 ;********** + 1573 + 1574 ;THIS TEST VERIFIES THAT MOVES PLACES C(E) INTO THE AC IF AC IS NON-ZERO. + 1575 ;IN THIS CASE, C(AC)=707070,,707070 AND C(E)=123456,,123456. HENCE, BOTH + 1576 ;THE AC AND E SHOULD CONTAIN 123456,,123456 AFTER MOVES IS EXECUTED. + 1577 ;BOTH AC AND E ARE CHECKED FOR 123456,,123456. IF EITHER AC OR E + 1578 ;CONTAIN A DIFFERENT RESULT, THIS TEST FAILS + 1579 + 1580 031313 200 02 0 00 033474 C50100: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 1581 031314 200 01 0 00 033475 MOVE 1,[123456,,123456] ;PRELOAD E WITH 123456,,123456 + 1582 031315 203 02 0 00 000001 MOVES 2,1 ;*MOVES SHOULD PLACE 123456,,123456 + 1583 ;INTO BOTH AC AND E + 1584 031316 312 02 0 00 033475 CAME 2,[123456,,123456] ;PASS IF C(AC)=123456,,123456 + 1585 STOP^ + 1586 031317 254 04 0 00 031320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1587 031320 324 00 0 00 031321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1588 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1589 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1590 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1591 031321 312 01 0 00 033475 CAME 1,[123456,,123456] ;PASS IF C(E)=123456,,123456 + 1592 STOP^ + 1593 031322 254 04 0 00 031323 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1594 031323 324 00 0 00 031324 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 20-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0048 + + 1595 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1596 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1597 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1598 + 1599 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 21 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0049 + + 1600 ;THIS TEST VERIFIES THAT MOVES IS A NO-OP IF AC=0 + 1601 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=707070,,707070 + 1602 ;AFTER MOVES IS EXECUTED, AC AND E ARE CHECKED FOR THEIR ORIGINAL DATA. + 1603 ;IF EITHER C(AC) OR C(E) CHANGED AS A RESULT OF MOVES, THIS TEST FAILS. + 1604 + 1605 031324 200 01 0 00 033474 C50110: MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + 1606 031325 474 00 0 00 000000 SETO ;PRELOAD AC WITH -1,,-1 + 1607 031326 203 00 0 00 000001 MOVES 0,1 ;*MOVES SHOULD FUNCTION AS A NO-OP + 1608 031327 312 00 0 00 033462 CAME 0,[-1,,-1] ;PASS IF C(AC) WAS NOT MODIFIED + 1609 STOP^ + 1610 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1611 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1612 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1613 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1614 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1615 031332 312 01 0 00 033474 CAME 1,[707070,,707070] ;PASS IF C(E) WAS NOT MODIFIED + 1616 STOP^ + 1617 031333 254 04 0 00 031334 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1618 031334 324 00 0 00 031335 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1619 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1620 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1621 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1622 + 1623 ;********** + 1624 + 1625 ;THIS TEST VERIFIES THAT MOVSI LOADS THE WORD E,0 INTO THE AC. + 1626 ;IN THIS CASE, C(AC)=707070,,707070 AND E=0,,-1. + 1627 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,0. + 1628 ;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES. + 1629 + 1630 031335 200 01 0 00 033474 C50200: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 1631 031336 205 01 0 00 777777 MOVSI 1,-1 ;*MOVSI SHOULD PLACE -1,,0 INTO THE AC + 1632 031337 312 01 0 00 033476 CAME 1,[-1,,0] ;PASS IF C(AC)=1,,0 + 1633 STOP^ + 1634 031340 254 04 0 00 031341 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1635 031341 324 00 0 00 031342 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1636 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1637 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1638 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1639 + 1640 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 22 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0050 + + 1641 ;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) + 1642 ;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. + 1643 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT + 1644 ;IN E SHOULD BE 0,,1 + 1645 + 1646 031342 474 01 0 00 000000 C50300: SETO 1, ;PRELOAD AC WITH -1,,-1 + 1647 031343 200 02 0 00 033477 MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + 1648 031344 212 01 0 00 000002 MOVNM 1,2 ;*MOVNM SHOULD PLACE 0,,1 INTO E + 1649 ;AND NOT AFFTECT C(AC) + 1650 031345 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 1651 STOP^ + 1652 031346 254 04 0 00 031347 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1653 031347 324 00 0 00 031350 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1654 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1655 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1656 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1657 031350 302 02 0 00 000001 CAIE 2,1 ;PASS IF C(E)=0,,1 + 1658 STOP^ + 1659 031351 254 04 0 00 031352 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1660 031352 324 00 0 00 031353 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1661 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1662 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1663 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1664 + 1665 ;********** + 1666 + 1667 ;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) + 1668 ;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. + 1669 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT + 1670 ;IN E SHOULD BE 0,,1 + 1671 + 1672 031353 474 01 0 00 000000 C50301: SETO 1, ;PRELOAD AC WITH -1,,-1 + 1673 031354 200 02 0 00 033477 MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + 1674 031355 202 02 0 00 031367 MOVEM 2,E50301 + 1675 031356 212 01 0 00 031367 MOVNM 1,E50301 ;*MOVNM SHOULD PLACE 0,,1 INTO E + 1676 ;AND NOT AFFTECT C(AC) + 1677 031357 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 1678 STOP^ + 1679 031360 254 04 0 00 031361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1680 031361 324 00 0 00 031362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1681 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1682 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1683 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1684 031362 200 02 0 00 031367 MOVE 2,E50301 + 1685 031363 302 02 0 00 000001 CAIE 2,1 ;PASS IF C(E)=0,,1 + 1686 STOP^ + 1687 031364 254 04 0 00 031365 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1688 031365 324 00 0 00 031366 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1689 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1690 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1691 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1692 + 1693 031366 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1694 031367 000000 000000 E50301: 0 ;TESTED MEMORY LOCATION + 1695 +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 22-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0051 + + 1696 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 23 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0052 + + 1697 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E + 1698 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, + 1699 ;C(AC)=0 AND C(E)=0,,1 + 1700 ;HENCE, THE RESULT IN THE AC SHOULD BE 0 + 1701 ;AND THE RESULT IN E SHOULD BE -1,,-1 + 1702 + 1703 031370 400 00 0 00 000000 C50400: SETZ ;CLEAR AC + 1704 031371 201 02 0 00 000001 MOVEI 2,1 ;PRELOAD E WITH 0,,1 + 1705 031372 213 00 0 00 000002 MOVNS 0,2 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + 1706 ;AND SHOULD NOT AFFECT THE AC + 1707 031373 332 00 0 00 000000 SKIPE ;PASS IF THE AC IS UNALTERED + 1708 STOP^ + 1709 031374 254 04 0 00 031375 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1710 031375 324 00 0 00 031376 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1714 031376 312 02 0 00 033462 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 1715 STOP^ + 1716 031377 254 04 0 00 031400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1717 031400 324 00 0 00 031401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1721 + 1722 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 24 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0053 + + 1723 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E + 1724 ;AND INTO THE AC IF THE AC IS NON-ZO. IN THIS CASE, AC=0, + 1725 ;C(AC)=0 AND C(E)=0,,1 + 1726 ;HENCE, THE RESULT IN THE AC SHOULD BE 0 + 1727 ;AND THE RESULT IN E SHOULD BE -1,,-1 + 1728 + 1729 031401 400 00 0 00 000000 C50401: SETZ ;CLEAR AC + 1730 031402 201 02 0 00 000001 MOVEI 2,1 ;PRELOAD E WITH 0,,1 + 1731 031403 202 02 0 00 031415 MOVEM 2,E50401 + 1732 031404 213 00 0 00 031415 MOVNS 0,E50401 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + 1733 ;AND SHOULD NOT AFFECT THE AC + 1734 031405 332 00 0 00 000000 SKIPE ;PASS IF THE AC IS UNALTERED + 1735 STOP^ + 1736 031406 254 04 0 00 031407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1737 031407 324 00 0 00 031410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1738 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1739 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1740 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1741 031410 200 02 0 00 031415 MOVE 2,E50401 + 1742 031411 312 02 0 00 033462 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 1743 STOP^ + 1744 031412 254 04 0 00 031413 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1745 031413 324 00 0 00 031414 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1746 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1747 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1748 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1749 + 1750 031414 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1751 031415 000000 000000 E50401: 0 ;TESTED MEMORY LOCATION + 1752 + 1753 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 25 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0054 + + 1754 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E + 1755 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, + 1756 ;C(AC=0 AND C(E)=3 + 1757 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,3 + 1758 ;AND THE RESULT IN E SHOULD BE -1,,3. + 1759 + 1760 031416 400 01 0 00 000000 C50410: SETZ 1, ;CLEAR AC + 1761 031417 201 02 0 00 000003 MOVEI 2,3 ;PRELOAD WITH 0,,3 + 1762 031420 213 01 0 00 000002 MOVNS 1,2 ;*MOVNS SHOULD PLACE -1,,-3 INTO E + 1763 ;AND -1,,-3 INTO THE AC + 1764 031421 312 01 0 00 033477 CAME 1,[-1,,-3] ;PASS IF C(AC)=-1,,-3 + 1765 STOP^ + 1766 031422 254 04 0 00 031423 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1767 031423 324 00 0 00 031424 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1768 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1769 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1770 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1771 031424 312 02 0 00 033477 CAME 2,[-1,,-3] ;PASS IF C(E)=-1,,-3 + 1772 STOP^ + 1773 031425 254 04 0 00 031426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1774 031426 324 00 0 00 031427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1775 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1776 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1777 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1778 + 1779 ;********** + 1780 + 1781 ;THIS TEST VERIFIES THAT MOVMI MOVES THE WORD 0,,E INTO THE AC. + 1782 ;IN THIS CASE, C(AC)=0 AND E=0,,-2. HENCE, THE RESULT IN THE AC + 1783 ;SHOULD BE 0,,-2. + 1784 + 1785 031427 400 01 0 00 000000 C50500: SETZ 1, ;CLEAR AC + 1786 031430 215 01 0 00 777776 MOVMI 1,-2 ;*MOVMI SHOULD PLACE 0,,-2 INTO AC + 1787 031431 302 01 0 00 777776 CAIE 1,-2 ;PASS IF C(AC)=0,,-2 + 1788 STOP^ + 1789 031432 254 04 0 00 031433 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1790 031433 324 00 0 00 031434 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1791 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1792 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1793 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1794 + 1795 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 26 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0055 + + 1796 ;THIS TEST VERIFIES THAT MOVM MOVES THE MAGNITUDE OF C(E) NTO THE AC. + 1797 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-2. HENCE, THE RESULT IN THE AC + 1798 ;SHOULD BE 0,,2. + 1799 + 1800 031434 400 01 0 00 000000 C50501: SETZ 1, ;CLEAR AC + 1801 031435 200 03 0 00 033500 MOVE 3,[-2] ;PRELOAD E WITH -1,,-2 + 1802 031436 214 01 0 00 000003 MOVM 1,3 ;*MOVM SHOULD PLACE 0,,2 INTO AC + 1803 031437 302 01 0 00 000002 CAIE 1,2 ;PASS IF C(AC)=0,,2 + 1804 STOP^ + 1805 031440 254 04 0 00 031441 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1806 031441 324 00 0 00 031442 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1807 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1808 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1809 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1810 + 1811 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 27 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0056 + + 1812 ;THIS TEST VERIFIES THAT MOVMM PLACES THE MAGNITUDE OF C(AC) + 1813 ;INTO E. IN THIS CASE, C(AC)=-1,,-2 AND C(E)=0. HENCE, THE + 1814 ;RESULT IN E SHOULD BE 0,,2 AND C(AC) SHOULD REMAIN UNCHANGED. + 1815 + 1816 031442 200 01 0 00 033500 C50600: MOVE 1,[-1,,-2] ;PRELOAD AC WITH -1,,-2 + 1817 031443 400 02 0 00 000000 SETZ 2, ;CLEAR E + 1818 031444 216 01 0 00 000002 MOVMM 1,2 ;*MOVMM SHOULD PLACE 0,,2 INTO E + 1819 ;AND SHOULD NOT CHANGE C(AC) + 1820 031445 312 01 0 00 033500 CAME 1,[-1,,-2] ;PASS IF C(AC) IS NOT ALTERED + 1821 STOP^ + 1822 031446 254 04 0 00 031447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1823 031447 324 00 0 00 031450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1824 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1825 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1826 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1827 031450 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2 + 1828 STOP^ + 1829 031451 254 04 0 00 031452 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1830 031452 324 00 0 00 031453 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1831 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1832 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1833 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1834 + 1835 ;********** + 1836 + 1837 ;THIS TEST VERIFIES THAT MONMS PLACES THE MAGNITUDE OF C(E) INTO E + 1838 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, C(AC)=0 + 1839 ;AND C(E)=-1,,-2. + 1840 ;HENCE, THE RESULT IN THE AC SHOULD BE 0 AND THE RESULT IN + 1841 ;E SHOULD BE 0,,2. + 1842 + 1843 031453 400 00 0 00 000000 C50700: SETZ ;CLEAR AC + 1844 031454 200 02 0 00 033500 MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-1 + 1845 031455 217 00 0 00 000002 MOVMS 0,2 ;*MOVMS SHOULD PLACE 0,,1 INTO E + 1846 ;AND SHOULD NOT CHANGE C(AC) + 1847 031456 332 00 0 00 000000 SKIPE ;PASS IF C(AC) IS UNALTERED + 1848 STOP^ + 1849 031457 254 04 0 00 031460 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1850 031460 324 00 0 00 031461 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1851 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1852 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1853 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1854 031461 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2 + 1855 STOP^ + 1856 031462 254 04 0 00 031463 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1857 031463 324 00 0 00 031464 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1858 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1859 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1860 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1861 + 1862 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 28 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0057 + + 1863 ;THIS TEST VERIFIES THAT MOVMS PLACES THE MAGNITUDE OF C(E) INTO E + 1864 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, C(AC)=-1,,-1 + 1865 ;AND C(E)=-1,,-2. + 1866 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,2 AND THE RESULT + 1867 ;IN E SHOULD BE 0,,2. + 1868 + 1869 031464 474 01 0 00 000000 C50710: SETO 1, ;PRELOAD AC WITH -1,,-1 + 1870 031465 200 02 0 00 033500 MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-2 + 1871 031466 217 01 0 00 000002 MOVMS 1,2 ;*MOVMS SHOULD PLACE 0,,2 INTO E + 1872 ;AND SHOULD PLACE 0,,2 INTO THE AC + 1873 031467 302 01 0 00 000002 CAIE 1,2 ;PASS IF C(AC)=0,,2 + 1874 STOP^ + 1875 031470 254 04 0 00 031471 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1876 031471 324 00 0 00 031472 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1877 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1878 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1879 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1880 031472 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2 + 1881 STOP^ + 1882 031473 254 04 0 00 031474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1883 031474 324 00 0 00 031475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1884 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1885 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1886 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1887 + 1888 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 29 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0058 + + 1889 SUBTTL TEST OF MSCL ADD/SUB INSTRUCTIONS + 1890 + 1891 ;********** + 1892 + 1893 ;THIS TEST VERIFIES THAT SUBI SUBTRACTS THE WORD 0,,E FROM C(AC) + 1894 ;AND PLACES THE RESULT INTO THE AC. IN THIS CASE, C(AC)=70 AND + 1895 ;E=0,,2. HENCE, THE RESULT IN THE AC SHOULD BE 66. + 1896 + 1897 031475 201 01 0 00 000070 C51000: MOVEI 1,70 ;PRELOAD AC WITH 70 + 1898 031476 275 01 0 00 000002 SUBI 1,2 ;*SUBI SHOULD PLACE 66 INTO AC + 1899 031477 302 01 0 00 000066 CAIE 1,66 ;PASS IF C(AC)=66 + 1900 STOP^ + 1901 031500 254 04 0 00 031501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1902 031501 324 00 0 00 031502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1906 + 1907 ;********** + 1908 + 1909 ;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND + 1910 ;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, + 1911 ;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND + 1912 ;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + 1913 + 1914 031502 201 01 0 00 000100 C51100: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + 1915 031503 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH 0,,37 + 1916 031504 276 01 0 00 000002 SUBM 1,2 ;*SUBM SHOULD PLACE + 1917 ;0,,41 INTO E AND NOT CHANGE C(AC) + 1918 031505 302 01 0 00 000100 CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + 1919 STOP^ + 1920 031506 254 04 0 00 031507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1921 031507 324 00 0 00 031510 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1922 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1923 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1924 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1925 031510 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41 + 1926 STOP^ + 1927 031511 254 04 0 00 031512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1928 031512 324 00 0 00 031513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1929 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1930 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1931 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1932 + 1933 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 30 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0059 + + 1934 ;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND + 1935 ;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, + 1936 ;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND + 1937 ;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + 1938 + 1939 031513 201 01 0 00 000100 C51101: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + 1940 031514 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH 0,,37 + 1941 031515 202 02 0 00 031527 MOVEM 2,E51101 + 1942 031516 276 01 0 00 031527 SUBM 1,E51101 ;*SUBM SHOULD PLACE + 1943 ;0,,41 INTO E AND NOT CHANGE C(AC) + 1944 031517 302 01 0 00 000100 CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + 1945 STOP^ + 1946 031520 254 04 0 00 031521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1947 031521 324 00 0 00 031522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1948 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1949 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1950 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1951 031522 200 02 0 00 031527 MOVE 2,E51101 + 1952 031523 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41 + 1953 STOP^ + 1954 031524 254 04 0 00 031525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1955 031525 324 00 0 00 031526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1956 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1957 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1958 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1959 + 1960 031526 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1961 031527 000000 000000 E51101: 0 ;TEST WORD MEMORY + 1962 + 1963 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 31 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0060 + + 1964 ;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND + 1965 ;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, + 1966 ;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH + 1967 ;AC AND E SHOULD BE 0,,41. + 1968 + 1969 031530 201 01 0 00 000100 C51200: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + 1970 031531 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH O,,37 + 1971 031532 277 01 0 00 000002 SUBB 1,2 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + 1972 031533 302 01 0 00 000041 CAIE 1,41 ;PASS IF C(AC)=0,,41 + 1973 STOP^ + 1974 031534 254 04 0 00 031535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1975 031535 324 00 0 00 031536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1979 031536 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41 + 1980 STOP^ + 1981 031537 254 04 0 00 031540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1982 031540 324 00 0 00 031541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1986 + 1987 ;********** + 1988 + 1989 ;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND + 1990 ;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, + 1991 ;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH + 1992 ;AC AND E SHOULD BE 0,,41. + 1993 + 1994 031541 201 01 0 00 000100 C51201: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + 1995 031542 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH O,,37 + 1996 031543 202 02 0 00 031555 MOVEM 2,E51201 + 1997 031544 277 01 0 00 031555 SUBB 1,E51201 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + 1998 031545 302 01 0 00 000041 CAIE 1,41 ;PASS IF C(AC)=0,,41 + 1999 STOP^ + 2000 031546 254 04 0 00 031547 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2001 031547 324 00 0 00 031550 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2005 031550 200 02 0 00 031555 MOVE 2,E51201 + 2006 031551 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41 + 2007 STOP^ + 2008 031552 254 04 0 00 031553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2009 031553 324 00 0 00 031554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2010 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2011 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2012 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2013 + 2014 031554 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 2015 031555 000000 000000 E51201: 0 ;TEST WORD MEMORY + 2016 + 2017 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 32 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0061 + + 2018 SUBTTL TEST OF MSCL CAIX INSTRUCTIONS + 2019 + 2020 ;********** + 2021 + 2022 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND + 2023 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. + 2024 ;IN THIS CASE, C(AC)=0,,1 AND E=0,,2 + 2025 ;HENCE, CAIL SHOULD SKIP THE NEXT INSTRUCTION. + 2026 ;IF CAIL SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2027 + 2028 031556 201 01 0 00 000001 C51300: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + 2029 031557 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + 2030 STOP^ + 2031 031560 254 04 0 00 031561 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2032 031561 324 00 0 00 031562 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2033 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2034 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2035 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2036 + 2037 ;********** + 2038 + 2039 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND + 2040 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. + 2041 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,2. + 2042 ;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2043 ;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + 2044 + 2045 031562 201 01 0 00 000002 C51310: MOVEI 1,2 ;PRELOAD AC WITH 0,,2 + 2046 031563 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION + 2047 031564 334 00 0 00 000000 SKIPA ;PASS IF CAIL DOES NOT SKIP + 2048 STOP^ + 2049 031565 254 04 0 00 031566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2050 031566 324 00 0 00 031567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2051 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2052 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2053 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2054 + 2055 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 33 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0062 + + 2056 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND + 2057 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E + 2058 ;IN THIS CASE, C(AC)=0,,3 AND E=0,,2 + 2059 ;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2060 ;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + 2061 + 2062 031567 201 01 0 00 000003 C51320: MOVEI 1,3 ;PRELOAD AC WITH 0,,3 + 2063 031570 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + 2064 031571 334 00 0 00 000000 SKIPA ;PASS IF CAIL DOES NOT SKIP + 2065 STOP^ + 2066 031572 254 04 0 00 031573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2067 031573 324 00 0 00 031574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2068 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2069 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2070 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2071 + 2072 ;********** + 2073 + 2074 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND + 2075 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E + 2076 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0 + 2077 ;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION + 2078 ;IF CAILE SKIPS THE NEXT INSTRUCTION, THE TEST PASSES + 2079 + 2080 031574 474 01 0 00 000000 C51400: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2081 031575 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION + 2082 STOP^ + 2083 031576 254 04 0 00 031577 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2084 031577 324 00 0 00 031600 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2085 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2086 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2087 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2088 + 2089 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 34 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0063 + + 2090 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND + 2091 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E + 2092 ;IN THIS CASE, C(AC)=0 AND E=0 + 2093 ;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION. + 2094 ;IF CAILE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2095 + 2096 031600 400 01 0 00 000000 C51410: SETZ 1, ;PRELOAD AC WITH 0 + 2097 031601 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION. + 2098 STOP^ + 2099 031602 254 04 0 00 031603 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2100 031603 324 00 0 00 031604 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2101 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2102 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2103 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2104 + 2105 ;********** + 2106 + 2107 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND + 2108 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E + 2109 ;IN THIS CASE, C(AC)=0,,1 AND E=0 + 2110 ;HENCE, CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2111 ;IF CAILE DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES + 2112 + 2113 031604 201 01 0 00 000001 C51420: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + 2114 031605 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION + 2115 031606 334 00 0 00 000000 SKIPA ;PASS IF CAILE DOES NOT SKIP + 2116 STOP^ + 2117 031607 254 04 0 00 031610 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2118 031610 324 00 0 00 031611 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2119 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2120 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2121 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2122 + 2123 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 35 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0064 + + 2124 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS + 2125 ;SKIPS THE NEXT INSTRUCTION + 2126 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0 + 2127 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION + 2128 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2129 + 2130 031611 474 01 0 00 000000 C51500: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2131 031612 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + 2132 STOP^ + 2133 031613 254 04 0 00 031614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2134 031614 324 00 0 00 031615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2135 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2136 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2137 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2138 + 2139 ;********** + 2140 + 2141 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS + 2142 ;SKIPS THE NEXT INSTRUCTION + 2143 ;IN THIS CASE, C(AC)=0 AND E=0 + 2144 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. + 2145 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2146 + 2147 031615 400 01 0 00 000000 C51510: SETZ 1, ;PRELOAD AC WITH 0 + 2148 031616 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + 2149 STOP^ + 2150 031617 254 04 0 00 031620 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2151 031620 324 00 0 00 031621 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2152 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2153 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2154 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2155 + 2156 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 36 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0065 + + 2157 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS + 2158 ;SKIPS THE NEXT INSTRUCTION + 2159 ;IN THIS CASE, C(AC)=0,,1 AND E=0 + 2160 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. + 2161 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2162 + 2163 031621 201 01 0 00 000001 C51520: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + 2164 031622 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + 2165 STOP^ + 2166 031623 254 04 0 00 031624 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2167 031624 324 00 0 00 031625 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2171 + 2172 ;********** + 2173 + 2174 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND + 2175 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. + 2176 ;IN THIS CASE, C(AC)=0,,5 AND E=0,,6 + 2177 ;HENCE, CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2178 ;IF CAIGE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + 2179 + 2180 031625 201 02 0 00 000005 C51600: MOVEI 2,5 ;PRELOAD AC WITH 0,,5 + 2181 031626 305 02 0 00 000006 CAIGE 2,6 ;*CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION + 2182 031627 334 00 0 00 000000 SKIPA ;PASS IF CAIGE DOES NOT SKIP + 2183 STOP^ + 2184 031630 254 04 0 00 031631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2185 031631 324 00 0 00 031632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2186 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2187 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2188 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2189 + 2190 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 37 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0066 + + 2191 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND + 2192 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E + 2193 ;IN THIS CASE, C(AC)=0,,6 AND E=0,,6 + 2194 ;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. + 2195 ;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2196 + 2197 031632 201 02 0 00 000006 C51610: MOVEI 2,6 ;PRELOAD AC WITH 0,,6 + 2198 031633 305 00 0 00 000000 CAIGE ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + 2199 STOP^ + 2200 031634 254 04 0 00 031635 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2201 031635 324 00 0 00 031636 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2202 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2203 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2204 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2205 + 2206 ;********** + 2207 + 2208 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND + 2209 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. + 2210 ;IN THIS CASE, C(AC)=0,,7 AND E=0,,6 + 2211 ;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. + 2212 ;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2213 + 2214 031636 201 02 0 00 000007 C51620: MOVEI 2,7 ;PRELOAD AC WITH 0,,7 + 2215 031637 305 02 0 00 000006 CAIGE 2,6 ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + 2216 STOP^ + 2217 031640 254 04 0 00 031641 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2218 031641 324 00 0 00 031642 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2222 + 2223 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 38 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0067 + + 2224 ;THIS TEST VERIRIES THAT CAIN COMPARES C(AC) WITH E AND + 2225 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. + 2226 ;IN THIS CASE, C(AC)=0 AND E=0,,1 + 2227 ;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. + 2228 ;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2229 + 2230 031642 400 06 0 00 000000 C51700: SETZ 6, ;PRELOAD AC WITH 0 + 2231 031643 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + 2232 STOP^ + 2233 031644 254 04 0 00 031645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2234 031645 324 00 0 00 031646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2235 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2236 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2237 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2238 + 2239 ;********** + 2240 + 2241 ;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND + 2242 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. + 2243 ;IN THIS CASE, C(AC)=0,,1 AND E=0,,1 + 2244 ;HENCE, CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2245 ;IF CAIN DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + 2246 + 2247 031646 200 06 0 00 000001 C51710: MOVE 6,1 ;PRELOAD AC WITH 0,,1 + 2248 031647 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION + 2249 031650 334 00 0 00 000000 SKIPA ;PASS IF CAIN SKIPS + 2250 STOP^ + 2251 031651 254 04 0 00 031652 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2252 031652 324 00 0 00 031653 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2253 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2254 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2255 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2256 + 2257 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 39 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0068 + + 2258 ;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND + 2259 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. + 2260 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,1 + 2261 ;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. + 2262 ;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2263 + 2264 031653 201 06 0 00 000002 C51720: MOVEI 6,2 ;PRELOAD AC WITH + 2265 031654 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + 2266 STOP^ + 2267 031655 254 04 0 00 031656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2268 031656 324 00 0 00 031657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2272 + 2273 ;********** + 2274 + 2275 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND + 2276 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. + 2277 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,3. + 2278 ;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2279 ;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + 2280 + 2281 031657 201 11 0 00 000002 C52000: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + 2282 031660 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + 2283 031661 334 00 0 00 000000 SKIPA ;PASS IF CAIG DID NOT SKIP + 2284 STOP^ + 2285 031662 254 04 0 00 031663 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2286 031663 324 00 0 00 031664 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2287 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2288 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2289 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2290 + 2291 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 40 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0069 + + 2292 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND + 2293 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. + 2294 ;IN THIS CASE, C(AC)=0,,3 AND E=0,,3. + 2295 ;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2296 ;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES. + 2297 + 2298 031664 201 11 0 00 000003 C52010: MOVEI 11,3 ;PRELOAD AC WITH 0,,3 + 2299 031665 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + 2300 031666 334 00 0 00 000000 SKIPA ;PASS IF CAIG DID NOT SKIP + 2301 STOP^ + 2302 031667 254 04 0 00 031670 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2303 031670 324 00 0 00 031671 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2304 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2305 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2306 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2307 + 2308 ;********** + 2309 + 2310 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND + 2311 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. + 2312 ;IN THIS CASE, C(AC)=0,,4 AND E=0,,3. + 2313 ;HENCE, CAIG SHOULD SKIP THE NEXT INSTRUCTION. + 2314 ;IF CAIG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2315 + 2316 031671 201 11 0 00 000004 C52020: MOVEI 11,4 ;PRELOAD AC WITH 0,,4 + 2317 031672 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD SKIP THE NEXT INSTRUCTION + 2318 STOP^ + 2319 031673 254 04 0 00 031674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2320 031674 324 00 0 00 031675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2324 + 2325 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 41 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0070 + + 2326 SUBTTL TEST OF MSCL CAMX INSTRUCTIONS + 2327 + 2328 ;********** + 2329 + 2330 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND + 2331 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAT OR EQUAL TO C(E). + 2332 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0 + 2333 ;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. + 2334 ;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2335 + 2336 031675 474 01 0 00 000000 C52100: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2337 031676 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0 + 2338 031677 313 01 0 00 000002 CAMLE 1,2 ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + 2339 STOP^ + 2340 031700 254 04 0 00 031701 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2341 031701 324 00 0 00 031702 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2342 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2343 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2344 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2345 + 2346 ;********** + 2347 + 2348 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND + 2349 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). + 2350 ;IN THIS CASE, C(AC)=0 AND C(E)=0 + 2351 ;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. + 2352 ;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + 2353 + 2354 031702 400 01 0 00 000000 C52110: SETZ 1, ;CLEAR AC + 2355 031703 313 01 0 00 033501 CAMLE 1,[0] ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + 2356 STOP^ + 2357 031704 254 04 0 00 031705 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2358 031705 324 00 0 00 031706 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2359 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2360 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2361 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2362 + 2363 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 42 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0071 + + 2364 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND + 2365 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). + 2366 ;IN THIS CASE, C(AC)=0,,1 AND C(E)=0 + 2367 ;HENCE, CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2368 ;IF CAMLE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + 2369 + 2370 031706 201 01 0 00 000001 C52120: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + 2371 031707 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0 + 2372 031710 313 01 0 00 000002 CAMLE 1,2 ;*CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION + 2373 031711 334 00 0 00 000000 SKIPA ;PASS IF CAMLE DOES NOT SKIP + 2374 STOP^ + 2375 031712 254 04 0 00 031713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2376 031713 324 00 0 00 031714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2377 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2378 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2379 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2380 + 2381 ;********** + 2382 + 2383 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND + 2384 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). + 2385 ;IN THIS CASE, C(AC)=-1,,-2 AND C(E)=-1,,-1. + 2386 ;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2387 ;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + 2388 + 2389 031714 561 10 0 00 777776 C52200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + 2390 031715 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2391 031716 334 00 0 00 000000 SKIPA ;PASS IF CAMG DOES NOT SKIP + 2392 STOP^ + 2393 031717 254 04 0 00 031720 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2394 031720 324 00 0 00 031721 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2395 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2396 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2397 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2398 ;********** + 2399 + 2400 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND + 2401 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). + 2402 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-2. + 2403 ;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. + 2404 + 2405 031721 561 10 0 00 777777 C52205: HRROI 10,-1 ;PRELOAD AC WITH -1,,-1 + 2406 031722 317 10 0 00 033500 CAMG 10,[-1,,-2] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION. + 2407 STOP^ + 2408 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2409 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2410 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2411 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2412 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2413 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 43 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0072 + + 2414 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND + 2415 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). + 2416 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1. + 2417 ;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. + 2418 ;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + 2419 031725 474 10 0 00 000000 C52210: SETO 10, ;PRELOAD AC WITH -1,,-1. + 2420 031726 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION + 2421 031727 334 00 0 00 000000 SKIPA ;PASS IF CAMG DOES NOT SKIP + 2422 STOP^ + 2423 031730 254 04 0 00 031731 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2424 031731 324 00 0 00 031732 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2425 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2426 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2427 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2428 + 2429 ;********** + 2430 + 2431 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND + 2432 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). + 2433 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. + 2434 ;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. + 2435 ;IF CAMG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + 2436 + 2437 031732 400 10 0 00 000000 C52220: SETZ 10, ;PRELOAD AC WITH 0 + 2438 031733 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION + 2439 STOP^ + 2440 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2441 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2442 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2443 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2444 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2445 + 2446 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 44 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0073 + + 2447 SUBTTL TEST OF MSCL JUMPX INSTRUCTIONS + 2448 + 2449 ;********** + 2450 + 2451 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND + 2452 ;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR + 2453 ;EQUAL TO 0. IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPLE SHOULD JUMP. + 2454 + 2455 031736 474 17 0 00 000000 C52300: SETO 17, ;PRELOAD AC WITH -1,,-1 + 2456 031737 323 17 0 00 031741 JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + 2457 STOP^ + 2458 031740 254 04 0 00 031741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2459 031741 324 00 0 00 031742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2460 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2461 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2462 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2463 + 2464 ;********** + 2465 + 2466 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND + 2467 ;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR + 2468 ;EQUAL TO 0. IN THIS CASE, C(AC)=0. HENCE, JUMPLE SHOULD JUMP. + 2469 + 2470 031742 400 17 0 00 000000 C52310: SETZ 17, ;PRELOAD AC WITH 0 + 2471 031743 323 17 0 00 031745 JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + 2472 STOP^ + 2473 031744 254 04 0 00 031745 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2474 031745 324 00 0 00 031746 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2475 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2476 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2477 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2478 + 2479 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 45 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0074 + + 2480 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND JUMPS + 2481 ;TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO + 2482 ;0. IN THIS CASE, C(AC)=0,,1. HENCE, JUMPLE SHOULD NOT JUMP. + 2483 + 2484 031746 201 17 0 00 000001 C52320: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + 2485 031747 320 17 0 00 031751 JUMP 17,.+2 ;*JUMPLE SHOULD NOT JUMP + 2486 031750 334 00 0 00 000000 SKIPA ;PASS IF JUMPLE DOES NOT JUMP + 2487 STOP^ + 2488 031751 254 04 0 00 031752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2489 031752 324 00 0 00 031753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2490 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2491 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2492 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2493 + 2494 ;********** + 2495 + 2496 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO + 2497 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. + 2498 ;IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPGE SHOULD NOT JUMP. + 2499 + 2500 031753 474 16 0 00 000000 C52400: SETO 16, ;PRELOAD AC WITH -1,,-1 + 2501 031754 325 16 0 00 031756 JUMPGE 16,.+2 ;*JUMPGE SHOULD NOT JUMP + 2502 031755 334 00 0 00 000000 SKIPA ;PASS IF JUMPGE DOES NOT JUMP + 2503 STOP^ + 2504 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2505 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2506 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2507 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2508 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2509 + 2510 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 46 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0075 + + 2511 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH O AND JUMPS TO + 2512 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. + 2513 ;IN THIS CASE, C(AC)=0. HENCE, JUMPGE SHOULD JUMP. + 2514 + 2515 031760 400 16 0 00 000000 C52410: SETZ 16, ;PRELOAD AC WITH 0 + 2516 031761 325 16 0 00 031763 JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + 2517 STOP^ + 2518 031762 254 04 0 00 031763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2519 031763 324 00 0 00 031764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2520 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2521 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2522 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2523 + 2524 ;********** + 2525 + 2526 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO + 2527 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. + 2528 ;IN THIS CASE, C(AC)=0,,1. HENCE, JUMPGE SHOULD JUMP. + 2529 + 2530 031764 201 16 0 00 000001 C52420: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + 2531 031765 325 16 0 00 031767 JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + 2532 STOP^ + 2533 031766 254 04 0 00 031767 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2534 031767 324 00 0 00 031770 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2535 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2536 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2537 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2538 + 2539 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 47 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0076 + + 2540 SUBTTL TEST OF MSCL AOJX INSTRUCTIONS + 2541 + 2542 ;********** + 2543 + 2544 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND PLACES + 2545 ;THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED + 2546 ;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) + 2547 ;IS LESS THAN 0. IN THIS CASE, C(AC)=-1,,-2 BEFORE INCREMENTING. + 2548 ;HENCE, AOJL SHOULD JUMP. + 2549 + 2550 031770 561 15 0 00 777776 C52500: HRROI 15,-2 ;PRELOAD AC WITH -1,,-2 + 2551 031771 341 15 0 00 031773 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) AND JUMP + 2552 STOP^ + 2553 031772 254 04 0 00 031773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2554 031773 324 00 0 00 031774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2558 031774 312 15 0 00 033462 CAME 15,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2559 STOP^ + 2560 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2561 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2562 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2563 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2564 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2565 + 2566 ;********** + 2567 + 2568 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND + 2569 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2570 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2571 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0. + 2572 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2573 ;HENCE, AOJ SHOULD NOT JUMP + 2574 + 2575 031777 474 15 0 00 000000 C52510: SETO 15, ;PRELOAD AC WITH + 2576 032000 341 15 0 00 032002 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + 2577 ;AND NOT JUMP + 2578 032001 334 00 0 00 000000 SKIPA ;PASS IF AOJL DID NOT JUMP + 2579 STOP^ + 2580 032002 254 04 0 00 032003 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2581 032003 324 00 0 00 032004 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2582 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2583 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2584 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2585 032004 302 15 0 00 000000 CAIE 15,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2586 STOP^ + 2587 032005 254 04 0 00 032006 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2588 032006 324 00 0 00 032007 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2589 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2590 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2591 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2592 + 2593 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 48 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0077 + + 2594 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND + 2595 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2596 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2597 ;SPECIFIED BY E IF C(AC) IS 0 BEFORE INCREMENTING + 2598 ;HENCE, AOJL SHOULD NOT JUMP + 2599 + 2600 032007 400 15 0 00 000000 C52520: SETZ 15, ;PRELOAD AC WITH 0 + 2601 032010 341 15 0 00 032012 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + 2602 ;AND NOT JUMP + 2603 032011 334 00 0 00 000000 SKIPA ;PASS IF AOJL DID NOT JUMP + 2604 STOP^ + 2605 032012 254 04 0 00 032013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2606 032013 324 00 0 00 032014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2607 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2608 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2609 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2610 032014 302 15 0 00 000001 CAIE 15,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2611 STOP^ + 2612 032015 254 04 0 00 032016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2613 032016 324 00 0 00 032017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2614 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2615 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2616 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2617 + 2618 ;********** + 2619 + 2620 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND + 2621 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2622 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2623 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 + 2624 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING + 2625 ;HENCE, AOJE SHOULD NOT JUMP + 2626 + 2627 032017 561 14 0 00 777776 C52600: HRROI 14,-2 ;PRELOAD AC WITH -1,,-2 + 2628 032020 342 14 0 00 032022 AOJE 14,.+2 ;*AOJE SHOULD ADD 0,,1 TO C(AC) + 2629 ;AND NOT JUMP + 2630 032021 334 00 0 00 000000 SKIPA ;PASS IF AOJE DID NOT JUMP + 2631 STOP^ + 2632 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2633 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2634 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2635 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2636 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2637 032024 312 14 0 00 033462 CAME 14,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2638 STOP^ + 2639 032025 254 04 0 00 032026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2640 032026 324 00 0 00 032027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2644 + 2645 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 49 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0078 + + 2646 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND + 2647 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2648 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2649 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. + 2650 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING. + 2651 ;HENCE, AOJE SHOULD JUMP + 2652 + 2653 032027 474 14 0 00 000000 C52610: SETO 14, ;PRELOAD AC WITH -1,,-1 + 2654 032030 342 14 0 00 032032 AOJE 14,.+2 ;*AOJ SHOULD ADD 0,,1 TO C(AC) + 2655 ;AND JUMP + 2656 STOP^ + 2657 032031 254 04 0 00 032032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2658 032032 324 00 0 00 032033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2659 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2660 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2661 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2662 032033 302 14 0 00 000000 CAIE 14,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2663 STOP^ + 2664 032034 254 04 0 00 032035 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2665 032035 324 00 0 00 032036 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2666 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2667 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2668 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2669 + 2670 ;********** + 2671 + 2672 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND + 2673 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2674 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2675 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. + 2676 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING + 2677 ;HENCE, AOJE SHOULD NOT JUMP + 2678 + 2679 032036 400 14 0 00 000000 C52620: SETZ 14, ;PRELOAD AC WITH 0 + 2680 032037 342 14 0 00 032041 AOJE 14,.+2 ;*AOJE SHOULD ADD 0,11 TO C(AC) + 2681 ;AND NOT JUMP + 2682 032040 334 00 0 00 000000 SKIPA ;PASS IF AOJE DID NOT JUMP + 2683 STOP^ + 2684 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2685 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2686 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2687 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2688 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2689 032043 302 14 0 00 000001 CAIE 14,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2690 STOP^ + 2691 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2692 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2693 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2694 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2695 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2696 + 2697 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 50 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0079 + + 2698 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND + 2699 ;PLACES THE RESULT BACK INTO TLE$EC. THE RESULT IN THE AC IS + 2700 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2701 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. + 2702 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2703 ;HENCE, AOJLE SHOULD + 2704 + 2705 032046 561 13 0 00 777776 C52700: HRROI 13,-2 ;PRELOAD AC WITH -1,,-2 + 2706 032047 343 13 0 00 032051 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + 2707 ;AND JUMP + 2708 STOP^ + 2709 032050 254 04 0 00 032051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2710 032051 324 00 0 00 032052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2714 032052 312 13 0 00 033462 CAME 13,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2715 STOP^ + 2716 032053 254 04 0 00 032054 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2717 032054 324 00 0 00 032055 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2721 + 2722 ;********** + 2723 + 2724 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND + 2725 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2726 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2727 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 + 2728 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2729 ;HENCE, AOJLE SHOULD JUMP. + 2730 + 2731 032055 474 13 0 00 000000 C52710: SETO 13, ;PRELOAD AC WITH -1,,-1 + 2732 032056 343 13 0 00 032060 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + 2733 ;AND JUMP + 2734 STOP^ + 2735 032057 254 04 0 00 032060 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2736 032060 324 00 0 00 032061 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2737 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2738 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2739 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2740 032061 302 13 0 00 000000 CAIE 13,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2741 STOP^ + 2742 032062 254 04 0 00 032063 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2743 032063 324 00 0 00 032064 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2744 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2745 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2746 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2747 + 2748 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 51 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0080 + + 2749 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND + 2750 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2751 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2752 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. + 2753 ;IN THIS CASE, C(AC) IS 0 + 2754 ;HENCE, AOJLE SHOULD NOT JUMP. + 2755 + 2756 032064 400 13 0 00 000000 C52720: SETZ 13, ;PRELOAD AC WITH 0 + 2757 032065 343 13 0 00 032067 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + 2758 ;AND NOT JUMP + 2759 032066 334 00 0 00 000000 SKIPA ;PASS IF AOJLE DID NOT JUMP + 2760 STOP^ + 2761 032067 254 04 0 00 032070 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2762 032070 324 00 0 00 032071 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2763 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2764 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2765 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2766 032071 302 13 0 00 000001 CAIE 13,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2767 STOP^ + 2768 032072 254 04 0 00 032073 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2769 032073 324 00 0 00 032074 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2773 + 2774 ;********** + 2775 + 2776 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND + 2777 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2778 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 2779 ;SPECIFIED BY E. + 2780 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING + 2781 ;HENCE, AOJA SHOULD JUMP + 2782 + 2783 032074 561 12 0 00 777776 C53000: HRROI 12,-2 ;PRELOAD AC WITH -1,,-2 + 2784 032075 344 12 0 00 032077 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + 2785 ;AND JUMP + 2786 STOP^ + 2787 032076 254 04 0 00 032077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2788 032077 324 00 0 00 032100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2789 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2790 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2791 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2792 032100 312 12 0 00 033462 CAME 12,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2793 STOP^ + 2794 032101 254 04 0 00 032102 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2795 032102 324 00 0 00 032103 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2796 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2797 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2798 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2799 + 2800 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 52 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0081 + + 2801 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND + 2802 ;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS + 2803 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 2804 ;SPECIFIED BY E. + 2805 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2806 ;HENCE, AOJA SHOULD JUMP + 2807 + 2808 032103 474 12 0 00 000000 C53010: SETO 12, ;PRELOAD AC WITH -1,,-1 + 2809 032104 344 12 0 00 032106 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + 2810 ;AND JUMP + 2811 STOP^ + 2812 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2813 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2814 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2815 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2816 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2817 032107 302 12 0 00 000000 CAIE 12,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2818 STOP^ + 2819 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2820 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2821 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2822 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2823 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2824 + 2825 ;********** + 2826 + 2827 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND + 2828 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2829 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 2830 ;SPECIFIED BY E. + 2831 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING + 2832 ;HENCE, AOJA SHOULD JUMP + 2833 + 2834 032112 400 12 0 00 000000 C53020: SETZ 12, ;PRELOAD AC WITH 0 + 2835 032113 344 12 0 00 032115 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + 2836 ;AND JUMP + 2837 STOP^ + 2838 032114 254 04 0 00 032115 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2839 032115 324 00 0 00 032116 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2840 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2841 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2842 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2843 032116 302 12 0 00 000001 CAIE 12,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2844 STOP^ + 2845 032117 254 04 0 00 032120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2846 032120 324 00 0 00 032121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2847 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2848 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2849 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2850 + 2851 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 53 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0082 + + 2852 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND + 2853 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2854 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2855 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 + 2856 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING + 2857 ;HENCE, AOJGE SHOULD NOT JUMP + 2858 + 2859 032121 561 11 0 00 777776 C53100: HRROI 11,-2 ;PRELOAD AC WITH -1,,-2 + 2860 032122 345 11 0 00 032124 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + 2861 ;AND NOT JUMP + 2862 032123 334 00 0 00 000000 SKIPA ;PASS IF AOJGE DID NOT JUMP + 2863 STOP^ + 2864 032124 254 04 0 00 032125 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2865 032125 324 00 0 00 032126 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2866 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2867 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2868 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2869 032126 312 11 0 00 033462 CAME 11,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2870 STOP^ + 2871 032127 254 04 0 00 032130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2872 032130 324 00 0 00 032131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2873 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2874 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2875 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2876 + 2877 ;********** + 2878 + 2879 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND + 2880 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2881 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2882 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. + 2883 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2884 ;HENCE, AOJ SHOULD JUMP + 2885 + 2886 032131 474 11 0 00 000000 C53110: SETO 11, ;PRELOAD AC WITH -1,,-1 + 2887 032132 345 11 0 00 032134 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + 2888 ;AND JUMP + 2889 STOP^ + 2890 032133 254 04 0 00 032134 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2891 032134 324 00 0 00 032135 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2892 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2893 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2894 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2895 032135 302 11 0 00 000000 CAIE 11,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2896 STOP^ + 2897 032136 254 04 0 00 032137 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2898 032137 324 00 0 00 032140 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2899 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2900 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2901 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2902 + 2903 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 54 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0083 + + 2904 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND + 2905 ;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS + 2906 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2907 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 + 2908 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING + 2909 ;HENCE, AOJGE SHOULD JUMP + 2910 + 2911 032140 400 11 0 00 000000 C53120: SETZ 11, ;PRELOAD AC WITH 0 + 2912 032141 345 11 0 00 032143 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + 2913 ;AND JUMP + 2914 STOP^ + 2915 032142 254 04 0 00 032143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2916 032143 324 00 0 00 032144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2917 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2918 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2919 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2920 032144 302 11 0 00 000001 CAIE 11,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2921 STOP^ + 2922 032145 254 04 0 00 032146 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2923 032146 324 00 0 00 032147 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2924 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2925 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2926 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2927 + 2928 ;********** + 2929 + 2930 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND + 2931 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2932 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2933 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. + 2934 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING + 2935 ;HENCE, AOJN SHOULD JUMP + 2936 + 2937 032147 561 10 0 00 777776 C53200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + 2938 032150 346 10 0 00 032152 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + 2939 ;AND JUMP + 2940 STOP^ + 2941 032151 254 04 0 00 032152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2942 032152 324 00 0 00 032153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2943 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2944 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2945 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2946 032153 312 10 0 00 033462 CAME 10,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 2947 STOP^ + 2948 032154 254 04 0 00 032155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2949 032155 324 00 0 00 032156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2950 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2951 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2952 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2953 + 2954 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 55 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0084 + + 2955 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND + 2956 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2957 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2958 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. + 2959 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 2960 ;HENCE, AOJ SHOULD NOT JUMP. + 2961 + 2962 032156 474 10 0 00 000000 C53210: SETO 10, ;PRELOAD AC WITH -1,,-1 + 2963 032157 346 10 0 00 032161 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + 2964 ;AND NOT JUMP + 2965 032160 334 00 0 00 000000 SKIPA ;PASS IF AOJN DID NOT JUMP + 2966 STOP^ + 2967 032161 254 04 0 00 032162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2968 032162 324 00 0 00 032163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2972 032163 302 10 0 00 000000 CAIE 10,0 ;PASS IF C(AC) INCREMENTED CORRRECTLY + 2973 STOP^ + 2974 032164 254 04 0 00 032165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2975 032165 324 00 0 00 032166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2979 + 2980 ;********** + 2981 + 2982 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND + 2983 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 2984 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 2985 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. + 2986 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING + 2987 ;HENCE, AOJN SHOULD JUMP. + 2988 + 2989 032166 400 10 0 00 000000 C53220: SETZ 10, ;PRELOAD AC WITH 0 + 2990 032167 346 10 0 00 032171 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + 2991 ;AND JUMP + 2992 STOP^ + 2993 032170 254 04 0 00 032171 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2994 032171 324 00 0 00 032172 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2995 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2996 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2997 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2998 032172 302 10 0 00 000001 CAIE 10,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 2999 STOP^ + 3000 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3001 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3005 + 3006 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 56 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0085 + + 3007 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND + 3008 ;PLACES THE RESULT BACK INTO THE AC. THE REAULT IN THE AC IS + 3009 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3010 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0 + 3011 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INC + 3012 ;HENCE, AOJG SHOULD NOT JUMP + 3013 + 3014 032175 561 07 0 00 777776 C53300: HRROI 7,-2 ;PRELOAD AC WITH -1,,-2 + 3015 032176 347 07 0 00 032200 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,11 TO C(AC) + 3016 ;AND NOT JUMP + 3017 032177 334 00 0 00 000000 SKIPA ;PASS IF AOJG DID NOT JUMP + 3018 STOP^ + 3019 032200 254 04 0 00 032201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3020 032201 324 00 0 00 032202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3021 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3022 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3023 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3024 032202 312 07 0 00 033462 CAME 7,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + 3025 STOP^ + 3026 032203 254 04 0 00 032204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3027 032204 324 00 0 00 032205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3028 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3029 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3030 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3031 + 3032 ;********** + 3033 + 3034 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND + 3035 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3036 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3037 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. + 3038 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING + 3039 ;HENCE, AOJG SHOULD NOT JUMP. + 3040 + 3041 032205 474 07 0 00 000000 C53310: SETO 7, ;PRELOAD AC WITH -1,,-1 + 3042 032206 347 07 0 00 032210 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + 3043 ;AND NOT JUMP + 3044 032207 334 00 0 00 000000 SKIPA ;PASS IF AOJG DID NOT JUMP + 3045 STOP^ + 3046 032210 254 04 0 00 032211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3047 032211 324 00 0 00 032212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3048 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3049 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3050 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3051 032212 302 07 0 00 000000 CAIE 7,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + 3052 STOP^ + 3053 032213 254 04 0 00 032214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3054 032214 324 00 0 00 032215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3055 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3056 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3057 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3058 + 3059 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 57 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0086 + + 3060 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND + 3061 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3062 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3063 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. + 3064 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING + 3065 ;HENCE, AOJG SHOULD JUMP + 3066 + 3067 032215 400 07 0 00 000000 C53320: SETZ 7, ;PRELOAD AC WITH 0 + 3068 032216 347 07 0 00 032220 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + 3069 ;AND JUMP + 3070 STOP^ + 3071 032217 254 04 0 00 032220 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3072 032220 324 00 0 00 032221 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3076 032221 302 07 0 00 000001 CAIE 7,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + 3077 STOP^ + 3078 032222 254 04 0 00 032223 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3079 032223 324 00 0 00 032224 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3083 + 3084 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 58 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0087 + + 3085 SUBTTL TEST OF MSCL AOSX INSTRUCTIONS + 3086 + 3087 ;********** + 3088 + 3089 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES + 3090 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3091 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 + 3092 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3093 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3094 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE + 3095 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3096 ;RESPECTIVELY. + 3097 + 3098 032224 200 06 0 00 033474 C53400: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3099 032225 561 07 0 00 777776 HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + 3100 032226 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E), + 3101 ;UPDATE AC AND SKIP + 3102 STOP^ + 3103 032227 254 04 0 00 032230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3104 032230 324 00 0 00 032231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3105 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3106 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3107 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3108 032231 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3109 STOP^ + 3110 032232 254 04 0 00 032233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3111 032233 324 00 0 00 032234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3112 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3113 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3114 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3115 032234 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3116 STOP^ + 3117 032235 254 04 0 00 032236 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3118 032236 324 00 0 00 032237 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3119 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3120 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3121 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3122 + 3123 ;********** + 3124 + 3125 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES + 3126 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3127 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 + 3128 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3129 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3130 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE + 3131 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3132 ;RESPECTIVELY. + 3133 + 3134 032237 200 06 0 00 033474 C53401: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3135 032240 561 07 0 00 777776 HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + 3136 032241 202 07 0 00 032255 MOVEM 7,E53401 + 3137 032242 351 06 0 00 032255 AOSL 6,E53401 ;*AOSL SHOULD ADD 0,,1 TO C(E), + 3138 ;UPDATE AC AND SKIP + 3139 STOP^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 58-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0088 + + 3140 032243 254 04 0 00 032244 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3141 032244 324 00 0 00 032245 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3142 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3143 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3144 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3145 032245 200 07 0 00 032255 MOVE 7,E53401 + 3146 032246 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3147 STOP^ + 3148 032247 254 04 0 00 032250 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3149 032250 324 00 0 00 032251 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3150 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3151 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3152 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3153 032251 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3154 STOP^ + 3155 032252 254 04 0 00 032253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3156 032253 324 00 0 00 032254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3157 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3158 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3159 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3160 + 3161 032254 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 3162 032255 000000 000000 E53401: 0 ;TEST WORD MEMORY + 3163 + 3164 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 59 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0089 + + 3165 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES + 3166 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3167 ;THE NEXT INSTRUCTION IF C(E) ISLESS THAN 0 + 3168 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3169 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3170 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE + 3171 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3172 ;RESPECTIVELY. + 3173 + 3174 032256 200 06 0 00 033474 C53410: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3175 032257 474 07 0 00 000000 SETO 7, ;PRELOAD E WITH -1,,-1 + 3176 032260 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 00,1 TO C(E) + 3177 ;UPDATE AC AND NOT SKIP + 3178 032261 334 00 0 00 000000 SKIPA ;PASS IF AOSL DID NOT SKIP + 3179 STOP^ + 3180 032262 254 04 0 00 032263 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3181 032263 324 00 0 00 032264 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3182 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3183 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3184 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3185 032264 312 07 0 00 033501 CAME 7,[0] ;PASS IF E INCREMENTED CORRECTLY + 3186 STOP^ + 3187 032265 254 04 0 00 032266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3188 032266 324 00 0 00 032267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3189 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3190 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3191 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3192 032267 312 06 0 00 033501 CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3193 STOP^ + 3194 032270 254 04 0 00 032271 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3195 032271 324 00 0 00 032272 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3196 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3197 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3198 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3199 + 3200 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 60 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0090 + + 3201 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES + 3202 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3203 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. + 3204 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3205 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 + 3206 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE + 3207 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3208 ;RESPECTIVELY + 3209 + 3210 032272 200 06 0 00 033474 C53420: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3211 032273 400 07 0 00 000000 SETZ 7, ;PRELOAD E WITH 0 + 3212 032274 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E). + 3213 ;UPDATE AC AND NOT SKIP + 3214 032275 334 00 0 00 000000 SKIPA ;PASS IF AOSL DID NOT SKIP + 3215 STOP^ + 3216 032276 254 04 0 00 032277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3217 032277 324 00 0 00 032300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3221 032300 312 07 0 00 033502 CAME 7,[1] ;PASS IF E INCREMENTED CORRECTLY + 3222 STOP^ + 3223 032301 254 04 0 00 032302 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3224 032302 324 00 0 00 032303 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3228 032303 312 06 0 00 033502 CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3229 STOP^ + 3230 032304 254 04 0 00 032305 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3231 032305 324 00 0 00 032306 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3232 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3233 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3234 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3235 + 3236 ;********** + 3237 + 3238 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES + 3239 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3240 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. + 3241 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3242 ;IN THIS CASE, AC=5, C(AC)=707070,,707070AND C(E)=-1,,-2 + 3243 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE + 3244 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3245 ;RESPECTIVELY. + 3246 + 3247 032306 200 05 0 00 033474 C53500: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3248 032307 561 06 0 00 777776 HRROI 6,-2 ;PRELOAD E WITH -1,,-2 + 3249 032310 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + 3250 ;UPDATE AC AND NOT SKIP + 3251 032311 334 00 0 00 000000 SKIPA ;PASS IF AOSE DID NOT SKIP + 3252 STOP^ + 3253 032312 254 04 0 00 032313 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3254 032313 324 00 0 00 032314 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3255 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 60-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0091 + + 3256 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3257 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3258 032314 312 06 0 00 033462 CAME 6,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3259 STOP^ + 3260 032315 254 04 0 00 032316 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3261 032316 324 00 0 00 032317 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3262 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3263 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3264 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3265 032317 312 05 0 00 033462 CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3266 STOP^ + 3267 032320 254 04 0 00 032321 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3268 032321 324 00 0 00 032322 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3272 + 3273 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 61 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0092 + + 3274 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES + 3275 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3276 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 + 3277 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3278 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3279 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD SKIP; AND THE + 3280 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3281 ;RESPECTIVELY. + 3282 + 3283 032322 200 05 0 00 033474 C53510: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3284 032323 474 06 0 00 000000 SETO 6, ;PRELOAD E WITH -1,,-1 + 3285 032324 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + 3286 ;UPDATE AC AND SKIP + 3287 STOP^ + 3288 032325 254 04 0 00 032326 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3289 032326 324 00 0 00 032327 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3290 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3291 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3292 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3293 032327 312 06 0 00 033501 CAME 6,[0] ;PASS IF E INCREMENTED CORRECTLY + 3294 STOP^ + 3295 032330 254 04 0 00 032331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3296 032331 324 00 0 00 032332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3297 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3298 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3299 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3300 032332 312 05 0 00 033501 CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3301 STOP^ + 3302 032333 254 04 0 00 032334 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3303 032334 324 00 0 00 032335 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3304 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3305 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3306 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3307 + 3308 ;********** + 3309 + 3310 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES + 3311 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3312 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 + 3313 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3314 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(AC)=0 + 3315 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE + 3316 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3317 ;RESPECTIVELY. + 3318 + 3319 032335 200 05 0 00 033474 C53520: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3320 032336 400 06 0 00 000000 SETZ 6, ;PRELOAD E WITH 0 + 3321 032337 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + 3322 ;UPDATE AC AND NOT SKIP + 3323 032340 334 00 0 00 000000 SKIPA ;PASS IF AOSE DID NOT SKIP + 3324 STOP^ + 3325 032341 254 04 0 00 032342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3326 032342 324 00 0 00 032343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3327 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3328 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 61-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0093 + + 3329 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3330 032343 312 06 0 00 033502 CAME 6,[1] ;PASS IF E INCREMENTED CORRECTLY + 3331 STOP^ + 3332 032344 254 04 0 00 032345 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3333 032345 324 00 0 00 032346 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3334 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3335 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3336 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3337 032346 312 05 0 00 033502 CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3338 STOP^ + 3339 032347 254 04 0 00 032350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3340 032350 324 00 0 00 032351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3341 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3342 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3343 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3344 + 3345 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 62 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0094 + + 3346 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES + 3347 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3348 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO0 + 3349 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3350 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3351 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE + 3352 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3353 ;RESPECTIVELY. + 3354 + 3355 032351 200 04 0 00 033474 C53600: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3356 032352 561 05 0 00 777776 HRROI 5,-2 ;PRELOAD E WITH -1,,-2 + 3357 032353 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E), + 3358 ;UPDATE AC AND SKIP ZERO + 3359 STOP^ + 3360 032354 254 04 0 00 032355 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3361 032355 324 00 0 00 032356 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3362 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3363 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3364 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3365 032356 312 05 0 00 033462 CAME 5,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3366 STOP^ + 3367 032357 254 04 0 00 032360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3368 032360 324 00 0 00 032361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3369 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3370 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3371 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3372 032361 312 04 0 00 033462 CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3373 STOP^ + 3374 032362 254 04 0 00 032363 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3375 032363 324 00 0 00 032364 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3376 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3377 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3378 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3379 + 3380 ;********** + 3381 + 3382 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES + 3383 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3384 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. + 3385 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3386 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3387 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE + 3388 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3389 ;RESPECTIVELY. + 3390 + 3391 032364 200 04 0 00 033474 C53610: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3392 032365 476 05 0 00 000000 SETOM 5, ;PRELOAD E WITH -1,,-1 + 3393 032366 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + 3394 ;UPDATE AC AND SKIP + 3395 STOP^ + 3396 032367 254 04 0 00 032370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3397 032370 324 00 0 00 032371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3398 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3399 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3400 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 62-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0095 + + 3401 032371 312 05 0 00 033501 CAME 5,[0] ;PASS IF E INCREMENTED CORRECTLY + 3402 STOP^ + 3403 032372 254 04 0 00 032373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3404 032373 324 00 0 00 032374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3405 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3406 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3407 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3408 032374 312 04 0 00 033501 CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3409 STOP^ + 3410 032375 254 04 0 00 032376 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3411 032376 324 00 0 00 032377 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3412 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3413 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3414 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3415 + 3416 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 63 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0096 + + 3417 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES + 3418 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3419 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0 + 3420 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3421 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 + 3422 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD NOT SKIP ; AND THE + 3423 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3424 ;RESPECTIVELY. + 3425 + 3426 032377 200 04 0 00 033474 C53620: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3427 032400 400 00 0 00 000005 SETZ 5 ;PRELOAD E WITH 0 + 3428 032401 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + 3429 ;UPDATE AC AND NOT SKIP + 3430 032402 334 00 0 00 000000 SKIPA ;PASS IF AOSLE DID NOT SKIP + 3431 STOP^ + 3432 032403 254 04 0 00 032404 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3433 032404 324 00 0 00 032405 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3434 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3435 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3436 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3437 032405 312 05 0 00 033502 CAME 5,[1] ;PASS IF E INCREMENTED CORRECTLY + 3438 STOP^ + 3439 032406 254 04 0 00 032407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3440 032407 324 00 0 00 032410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3441 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3442 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3443 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3444 032410 312 04 0 00 033502 CAME 4,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3445 STOP^ + 3446 032411 254 04 0 00 032412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3447 032412 324 00 0 00 032413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3451 + 3452 ;********** + 3453 + 3454 ;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES + 3455 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 3456 ;THE NEXT INSTRUCTION. + 3457 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3458 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3459 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE + 3460 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3461 ;RESPECTIVELY. + 3462 + 3463 032413 200 03 0 00 033474 C53700: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3464 032414 561 04 0 00 777776 HRROI 4,-2 ;PRELOAD E WITH -1,,-2 + 3465 032415 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + 3466 ;UPDATE AC AND SKIP + 3467 STOP^ + 3468 032416 254 04 0 00 032417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3469 032417 324 00 0 00 032420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3470 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3471 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 63-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0097 + + 3472 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3473 032420 312 04 0 00 033462 CAME 4,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3474 STOP^ + 3475 032421 254 04 0 00 032422 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3476 032422 324 00 0 00 032423 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3477 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3478 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3479 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3480 032423 312 03 0 00 033462 CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3481 STOP^ + 3482 032424 254 04 0 00 032425 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3483 032425 324 00 0 00 032426 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3484 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3485 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3486 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3487 + 3488 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 64 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0098 + + 3489 ;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES + 3490 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 3491 ;THE NEXT INSTRUCTION. + 3492 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3493 ;;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3494 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP AND THE + 3495 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3496 ;RESPECTIVELY + 3497 + 3498 032426 200 03 0 00 033474 C53710: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3499 032427 474 04 0 00 000000 SETO 4, ;PRELOAD E WITH -1,,-1 + 3500 032430 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + 3501 ;UPDATE AC AND SKIP + 3502 STOP^ + 3503 032431 254 04 0 00 032432 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3504 032432 324 00 0 00 032433 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3505 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3506 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3507 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3508 032433 312 04 0 00 033501 CAME 4,[0] ;PASS IF E INCREMENTED CORRECTLY + 3509 STOP^ + 3510 032434 254 04 0 00 032435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3511 032435 324 00 0 00 032436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3512 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3513 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3514 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3515 032436 312 03 0 00 033501 CAME 3,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3516 STOP^ + 3517 032437 254 04 0 00 032440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3518 032440 324 00 0 00 032441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3519 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3520 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3521 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3522 + 3523 ;********** + 3524 + 3525 ;THIS TEST VERIFIES THAT AOS INCREMENTS C(E) BY 0,,1 AND PLACES + 3526 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 3527 ;THE NEXT INSTRUCTION. + 3528 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3529 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 + 3530 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE + 3531 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3532 ;RESPECTIVELY + 3533 + 3534 032441 200 03 0 00 033474 C53720: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3535 032442 400 04 0 00 000000 SETZ 4, ;PRELOAD E WITH 0 + 3536 032443 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + 3537 ;UPDATE AC AND SKIP + 3538 STOP^ + 3539 032444 254 04 0 00 032445 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3540 032445 324 00 0 00 032446 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3541 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3542 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3543 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 64-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0099 + + 3544 032446 312 04 0 00 033502 CAME 4,[1] ;PASS IF E INCREMENTED CORRECTLY + 3545 STOP^ + 3546 032447 254 04 0 00 032450 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3547 032450 324 00 0 00 032451 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3548 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3549 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3550 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3551 032451 312 03 0 00 033502 CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3552 STOP^ + 3553 032452 254 04 0 00 032453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3554 032453 324 00 0 00 032454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3558 + 3559 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 65 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0100 + + 3560 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES + 3561 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3562 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 + 3563 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3564 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3565 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD NOT SKIP; AND THE + 3566 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3567 ;RESPECTIVELY + 3568 + 3569 032454 200 02 0 00 033474 C54000: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3570 032455 561 03 0 00 777776 HRROI 3,-2 ;PRELOAD E WITH -1,,-2 + 3571 032456 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + 3572 ;UPDATE AC AND NOT SKIP + 3573 032457 334 00 0 00 000000 SKIPA ;PASS IF AOSGE DID NOT SKIP + 3574 STOP^ + 3575 032460 254 04 0 00 032461 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3576 032461 324 00 0 00 032462 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3577 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3578 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3579 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3580 032462 312 03 0 00 033462 CAME 3,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3581 STOP^ + 3582 032463 254 04 0 00 032464 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3583 032464 324 00 0 00 032465 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3584 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3585 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3586 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3587 032465 312 02 0 00 033462 CAME 2,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3588 STOP^ + 3589 032466 254 04 0 00 032467 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3590 032467 324 00 0 00 032470 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3591 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3592 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3593 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3594 + 3595 ;********** + 3596 + 3597 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES + 3598 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3599 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 + 3600 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3601 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3602 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE + 3603 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3604 ;RESPECTIVELY + 3605 + 3606 032470 200 02 0 00 033474 C54010: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3607 032471 474 03 0 00 000000 SETO 3, ;PRELOAD E WITH 0 + 3608 032472 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + 3609 ;UPDATE AC AND SKIP + 3610 STOP^ + 3611 032473 254 04 0 00 032474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3612 032474 324 00 0 00 032475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3613 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3614 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 65-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0101 + + 3615 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3616 032475 312 03 0 00 033501 CAME 3,[0] ;PASS IF E INCREMENTED CORRECTLY + 3617 STOP^ + 3618 032476 254 04 0 00 032477 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3619 032477 324 00 0 00 032500 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3620 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3621 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3622 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3623 032500 312 02 0 00 033501 CAME 2,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3624 STOP^ + 3625 032501 254 04 0 00 032502 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3626 032502 324 00 0 00 032503 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3627 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3628 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3629 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3630 + 3631 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 66 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0102 + + 3632 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES + 3633 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3634 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 + 3635 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3636 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=0 + 3637 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE + 3638 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3639 ;RESPECTIVELY + 3640 + 3641 032503 200 02 0 00 033474 C54020: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3642 032504 400 03 0 00 000000 SETZ 3, ;PRELOAD E WITH 0 + 3643 032505 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + 3644 ;UPDATE AC AND SKIP + 3645 STOP^ + 3646 032506 254 04 0 00 032507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3647 032507 324 00 0 00 032510 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3651 032510 312 03 0 00 033502 CAME 3,[1] ;PASS IF E INCREMENTED CORRECTLY + 3652 STOP^ + 3653 032511 254 04 0 00 032512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3654 032512 324 00 0 00 032513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3658 032513 312 02 0 00 033502 CAME 2,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3659 STOP^ + 3660 032514 254 04 0 00 032515 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3661 032515 324 00 0 00 032516 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3662 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3663 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3664 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3665 + 3666 ;********** + 3667 + 3668 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES + 3669 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3670 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO. + 3671 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3672 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3673 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE + 3674 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 3675 ;RESPECTIVELY + 3676 + 3677 032516 200 01 0 00 033474 C54100: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3678 032517 561 02 0 00 777776 HRROI 2,-2 ;PRELOAD E WITH -1,,-2 + 3679 032520 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + 3680 ;UPDATE AC AND SKIP + 3681 STOP^ + 3682 032521 254 04 0 00 032522 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3683 032522 324 00 0 00 032523 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3684 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3685 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3686 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 66-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0103 + + 3687 032523 312 02 0 00 033462 CAME 2,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3688 STOP^ + 3689 032524 254 04 0 00 032525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3690 032525 324 00 0 00 032526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3691 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3692 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3693 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3694 032526 312 01 0 00 033462 CAME 1,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3695 STOP^ + 3696 032527 254 04 0 00 032530 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3697 032530 324 00 0 00 032531 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3698 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3699 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3700 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3701 + 3702 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 67 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0104 + + 3703 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES + 3704 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3705 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO + 3706 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3707 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3708 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE + 3709 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 3710 ;RESPECTIVELY + 3711 + 3712 032531 200 01 0 00 033474 C54110: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3713 032532 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1 + 3714 032533 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + 3715 ;UPDATE AC AND NOT SKIP + 3716 032534 334 00 0 00 000000 SKIPA ;PASS IF AOSN DID NOT SKIP + 3717 STOP^ + 3718 032535 254 04 0 00 032536 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3719 032536 324 00 0 00 032537 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3720 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3721 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3722 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3723 032537 312 02 0 00 033501 CAME 2,[0] ;PASS IF E INCREMENTED CORRECTLY + 3724 STOP^ + 3725 032540 254 04 0 00 032541 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3726 032541 324 00 0 00 032542 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3727 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3728 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3729 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3730 032542 312 01 0 00 033501 CAME 1,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3731 STOP^ + 3732 032543 254 04 0 00 032544 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3733 032544 324 00 0 00 032545 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3737 + 3738 ;********** + 3739 + 3740 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES + 3741 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3742 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO + 3743 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3744 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=0 + 3745 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD SKIP; AND THE + 3746 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 3747 ;RESPECTIVELY + 3748 + 3749 032545 200 01 0 00 033474 C54120: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3750 032546 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0 + 3751 032547 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + 3752 ;UPDATE AC AND SKIP + 3753 STOP^ + 3754 032550 254 04 0 00 032551 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3755 032551 324 00 0 00 032552 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3756 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3757 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 67-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0105 + + 3758 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3759 032552 312 02 0 00 033502 CAME 2,[1] ;PASS IF E INCREMENTED CORRECTLY + 3760 STOP^ + 3761 032553 254 04 0 00 032554 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3762 032554 324 00 0 00 032555 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3763 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3764 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3765 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3766 032555 312 01 0 00 033502 CAME 1,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 3767 STOP^ + 3768 032556 254 04 0 00 032557 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3769 032557 324 00 0 00 032560 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3773 + 3774 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 68 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0106 + + 3775 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES + 3776 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3777 ;THE NEST INSTRUCTION IF C(E) IS GREATER THAN 0 + 3778 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3779 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-2 + 3780 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE + 3781 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 + 3782 ;RESPECTIVELY + 3783 + 3784 032560 200 00 0 00 033474 C54200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3785 032561 561 01 0 00 777776 HRROI 1,-2 ;PRELOAD E WITH -1,,-2 + 3786 032562 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + 3787 ;AND NOT SKIP + 3788 032563 334 00 0 00 000000 SKIPA ;PASS IF AOSG DID NOT SKIP + 3789 STOP^ + 3790 032564 254 04 0 00 032565 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3791 032565 324 00 0 00 032566 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3792 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3793 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3794 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3795 032566 312 01 0 00 033462 CAME 1,[-1] ;PASS IF E INCREMENTED CORRECTLY + 3796 STOP^ + 3797 032567 254 04 0 00 032570 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3798 032570 324 00 0 00 032571 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3799 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3800 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3801 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3802 032571 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 3803 STOP^ + 3804 032572 254 04 0 00 032573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3805 032573 324 00 0 00 032574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3806 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3807 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3808 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3809 + 3810 ;********** + 3811 + 3812 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES + 3813 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3814 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 + 3815 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3816 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-1 + 3817 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE + 3818 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 + 3819 ;RESPECTIVELY + 3820 + 3821 032574 200 00 0 00 033474 C54210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3822 032575 474 01 0 00 000000 SETO 1, ;PRELOAD E WITH -1,,-1 + 3823 032576 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + 3824 ;AND NOT SKIP + 3825 032577 334 00 0 00 000000 SKIPA ;PASS IF AOSG DID NOT SKIP + 3826 STOP^ + 3827 032600 254 04 0 00 032601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3828 032601 324 00 0 00 032602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3829 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 68-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0107 + + 3830 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3831 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3832 032602 312 01 0 00 033501 CAME 1,[0] ;PASS IF E INCREMENTED CORRECTLY + 3833 STOP^ + 3834 032603 254 04 0 00 032604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3835 032604 324 00 0 00 032605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3836 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3837 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3838 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3839 032605 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 3840 STOP^ + 3841 032606 254 04 0 00 032607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3842 032607 324 00 0 00 032610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3843 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3844 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3845 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3846 + 3847 ;*********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 69 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0108 + + 3848 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES + 3849 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 3850 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 + 3851 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 3852 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 + 3853 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD SKIP; AND THE + 3854 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 + 3855 ;RESPECTIVELY + 3856 + 3857 032610 200 00 0 00 033474 C54220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 3858 032611 400 01 0 00 000000 SETZ 1, ;PRELOAD E WITH 0 + 3859 032612 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + 3860 ;AND SKIP + 3861 STOP^ + 3862 032613 254 04 0 00 032614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3863 032614 324 00 0 00 032615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3864 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3865 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3866 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3867 032615 312 01 0 00 033502 CAME 1,[1] ;PASS IF E INCREMENTED CORRECTLY + 3868 STOP^ + 3869 032616 254 04 0 00 032617 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3870 032617 324 00 0 00 032620 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3874 032620 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 3875 STOP^ + 3876 032621 254 04 0 00 032622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3877 032622 324 00 0 00 032623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3878 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3879 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3880 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3881 + 3882 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 70 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0109 + + 3883 SUBTTL TEST OF MSCL SOJX INSTRUCTIONS + 3884 + 3885 ;********** + 3886 + 3887 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND + 3888 ;PLACES THE RESTULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3889 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3890 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0. + 3891 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJL + 3892 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + 3893 + 3894 032623 201 17 0 00 000000 C54300: MOVEI 17,0 ;PRELOAD AC WITH 0 + 3895 032624 361 17 0 00 032626 SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + 3896 ;AND JUMP + 3897 STOP^ + 3898 032625 254 04 0 00 032626 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3899 032626 324 00 0 00 032627 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3900 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3901 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3902 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3903 032627 312 17 0 00 033462 CAME 17,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 3904 STOP^ + 3905 032630 254 04 0 00 032631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3906 032631 324 00 0 00 032632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3907 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3908 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3909 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3910 + 3911 ;*********** + 3912 + 3913 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND + 3914 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3915 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3916 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0. + 3917 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJL + 3918 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + 3919 + 3920 032632 201 17 0 00 000001 C54310: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + 3921 032633 361 17 0 00 032635 SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + 3922 032634 334 00 0 00 000000 SKIPA ;PASS IF SOJL DID NOT JUMP + 3923 STOP^ + 3924 032635 254 04 0 00 032636 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3925 032636 324 00 0 00 032637 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3926 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3927 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3928 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3929 032637 312 17 0 00 033501 CAME 17,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 3930 STOP^ + 3931 032640 254 04 0 00 032641 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3932 032641 324 00 0 00 032642 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3933 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3934 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3935 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3936 + 3937 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 71 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0110 + + 3938 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND + 3939 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3940 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3941 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0 + 3942 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJ + 3943 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + 3944 + 3945 032642 201 17 0 00 000002 C54320: MOVEI 17,2 ;PRELOAD AC WITH 0,,2 + 3946 032643 361 17 0 00 032645 SOJL 17,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + 3947 ;AND NOT JUMP. + 3948 032644 334 00 0 00 000000 SKIPA ;PASS IF SOJL DID NOT JUMP + 3949 STOP^ + 3950 032645 254 04 0 00 032646 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3951 032646 324 00 0 00 032647 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3952 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3953 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3954 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3955 032647 312 17 0 00 033502 CAME 17,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 3956 STOP^ + 3957 032650 254 04 0 00 032651 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3958 032651 324 00 0 00 032652 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3959 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3960 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3961 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3962 + 3963 ;********** + 3964 + 3965 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND + 3966 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3967 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3968 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. + 3969 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJE + 3970 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + 3971 + 3972 032652 201 16 0 00 000000 C54400: MOVEI 16,0 ;PRELOAD AC WITH 0 + 3973 032653 362 16 0 00 032655 SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + 3974 ;AND NOT JUMP. + 3975 032654 334 00 0 00 000000 SKIPA ;PASS IF SOJE DID NOT JUMP + 3976 STOP^ + 3977 032655 254 04 0 00 032656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3978 032656 324 00 0 00 032657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3979 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3980 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3981 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3982 032657 312 16 0 00 033462 CAME 16,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 3983 STOP^ + 3984 032660 254 04 0 00 032661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3985 032661 324 00 0 00 032662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3986 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3987 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3988 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3989 + 3990 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 72 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0111 + + 3991 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND + 3992 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 3993 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 3994 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 + 3995 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJ + 3996 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + 3997 + 3998 032662 201 16 0 00 000001 C54410: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + 3999 032663 362 16 0 00 032665 SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + 4000 ;AND JUMP + 4001 STOP^ + 4002 032664 254 04 0 00 032665 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4003 032665 324 00 0 00 032666 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4004 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4005 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4006 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4007 032666 312 16 0 00 033501 CAME 16,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4008 STOP^ + 4009 032667 254 04 0 00 032670 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4010 032670 324 00 0 00 032671 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4011 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4012 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4013 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4014 + 4015 ;********** + 4016 + 4017 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND + 4018 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4019 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4020 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. + 4021 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJE + 4022 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + 4023 + 4024 032671 201 16 0 00 000002 C54420: MOVEI 16,2 ;PRELOAD AC WITH 0,,2 + 4025 032672 362 16 0 00 032674 SOJE 16,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + 4026 ;AND NOT JUMP. + 4027 032673 334 00 0 00 000000 SKIPA ;PASS IF SOJE DID NOT JUMP + 4028 STOP^ + 4029 032674 254 04 0 00 032675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4030 032675 324 00 0 00 032676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4034 032676 312 16 0 00 033502 CAME 16,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4035 STOP^ + 4036 032677 254 04 0 00 032700 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4037 032700 324 00 0 00 032701 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4038 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4039 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4040 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4041 + 4042 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 73 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0112 + + 4043 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND + 4044 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4045 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4046 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 + 4047 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJLE + 4048 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + 4049 + 4050 032701 201 15 0 00 000000 C54500: MOVEI 15,0 ;PRELOAD AC WITH 0 + 4051 032702 363 15 0 00 032704 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + 4052 ;AND JUMP + 4053 STOP^ + 4054 032703 254 04 0 00 032704 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4055 032704 324 00 0 00 032705 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4059 032705 312 15 0 00 033462 CAME 15,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4060 STOP^ + 4061 032706 254 04 0 00 032707 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4062 032707 324 00 0 00 032710 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4063 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4064 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4065 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4066 + 4067 ;********** + 4068 + 4069 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND + 4070 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4071 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4072 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUALTO 0. + 4073 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJLE + 4074 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + 4075 + 4076 032710 201 15 0 00 000001 C54510: MOVEI 15,1 ;PRELOAD AC WITH 0,,1 + 4077 032711 363 15 0 00 032713 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + 4078 ;AND JUMP + 4079 STOP^ + 4080 032712 254 04 0 00 032713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4081 032713 324 00 0 00 032714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4082 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4083 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4084 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4085 032714 312 15 0 00 033501 CAME 15,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4086 STOP^ + 4087 032715 254 04 0 00 032716 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4088 032716 324 00 0 00 032717 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4089 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4090 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4091 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4092 + 4093 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 74 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0113 + + 4094 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND + 4095 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4096 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4097 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. + 4098 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJLE + 4099 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + 4100 + 4101 032717 201 15 0 00 000002 C54520: MOVEI 15,2 ;PRELOAD AC WITH 0,,2 + 4102 032720 363 15 0 00 032722 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + 4103 ;AND NOT JUMP + 4104 032721 334 00 0 00 000000 SKIPA ;PASS IF SOJLE DID NOT JUMP + 4105 STOP^ + 4106 032722 254 04 0 00 032723 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4107 032723 324 00 0 00 032724 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4108 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4109 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4110 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4111 032724 312 15 0 00 033502 CAME 15,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4112 STOP^ + 4113 032725 254 04 0 00 032726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4114 032726 324 00 0 00 032727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4118 + 4119 ;********** + 4120 + 4121 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND + 4122 ;PLACES THE RESULT INTO THE AC. THE RESULT IN THE AC IS + 4123 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 4124 ;SPECIFIED BY E + 4125 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJA + 4126 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + 4127 + 4128 032727 201 14 0 00 000000 C54600: MOVEI 14,0 ;PRELOAD AC WITH 0 + 4129 032730 364 14 0 00 032732 SOJA 14,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + 4130 ;AND JUMP + 4131 STOP^ + 4132 032731 254 04 0 00 032732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4133 032732 324 00 0 00 032733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4134 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4135 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4136 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4137 032733 312 14 0 00 033462 CAME 14,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4138 STOP^ + 4139 032734 254 04 0 00 032735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4140 032735 324 00 0 00 032736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4141 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4142 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4143 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4144 + 4145 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 75 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0114 + + 4146 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND + 4147 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4148 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 4149 ;SPECIFIED BY E + 4150 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJA + 4151 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + 4152 + 4153 032736 201 14 0 00 000001 C54610: MOVEI 14,1 ;PRELOAD AC WITH 0,,1 + 4154 032737 364 14 0 00 032741 SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + 4155 ;AND JUMP + 4156 STOP^ + 4157 032740 254 04 0 00 032741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4158 032741 324 00 0 00 032742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4159 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4160 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4161 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4162 032742 312 14 0 00 033501 CAME 14,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4163 STOP^ + 4164 032743 254 04 0 00 032744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4165 032744 324 00 0 00 032745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4166 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4167 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4168 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4169 + 4170 ;********** + 4171 + 4172 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND + 4173 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4174 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION + 4175 ;SPECIFIED BY E + 4176 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJA + 4177 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + 4178 + 4179 032745 201 14 0 00 000002 C54620: MOVEI 14,2 ;PRELOAD AC WITH 0,,2 + 4180 032746 364 14 0 00 032750 SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + 4181 ;AND JUMP + 4182 STOP^ + 4183 032747 254 04 0 00 032750 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4184 032750 324 00 0 00 032751 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4185 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4186 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4187 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4188 032751 312 14 0 00 033502 CAME 14,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4189 STOP^ + 4190 032752 254 04 0 00 032753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4191 032753 324 00 0 00 032754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4192 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4193 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4194 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4195 + 4196 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 76 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0115 + + 4197 ;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND + 4198 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4199 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4200 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 + 4201 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJGE + 4202 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + 4203 + 4204 032754 201 13 0 00 000000 C54700: MOVEI 13,0 ;PRELOAD A C WITH 0 + 4205 032755 365 13 0 00 032757 SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT 0,,1 FROM C(AC) + 4206 ;AND NOT JUMP + 4207 032756 334 00 0 00 000000 SKIPA ;PASS IF SOJGE DID NOT JUMP + 4208 STOP^ + 4209 032757 254 04 0 00 032760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4210 032760 324 00 0 00 032761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4214 032761 312 13 0 00 033462 CAME 13,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4215 STOP^ + 4216 032762 254 04 0 00 032763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4217 032763 324 00 0 00 032764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4221 + 4222 ;********** + 4223 + 4224 ;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND + 4225 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4226 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4227 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 + 4228 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJGE + 4229 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + 4230 + 4231 032764 201 13 0 00 000001 C54710: MOVEI 13,1 ;PRELOAD AC WITH 0,,1 + 4232 032765 365 13 0 00 032767 SOJGE 13,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + 4233 ;AND JUMP + 4234 STOP^ + 4235 032766 254 04 0 00 032767 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4236 032767 324 00 0 00 032770 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4237 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4238 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4239 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4240 032770 312 13 0 00 033501 CAME 13,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4241 STOP^ + 4242 032771 254 04 0 00 032772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4243 032772 324 00 0 00 032773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4244 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4245 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4246 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4247 + 4248 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 77 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0116 + + 4249 ;THIS TEST VERIRIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND PLACES THE + 4250 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED + 4251 ;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC IS + 4252 ;GREATER THAN OR EQUAL TO 0. IN THIS CASE, C(AC = 0,,2 BEFORE + 4253 ;DECREMENTING. HENCE, SOJGE SHOULD JUMP AND THE RESULT IN THE AC SHOULD + 4254 ;BE 0,,1. + 4255 + 4256 032773 201 13 0 00 000002 C54720: MOVEI 13,2 ;PRELOAD AC WITH 0,,2 + 4257 032774 365 13 0 00 032776 SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT0,,1 FROM C(AC) + 4258 ;AND JUMP. + 4259 STOP^ + 4260 032775 254 04 0 00 032776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4261 032776 324 00 0 00 032777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4262 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4263 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4264 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4265 032777 312 13 0 00 033502 CAME 13,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4266 STOP^ + 4267 033000 254 04 0 00 033001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4268 033001 324 00 0 00 033002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4272 + 4273 ;********** + 4274 + 4275 ;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND + 4276 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4277 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4278 ;SPECIFIED BY E IF C(AC) IS NON-ZERO. + 4279 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE,SOJN + 4280 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + 4281 + 4282 033002 201 12 0 00 000000 C55000: MOVEI 12,0 ;PRELOAD AC WITH 0 + 4283 033003 366 12 0 00 033005 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + 4284 ;AND JUMP. + 4285 STOP^ + 4286 033004 254 04 0 00 033005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4287 033005 324 00 0 00 033006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4291 033006 312 12 0 00 033462 CAME 12,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4292 STOP^ + 4293 033007 254 04 0 00 033010 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4294 033010 324 00 0 00 033011 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4298 + 4299 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 78 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0117 + + 4300 ;THIS TEST VERIRIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND + 4301 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4302 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED + 4303 ;BY E IF C(AC) IS NON-ZERO. + 4304 ;IN THIS CASE, C(AC) = 0,,1 BEFORE DECREMENTING. HENCE, SOJN + 4305 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + 4306 + 4307 033011 201 12 0 00 000001 C55010: MOVEI 12,1 ;PRELOAD AC WITH 0,,1 + 4308 033012 366 12 0 00 033014 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + 4309 ;AND NOT JUMP. + 4310 033013 334 00 0 00 000000 SKIPA ;PASS IF SOJN DID NOT JUMP + 4311 STOP^ + 4312 033014 254 04 0 00 033015 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4313 033015 324 00 0 00 033016 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4317 033016 312 12 0 00 033501 CAME 12,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4318 STOP^ + 4319 033017 254 04 0 00 033020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4320 033020 324 00 0 00 033021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4324 + 4325 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 79 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0118 + + 4326 ;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND + 4327 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4328 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4329 ;SPECIFIED BY E IF C(AC) IS NON-ZERO. + 4330 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJN + 4331 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + 4332 + 4333 033021 201 12 0 00 000002 C55020: MOVEI 12,2 ;PRELOAD AC WITH 0,,2 + 4334 033022 366 12 0 00 033024 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + 4335 ;AND JUMP. + 4336 STOP^ + 4337 033023 254 04 0 00 033024 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4338 033024 324 00 0 00 033025 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4339 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4340 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4341 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4342 033025 312 12 0 00 033502 CAME 12,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4343 STOP^ + 4344 033026 254 04 0 00 033027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4345 033027 324 00 0 00 033030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4346 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4347 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4348 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4349 + 4350 ;********** + 4351 + 4352 ;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND + 4353 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4354 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4355 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. + 4356 ;IN THIS CASE, C(AC) = 0 BEFORE DECREMENTING. HENCE, SOJG + 4357 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + 4358 + 4359 033030 201 11 0 00 000000 C55100: MOVEI 11,0 ;PRELOAD AC WITH 0 + 4360 033031 367 11 0 00 033033 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + 4361 ;AND NOT JUMP. + 4362 033032 334 00 0 00 000000 SKIPA ;PASS IF SOJG DID NOT JUMP + 4363 STOP^ + 4364 033033 254 04 0 00 033034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4365 033034 324 00 0 00 033035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4366 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4367 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4368 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4369 033035 312 11 0 00 033462 CAME 11,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4370 STOP^ + 4371 033036 254 04 0 00 033037 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4372 033037 324 00 0 00 033040 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4373 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4374 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4375 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4376 + 4377 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 80 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0119 + + 4378 ;THIS TEST VERIRIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND + 4379 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4380 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4381 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. + 4382 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJG + 4383 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + 4384 + 4385 033040 201 11 0 00 000001 C55110: MOVEI 11,1 ;PRELOAD AC WITH 0,,1 + 4386 033041 367 11 0 00 033043 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + 4387 ;AND NOT JUMP. + 4388 033042 334 00 0 00 000000 SKIPA ;PASS IF SOJG DID NOT JUMP + 4389 STOP^ + 4390 033043 254 04 0 00 033044 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4391 033044 324 00 0 00 033045 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4395 033045 312 11 0 00 033501 CAME 11,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4396 STOP^ + 4397 033046 254 04 0 00 033047 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4398 033047 324 00 0 00 033050 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4399 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4400 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4401 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4402 + 4403 ;********** + 4404 + 4405 ;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND + 4406 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS + 4407 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION + 4408 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. + 4409 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJG + 4410 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + 4411 + 4412 033050 201 11 0 00 000002 C55120: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + 4413 033051 367 11 0 00 033053 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT O,,1 FROM C(AC) + 4414 ;AND JUMP. + 4415 STOP^ + 4416 033052 254 04 0 00 033053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4417 033053 324 00 0 00 033054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4418 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4419 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4420 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4421 033054 312 11 0 00 033502 CAME 11,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + 4422 STOP^ + 4423 033055 254 04 0 00 033056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4424 033056 324 00 0 00 033057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4425 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4426 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4427 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4428 + 4429 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 81 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0120 + + 4430 SUBTTL TEST OF MSCL SOSX INSTRUCTIONS + 4431 + 4432 ;********** + 4433 + 4434 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES + 4435 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4436 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. + 4437 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4438 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 + 4439 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD SKIP; AND THE + 4440 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 + 4441 ;RESPECTIVELY. + 4442 + 4443 033057 200 00 0 00 033474 C55200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4444 033060 201 01 0 00 000000 MOVEI 1,0 ;PRELOAD E WITH 0 + 4445 033061 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E) + 4446 ;AND SKIP + 4447 STOP^ + 4448 033062 254 04 0 00 033063 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4449 033063 324 00 0 00 033064 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4450 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4451 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4452 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4453 033064 312 01 0 00 033462 CAME 1,[-1] ;PASS IF E DECREMENTED CORRECTLY + 4454 STOP^ + 4455 033065 254 04 0 00 033066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4456 033066 324 00 0 00 033067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4457 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4458 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4459 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4460 033067 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 4461 STOP^ + 4462 033070 254 04 0 00 033071 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4463 033071 324 00 0 00 033072 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4464 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4465 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4466 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4467 + 4468 ;********** + 4469 + 4470 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES + 4471 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4472 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. + 4473 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4474 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 + 4475 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE + 4476 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 + 4477 ;RESPECTIVELY. + 4478 + 4479 033072 200 00 0 00 033474 C55210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4480 033073 201 01 0 00 000001 MOVEI 1,1 ;PRELOAD E WITH 0,,1 + 4481 033074 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + 4482 ;AND NOT SKIP. + 4483 033075 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP + 4484 STOP^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 81-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0121 + + 4485 033076 254 04 0 00 033077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4486 033077 324 00 0 00 033100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4490 033100 312 01 0 00 033501 CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + 4491 STOP^ + 4492 033101 254 04 0 00 033102 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4493 033102 324 00 0 00 033103 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4494 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4495 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4496 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4497 033103 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 4498 STOP^ + 4499 033104 254 04 0 00 033105 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4500 033105 324 00 0 00 033106 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4501 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4502 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4503 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4504 + 4505 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 82 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0122 + + 4506 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES + 4507 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4508 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. + 4509 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4510 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 + 4511 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE + 4512 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 + 4513 ;RESPECTIVELY. + 4514 + 4515 033106 200 00 0 00 033474 C55211: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4516 033107 201 01 0 00 000001 MOVEI 1,1 ;PRELOAD E WITH 0,,1 + 4517 033110 202 01 0 00 033125 MOVEM 1,E55211 + 4518 033111 371 00 0 00 033125 SOSL 0,E55211 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + 4519 ;AND NOT SKIP. + 4520 033112 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP + 4521 STOP^ + 4522 033113 254 04 0 00 033114 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4523 033114 324 00 0 00 033115 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4524 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4525 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4526 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4527 033115 200 01 0 00 033125 MOVE 1,E55211 + 4528 033116 312 01 0 00 033501 CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + 4529 STOP^ + 4530 033117 254 04 0 00 033120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4531 033120 324 00 0 00 033121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4535 033121 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + 4536 STOP^ + 4537 033122 254 04 0 00 033123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4538 033123 324 00 0 00 033124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4539 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4540 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4541 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4542 + 4543 033124 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 4544 033125 000000 000000 E55211: 0 ;TEST WORD MEMORY + 4545 + 4546 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 83 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0123 + + 4547 ;THIS TEST VERIFIES THAT SOS DECREMENTS C(E) BY 0,,1 AND PLACES + 4548 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4549 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. + 4550 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4551 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E) 0,,2 + 4552 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE + 4553 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 + 4554 ;RESPECTIVELY. + 4555 + 4556 033126 200 00 0 00 033474 C55220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4557 033127 201 01 0 00 000002 MOVEI 1,2 ;PRELOAD E WITH 0,,2 + 4558 033130 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + 4559 ;AND NOT SKIP + 4560 + 4561 033131 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP + 4562 STOP^ + 4563 033132 254 04 0 00 033133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4564 033133 324 00 0 00 033134 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4565 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4566 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4567 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4568 033134 312 01 0 00 033502 CAME 1,[1] ;PASS IF E DECREMENTED CORRECTLY + 4569 STOP^ + 4570 033135 254 04 0 00 033136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4571 033136 324 00 0 00 033137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4572 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4573 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4574 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4575 033137 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4576 STOP^ + 4577 033140 254 04 0 00 033141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4578 033141 324 00 0 00 033142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4579 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4580 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4581 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4582 + 4583 ;********** + 4584 + 4585 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES + 4586 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4587 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 + 4588 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4589 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0 + 4590 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE + 4591 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 4592 ;RESPECTIVELY. + 4593 + 4594 033142 200 10 0 00 033474 C55300: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4595 033143 201 11 0 00 000000 MOVEI 11,0 ;PRELOAD E WITH 0 + 4596 033144 372 10 0 00 000011 SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + 4597 ;UPDATE AC AND NOT SKIP + 4598 + 4599 033145 334 00 0 00 000000 SKIPA ;PASS IF SOSE DID NOT SKIP + 4600 STOP^ + 4601 033146 254 04 0 00 033147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 83-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0124 + + 4602 033147 324 00 0 00 033150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4603 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4604 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4605 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4606 033150 312 11 0 00 033462 CAME 11,[-1] ;PASS IF E DECREMENTED CORRECTLY + 4607 STOP^ + 4608 033151 254 04 0 00 033152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4609 033152 324 00 0 00 033153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4610 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4611 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4612 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4613 033153 312 10 0 00 033462 CAME 10,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4614 STOP^ + 4615 033154 254 04 0 00 033155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4616 033155 324 00 0 00 033156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4617 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4618 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4619 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4620 + 4621 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 84 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0125 + + 4622 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES + 4623 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4624 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 + 4625 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4626 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,1 + 4627 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD SKIP ; AND THE + 4628 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 + 4629 ;RESPECTIVELY. + 4630 + 4631 033156 200 10 0 00 033474 C55310: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4632 033157 201 11 0 00 000001 MOVEI 11,1 ;PRELOAD E WITH 0,,1 + 4633 033160 372 10 0 00 000011 SOSE 10,11 ;*SOS SHOULD SUBTRACT 0,,1 FROM C(E) + 4634 ;UPDATE AC AND SKIP + 4635 STOP^ + 4636 033161 254 04 0 00 033162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4637 033162 324 00 0 00 033163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4638 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4639 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4640 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4641 033163 312 11 0 00 033501 CAME 11,[0] ;PASS IF E DECREMENTED CORRECTLY + 4642 STOP^ + 4643 033164 254 04 0 00 033165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4644 033165 324 00 0 00 033166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4645 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4646 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4647 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4648 033166 312 10 0 00 033501 CAME 10,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4649 STOP^ + 4650 033167 254 04 0 00 033170 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4651 033170 324 00 0 00 033171 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4652 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4653 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4654 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4655 + 4656 ;********** + 4657 + 4658 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,11 AND PLACES + 4659 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4660 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. + 4661 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4662 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,2 + 4663 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE + 4664 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 4665 ;RESPECTIVELY. + 4666 + 4667 033171 200 10 0 00 033474 C55320: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4668 033172 201 11 0 00 000002 MOVEI 11,2 ;PRELOAD E WITH 0,,2 + 4669 033173 372 10 0 00 000011 SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + 4670 ;UPDATE AC AND NOT SKIP + 4671 + 4672 033174 334 00 0 00 000000 SKIPA ;PASS IF SOSE DID NOT SKIP + 4673 STOP^ + 4674 033175 254 04 0 00 033176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4675 033176 324 00 0 00 033177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4676 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 84-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0126 + + 4677 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4678 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4679 033177 312 11 0 00 033502 CAME 11,[1] ;PASS IF E DECREMENTED CORRECTLY + 4680 STOP^ + 4681 033200 254 04 0 00 033201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4682 033201 324 00 0 00 033202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4683 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4684 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4685 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4686 033202 312 10 0 00 033502 CAME 10,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4687 STOP^ + 4688 033203 254 04 0 00 033204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4689 033204 324 00 0 00 033205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4690 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4691 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4692 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4693 + 4694 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 85 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0127 + + 4695 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES + 4696 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4697 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. + 4698 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4699 ;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0 + 4700 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE + 4701 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 4702 ;RESPECTIVELY. + 4703 + 4704 033205 200 07 0 00 033474 C55400: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4705 033206 201 10 0 00 000000 MOVEI 10,0 ;PRELOAD E WITH 0 + 4706 033207 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + 4707 ;UPDATE AC AND SKIP + 4708 STOP^ + 4709 033210 254 04 0 00 033211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4710 033211 324 00 0 00 033212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4714 033212 312 10 0 00 033462 CAME 10,[-1] ;PASS IF E DECREMENTED CORRECTLY + 4715 STOP^ + 4716 033213 254 04 0 00 033214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4717 033214 324 00 0 00 033215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4721 033215 312 07 0 00 033462 CAME 7,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4722 STOP^ + 4723 033216 254 04 0 00 033217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4724 033217 324 00 0 00 033220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4725 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4726 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4727 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4728 + 4729 ;********** + 4730 + 4731 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES + 4732 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4733 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. + 4734 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4735 ;IN THIS CASE, AC=7, C(AC)=070707,,070707 AND C(E)=0,,1 + 4736 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE + 4737 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 4738 ;RESPECTIVELY. + 4739 + 4740 033220 200 07 0 00 033474 C55410: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4741 033221 201 10 0 00 000001 MOVEI 10,1 ;PRELOAD E WITH 0,,1 + 4742 033222 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + 4743 ;UPDATE AC AND SKIP + 4744 STOP^ + 4745 033223 254 04 0 00 033224 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4746 033224 324 00 0 00 033225 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4747 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4748 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4749 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 85-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0128 + + 4750 033225 312 10 0 00 033501 CAME 10,[0] ;PASS IF E DECREMENTED CORRECTLY + 4751 STOP^ + 4752 033226 254 04 0 00 033227 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4753 033227 324 00 0 00 033230 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4754 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4755 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4756 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4757 033230 312 07 0 00 033501 CAME 7,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4758 STOP^ + 4759 033231 254 04 0 00 033232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4760 033232 324 00 0 00 033233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4761 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4762 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4763 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4764 + 4765 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 86 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0129 + + 4766 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES + 4767 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4768 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. + 4769 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4770 ;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0,,2 + 4771 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD NOT SKIP; AND THE + 4772 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 4773 ;RESPECTIVELY. + 4774 + 4775 033233 200 07 0 00 033474 C55420: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4776 033234 201 10 0 00 000002 MOVEI 10,2 ;PRELOAD E WITH 0,,2 + 4777 033235 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + 4778 ;UPDATE AC AND NOT SKIP + 4779 033236 334 00 0 00 000000 SKIPA ;PASS IF SOSLE DID NOT SKIP + 4780 STOP^ + 4781 033237 254 04 0 00 033240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4782 033240 324 00 0 00 033241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4786 033241 312 10 0 00 033502 CAME 10,[1] ;PASS IF E DECREMENTED CORRECTLY + 4787 STOP^ + 4788 033242 254 04 0 00 033243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4789 033243 324 00 0 00 033244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4790 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4791 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4792 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4793 033244 312 07 0 00 033502 CAME 7,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4794 STOP^ + 4795 033245 254 04 0 00 033246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4796 033246 324 00 0 00 033247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4797 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4798 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4799 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4800 + 4801 ;********** + 4802 + 4803 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES + 4804 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 4805 ;THE NEXT INSTRUCTION. + 4806 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4807 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 + 4808 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE + 4809 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 4810 ;RESPECTIVELY. + 4811 + 4812 033247 200 06 0 00 033474 C55500: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4813 033250 201 07 0 00 000000 MOVEI 7,0 ;PRELOAD E WITH 0 + 4814 033251 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + 4815 ;UPDATE AC AND SKIP + 4816 STOP^ + 4817 033252 254 04 0 00 033253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4818 033253 324 00 0 00 033254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4819 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4820 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 86-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0130 + + 4821 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4822 033254 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E DECREMENTED CORRECTLY + 4823 STOP^ + 4824 033255 254 04 0 00 033256 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4825 033256 324 00 0 00 033257 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4826 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4827 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4828 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4829 033257 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4830 STOP^ + 4831 033260 254 04 0 00 033261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4832 033261 324 00 0 00 033262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4833 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4834 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4835 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4836 + 4837 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 87 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0131 + + 4838 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES + 4839 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 4840 ;THE NEXT INSTRUCTION. + 4841 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THEAC. + 4842 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,1 + 4843 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD BE 0 AND 0 + 4844 ;RESPECTIVELY. + 4845 + 4846 033262 200 06 0 00 033474 C55510: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4847 033263 201 07 0 00 000001 MOVEI 7,1 ;PRELOAD E WITH 0,,1 + 4848 033264 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + 4849 ;UPDATE AC AND SKIP + 4850 STOP^ + 4851 033265 254 04 0 00 033266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4852 033266 324 00 0 00 033267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4853 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4854 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4855 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4856 033267 312 07 0 00 033501 CAME 7,[0] ;PASS IF E DECREMENTED CORRECTLY + 4857 STOP^ + 4858 033270 254 04 0 00 033271 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4859 033271 324 00 0 00 033272 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4860 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4861 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4862 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4863 033272 312 06 0 00 033501 CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4864 STOP^ + 4865 033273 254 04 0 00 033274 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4866 033274 324 00 0 00 033275 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4867 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4868 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4869 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4870 + 4871 ;********** + 4872 + 4873 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES + 4874 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS + 4875 ;THE NEXT INSTRUCTION. + 4876 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4877 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,2 + 4878 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE + 4879 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 4880 ;RESPECTIVELY. + 4881 + 4882 033275 200 06 0 00 033474 C55520: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4883 033276 201 07 0 00 000002 MOVEI 7,2 ;PRELOAD E WITH 0,,2 + 4884 033277 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + 4885 ;UPDATE AC AND SKIP + 4886 STOP^ + 4887 033300 254 04 0 00 033301 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4888 033301 324 00 0 00 033302 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4889 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4890 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4891 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4892 033302 312 07 0 00 033502 CAME 7,[1] ;PASS IF E DECREMENTED CORRECTLY +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 87-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0132 + + 4893 STOP^ + 4894 033303 254 04 0 00 033304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4895 033304 324 00 0 00 033305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4896 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4897 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4898 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4899 033305 312 06 0 00 033502 CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4900 STOP^ + 4901 033306 254 04 0 00 033307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4902 033307 324 00 0 00 033310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4906 + 4907 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 88 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0133 + + 4908 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES + 4909 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4910 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. + 4911 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4912 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0 + 4913 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD NOT SKIP ; AND THE + 4914 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 4915 ;RESPECTIVELY. + 4916 + 4917 033310 200 05 0 00 033474 C55600: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4918 033311 201 06 0 00 000000 MOVEI 6,0 ;PRELOAD E WITH 0 + 4919 033312 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + 4920 ;UPDATE AC AND NOT SKIP + 4921 033313 334 00 0 00 000000 SKIPA ;PASS IF SOSGE DID NOT SKIP + 4922 STOP^ + 4923 033314 254 04 0 00 033315 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4924 033315 324 00 0 00 033316 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4925 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4926 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4927 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4928 033316 312 06 0 00 033462 CAME 6,[-1] ;PASS IF E DECREMENTED CORRECTLY + 4929 STOP^ + 4930 033317 254 04 0 00 033320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4931 033320 324 00 0 00 033321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4932 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4933 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4934 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4935 033321 312 05 0 00 033462 CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4936 STOP^ + 4937 033322 254 04 0 00 033323 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4938 033323 324 00 0 00 033324 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4939 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4940 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4941 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4942 + 4943 ;********** + 4944 + 4945 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES + 4946 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4947 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. + 4948 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4949 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,1 + 4950 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE + 4951 ;FINAL RESULTS IN ACAND E SHOULD BE 0 AND 0 + 4952 ;RESPECTIVELY. + 4953 + 4954 033324 200 05 0 00 033474 C55610: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4955 033325 201 06 0 00 000001 MOVEI 6,1 ;PRELOAD E WITH 0,,1 + 4956 033326 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + 4957 ;UPDATE AC AND SKIP + 4958 STOP^ + 4959 033327 254 04 0 00 033330 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4960 033330 324 00 0 00 033331 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 88-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0134 + + 4963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4964 033331 312 06 0 00 033501 CAME 6,[0] ;PASS IF E DECREMENTED CORRECTLY + 4965 STOP^ + 4966 033332 254 04 0 00 033333 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4967 033333 324 00 0 00 033334 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4971 033334 312 05 0 00 033501 CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 4972 STOP^ + 4973 033335 254 04 0 00 033336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4974 033336 324 00 0 00 033337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4975 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4976 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4977 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4978 + 4979 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 89 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0135 + + 4980 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES + 4981 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 4982 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 + 4983 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 4984 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,2 + 4985 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE + 4986 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 4987 ;RESPECTIVELY. + 4988 + 4989 033337 200 05 0 00 033474 C55620: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 4990 033340 201 06 0 00 000002 MOVEI 6,2 ;PRELOAD E WITH 0,,2 + 4991 033341 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + 4992 ;UPDATE AC AND SKIP + 4993 STOP^ + 4994 033342 254 04 0 00 033343 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4995 033343 324 00 0 00 033344 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4999 033344 312 06 0 00 033502 CAME 6,[1] ;PASS IF E DECREMENTED CORRECTLY + 5000 STOP^ + 5001 033345 254 04 0 00 033346 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5002 033346 324 00 0 00 033347 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5006 033347 312 05 0 00 033502 CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 5007 STOP^ + 5008 033350 254 04 0 00 033351 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5009 033351 324 00 0 00 033352 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5010 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5011 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5012 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5013 + 5014 ;********** + 5015 + 5016 ;THIS TEST VERIFIES SOSN DECREMENTS C(E) BY 0,,1 AND PLACES + 5017 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5018 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO + 5019 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 5020 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 + 5021 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE + 5022 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 5023 ;RESPECTIVELY. + 5024 + 5025 033352 200 04 0 00 033474 C55700: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5026 033353 201 05 0 00 000000 MOVEI 5,0 ;PRELOAD E WITH 0 + 5027 033354 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + 5028 ;UPDATE AC AND SKIP + 5029 STOP^ + 5030 033355 254 04 0 00 033356 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5031 033356 324 00 0 00 033357 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5032 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5033 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5034 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 89-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0136 + + 5035 033357 312 05 0 00 033462 CAME 5,[-1] ;PASS IF E DECREMENTED CORRECTLY + 5036 STOP^ + 5037 033360 254 04 0 00 033361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5038 033361 324 00 0 00 033362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5039 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5040 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5041 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5042 033362 312 04 0 00 033462 CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 5043 STOP^ + 5044 033363 254 04 0 00 033364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5045 033364 324 00 0 00 033365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5046 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5047 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5048 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5049 + 5050 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 90 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0137 + + 5051 ;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES + 5052 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5053 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO + 5054 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC + 5055 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,1 + 5056 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD NOT SKIP ; AND THE + 5057 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 5058 ;RESPECTIVELY. + 5059 + 5060 033365 200 04 0 00 033474 C55710: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5061 033366 201 05 0 00 000001 MOVEI 5,1 ;PRELOAD E WITH 0,,1 + 5062 033367 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + 5063 ;UPDATE AC AND NOT SKIP + 5064 033370 334 00 0 00 000000 SKIPA ;PASS IF SOSN DID NOT SKIP + 5065 STOP^ + 5066 033371 254 04 0 00 033372 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5067 033372 324 00 0 00 033373 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5068 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5069 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5070 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5071 033373 312 05 0 00 033501 CAME 5,[0] ;PASS IF E DECREMENTED CORRECTLY + 5072 STOP^ + 5073 033374 254 04 0 00 033375 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5074 033375 324 00 0 00 033376 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5075 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5076 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5077 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5078 033376 312 04 0 00 033501 CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 5079 STOP^ + 5080 033377 254 04 0 00 033400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5081 033400 324 00 0 00 033401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5082 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5083 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5084 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5085 + 5086 ;********** + 5087 + 5088 ;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES + 5089 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5090 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO + 5091 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 5092 ;INtTHIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,2 + 5093 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE + 5094 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 + 5095 ;RESPECTIVELY + 5096 + 5097 033401 200 04 0 00 033474 C55720: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5098 033402 201 05 0 00 000002 MOVEI 5,2 ;PRELOAD E WITH 0,,2 + 5099 033403 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + 5100 ;UPDATE AC AND SKIP + 5101 STOP^ + 5102 033404 254 04 0 00 033405 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5103 033405 324 00 0 00 033406 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5104 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5105 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 90-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0138 + + 5106 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5107 033406 312 05 0 00 033502 CAME 5,[1] ;PASS IF E DECREMENTED CORRECTLY + 5108 STOP^ + 5109 033407 254 04 0 00 033410 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5110 033410 324 00 0 00 033411 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5114 033411 312 04 0 00 033502 CAME 4,[1] ;PASS IF ACWAS UPDATED IF AC NON-ZERO + 5115 STOP^ + 5116 033412 254 04 0 00 033413 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5117 033413 324 00 0 00 033414 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5118 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5119 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5120 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5121 + 5122 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 91 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0139 + + 5123 ;THIS TEST VERIFIESTHAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES + 5124 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5125 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 + 5126 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 5127 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 + 5128 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE + 5129 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 + 5130 ;RESPECTIVELY. + 5131 + 5132 033414 200 03 0 00 033474 C56000: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5133 033415 201 04 0 00 000000 MOVEI 4,0 ;PRELOAD E WITH 0 + 5134 033416 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + 5135 ;UPDATE AC AND NOT SKIP + 5136 033417 334 00 0 00 000000 SKIPA ;PASS IF SOSG DID NOT SKIP + 5137 STOP^ + 5138 033420 254 04 0 00 033421 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5139 033421 324 00 0 00 033422 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5140 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5141 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5142 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5143 033422 312 04 0 00 033462 CAME 4,[-1] ;PASS IF E DECREMENTED CORRECTLY + 5144 STOP^ + 5145 033423 254 04 0 00 033424 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5146 033424 324 00 0 00 033425 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5147 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5148 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5149 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5150 033425 312 03 0 00 033462 CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 5151 STOP^ + 5152 033426 254 04 0 00 033427 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5153 033427 324 00 0 00 033430 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5154 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5155 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5156 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5157 + 5158 ;********** + 5159 + 5160 ;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES + 5161 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5162 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0. + 5163 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 5164 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,1 + 5165 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE + 5166 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 + 5167 ;RESPECTIVELY. + 5168 + 5169 033430 200 03 0 00 033474 C56010: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5170 033431 201 04 0 00 000001 MOVEI 4,1 ;PRELOAD E WITH 0,,1 + 5171 033432 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + 5172 ;UPDATE AC AND NOT SKIP + 5173 033433 334 00 0 00 000000 SKIPA ;PASS IF SOSG DID NOT SKIP + 5174 STOP^ + 5175 033434 254 04 0 00 033435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5176 033435 324 00 0 00 033436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 91-1 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0140 + + 5178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5180 033436 312 04 0 00 033501 CAME 4,[0] ;PASS IF E DECREMENTED CORRECTLY + 5181 STOP^ + 5182 033437 254 04 0 00 033440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5183 033440 324 00 0 00 033441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5187 033441 312 03 0 00 033501 CAME 3,[0] ;PASS IF AC WAS UPDATED IS AC NON-ZERO + 5188 STOP^ + 5189 033442 254 04 0 00 033443 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5190 033443 324 00 0 00 033444 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5191 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5192 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5193 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5194 + 5195 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 92 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0141 + + 5196 ;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES + 5197 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS + 5198 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 + 5199 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. + 5200 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,2 + 5201 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD SKIP ; AND THE + 5202 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 011, + 5203 ;RESPECTIVELY. + 5204 + 5205 033444 200 03 0 00 033474 C56020: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + 5206 033445 201 04 0 00 000002 MOVEI 4,2 ;PRELOAD E WITH 0,,2 + 5207 033446 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + 5208 ;UPDATE AC AND SKIP + 5209 STOP^ + 5210 033447 254 04 0 00 033450 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5211 033450 324 00 0 00 033451 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5212 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5213 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5214 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5215 033451 312 04 0 00 033502 CAME 4,[1] ;PASS IF E DECREMENTED CORRECTLY + 5216 STOP^ + 5217 033452 254 04 0 00 033453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5218 033453 324 00 0 00 033454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5222 033454 312 03 0 00 033502 CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + 5223 STOP^ + 5224 033455 254 04 0 00 033456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5225 033456 324 00 0 00 033457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5229 + 5230 ;********** +DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 93 +DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0142 + + 5231 + 5232 033457 254 00 0 00 030057 JRST BEGEND + 5233 SUBTTL *STOR* RESERVED STORAGE, JULY 19,1977 + 5234 + 5235 ;PROGRAM LITERALS + 5236 + 5237 XLIST + 5238 IFNDEF $LPAPER, + 5239 033460 LIT + 5240 033460 000001 000001 + 5241 033461 254 00 0 00 030723 + 5242 033462 777777 777777 + 5243 033463 310 00 0 00 000000 + 5244 033464 201 01 0 00 001234 + 5245 033465 031107 031106 + 5246 033466 031116 031115 + 5247 033467 254 00 0 00 031161 + 5248 033470 000001 000002 + 5249 033471 135531 246642 + 5250 033472 135246 246135 + 5251 033473 252525 252525 + 5252 033474 707070 707070 + 5253 033475 123456 123456 + 5254 033476 777777 000000 + 5255 033477 777777 777775 + 5256 033500 777777 777776 + 5257 033501 000000 000000 + 5258 033502 000000 000001 + 5259 LIST + 5260 033503 000000 000000 ENDSLD: 0 + 5261 + 5262 IFDEF DEBUG,< + 5263 033504 PATCH: BLOCK DEBUG ;PATCHING AREA + 5264 > + 5265 + 5266 ;PROGRAM VARIABLES + 5267 033604 VAR + 5268 + 5269 IFDEF PGMEND,< + 5270 033604 000000 000000 END: 0 + 5271 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSOLUTE BREAK IS 033605 +CPU TIME USED 00:18.474 + +20P CORE USED diff --git a/apps/pdp10/diags/klad/dakae/DAKAE.MAC.txt b/apps/pdp10/diags/klad/dakae/DAKAE.MAC.txt new file mode 100644 index 000000000..ad04e0213 --- /dev/null +++ b/apps/pdp10/diags/klad/dakae/DAKAE.MAC.txt @@ -0,0 +1,2772 @@ +;ACCUMULATOR ASSIGNMENTS + +;CONTROL WORDS + +AROV=400000 ;ARITHMETIC OVERFLOW +CRY0=200000 ;CARRY 0 +CRY1=100000 ;CARRY 1 +FOV=40000 ;FLOATING OVERFLOW +BIS=20000 ;BYTE INTERRUPT +USERF=10000 ;USER MODE FLAG +EXIOT=4000 ;USER PRIV I/O FLAG +FXU=100 ;FLOATING UNDERFLOW +DCK=40 ;DIVIDE CHECK + +;MACROS + +; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) +; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + +DEFINE STOP (A)< + HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + +; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + +DEFINE SFLAG (A)< + MOVSI 1,A + JFCL 17,.+1 ;RESET ALL FLAGS + JRST 2,.+1(1) ;SET A FLAG> + +SUBTTL DIAGNOSTIC SECTION + +START: ;SETZM USER# ;CLEAR USER CONTROL WORD + ;JSP 0,.+1 ;GET FLAGS + ;TLNE USERF ;IN USER MODE? + ;SETOM USER ;YES, SET USER CONTROL WORD + ;SKIPN MONFLG ;SPECIAL USER MODE? + ;SETZM USER ;YES, CLEAR USER CONTROL WORD + ;SKIPN USER + ;JRST STARTA + ;SKIPL MONCTL + ;TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) [DAKAE] +/ + + +;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF +;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES +;IN THE FIELD. + +STARTA: JRST .+1 +SUBTTL TEST OF JSR INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JSR STORES THE FLAGS AND PC IN LOCATION E. +;IN THIS CASE, E IS CLEARED, CRY0 IS SET AND JSR IS EXECUTED. +;NEXT, E IS CHECKED FOR ITS CONTENTS NON-ZERO. IF C(E) IS NON-ZERO, +;THIS TEST PASSES. + +C23000: SFLAG CRY0 ;SET CRY0 FLAG + SETZM .+2 ;PRELOAD E WITH 0 + JSR .+1 ;*JSR SHOULD PLACE FLAGS AND PC INTO AC + 0 ;E: PRESET TO 0, SHOULD RECEIVE FLAGS AND PC FROM JSR + SKIPN .-1 ;PASS IF C(E) IS NON-ZERO. + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR IGNORES THE AC FIELD; +;HENCE, IT DOES NOT MODIFY THE SPECIFIED AC. +;IN THIS CASE, CRY0 IS SET. THE AC IS PRELOADED WITH -1,,-1 AND JSR IS EXECUTED. +;THE AC IS THEN CHECKED. IF C(AC)=-1,,-1, THIS TEST PASSES. + +C23100: SFLAG CRY0 ;SET CRY0 + SETO 1, ;PRELOAD AC WITH -1,,-1 + JSR 1,.+1 ;*JSR SHOULD NOT MODIFY THE AC + 0 ;STORE PC + FLAGS HERE + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT JSR STORES THE FLAGS IN E-LEFT HALF. +;IN THIS TEST, CRY0 IS SET, E IS CLEARED AND JSR IS EXECUTED. +;NEXT, C(E-LEFT) ARE PLACED INTO AC0 AND AC0 IS CHECKED FOR ITS CONTENTS NON-ZERO. +;IF C(AC0) ARE NON-ZERO, THIS TEST PASSES. + +C23200: SFLAG CRY0 ;SET CRY0 + SETZM .+2 ;CLEAR E + JSR .+1 ;*JSR SHOULD STORE FLAGS IN E + 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + HLLZ .-1 ;PUT FLAGS INTO AC0 + SKIPN ;PASS IF C(AC0) NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR TRANSFERS CONTROL TO E+1. +;IN THIS CASE, CRY0 IS SET AND E AND AC0 CLEARED; THEN, JSR IS EXECUTED. +;IF JSR RESUMES CONTROL AT E INSTEAD OF E+1, AC0 WILL BE MODIFIED; +;HENCE, THE TEST WILL FAIL WHEN AC0 IS CHECKED FOR 0 BECAUSE +;C(E) IS DECODED AS A MOVE INSTRUCTION. + +C23300: SFLAG CRY0 ;SET CRY0 + SETZB .+2 ;CLEAR AC0 AND E + JSR .+1 ;*JSR SHOULD RESUME CONTROL AT E+1 + 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + SKIPE 0 ;PASS IF C(AC0)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT JSR JUMPS TO E+1 +;IN THIS CASE, AC0 IS CLEARED AND CRY0 IS SET; THEN, JSR .+2 IS EXECUTED. +;IF JSR DID NOT JUMP, ONES ARE LOADED WITH AC0; AND THE TEST FAILS. +;OTHERWISE, AC0 REMAINS CLEAR AND THE TEST PASSES + +C23400: SFLAG CRY0 ;SET CRY0 + SETZ ;CLEAR AC0 + JSR .+2 ;*JSR SHOULD JUMP + SETO ;LOAD AC0 WITH ONES IF JSR FAILED TO JUMP + 0 ;STORE FLAGS HERE + SKIPE ;PASS IF JSR JUMPED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC +;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. +;THIS TEST WILL FAIL IF JSR STORES E INSTEAD OF PC IN E - RIGHT HALF. +;IN CASE OF FAILURE, AR PC EN AT ET2 WAS FAULTY. + +C23500: SFLAG 0 ;CLEAR ALL FLAGS + JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + HALT . ;JSR SHOULD SKIP OVER THIS HALT + 0 ;STORE FLAGS AND PC HERE + HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + CAIN .-2 ;FAIL IF C(AC0)=E + STOP + +;********** +;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC +;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. +;THIS TEST WILL PASS IF JSR STORES PC IN E - RIGHT HALF. + +C23600: JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + HALT . ;JSR SHOULD SKIP OVER THIS HALT + 0 ;STORE FLAGS AND PC HERE + HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + CAIE C23600+1 ;PASS IF C(AC0)=C23600+1 [PC] + STOP + +;********** +SUBTTL TEST OF JSA INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. +;IN THIS TEST, AC1 IS CLEARED AND A CAM 0,0 IS LOADED +;INTO THE AC OF THE JSA INSTRUCTION. +;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH ONES. AC1 IS CHECKED FOR ZEROS. +;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + +C23700: SETZ 1, ;CLEAR AC1 + MOVE [CAM] ;LOAD CAM INTO AC0 + JSA .+2 ;*JSA SHOULD JUMP TO E+1 + SETO 1 ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 0 ;PASS IF JSA JUMPED + SKIPE 1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. +;IN THIS TEST, AC1 IS CLEARED AND A MOVEI 1,1234 IS LOADED +;INTO THE AC OF THE JSA INSTRUCTION. +;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH 0,,1234. AC1 IS CHECKED FOR ZEROS. +;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + +C24000: SETZ 1, ;CLEAR AC1 + MOVE [MOVEI 1,1234] ;LOAD MOVEI 1,1234 INTO AC + JSA .+1 ;*JSA SHOULD JUMP TO E+1 + 0 ;JSA SHOULD JUMP OVER THIS LOCATION + CAIN 1,1234 ;FAIL IF JSA DID NOT JUMP OVER PREVIOUS INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS PC OF LOC OF JSA+1 INTO AC RIGHT. +;THIS TEST WILL FAIL IF JSA LOADS E INTO AC RIGHT INSTEAD OF PC. + +C24100: JSA .+2 ;*JSA SHOULD LOAD PC INTO AC RIGHT + HALT . ;JSA SHOULD JUMP OVER THIS LOCATION + 0 ;JSA SHOULD JUMP OVER THIS LOCATION + HRRZM 1 ;PUT C(AC-RIGHT) INTO AC1 + CAIN 1,.-2 ;FAIL IF E WAS LOADED INTO AC-RIGHT INSTEAD OF PC + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA PLACES C(AC) INTO E +;THIS TEST WILL FAIL IF EITHER 0,,E OR 0,,PC IS LOADED +;INTO E INSTEAD OF C(AC) + +C24200: SETZB .+2 ;CLEAR AC,E + JSA .+1 ;*JSA SHOULD LOAD C(AC) [ZEROS] INTO E + 0 ;JSA SHOULD PLACE ZEROS HERE + MOVE 1,.-1 ;SAVE C(AC) + CAIN 1,.-2 ;FAIL IF JSA LOADED 0,,E OR 0,,PC INTO E + STOP + +;********** +;THIS TEST VERIFIES THAT JSA PLACES PC INTO AC-RIGHT +;THIS TEST WILL FAIL IF PC IS NOT LOADED INTO AC-RIGHT + +C24300: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + JSA .+1 ;*JSA SHOULD PLACE E,,PC INTO THE AC + 0 ;JSA SHOULD PLACE C(AC) HERE + TRNN -1 ;FAIL IF AR LT AR RT EN FAILED + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA PLACES THE PC OF THE LOCATION OF JSA+1 IN AC-RIGHT +;THIS TEST FAILS IF A PC WAS NOT LOADED INTO AC RIGHT + +C24400: SETZ ;CLEAR AC + JSA .+1 ;*JSA SHOULD LOAD PC INTO AC - RIGHT + 0 ;JSA SHOULD PLACE C(AC) HERE + TRNN -1 ;PASS IF AC - RIGHT IS NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT JSA PLACES IN AC-LEFT +;THIS TEST FAILS IF JSA LOADS PC INSTEAD OF E INTO AC-LEFT + +C24500: JSA .+2 ;*JSA SHOULD LOAD E INTO AC-LEFT + HALT . ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 0 ;E: + HLRZM 1 ;SAVE C(AC - LEFT) + CAIN 1,.-3 ;FAIL IF JSA LOADED PC INSTEAD OF E INTO AC-LEFT + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC +;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, JSA IS EXECUTED. +;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + +C24600: SETO ;PRELOAD AC WITH -1,,-1 + JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 0 ;JSA SHOULD STORE C(AC) HERE, E: + CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC +;FIRST, THE AC IS PRELOADED WITH 0 JSA IS EXECUTED. +;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + +C24700: SETZ ;PRELOAD AC WITH 0 + JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 0 ;JSA SHOULD STORE C(AC) HERE, E: + CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; +;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, +;THIS TEST PASSES. + +C25000: SETZ ;CLEAR AC + SETOM .+2 ;PRELOAD E WITH -1,,-1 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + SKIPE .-1 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST PRELOADED WITH -1,,-1 AND E IS CLEARED; +;THEN, JSA IS EXECUTED. E IS CHECKED FOR -1,,-1. IF C(E)=-1,,-1, +;THIS TEST PASSES. + +C25100: SETOB 1 ;PRELOAD AC -1,,-1 + SETZM .+2 ;PRELOAD E WITH 0 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + CAME 1,.-1 ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; +;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, +;THIS TEST PASSES. + +C25200: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + MOVE 1,.-1 ;PASS IF C(E)=0,,-1 + CAIE 1,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT JSA DOES NOT MODIFY AC+1 +;IN THIS TEST, AC+1 IS PRELOADED WITH -1,,-1; THEN JSA IS EXECUTED +;AC+1 IS THEN CHECKED FOR ITS ORIGINAL CONTENTS, -1,,-1. +;IF C(AC+1)=-1,,-1, THIS TEST PASSES + +C25300: SETOM 1 ;PRELOAD AC+1 WITH -1,,-1 + JSA .+1 ;*JSA SHOULD NOT MODIFY AC+1 + CAM ;JSA SHOULD JUMP OVER THIS, E:PC: + CAME 1,[-1] ;PASS IF AC+1 WAS NOT MODIFIED BY JSA + STOP + +;********** +SUBTTL TEST OF JRA INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25400: MOVE [JRST .+4] ;PRELOAD AC0 WITH JRST .+4 + MOVSI 1,.+2 ;PRELOAD AC WITH E,,0 + JRA 1,.+1 ;*JRA SHOULD JUMP TO NEXT INSTRUCTION + SKIPA ;PASS IF JRA JUMPS TO E + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25500: MOVSI .+3 ;PRELOAD AC WITH E+1 + JRA .+1 ;*JRA SHOULD JUMP TO NEXT SEQUENTIAL INSTRUCTION + SKIPA ;PASS IF JRA JUMPS TO E + STOP + +;********** +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25600: SETZB 1 ;PRELOAD AC0, AC1 WITH ZEROS + JRA .+2 ;*JRA SHOULD JUMP OVER NEXT SEQUENTIAL INSTRUCTION + SETO 1, ;LOAD AC1 WITH ONES IF JRA DOES NOT JUMP + SKIPE 1 ;PASS IF JRA JUMPED + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC AND JUMPS TO E +;THIS TEST FAILS IF JRA JUMPS TO E+1 OR DOES NOT LOAD THE AC CORRECTLY. + +C25700: SETZ ;CLEAR AC + JRA .+1 ;*JRA SHOULD PLACE 0 INTO THE AC AND JUMP .+1 + SKIPE ;PASS IF AC WAS LOADED CORRECTLY + ;AND JRA JUMPED CORRECTLY. + STOP + +;********** +;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC +;FIRST, THE AC IS PRELOADED WITH 1,,2 AND AC1 AND AC2 ARE +;INITIALIZED WITH THEIR RESPECTIVE ADDRESSES; JRA IS EXECUTED, AND +;THE AC IS CHECKED FOR 0,,1, THE ORIGINAL C(C(AC-LEFT)). IF C(AC)=0,,1, +;THIS TEST PASSES + +C26200: MOVE [XWD 1,2] ;PRELOAD AC WITH 1,,2 + MOVEI 1,1 ;INITIALIZE AC1 WITH 0,,1 + MOVEI 2,2 ;INITIALIZE AC2 WITH 0,,2 + JRA .+1 ;*JRA SHOULD PLACE 0,,1 INTO THE AC + CAIE 1 ;PASS IF C(AC)=0,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA CAN RESTORE AC0 FROM AC0 WHEN AC0 IS THE +;SPECIFIED AC AND C(AC0-LEFT)=0. +;FIRST, AC0 IS PRELOADED AND JRA IS EXECUTED. THEN, AC0 IS CHECKED FOR +;ITS INITIAL CONTENTS. IF THE RESULT IN AC0, IS CORRECT, THIS TEST PASSES. + +C26300: HRRZI [135531,,246642] ;PRELOAD AC0 WITH 0,, LITERAL ADDRESS + JRA .+1 ;*JRA SHOULD PLACE C(AC0) INTO AC0 + CAIE [135531,,246642] ;PASS IF JRA PLACED C(AC0) INTO AC0 + STOP + +;********** +;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE +;SPECIFIED AC. +;FIRST, AC0 IS PRELOADED WITH [LITERAL ADDRESS ,,0] AND JRA IS EXECUTED. THEN, +;AC0 IS CHECKED FOR THE SPECIFIED LITERAL, 135246,,246135. IF +;C(AC0)=135246,,246135, THE TEST PASSES. + +C26400: HRLZI [135246,,246135] ;PRELOAD AC0 WITH [LITERAL ADDRESS ,,0] + JRA .+1 ;*JRA SHOULD PLACE 135246,,246135 INTO AC0 + CAME [135246,,246135];PASS IF C(AC0)=135246,,246135 + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE +;SPECIFIED AC. +;FIRST, AC0 IS PRELOADED WITH [-1,, ADDRESS OF JCA INSTRUCTION] AND JRA IS EXECUTED. +;THEN, AC0 IS CHECKED FOR THE JRA INSTRUCTION. IF +;C(AC0)= THE JRA INSTRUCTION, THE TEST PASSES. + +C26500: HRLOI .+1 ;PRELOAD AC WITH -1,, ADDRESS OF JRA INSTRUCTION + JRA .+1 ;*JRA SHOULD PLACE ITSELF INTO AC0 + CAME .-1 ;PASS IF AC CONTAINS JRA INSTRUCTION + STOP + +;********** +SUBTTL TESTS OF BIS FLAG + +;********** + +;THIS TEST VERIFIES THAT JRST 2, CAN CLEAR BIS +;FIRST, BIS IS SET VIA JRST 2, ;THEN, BIS IS CLEARED VIA JRST 2,. +;THE FLAGS ARE SAVED AND BIS IS CHECKED. THIS TEST PASSES IF BIS IS RESET; +;OTHERWISE JRST 2, FAILED TO RESET BIS. + +C26600: SFLAG BIS ;SET BIS FLAG + SFLAG ;*RESET BIS FLAG + JSP .+1 ;SAVE FLAGS + TLNE BIS+37 ;PASS IF BIS FLAG IS RESET + STOP + +;********** + +;THIS TEST VERIFIES THAT JRST 2, CAN SET BIS. +;FIRST, BIS IS SET VIA JRST 2, AND THE FLAGS ARE SAVED. +;BIS IS THEN CHECKED. IF BIS IS SET, THIS TEST PASSES. + +C26700: SFLAG BIS ;*SET BIS FLAG VIA JRST + JSP .+1 ;SAVE FLAGS + TLNN BIS ;PASS IF BIS FLAG IS SET + STOP + +;********** +;THIS TEST VERIFIES THAT JSR ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN JSR IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSR, THIS TEST PASSES. + +C27000: SFLAG BIS ;SET BIS + JSR .+1 ;*JSR SHOULD RESET BIS + 0 ;JSR SAVES FLAGS HERE + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** + +;THIS TEST VERIFIES THAT JSP ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN JSP IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSP, THIS TEST PASSES. + +C27001: SFLAG BIS ;SET BIS + JSP .+1 ;*JSP SHOULD RESET BIS + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** +;THIS TEST VERIFIES THAT THE BITS IN POSITIONS 8, 9 AND 10 ARE CLEARABLE. +;FIRST, THE ARITHMETIC FLAGS ARE CLEARED; +;THEN, BITS 8, 9 AND 10 OF THE PC-WORD IS EXAMINED. +;IF ANY OF THESE BITS ARE SET, THIS TEST FAILS BECAUSE THEY SHOULD BE CLEAR. + +C27100: SFLAG ;CLEAR ARITHMETIC FLAGS + JSP .+1 ;SAVE FLAGS + TLNE 1600 ;PASS IF THESE BITS ARE CLEAR + STOP + +;********** +SUBTTL TEST OF MSCL FWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT MOVEM PLACES C(AC) INTO E AND DOES +;NOT MODIFY C(AC). +;IN THIS CASE, C(AC)=252525,,252525 ANS C(E)=707070,,707070. +;HENCE, THE RESULT IN E SHOULD BE 252525,,252525. +;THE AC IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS +;FOUND IN THE AC, IT WAS CLOBBERED BY MOVEM, AND THIS TEST FAILS. +;E IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS FOUND +;IN E, IT WAS UPDATED INCORRECTLY BY MOVEM. + +C50000: MOVE [252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + MOVEM 0,1 ;*MOVEM SHOULD PLACE 252525,,252525 + ;INTO E AND NOT AFFECT THE AC + CAME 0,[252525,,252525] ;PASS IF C(AC) IS NOT CLOBBERED + STOP + CAME 1,[252525,,252525] ;PASS IF E WAS UPDATED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVES PLACES C(E) INTO THE AC IF AC IS NON-ZERO. +;IN THIS CASE, C(AC)=707070,,707070 AND C(E)=123456,,123456. HENCE, BOTH +;THE AC AND E SHOULD CONTAIN 123456,,123456 AFTER MOVES IS EXECUTED. +;BOTH AC AND E ARE CHECKED FOR 123456,,123456. IF EITHER AC OR E +;CONTAIN A DIFFERENT RESULT, THIS TEST FAILS + +C50100: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVE 1,[123456,,123456] ;PRELOAD E WITH 123456,,123456 + MOVES 2,1 ;*MOVES SHOULD PLACE 123456,,123456 + ;INTO BOTH AC AND E + CAME 2,[123456,,123456] ;PASS IF C(AC)=123456,,123456 + STOP + CAME 1,[123456,,123456] ;PASS IF C(E)=123456,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVES IS A NO-OP IF AC=0 +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=707070,,707070 +;AFTER MOVES IS EXECUTED, AC AND E ARE CHECKED FOR THEIR ORIGINAL DATA. +;IF EITHER C(AC) OR C(E) CHANGED AS A RESULT OF MOVES, THIS TEST FAILS. + +C50110: MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + SETO ;PRELOAD AC WITH -1,,-1 + MOVES 0,1 ;*MOVES SHOULD FUNCTION AS A NO-OP + CAME 0,[-1,,-1] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + CAME 1,[707070,,707070] ;PASS IF C(E) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVSI LOADS THE WORD E,0 INTO THE AC. +;IN THIS CASE, C(AC)=707070,,707070 AND E=0,,-1. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,0. +;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES. + +C50200: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVSI 1,-1 ;*MOVSI SHOULD PLACE -1,,0 INTO THE AC + CAME 1,[-1,,0] ;PASS IF C(AC)=1,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT +;IN E SHOULD BE 0,,1 + +C50300: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + MOVNM 1,2 ;*MOVNM SHOULD PLACE 0,,1 INTO E + ;AND NOT AFFTECT C(AC) + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAIE 2,1 ;PASS IF C(E)=0,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT +;IN E SHOULD BE 0,,1 + +C50301: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + MOVEM 2,E50301 + MOVNM 1,E50301 ;*MOVNM SHOULD PLACE 0,,1 INTO E + ;AND NOT AFFTECT C(AC) + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + MOVE 2,E50301 + CAIE 2,1 ;PASS IF C(E)=0,,1 + STOP + + SKIPA ;GO TO NEXT TEST +E50301: 0 ;TESTED MEMORY LOCATION + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, +;C(AC)=0 AND C(E)=0,,1 +;HENCE, THE RESULT IN THE AC SHOULD BE 0 +;AND THE RESULT IN E SHOULD BE -1,,-1 + +C50400: SETZ ;CLEAR AC + MOVEI 2,1 ;PRELOAD E WITH 0,,1 + MOVNS 0,2 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + ;AND SHOULD NOT AFFECT THE AC + SKIPE ;PASS IF THE AC IS UNALTERED + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZO. IN THIS CASE, AC=0, +;C(AC)=0 AND C(E)=0,,1 +;HENCE, THE RESULT IN THE AC SHOULD BE 0 +;AND THE RESULT IN E SHOULD BE -1,,-1 + +C50401: SETZ ;CLEAR AC + MOVEI 2,1 ;PRELOAD E WITH 0,,1 + MOVEM 2,E50401 + MOVNS 0,E50401 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + ;AND SHOULD NOT AFFECT THE AC + SKIPE ;PASS IF THE AC IS UNALTERED + STOP + MOVE 2,E50401 + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + + SKIPA ;GO TO NEXT TEST +E50401: 0 ;TESTED MEMORY LOCATION + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, +;C(AC=0 AND C(E)=3 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,3 +;AND THE RESULT IN E SHOULD BE -1,,3. + +C50410: SETZ 1, ;CLEAR AC + MOVEI 2,3 ;PRELOAD WITH 0,,3 + MOVNS 1,2 ;*MOVNS SHOULD PLACE -1,,-3 INTO E + ;AND -1,,-3 INTO THE AC + CAME 1,[-1,,-3] ;PASS IF C(AC)=-1,,-3 + STOP + CAME 2,[-1,,-3] ;PASS IF C(E)=-1,,-3 + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVMI MOVES THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=0 AND E=0,,-2. HENCE, THE RESULT IN THE AC +;SHOULD BE 0,,-2. + +C50500: SETZ 1, ;CLEAR AC + MOVMI 1,-2 ;*MOVMI SHOULD PLACE 0,,-2 INTO AC + CAIE 1,-2 ;PASS IF C(AC)=0,,-2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVM MOVES THE MAGNITUDE OF C(E) NTO THE AC. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-2. HENCE, THE RESULT IN THE AC +;SHOULD BE 0,,2. + +C50501: SETZ 1, ;CLEAR AC + MOVE 3,[-2] ;PRELOAD E WITH -1,,-2 + MOVM 1,3 ;*MOVM SHOULD PLACE 0,,2 INTO AC + CAIE 1,2 ;PASS IF C(AC)=0,,2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVMM PLACES THE MAGNITUDE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-2 AND C(E)=0. HENCE, THE +;RESULT IN E SHOULD BE 0,,2 AND C(AC) SHOULD REMAIN UNCHANGED. + +C50600: MOVE 1,[-1,,-2] ;PRELOAD AC WITH -1,,-2 + SETZ 2, ;CLEAR E + MOVMM 1,2 ;*MOVMM SHOULD PLACE 0,,2 INTO E + ;AND SHOULD NOT CHANGE C(AC) + CAME 1,[-1,,-2] ;PASS IF C(AC) IS NOT ALTERED + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** + +;THIS TEST VERIFIES THAT MONMS PLACES THE MAGNITUDE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, C(AC)=0 +;AND C(E)=-1,,-2. +;HENCE, THE RESULT IN THE AC SHOULD BE 0 AND THE RESULT IN +;E SHOULD BE 0,,2. + +C50700: SETZ ;CLEAR AC + MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-1 + MOVMS 0,2 ;*MOVMS SHOULD PLACE 0,,1 INTO E + ;AND SHOULD NOT CHANGE C(AC) + SKIPE ;PASS IF C(AC) IS UNALTERED + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVMS PLACES THE MAGNITUDE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, C(AC)=-1,,-1 +;AND C(E)=-1,,-2. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,2 AND THE RESULT +;IN E SHOULD BE 0,,2. + +C50710: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-2 + MOVMS 1,2 ;*MOVMS SHOULD PLACE 0,,2 INTO E + ;AND SHOULD PLACE 0,,2 INTO THE AC + CAIE 1,2 ;PASS IF C(AC)=0,,2 + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** +SUBTTL TEST OF MSCL ADD/SUB INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SUBI SUBTRACTS THE WORD 0,,E FROM C(AC) +;AND PLACES THE RESULT INTO THE AC. IN THIS CASE, C(AC)=70 AND +;E=0,,2. HENCE, THE RESULT IN THE AC SHOULD BE 66. + +C51000: MOVEI 1,70 ;PRELOAD AC WITH 70 + SUBI 1,2 ;*SUBI SHOULD PLACE 66 INTO AC + CAIE 1,66 ;PASS IF C(AC)=66 + STOP + +;********** + +;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, +;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND +;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + +C51100: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH 0,,37 + SUBM 1,2 ;*SUBM SHOULD PLACE + ;0,,41 INTO E AND NOT CHANGE C(AC) + CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + +;********** +;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, +;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND +;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + +C51101: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH 0,,37 + MOVEM 2,E51101 + SUBM 1,E51101 ;*SUBM SHOULD PLACE + ;0,,41 INTO E AND NOT CHANGE C(AC) + CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + STOP + MOVE 2,E51101 + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + + SKIPA ;GO TO NEXT TEST +E51101: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, +;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH +;AC AND E SHOULD BE 0,,41. + +C51200: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH O,,37 + SUBB 1,2 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + CAIE 1,41 ;PASS IF C(AC)=0,,41 + STOP + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + +;********** + +;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, +;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH +;AC AND E SHOULD BE 0,,41. + +C51201: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH O,,37 + MOVEM 2,E51201 + SUBB 1,E51201 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + CAIE 1,41 ;PASS IF C(AC)=0,,41 + STOP + MOVE 2,E51201 + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + + SKIPA ;GO TO NEXT TEST +E51201: 0 ;TEST WORD MEMORY + +;********** +SUBTTL TEST OF MSCL CAIX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. +;IN THIS CASE, C(AC)=0,,1 AND E=0,,2 +;HENCE, CAIL SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIL SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51300: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,2. +;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51310: MOVEI 1,2 ;PRELOAD AC WITH 0,,2 + CAIL 1,2 ;*CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIL DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E +;IN THIS CASE, C(AC)=0,,3 AND E=0,,2 +;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51320: MOVEI 1,3 ;PRELOAD AC WITH 0,,3 + CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIL DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=-1,,-1 AND E=0 +;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION +;IF CAILE SKIPS THE NEXT INSTRUCTION, THE TEST PASSES + +C51400: SETO 1, ;PRELOAD AC WITH -1,,-1 + CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0 AND E=0 +;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAILE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51410: SETZ 1, ;PRELOAD AC WITH 0 + CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION. + STOP + +;********** + +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0,,1 AND E=0 +;HENCE, CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAILE DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES + +C51420: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAILE 1,0 ;*CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAILE DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=-1,,-1 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51500: SETO 1, ;PRELOAD AC WITH -1,,-1 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=0 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51510: SETZ 1, ;PRELOAD AC WITH 0 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=0,,1 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51520: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. +;IN THIS CASE, C(AC)=0,,5 AND E=0,,6 +;HENCE, CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIGE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C51600: MOVEI 2,5 ;PRELOAD AC WITH 0,,5 + CAIGE 2,6 ;*CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIGE DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0,,6 AND E=0,,6 +;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51610: MOVEI 2,6 ;PRELOAD AC WITH 0,,6 + CAIGE ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. +;IN THIS CASE, C(AC)=0,,7 AND E=0,,6 +;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51620: MOVEI 2,7 ;PRELOAD AC WITH 0,,7 + CAIGE 2,6 ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIRIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0 AND E=0,,1 +;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51700: SETZ 6, ;PRELOAD AC WITH 0 + CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0,,1 AND E=0,,1 +;HENCE, CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIN DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C51710: MOVE 6,1 ;PRELOAD AC WITH 0,,1 + CAIN 6,1 ;*CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIN SKIPS + STOP + +;********** +;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,1 +;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51720: MOVEI 6,2 ;PRELOAD AC WITH + CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,3. +;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C52000: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIG DID NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,3 AND E=0,,3. +;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES. + +C52010: MOVEI 11,3 ;PRELOAD AC WITH 0,,3 + CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIG DID NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,4 AND E=0,,3. +;HENCE, CAIG SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52020: MOVEI 11,4 ;PRELOAD AC WITH 0,,4 + CAIG 11,3 ;*CAIG SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +SUBTTL TEST OF MSCL CAMX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAT OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0 +;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETZ 2, ;PRELOAD E WITH 0 + CAMLE 1,2 ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=0 AND C(E)=0 +;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C52110: SETZ 1, ;CLEAR AC + CAMLE 1,[0] ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=0,,1 AND C(E)=0 +;HENCE, CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMLE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52120: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + SETZ 2, ;PRELOAD E WITH 0 + CAMLE 1,2 ;*CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAMLE DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-2 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. + SKIPA ;PASS IF CAMG DOES NOT SKIP + STOP +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-2. +;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. + +C52205: HRROI 10,-1 ;PRELOAD AC WITH -1,,-1 + CAMG 10,[-1,,-2] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION. + STOP +;********** +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. +C52210: SETO 10, ;PRELOAD AC WITH -1,,-1. + CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAMG DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52220: SETZ 10, ;PRELOAD AC WITH 0 + CAMG 10,[-1,,-1] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +SUBTTL TEST OF MSCL JUMPX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND +;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR +;EQUAL TO 0. IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPLE SHOULD JUMP. + +C52300: SETO 17, ;PRELOAD AC WITH -1,,-1 + JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND +;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR +;EQUAL TO 0. IN THIS CASE, C(AC)=0. HENCE, JUMPLE SHOULD JUMP. + +C52310: SETZ 17, ;PRELOAD AC WITH 0 + JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + STOP + +;********** +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND JUMPS +;TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO +;0. IN THIS CASE, C(AC)=0,,1. HENCE, JUMPLE SHOULD NOT JUMP. + +C52320: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + JUMP 17,.+2 ;*JUMPLE SHOULD NOT JUMP + SKIPA ;PASS IF JUMPLE DOES NOT JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPGE SHOULD NOT JUMP. + +C52400: SETO 16, ;PRELOAD AC WITH -1,,-1 + JUMPGE 16,.+2 ;*JUMPGE SHOULD NOT JUMP + SKIPA ;PASS IF JUMPGE DOES NOT JUMP + STOP + +;********** +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH O AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0. HENCE, JUMPGE SHOULD JUMP. + +C52410: SETZ 16, ;PRELOAD AC WITH 0 + JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,1. HENCE, JUMPGE SHOULD JUMP. + +C52420: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + STOP + +;********** +SUBTTL TEST OF MSCL AOJX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND PLACES +;THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED +;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) +;IS LESS THAN 0. IN THIS CASE, C(AC)=-1,,-2 BEFORE INCREMENTING. +;HENCE, AOJL SHOULD JUMP. + +C52500: HRROI 15,-2 ;PRELOAD AC WITH -1,,-2 + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) AND JUMP + STOP + CAME 15,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD NOT JUMP + +C52510: SETO 15, ;PRELOAD AC WITH + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJL DID NOT JUMP + STOP + CAIE 15,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJL SHOULD NOT JUMP + +C52520: SETZ 15, ;PRELOAD AC WITH 0 + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJL DID NOT JUMP + STOP + CAIE 15,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJE SHOULD NOT JUMP + +C52600: HRROI 14,-2 ;PRELOAD AC WITH -1,,-2 + AOJE 14,.+2 ;*AOJE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJE DID NOT JUMP + STOP + CAME 14,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING. +;HENCE, AOJE SHOULD JUMP + +C52610: SETO 14, ;PRELOAD AC WITH -1,,-1 + AOJE 14,.+2 ;*AOJ SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 14,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJE SHOULD NOT JUMP + +C52620: SETZ 14, ;PRELOAD AC WITH 0 + AOJE 14,.+2 ;*AOJE SHOULD ADD 0,11 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJE DID NOT JUMP + STOP + CAIE 14,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO TLE$EC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJLE SHOULD + +C52700: HRROI 13,-2 ;PRELOAD AC WITH -1,,-2 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 13,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJLE SHOULD JUMP. + +C52710: SETO 13, ;PRELOAD AC WITH -1,,-1 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 13,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 +;HENCE, AOJLE SHOULD NOT JUMP. + +C52720: SETZ 13, ;PRELOAD AC WITH 0 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJLE DID NOT JUMP + STOP + CAIE 13,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53000: HRROI 12,-2 ;PRELOAD AC WITH -1,,-2 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 12,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53010: SETO 12, ;PRELOAD AC WITH -1,,-1 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 12,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53020: SETZ 12, ;PRELOAD AC WITH 0 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 12,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJGE SHOULD NOT JUMP + +C53100: HRROI 11,-2 ;PRELOAD AC WITH -1,,-2 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJGE DID NOT JUMP + STOP + CAME 11,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD JUMP + +C53110: SETO 11, ;PRELOAD AC WITH -1,,-1 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 11,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJGE SHOULD JUMP + +C53120: SETZ 11, ;PRELOAD AC WITH 0 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 11,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJN SHOULD JUMP + +C53200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 10,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD NOT JUMP. + +C53210: SETO 10, ;PRELOAD AC WITH -1,,-1 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJN DID NOT JUMP + STOP + CAIE 10,0 ;PASS IF C(AC) INCREMENTED CORRRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJN SHOULD JUMP. + +C53220: SETZ 10, ;PRELOAD AC WITH 0 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 10,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE REAULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INC +;HENCE, AOJG SHOULD NOT JUMP + +C53300: HRROI 7,-2 ;PRELOAD AC WITH -1,,-2 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,11 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJG DID NOT JUMP + STOP + CAME 7,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJG SHOULD NOT JUMP. + +C53310: SETO 7, ;PRELOAD AC WITH -1,,-1 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJG DID NOT JUMP + STOP + CAIE 7,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJG SHOULD JUMP + +C53320: SETZ 7, ;PRELOAD AC WITH 0 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 7,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +SUBTTL TEST OF MSCL AOSX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53400: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53401: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + MOVEM 7,E53401 + AOSL 6,E53401 ;*AOSL SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + MOVE 7,E53401 + CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + + SKIPA ;GO TO NEXT TEST +E53401: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) ISLESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53410: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 7, ;PRELOAD E WITH -1,,-1 + AOSL 6,7 ;*AOSL SHOULD ADD 00,1 TO C(E) + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSL DID NOT SKIP + STOP + CAME 7,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C53420: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 7, ;PRELOAD E WITH 0 + AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E). + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSL DID NOT SKIP + STOP + CAME 7,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53500: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 6,-2 ;PRELOAD E WITH -1,,-2 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSE DID NOT SKIP + STOP + CAME 6,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53510: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 6, ;PRELOAD E WITH -1,,-1 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(AC)=0 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C53520: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 6, ;PRELOAD E WITH 0 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSE DID NOT SKIP + STOP + CAME 6,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53600: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 5,-2 ;PRELOAD E WITH -1,,-2 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP ZERO + STOP + CAME 5,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53610: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETOM 5, ;PRELOAD E WITH -1,,-1 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + ;UPDATE AC AND SKIP + STOP + CAME 5,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C53620: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 5 ;PRELOAD E WITH 0 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSLE DID NOT SKIP + STOP + CAME 5,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53700: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 4,-2 ;PRELOAD E WITH -1,,-2 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C53710: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 4, ;PRELOAD E WITH -1,,-1 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOS INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C53720: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 4, ;PRELOAD E WITH 0 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY + +C54000: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 3,-2 ;PRELOAD E WITH -1,,-2 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSGE DID NOT SKIP + STOP + CAME 3,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C54010: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 3, ;PRELOAD E WITH 0 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 3,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C54020: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 3, ;PRELOAD E WITH 0 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 3,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY + +C54100: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 2,-2 ;PRELOAD E WITH -1,,-2 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 2,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C54110: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 2, ;PRELOAD E WITH -1,,-1 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSN DID NOT SKIP + STOP + CAME 2,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C54120: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 2, ;PRELOAD E WITH 0 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 2,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEST INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 +;RESPECTIVELY + +C54200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 1,-2 ;PRELOAD E WITH -1,,-2 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND NOT SKIP + SKIPA ;PASS IF AOSG DID NOT SKIP + STOP + CAME 1,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY + +C54210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 1, ;PRELOAD E WITH -1,,-1 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND NOT SKIP + SKIPA ;PASS IF AOSG DID NOT SKIP + STOP + CAME 1,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;*********** +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 +;RESPECTIVELY + +C54220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 1, ;PRELOAD E WITH 0 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND SKIP + STOP + CAME 1,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** +SUBTTL TEST OF MSCL SOJX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESTULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJL +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54300: MOVEI 17,0 ;PRELOAD AC WITH 0 + SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 17,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;*********** + +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJL +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C54310: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + SKIPA ;PASS IF SOJL DID NOT JUMP + STOP + CAME 17,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0 +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJ +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54320: MOVEI 17,2 ;PRELOAD AC WITH 0,,2 + SOJL 17,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJL DID NOT JUMP + STOP + CAME 17,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54400: MOVEI 16,0 ;PRELOAD AC WITH 0 + SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJE DID NOT JUMP + STOP + CAME 16,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJ +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54410: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 16,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54420: MOVEI 16,2 ;PRELOAD AC WITH 0,,2 + SOJE 16,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJE DID NOT JUMP + STOP + CAME 16,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54500: MOVEI 15,0 ;PRELOAD AC WITH 0 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 15,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUALTO 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54510: MOVEI 15,1 ;PRELOAD AC WITH 0,,1 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 15,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54520: MOVEI 15,2 ;PRELOAD AC WITH 0,,2 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF SOJLE DID NOT JUMP + STOP + CAME 15,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54600: MOVEI 14,0 ;PRELOAD AC WITH 0 + SOJA 14,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54610: MOVEI 14,1 ;PRELOAD AC WITH 0,,1 + SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54620: MOVEI 14,2 ;PRELOAD AC WITH 0,,2 + SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJGE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54700: MOVEI 13,0 ;PRELOAD A C WITH 0 + SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF SOJGE DID NOT JUMP + STOP + CAME 13,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJGE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54710: MOVEI 13,1 ;PRELOAD AC WITH 0,,1 + SOJGE 13,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 13,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND PLACES THE +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED +;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC IS +;GREATER THAN OR EQUAL TO 0. IN THIS CASE, C(AC = 0,,2 BEFORE +;DECREMENTING. HENCE, SOJGE SHOULD JUMP AND THE RESULT IN THE AC SHOULD +;BE 0,,1. + +C54720: MOVEI 13,2 ;PRELOAD AC WITH 0,,2 + SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 13,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE,SOJN +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + +C55000: MOVEI 12,0 ;PRELOAD AC WITH 0 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 12,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED +;BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC) = 0,,1 BEFORE DECREMENTING. HENCE, SOJN +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C55010: MOVEI 12,1 ;PRELOAD AC WITH 0,,1 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJN DID NOT JUMP + STOP + CAME 12,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJN +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + +C55020: MOVEI 12,2 ;PRELOAD AC WITH 0,,2 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 12,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) = 0 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + +C55100: MOVEI 11,0 ;PRELOAD AC WITH 0 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJG DID NOT JUMP + STOP + CAME 11,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C55110: MOVEI 11,1 ;PRELOAD AC WITH 0,,1 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJG DID NOT JUMP + STOP + CAME 11,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + +C55120: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT O,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 11,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +SUBTTL TEST OF MSCL SOSX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 +;RESPECTIVELY. + +C55200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,0 ;PRELOAD E WITH 0 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E) + ;AND SKIP + STOP + CAME 1,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,1 ;PRELOAD E WITH 0,,1 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP. + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55211: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,1 ;PRELOAD E WITH 0,,1 + MOVEM 1,E55211 + SOSL 0,E55211 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP. + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + MOVE 1,E55211 + CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + + SKIPA ;GO TO NEXT TEST +E55211: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT SOS DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E) 0,,2 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 +;RESPECTIVELY. + +C55220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,2 ;PRELOAD E WITH 0,,2 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP + + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + CAME 1,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55300: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,0 ;PRELOAD E WITH 0 + SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + + SKIPA ;PASS IF SOSE DID NOT SKIP + STOP + CAME 11,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55310: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,1 ;PRELOAD E WITH 0,,1 + SOSE 10,11 ;*SOS SHOULD SUBTRACT 0,,1 FROM C(E) + ;UPDATE AC AND SKIP + STOP + CAME 11,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,11 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55320: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,2 ;PRELOAD E WITH 0,,2 + SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + + SKIPA ;PASS IF SOSE DID NOT SKIP + STOP + CAME 11,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55400: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,0 ;PRELOAD E WITH 0 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 10,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=070707,,070707 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55410: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,1 ;PRELOAD E WITH 0,,1 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 10,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55420: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,2 ;PRELOAD E WITH 0,,2 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSLE DID NOT SKIP + STOP + CAME 10,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55500: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,0 ;PRELOAD E WITH 0 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THEAC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55510: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,1 ;PRELOAD E WITH 0,,1 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55520: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,2 ;PRELOAD E WITH 0,,2 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55600: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,0 ;PRELOAD E WITH 0 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSGE DID NOT SKIP + STOP + CAME 6,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE +;FINAL RESULTS IN ACAND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55610: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,1 ;PRELOAD E WITH 0,,1 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55620: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,2 ;PRELOAD E WITH 0,,2 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55700: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,0 ;PRELOAD E WITH 0 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 5,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55710: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,1 ;PRELOAD E WITH 0,,1 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSN DID NOT SKIP + STOP + CAME 5,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;INtTHIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C55720: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,2 ;PRELOAD E WITH 0,,2 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 5,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[1] ;PASS IF ACWAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIESTHAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C56000: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,0 ;PRELOAD E WITH 0 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSG DID NOT SKIP + STOP + CAME 4,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C56010: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,1 ;PRELOAD E WITH 0,,1 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSG DID NOT SKIP + STOP + CAME 4,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[0] ;PASS IF AC WAS UPDATED IS AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 011, +;RESPECTIVELY. + +C56020: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,2 ;PRELOAD E WITH 0,,2 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + + ;JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakae/DAKAEM.MAC.txt b/apps/pdp10/diags/klad/dakae/DAKAEM.MAC.txt new file mode 100644 index 000000000..77d487cd1 --- /dev/null +++ b/apps/pdp10/diags/klad/dakae/DAKAEM.MAC.txt @@ -0,0 +1,2739 @@ +SUBTTL DIAGNOSTIC SECTION + +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN MONFLG ;SPECIAL USER MODE? + SETZM USER ;YES, CLEAR USER CONTROL WORD + SKIPN USER + JRST STARTA + SKIPL MONCTL + TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) [DAKAE] +/ + + +;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF +;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES +;IN THE FIELD. + +STARTA: JRST .+1 +SUBTTL TEST OF JSR INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JSR STORES THE FLAGS AND PC IN LOCATION E. +;IN THIS CASE, E IS CLEARED, CRY0 IS SET AND JSR IS EXECUTED. +;NEXT, E IS CHECKED FOR ITS CONTENTS NON-ZERO. IF C(E) IS NON-ZERO, +;THIS TEST PASSES. + +C23000: SFLAG CRY0 ;SET CRY0 FLAG + SETZM .+2 ;PRELOAD E WITH 0 + JSR .+1 ;*JSR SHOULD PLACE FLAGS AND PC INTO AC + 0 ;E: PRESET TO 0, SHOULD RECEIVE FLAGS AND PC FROM JSR + SKIPN .-1 ;PASS IF C(E) IS NON-ZERO. + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR IGNORES THE AC FIELD; +;HENCE, IT DOES NOT MODIFY THE SPECIFIED AC. +;IN THIS CASE, CRY0 IS SET. THE AC IS PRELOADED WITH -1,,-1 AND JSR IS EXECUTED. +;THE AC IS THEN CHECKED. IF C(AC)=-1,,-1, THIS TEST PASSES. + +C23100: SFLAG CRY0 ;SET CRY0 + SETO 1, ;PRELOAD AC WITH -1,,-1 + JSR 1,.+1 ;*JSR SHOULD NOT MODIFY THE AC + 0 ;STORE PC + FLAGS HERE + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT JSR STORES THE FLAGS IN E-LEFT HALF. +;IN THIS TEST, CRY0 IS SET, E IS CLEARED AND JSR IS EXECUTED. +;NEXT, C(E-LEFT) ARE PLACED INTO AC0 AND AC0 IS CHECKED FOR ITS CONTENTS NON-ZERO. +;IF C(AC0) ARE NON-ZERO, THIS TEST PASSES. + +C23200: SFLAG CRY0 ;SET CRY0 + SETZM .+2 ;CLEAR E + JSR .+1 ;*JSR SHOULD STORE FLAGS IN E + 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + HLLZ .-1 ;PUT FLAGS INTO AC0 + SKIPN ;PASS IF C(AC0) NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR TRANSFERS CONTROL TO E+1. +;IN THIS CASE, CRY0 IS SET AND E AND AC0 CLEARED; THEN, JSR IS EXECUTED. +;IF JSR RESUMES CONTROL AT E INSTEAD OF E+1, AC0 WILL BE MODIFIED; +;HENCE, THE TEST WILL FAIL WHEN AC0 IS CHECKED FOR 0 BECAUSE +;C(E) IS DECODED AS A MOVE INSTRUCTION. + +C23300: SFLAG CRY0 ;SET CRY0 + SETZB .+2 ;CLEAR AC0 AND E + JSR .+1 ;*JSR SHOULD RESUME CONTROL AT E+1 + 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST) + SKIPE 0 ;PASS IF C(AC0)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT JSR JUMPS TO E+1 +;IN THIS CASE, AC0 IS CLEARED AND CRY0 IS SET; THEN, JSR .+2 IS EXECUTED. +;IF JSR DID NOT JUMP, ONES ARE LOADED WITH AC0; AND THE TEST FAILS. +;OTHERWISE, AC0 REMAINS CLEAR AND THE TEST PASSES + +C23400: SFLAG CRY0 ;SET CRY0 + SETZ ;CLEAR AC0 + JSR .+2 ;*JSR SHOULD JUMP + SETO ;LOAD AC0 WITH ONES IF JSR FAILED TO JUMP + 0 ;STORE FLAGS HERE + SKIPE ;PASS IF JSR JUMPED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC +;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. +;THIS TEST WILL FAIL IF JSR STORES E INSTEAD OF PC IN E - RIGHT HALF. +;IN CASE OF FAILURE, AR PC EN AT ET2 WAS FAULTY. + +C23500: SFLAG 0 ;CLEAR ALL FLAGS + JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + HALT . ;JSR SHOULD SKIP OVER THIS HALT + 0 ;STORE FLAGS AND PC HERE + HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + CAIN .-2 ;FAIL IF C(AC0)=E + STOP + +;********** +;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC +;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION. +;THIS TEST WILL PASS IF JSR STORES PC IN E - RIGHT HALF. + +C23600: JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT + HALT . ;JSR SHOULD SKIP OVER THIS HALT + 0 ;STORE FLAGS AND PC HERE + HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0 + CAIE C23600+1 ;PASS IF C(AC0)=C23600+1 [PC] + STOP + +;********** +SUBTTL TEST OF JSA INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. +;IN THIS TEST, AC1 IS CLEARED AND A CAM 0,0 IS LOADED +;INTO THE AC OF THE JSA INSTRUCTION. +;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH ONES. AC1 IS CHECKED FOR ZEROS. +;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + +C23700: SETZ 1, ;CLEAR AC1 + MOVE [CAM] ;LOAD CAM INTO AC0 + JSA .+2 ;*JSA SHOULD JUMP TO E+1 + SETO 1 ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 0 ;PASS IF JSA JUMPED + SKIPE 1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1. +;IN THIS TEST, AC1 IS CLEARED AND A MOVEI 1,1234 IS LOADED +;INTO THE AC OF THE JSA INSTRUCTION. +;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH 0,,1234. AC1 IS CHECKED FOR ZEROS. +;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP. + +C24000: SETZ 1, ;CLEAR AC1 + MOVE [MOVEI 1,1234] ;LOAD MOVEI 1,1234 INTO AC + JSA .+1 ;*JSA SHOULD JUMP TO E+1 + 0 ;JSA SHOULD JUMP OVER THIS LOCATION + CAIN 1,1234 ;FAIL IF JSA DID NOT JUMP OVER PREVIOUS INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS PC OF LOC OF JSA+1 INTO AC RIGHT. +;THIS TEST WILL FAIL IF JSA LOADS E INTO AC RIGHT INSTEAD OF PC. + +C24100: JSA .+2 ;*JSA SHOULD LOAD PC INTO AC RIGHT + HALT . ;JSA SHOULD JUMP OVER THIS LOCATION + 0 ;JSA SHOULD JUMP OVER THIS LOCATION + HRRZM 1 ;PUT C(AC-RIGHT) INTO AC1 + CAIN 1,.-2 ;FAIL IF E WAS LOADED INTO AC-RIGHT INSTEAD OF PC + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA PLACES C(AC) INTO E +;THIS TEST WILL FAIL IF EITHER 0,,E OR 0,,PC IS LOADED +;INTO E INSTEAD OF C(AC) + +C24200: SETZB .+2 ;CLEAR AC,E + JSA .+1 ;*JSA SHOULD LOAD C(AC) [ZEROS] INTO E + 0 ;JSA SHOULD PLACE ZEROS HERE + MOVE 1,.-1 ;SAVE C(AC) + CAIN 1,.-2 ;FAIL IF JSA LOADED 0,,E OR 0,,PC INTO E + STOP + +;********** +;THIS TEST VERIFIES THAT JSA PLACES PC INTO AC-RIGHT +;THIS TEST WILL FAIL IF PC IS NOT LOADED INTO AC-RIGHT + +C24300: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + JSA .+1 ;*JSA SHOULD PLACE E,,PC INTO THE AC + 0 ;JSA SHOULD PLACE C(AC) HERE + TRNN -1 ;FAIL IF AR LT AR RT EN FAILED + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA PLACES THE PC OF THE LOCATION OF JSA+1 IN AC-RIGHT +;THIS TEST FAILS IF A PC WAS NOT LOADED INTO AC RIGHT + +C24400: SETZ ;CLEAR AC + JSA .+1 ;*JSA SHOULD LOAD PC INTO AC - RIGHT + 0 ;JSA SHOULD PLACE C(AC) HERE + TRNN -1 ;PASS IF AC - RIGHT IS NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT JSA PLACES IN AC-LEFT +;THIS TEST FAILS IF JSA LOADS PC INSTEAD OF E INTO AC-LEFT + +C24500: JSA .+2 ;*JSA SHOULD LOAD E INTO AC-LEFT + HALT . ;JSA SHOULD JUMP OVER THIS INSTRUCTION + 0 ;E: + HLRZM 1 ;SAVE C(AC - LEFT) + CAIN 1,.-3 ;FAIL IF JSA LOADED PC INSTEAD OF E INTO AC-LEFT + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC +;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, JSA IS EXECUTED. +;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + +C24600: SETO ;PRELOAD AC WITH -1,,-1 + JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 0 ;JSA SHOULD STORE C(AC) HERE, E: + CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC +;FIRST, THE AC IS PRELOADED WITH 0 JSA IS EXECUTED. +;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES + +C24700: SETZ ;PRELOAD AC WITH 0 + JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC + HALT . ;JSA SHOULD JUMP OVER HERE, PC: + 0 ;JSA SHOULD STORE C(AC) HERE, E: + CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; +;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, +;THIS TEST PASSES. + +C25000: SETZ ;CLEAR AC + SETOM .+2 ;PRELOAD E WITH -1,,-1 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + SKIPE .-1 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST PRELOADED WITH -1,,-1 AND E IS CLEARED; +;THEN, JSA IS EXECUTED. E IS CHECKED FOR -1,,-1. IF C(E)=-1,,-1, +;THIS TEST PASSES. + +C25100: SETOB 1 ;PRELOAD AC -1,,-1 + SETZM .+2 ;PRELOAD E WITH 0 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + CAME 1,.-1 ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E. +;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES; +;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0, +;THIS TEST PASSES. + +C25200: MOVEI -1 ;PRELOAD AC WITH 0,,-1 + JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E + 0 ;E: SHOULD GET C(AC) FROM JSA + MOVE 1,.-1 ;PASS IF C(E)=0,,-1 + CAIE 1,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT JSA DOES NOT MODIFY AC+1 +;IN THIS TEST, AC+1 IS PRELOADED WITH -1,,-1; THEN JSA IS EXECUTED +;AC+1 IS THEN CHECKED FOR ITS ORIGINAL CONTENTS, -1,,-1. +;IF C(AC+1)=-1,,-1, THIS TEST PASSES + +C25300: SETOM 1 ;PRELOAD AC+1 WITH -1,,-1 + JSA .+1 ;*JSA SHOULD NOT MODIFY AC+1 + CAM ;JSA SHOULD JUMP OVER THIS, E:PC: + CAME 1,[-1] ;PASS IF AC+1 WAS NOT MODIFIED BY JSA + STOP + +;********** +SUBTTL TEST OF JRA INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25400: MOVE [JRST .+4] ;PRELOAD AC0 WITH JRST .+4 + MOVSI 1,.+2 ;PRELOAD AC WITH E,,0 + JRA 1,.+1 ;*JRA SHOULD JUMP TO NEXT INSTRUCTION + SKIPA ;PASS IF JRA JUMPS TO E + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25500: MOVSI .+3 ;PRELOAD AC WITH E+1 + JRA .+1 ;*JRA SHOULD JUMP TO NEXT SEQUENTIAL INSTRUCTION + SKIPA ;PASS IF JRA JUMPS TO E + STOP + +;********** +;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E +;THIS TEST FAILS IF JRA DOES NOT JUMP TO E. + +C25600: SETZB 1 ;PRELOAD AC0, AC1 WITH ZEROS + JRA .+2 ;*JRA SHOULD JUMP OVER NEXT SEQUENTIAL INSTRUCTION + SETO 1, ;LOAD AC1 WITH ONES IF JRA DOES NOT JUMP + SKIPE 1 ;PASS IF JRA JUMPED + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC AND JUMPS TO E +;THIS TEST FAILS IF JRA JUMPS TO E+1 OR DOES NOT LOAD THE AC CORRECTLY. + +C25700: SETZ ;CLEAR AC + JRA .+1 ;*JRA SHOULD PLACE 0 INTO THE AC AND JUMP .+1 + SKIPE ;PASS IF AC WAS LOADED CORRECTLY + ;AND JRA JUMPED CORRECTLY. + STOP + +;********** +;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC +;FIRST, THE AC IS PRELOADED WITH 1,,2 AND AC1 AND AC2 ARE +;INITIALIZED WITH THEIR RESPECTIVE ADDRESSES; JRA IS EXECUTED, AND +;THE AC IS CHECKED FOR 0,,1, THE ORIGINAL C(C(AC-LEFT)). IF C(AC)=0,,1, +;THIS TEST PASSES + +C26200: MOVE [XWD 1,2] ;PRELOAD AC WITH 1,,2 + MOVEI 1,1 ;INITIALIZE AC1 WITH 0,,1 + MOVEI 2,2 ;INITIALIZE AC2 WITH 0,,2 + JRA .+1 ;*JRA SHOULD PLACE 0,,1 INTO THE AC + CAIE 1 ;PASS IF C(AC)=0,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA CAN RESTORE AC0 FROM AC0 WHEN AC0 IS THE +;SPECIFIED AC AND C(AC0-LEFT)=0. +;FIRST, AC0 IS PRELOADED AND JRA IS EXECUTED. THEN, AC0 IS CHECKED FOR +;ITS INITIAL CONTENTS. IF THE RESULT IN AC0, IS CORRECT, THIS TEST PASSES. + +C26300: HRRZI [135531,,246642] ;PRELOAD AC0 WITH 0,, LITERAL ADDRESS + JRA .+1 ;*JRA SHOULD PLACE C(AC0) INTO AC0 + CAIE [135531,,246642] ;PASS IF JRA PLACED C(AC0) INTO AC0 + STOP + +;********** +;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE +;SPECIFIED AC. +;FIRST, AC0 IS PRELOADED WITH [LITERAL ADDRESS ,,0] AND JRA IS EXECUTED. THEN, +;AC0 IS CHECKED FOR THE SPECIFIED LITERAL, 135246,,246135. IF +;C(AC0)=135246,,246135, THE TEST PASSES. + +C26400: HRLZI [135246,,246135] ;PRELOAD AC0 WITH [LITERAL ADDRESS ,,0] + JRA .+1 ;*JRA SHOULD PLACE 135246,,246135 INTO AC0 + CAME [135246,,246135];PASS IF C(AC0)=135246,,246135 + STOP + +;********** + +;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE +;SPECIFIED AC. +;FIRST, AC0 IS PRELOADED WITH [-1,, ADDRESS OF JCA INSTRUCTION] AND JRA IS EXECUTED. +;THEN, AC0 IS CHECKED FOR THE JRA INSTRUCTION. IF +;C(AC0)= THE JRA INSTRUCTION, THE TEST PASSES. + +C26500: HRLOI .+1 ;PRELOAD AC WITH -1,, ADDRESS OF JRA INSTRUCTION + JRA .+1 ;*JRA SHOULD PLACE ITSELF INTO AC0 + CAME .-1 ;PASS IF AC CONTAINS JRA INSTRUCTION + STOP + +;********** +SUBTTL TESTS OF BIS FLAG + +;********** + +;THIS TEST VERIFIES THAT JRST 2, CAN CLEAR BIS +;FIRST, BIS IS SET VIA JRST 2, ;THEN, BIS IS CLEARED VIA JRST 2,. +;THE FLAGS ARE SAVED AND BIS IS CHECKED. THIS TEST PASSES IF BIS IS RESET; +;OTHERWISE JRST 2, FAILED TO RESET BIS. + +C26600: SFLAG BIS ;SET BIS FLAG + SFLAG ;*RESET BIS FLAG + JSP .+1 ;SAVE FLAGS + TLNE BIS+37 ;PASS IF BIS FLAG IS RESET + STOP + +;********** + +;THIS TEST VERIFIES THAT JRST 2, CAN SET BIS. +;FIRST, BIS IS SET VIA JRST 2, AND THE FLAGS ARE SAVED. +;BIS IS THEN CHECKED. IF BIS IS SET, THIS TEST PASSES. + +C26700: SFLAG BIS ;*SET BIS FLAG VIA JRST + JSP .+1 ;SAVE FLAGS + TLNN BIS ;PASS IF BIS FLAG IS SET + STOP + +;********** +;THIS TEST VERIFIES THAT JSR ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN JSR IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSR, THIS TEST PASSES. + +C27000: SFLAG BIS ;SET BIS + JSR .+1 ;*JSR SHOULD RESET BIS + 0 ;JSR SAVES FLAGS HERE + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** + +;THIS TEST VERIFIES THAT JSP ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN JSP IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSP, THIS TEST PASSES. + +C27001: SFLAG BIS ;SET BIS + JSP .+1 ;*JSP SHOULD RESET BIS + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** +;THIS TEST VERIFIES THAT THE BITS IN POSITIONS 8, 9 AND 10 ARE CLEARABLE. +;FIRST, THE ARITHMETIC FLAGS ARE CLEARED; +;THEN, BITS 8, 9 AND 10 OF THE PC-WORD IS EXAMINED. +;IF ANY OF THESE BITS ARE SET, THIS TEST FAILS BECAUSE THEY SHOULD BE CLEAR. + +C27100: SFLAG ;CLEAR ARITHMETIC FLAGS + JSP .+1 ;SAVE FLAGS + TLNE 1600 ;PASS IF THESE BITS ARE CLEAR + STOP + +;********** +SUBTTL TEST OF MSCL FWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT MOVEM PLACES C(AC) INTO E AND DOES +;NOT MODIFY C(AC). +;IN THIS CASE, C(AC)=252525,,252525 ANS C(E)=707070,,707070. +;HENCE, THE RESULT IN E SHOULD BE 252525,,252525. +;THE AC IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS +;FOUND IN THE AC, IT WAS CLOBBERED BY MOVEM, AND THIS TEST FAILS. +;E IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS FOUND +;IN E, IT WAS UPDATED INCORRECTLY BY MOVEM. + +C50000: MOVE [252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + MOVEM 0,1 ;*MOVEM SHOULD PLACE 252525,,252525 + ;INTO E AND NOT AFFECT THE AC + CAME 0,[252525,,252525] ;PASS IF C(AC) IS NOT CLOBBERED + STOP + CAME 1,[252525,,252525] ;PASS IF E WAS UPDATED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVES PLACES C(E) INTO THE AC IF AC IS NON-ZERO. +;IN THIS CASE, C(AC)=707070,,707070 AND C(E)=123456,,123456. HENCE, BOTH +;THE AC AND E SHOULD CONTAIN 123456,,123456 AFTER MOVES IS EXECUTED. +;BOTH AC AND E ARE CHECKED FOR 123456,,123456. IF EITHER AC OR E +;CONTAIN A DIFFERENT RESULT, THIS TEST FAILS + +C50100: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVE 1,[123456,,123456] ;PRELOAD E WITH 123456,,123456 + MOVES 2,1 ;*MOVES SHOULD PLACE 123456,,123456 + ;INTO BOTH AC AND E + CAME 2,[123456,,123456] ;PASS IF C(AC)=123456,,123456 + STOP + CAME 1,[123456,,123456] ;PASS IF C(E)=123456,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVES IS A NO-OP IF AC=0 +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=707070,,707070 +;AFTER MOVES IS EXECUTED, AC AND E ARE CHECKED FOR THEIR ORIGINAL DATA. +;IF EITHER C(AC) OR C(E) CHANGED AS A RESULT OF MOVES, THIS TEST FAILS. + +C50110: MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070 + SETO ;PRELOAD AC WITH -1,,-1 + MOVES 0,1 ;*MOVES SHOULD FUNCTION AS A NO-OP + CAME 0,[-1,,-1] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + CAME 1,[707070,,707070] ;PASS IF C(E) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVSI LOADS THE WORD E,0 INTO THE AC. +;IN THIS CASE, C(AC)=707070,,707070 AND E=0,,-1. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,0. +;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES. + +C50200: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVSI 1,-1 ;*MOVSI SHOULD PLACE -1,,0 INTO THE AC + CAME 1,[-1,,0] ;PASS IF C(AC)=1,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT +;IN E SHOULD BE 0,,1 + +C50300: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + MOVNM 1,2 ;*MOVNM SHOULD PLACE 0,,1 INTO E + ;AND NOT AFFTECT C(AC) + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAIE 2,1 ;PASS IF C(E)=0,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT +;IN E SHOULD BE 0,,1 + +C50301: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3 + MOVEM 2,E50301 + MOVNM 1,E50301 ;*MOVNM SHOULD PLACE 0,,1 INTO E + ;AND NOT AFFTECT C(AC) + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + MOVE 2,E50301 + CAIE 2,1 ;PASS IF C(E)=0,,1 + STOP + + SKIPA ;GO TO NEXT TEST +E50301: 0 ;TESTED MEMORY LOCATION + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, +;C(AC)=0 AND C(E)=0,,1 +;HENCE, THE RESULT IN THE AC SHOULD BE 0 +;AND THE RESULT IN E SHOULD BE -1,,-1 + +C50400: SETZ ;CLEAR AC + MOVEI 2,1 ;PRELOAD E WITH 0,,1 + MOVNS 0,2 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + ;AND SHOULD NOT AFFECT THE AC + SKIPE ;PASS IF THE AC IS UNALTERED + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZO. IN THIS CASE, AC=0, +;C(AC)=0 AND C(E)=0,,1 +;HENCE, THE RESULT IN THE AC SHOULD BE 0 +;AND THE RESULT IN E SHOULD BE -1,,-1 + +C50401: SETZ ;CLEAR AC + MOVEI 2,1 ;PRELOAD E WITH 0,,1 + MOVEM 2,E50401 + MOVNS 0,E50401 ;*MOVNS SHOULD PLACE -1,,-1 INTO E + ;AND SHOULD NOT AFFECT THE AC + SKIPE ;PASS IF THE AC IS UNALTERED + STOP + MOVE 2,E50401 + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + + SKIPA ;GO TO NEXT TEST +E50401: 0 ;TESTED MEMORY LOCATION + +;********** +;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, +;C(AC=0 AND C(E)=3 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,3 +;AND THE RESULT IN E SHOULD BE -1,,3. + +C50410: SETZ 1, ;CLEAR AC + MOVEI 2,3 ;PRELOAD WITH 0,,3 + MOVNS 1,2 ;*MOVNS SHOULD PLACE -1,,-3 INTO E + ;AND -1,,-3 INTO THE AC + CAME 1,[-1,,-3] ;PASS IF C(AC)=-1,,-3 + STOP + CAME 2,[-1,,-3] ;PASS IF C(E)=-1,,-3 + STOP + +;********** + +;THIS TEST VERIFIES THAT MOVMI MOVES THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=0 AND E=0,,-2. HENCE, THE RESULT IN THE AC +;SHOULD BE 0,,-2. + +C50500: SETZ 1, ;CLEAR AC + MOVMI 1,-2 ;*MOVMI SHOULD PLACE 0,,-2 INTO AC + CAIE 1,-2 ;PASS IF C(AC)=0,,-2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVM MOVES THE MAGNITUDE OF C(E) NTO THE AC. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-2. HENCE, THE RESULT IN THE AC +;SHOULD BE 0,,2. + +C50501: SETZ 1, ;CLEAR AC + MOVE 3,[-2] ;PRELOAD E WITH -1,,-2 + MOVM 1,3 ;*MOVM SHOULD PLACE 0,,2 INTO AC + CAIE 1,2 ;PASS IF C(AC)=0,,2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVMM PLACES THE MAGNITUDE OF C(AC) +;INTO E. IN THIS CASE, C(AC)=-1,,-2 AND C(E)=0. HENCE, THE +;RESULT IN E SHOULD BE 0,,2 AND C(AC) SHOULD REMAIN UNCHANGED. + +C50600: MOVE 1,[-1,,-2] ;PRELOAD AC WITH -1,,-2 + SETZ 2, ;CLEAR E + MOVMM 1,2 ;*MOVMM SHOULD PLACE 0,,2 INTO E + ;AND SHOULD NOT CHANGE C(AC) + CAME 1,[-1,,-2] ;PASS IF C(AC) IS NOT ALTERED + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** + +;THIS TEST VERIFIES THAT MONMS PLACES THE MAGNITUDE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, C(AC)=0 +;AND C(E)=-1,,-2. +;HENCE, THE RESULT IN THE AC SHOULD BE 0 AND THE RESULT IN +;E SHOULD BE 0,,2. + +C50700: SETZ ;CLEAR AC + MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-1 + MOVMS 0,2 ;*MOVMS SHOULD PLACE 0,,1 INTO E + ;AND SHOULD NOT CHANGE C(AC) + SKIPE ;PASS IF C(AC) IS UNALTERED + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** +;THIS TEST VERIFIES THAT MOVMS PLACES THE MAGNITUDE OF C(E) INTO E +;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, C(AC)=-1,,-1 +;AND C(E)=-1,,-2. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,2 AND THE RESULT +;IN E SHOULD BE 0,,2. + +C50710: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-2 + MOVMS 1,2 ;*MOVMS SHOULD PLACE 0,,2 INTO E + ;AND SHOULD PLACE 0,,2 INTO THE AC + CAIE 1,2 ;PASS IF C(AC)=0,,2 + STOP + CAIE 2,2 ;PASS IF C(E)=0,,2 + STOP + +;********** +SUBTTL TEST OF MSCL ADD/SUB INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SUBI SUBTRACTS THE WORD 0,,E FROM C(AC) +;AND PLACES THE RESULT INTO THE AC. IN THIS CASE, C(AC)=70 AND +;E=0,,2. HENCE, THE RESULT IN THE AC SHOULD BE 66. + +C51000: MOVEI 1,70 ;PRELOAD AC WITH 70 + SUBI 1,2 ;*SUBI SHOULD PLACE 66 INTO AC + CAIE 1,66 ;PASS IF C(AC)=66 + STOP + +;********** + +;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, +;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND +;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + +C51100: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH 0,,37 + SUBM 1,2 ;*SUBM SHOULD PLACE + ;0,,41 INTO E AND NOT CHANGE C(AC) + CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + +;********** +;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE, +;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND +;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY. + +C51101: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH 0,,37 + MOVEM 2,E51101 + SUBM 1,E51101 ;*SUBM SHOULD PLACE + ;0,,41 INTO E AND NOT CHANGE C(AC) + CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED + STOP + MOVE 2,E51101 + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + + SKIPA ;GO TO NEXT TEST +E51101: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, +;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH +;AC AND E SHOULD BE 0,,41. + +C51200: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH O,,37 + SUBB 1,2 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + CAIE 1,41 ;PASS IF C(AC)=0,,41 + STOP + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + +;********** + +;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND +;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE, +;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH +;AC AND E SHOULD BE 0,,41. + +C51201: MOVEI 1,100 ;PRELOAD AC WITH 0,,100 + MOVEI 2,37 ;PRELOAD E WITH O,,37 + MOVEM 2,E51201 + SUBB 1,E51201 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E + CAIE 1,41 ;PASS IF C(AC)=0,,41 + STOP + MOVE 2,E51201 + CAIE 2,41 ;PASS IF C(E)=0,,41 + STOP + + SKIPA ;GO TO NEXT TEST +E51201: 0 ;TEST WORD MEMORY + +;********** +SUBTTL TEST OF MSCL CAIX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. +;IN THIS CASE, C(AC)=0,,1 AND E=0,,2 +;HENCE, CAIL SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIL SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51300: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,2. +;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51310: MOVEI 1,2 ;PRELOAD AC WITH 0,,2 + CAIL 1,2 ;*CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIL DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E +;IN THIS CASE, C(AC)=0,,3 AND E=0,,2 +;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51320: MOVEI 1,3 ;PRELOAD AC WITH 0,,3 + CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIL DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=-1,,-1 AND E=0 +;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION +;IF CAILE SKIPS THE NEXT INSTRUCTION, THE TEST PASSES + +C51400: SETO 1, ;PRELOAD AC WITH -1,,-1 + CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0 AND E=0 +;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAILE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51410: SETZ 1, ;PRELOAD AC WITH 0 + CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION. + STOP + +;********** + +;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0,,1 AND E=0 +;HENCE, CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAILE DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES + +C51420: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAILE 1,0 ;*CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAILE DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=-1,,-1 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51500: SETO 1, ;PRELOAD AC WITH -1,,-1 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=0 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51510: SETZ 1, ;PRELOAD AC WITH 0 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS +;SKIPS THE NEXT INSTRUCTION +;IN THIS CASE, C(AC)=0,,1 AND E=0 +;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51520: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. +;IN THIS CASE, C(AC)=0,,5 AND E=0,,6 +;HENCE, CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIGE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C51600: MOVEI 2,5 ;PRELOAD AC WITH 0,,5 + CAIGE 2,6 ;*CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIGE DOES NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E +;IN THIS CASE, C(AC)=0,,6 AND E=0,,6 +;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51610: MOVEI 2,6 ;PRELOAD AC WITH 0,,6 + CAIGE ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E. +;IN THIS CASE, C(AC)=0,,7 AND E=0,,6 +;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51620: MOVEI 2,7 ;PRELOAD AC WITH 0,,7 + CAIGE 2,6 ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIRIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0 AND E=0,,1 +;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C51700: SETZ 6, ;PRELOAD AC WITH 0 + CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0,,1 AND E=0,,1 +;HENCE, CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIN DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C51710: MOVE 6,1 ;PRELOAD AC WITH 0,,1 + CAIN 6,1 ;*CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIN SKIPS + STOP + +;********** +;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,1 +;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C51720: MOVEI 6,2 ;PRELOAD AC WITH + CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,2 AND E=0,,3. +;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES + +C52000: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIG DID NOT SKIP + STOP + +;********** +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,3 AND E=0,,3. +;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES. + +C52010: MOVEI 11,3 ;PRELOAD AC WITH 0,,3 + CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAIG DID NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E. +;IN THIS CASE, C(AC)=0,,4 AND E=0,,3. +;HENCE, CAIG SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAIG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52020: MOVEI 11,4 ;PRELOAD AC WITH 0,,4 + CAIG 11,3 ;*CAIG SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +SUBTTL TEST OF MSCL CAMX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAT OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0 +;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETZ 2, ;PRELOAD E WITH 0 + CAMLE 1,2 ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=0 AND C(E)=0 +;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES + +C52110: SETZ 1, ;CLEAR AC + CAMLE 1,[0] ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E). +;IN THIS CASE, C(AC)=0,,1 AND C(E)=0 +;HENCE, CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMLE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52120: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + SETZ 2, ;PRELOAD E WITH 0 + CAMLE 1,2 ;*CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAMLE DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-2 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. + SKIPA ;PASS IF CAMG DOES NOT SKIP + STOP +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-2. +;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. + +C52205: HRROI 10,-1 ;PRELOAD AC WITH -1,,-1 + CAMG 10,[-1,,-2] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION. + STOP +;********** +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION. +;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES. +C52210: SETO 10, ;PRELOAD AC WITH -1,,-1. + CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF CAMG DOES NOT SKIP + STOP + +;********** + +;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND +;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E). +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. +;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION. +;IF CAMG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES. + +C52220: SETZ 10, ;PRELOAD AC WITH 0 + CAMG 10,[-1,,-1] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION + STOP + +;********** +SUBTTL TEST OF MSCL JUMPX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND +;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR +;EQUAL TO 0. IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPLE SHOULD JUMP. + +C52300: SETO 17, ;PRELOAD AC WITH -1,,-1 + JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND +;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR +;EQUAL TO 0. IN THIS CASE, C(AC)=0. HENCE, JUMPLE SHOULD JUMP. + +C52310: SETZ 17, ;PRELOAD AC WITH 0 + JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP + STOP + +;********** +;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND JUMPS +;TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO +;0. IN THIS CASE, C(AC)=0,,1. HENCE, JUMPLE SHOULD NOT JUMP. + +C52320: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + JUMP 17,.+2 ;*JUMPLE SHOULD NOT JUMP + SKIPA ;PASS IF JUMPLE DOES NOT JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPGE SHOULD NOT JUMP. + +C52400: SETO 16, ;PRELOAD AC WITH -1,,-1 + JUMPGE 16,.+2 ;*JUMPGE SHOULD NOT JUMP + SKIPA ;PASS IF JUMPGE DOES NOT JUMP + STOP + +;********** +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH O AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0. HENCE, JUMPGE SHOULD JUMP. + +C52410: SETZ 16, ;PRELOAD AC WITH 0 + JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO +;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,1. HENCE, JUMPGE SHOULD JUMP. + +C52420: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP + STOP + +;********** +SUBTTL TEST OF MSCL AOJX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND PLACES +;THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED +;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) +;IS LESS THAN 0. IN THIS CASE, C(AC)=-1,,-2 BEFORE INCREMENTING. +;HENCE, AOJL SHOULD JUMP. + +C52500: HRROI 15,-2 ;PRELOAD AC WITH -1,,-2 + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) AND JUMP + STOP + CAME 15,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD NOT JUMP + +C52510: SETO 15, ;PRELOAD AC WITH + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJL DID NOT JUMP + STOP + CAIE 15,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJL SHOULD NOT JUMP + +C52520: SETZ 15, ;PRELOAD AC WITH 0 + AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJL DID NOT JUMP + STOP + CAIE 15,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJE SHOULD NOT JUMP + +C52600: HRROI 14,-2 ;PRELOAD AC WITH -1,,-2 + AOJE 14,.+2 ;*AOJE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJE DID NOT JUMP + STOP + CAME 14,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING. +;HENCE, AOJE SHOULD JUMP + +C52610: SETO 14, ;PRELOAD AC WITH -1,,-1 + AOJE 14,.+2 ;*AOJ SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 14,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJE SHOULD NOT JUMP + +C52620: SETZ 14, ;PRELOAD AC WITH 0 + AOJE 14,.+2 ;*AOJE SHOULD ADD 0,11 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJE DID NOT JUMP + STOP + CAIE 14,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO TLE$EC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJLE SHOULD + +C52700: HRROI 13,-2 ;PRELOAD AC WITH -1,,-2 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 13,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJLE SHOULD JUMP. + +C52710: SETO 13, ;PRELOAD AC WITH -1,,-1 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 13,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 +;HENCE, AOJLE SHOULD NOT JUMP. + +C52720: SETZ 13, ;PRELOAD AC WITH 0 + AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJLE DID NOT JUMP + STOP + CAIE 13,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53000: HRROI 12,-2 ;PRELOAD AC WITH -1,,-2 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 12,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53010: SETO 12, ;PRELOAD AC WITH -1,,-1 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 12,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJA SHOULD JUMP + +C53020: SETZ 12, ;PRELOAD AC WITH 0 + AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 12,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJGE SHOULD NOT JUMP + +C53100: HRROI 11,-2 ;PRELOAD AC WITH -1,,-2 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJGE DID NOT JUMP + STOP + CAME 11,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD JUMP + +C53110: SETO 11, ;PRELOAD AC WITH -1,,-1 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 11,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJGE SHOULD JUMP + +C53120: SETZ 11, ;PRELOAD AC WITH 0 + AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 11,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING +;HENCE, AOJN SHOULD JUMP + +C53200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAME 10,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJ SHOULD NOT JUMP. + +C53210: SETO 10, ;PRELOAD AC WITH -1,,-1 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJN DID NOT JUMP + STOP + CAIE 10,0 ;PASS IF C(AC) INCREMENTED CORRRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJN SHOULD JUMP. + +C53220: SETZ 10, ;PRELOAD AC WITH 0 + AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 10,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE REAULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0 +;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INC +;HENCE, AOJG SHOULD NOT JUMP + +C53300: HRROI 7,-2 ;PRELOAD AC WITH -1,,-2 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,11 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJG DID NOT JUMP + STOP + CAME 7,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING +;HENCE, AOJG SHOULD NOT JUMP. + +C53310: SETO 7, ;PRELOAD AC WITH -1,,-1 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF AOJG DID NOT JUMP + STOP + CAIE 7,0 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING +;HENCE, AOJG SHOULD JUMP + +C53320: SETZ 7, ;PRELOAD AC WITH 0 + AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC) + ;AND JUMP + STOP + CAIE 7,1 ;PASS IF C(AC) INCREMENTED CORRECTLY + STOP + +;********** +SUBTTL TEST OF MSCL AOSX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53400: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53401: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 7,-2 ;PRELOAD E WITH -1,,-2 + MOVEM 7,E53401 + AOSL 6,E53401 ;*AOSL SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + MOVE 7,E53401 + CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + + SKIPA ;GO TO NEXT TEST +E53401: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) ISLESS THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53410: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 7, ;PRELOAD E WITH -1,,-1 + AOSL 6,7 ;*AOSL SHOULD ADD 00,1 TO C(E) + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSL DID NOT SKIP + STOP + CAME 7,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C53420: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 7, ;PRELOAD E WITH 0 + AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E). + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSL DID NOT SKIP + STOP + CAME 7,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53500: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 6,-2 ;PRELOAD E WITH -1,,-2 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSE DID NOT SKIP + STOP + CAME 6,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53510: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 6, ;PRELOAD E WITH -1,,-1 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(AC)=0 +;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C53520: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 6, ;PRELOAD E WITH 0 + AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSE DID NOT SKIP + STOP + CAME 6,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53600: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 5,-2 ;PRELOAD E WITH -1,,-2 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP ZERO + STOP + CAME 5,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C53610: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETOM 5, ;PRELOAD E WITH -1,,-1 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + ;UPDATE AC AND SKIP + STOP + CAME 5,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSLE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C53620: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 5 ;PRELOAD E WITH 0 + AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E) + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSLE DID NOT SKIP + STOP + CAME 5,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 4,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C53700: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 4,-2 ;PRELOAD E WITH -1,,-2 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C53710: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 4, ;PRELOAD E WITH -1,,-1 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOS INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C53720: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 4, ;PRELOAD E WITH 0 + AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY + +C54000: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 3,-2 ;PRELOAD E WITH -1,,-2 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSGE DID NOT SKIP + STOP + CAME 3,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C54010: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 3, ;PRELOAD E WITH 0 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 3,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C54020: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 3, ;PRELOAD E WITH 0 + AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 3,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 2,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY + +C54100: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 2,-2 ;PRELOAD E WITH -1,,-2 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 2,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY + +C54110: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 2, ;PRELOAD E WITH -1,,-1 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF AOSN DID NOT SKIP + STOP + CAME 2,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSN SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C54120: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 2, ;PRELOAD E WITH 0 + AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E), + ;UPDATE AC AND SKIP + STOP + CAME 2,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 1,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEST INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-2 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 +;RESPECTIVELY + +C54200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + HRROI 1,-2 ;PRELOAD E WITH -1,,-2 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND NOT SKIP + SKIPA ;PASS IF AOSG DID NOT SKIP + STOP + CAME 1,[-1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-1 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY + +C54210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETO 1, ;PRELOAD E WITH -1,,-1 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND NOT SKIP + SKIPA ;PASS IF AOSG DID NOT SKIP + STOP + CAME 1,[0] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;*********** +;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, AOSG SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 +;RESPECTIVELY + +C54220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + SETZ 1, ;PRELOAD E WITH 0 + AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E), + ;AND SKIP + STOP + CAME 1,[1] ;PASS IF E INCREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** +SUBTTL TEST OF MSCL SOJX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESTULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJL +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54300: MOVEI 17,0 ;PRELOAD AC WITH 0 + SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 17,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;*********** + +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJL +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C54310: MOVEI 17,1 ;PRELOAD AC WITH 0,,1 + SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC) + SKIPA ;PASS IF SOJL DID NOT JUMP + STOP + CAME 17,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN 0 +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJ +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54320: MOVEI 17,2 ;PRELOAD AC WITH 0,,2 + SOJL 17,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJL DID NOT JUMP + STOP + CAME 17,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54400: MOVEI 16,0 ;PRELOAD AC WITH 0 + SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJE DID NOT JUMP + STOP + CAME 16,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0 +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJ +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54410: MOVEI 16,1 ;PRELOAD AC WITH 0,,1 + SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 16,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54420: MOVEI 16,2 ;PRELOAD AC WITH 0,,2 + SOJE 16,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJE DID NOT JUMP + STOP + CAME 16,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54500: MOVEI 15,0 ;PRELOAD AC WITH 0 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 15,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUALTO 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54510: MOVEI 15,1 ;PRELOAD AC WITH 0,,1 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 15,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJLE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54520: MOVEI 15,2 ;PRELOAD AC WITH 0,,2 + SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF SOJLE DID NOT JUMP + STOP + CAME 15,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54600: MOVEI 14,0 ;PRELOAD AC WITH 0 + SOJA 14,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54610: MOVEI 14,1 ;PRELOAD AC WITH 0,,1 + SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION +;SPECIFIED BY E +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJA +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1 + +C54620: MOVEI 14,2 ;PRELOAD AC WITH 0,,2 + SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 14,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJGE +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1 + +C54700: MOVEI 13,0 ;PRELOAD A C WITH 0 + SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP + SKIPA ;PASS IF SOJGE DID NOT JUMP + STOP + CAME 13,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0 +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJGE +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0 + +C54710: MOVEI 13,1 ;PRELOAD AC WITH 0,,1 + SOJGE 13,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP + STOP + CAME 13,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND PLACES THE +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED +;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC IS +;GREATER THAN OR EQUAL TO 0. IN THIS CASE, C(AC = 0,,2 BEFORE +;DECREMENTING. HENCE, SOJGE SHOULD JUMP AND THE RESULT IN THE AC SHOULD +;BE 0,,1. + +C54720: MOVEI 13,2 ;PRELOAD AC WITH 0,,2 + SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 13,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE,SOJN +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + +C55000: MOVEI 12,0 ;PRELOAD AC WITH 0 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 12,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED +;BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC) = 0,,1 BEFORE DECREMENTING. HENCE, SOJN +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C55010: MOVEI 12,1 ;PRELOAD AC WITH 0,,1 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJN DID NOT JUMP + STOP + CAME 12,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS NON-ZERO. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJN +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + +C55020: MOVEI 12,2 ;PRELOAD AC WITH 0,,2 + SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 12,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC) = 0 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1. + +C55100: MOVEI 11,0 ;PRELOAD AC WITH 0 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJG DID NOT JUMP + STOP + CAME 11,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIRIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0. + +C55110: MOVEI 11,1 ;PRELOAD AC WITH 0,,1 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC) + ;AND NOT JUMP. + SKIPA ;PASS IF SOJG DID NOT JUMP + STOP + CAME 11,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND +;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS +;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION +;SPECIFIED BY E IF C(AC) IS GREATER THAN 0. +;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJG +;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1. + +C55120: MOVEI 11,2 ;PRELOAD AC WITH 0,,2 + SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT O,,1 FROM C(AC) + ;AND JUMP. + STOP + CAME 11,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY + STOP + +;********** +SUBTTL TEST OF MSCL SOSX INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1 +;RESPECTIVELY. + +C55200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,0 ;PRELOAD E WITH 0 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E) + ;AND SKIP + STOP + CAME 1,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,1 ;PRELOAD E WITH 0,,1 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP. + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + +;********** +;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55211: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,1 ;PRELOAD E WITH 0,,1 + MOVEM 1,E55211 + SOSL 0,E55211 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP. + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + MOVE 1,E55211 + CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED + STOP + + SKIPA ;GO TO NEXT TEST +E55211: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT SOS DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E) 0,,2 +;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1 +;RESPECTIVELY. + +C55220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 1,2 ;PRELOAD E WITH 0,,2 + SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E), + ;AND NOT SKIP + + SKIPA ;PASS IF SOSL DID NOT SKIP + STOP + CAME 1,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 0,[707070,,707070] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55300: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,0 ;PRELOAD E WITH 0 + SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + + SKIPA ;PASS IF SOSE DID NOT SKIP + STOP + CAME 11,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0 +;RESPECTIVELY. + +C55310: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,1 ;PRELOAD E WITH 0,,1 + SOSE 10,11 ;*SOS SHOULD SUBTRACT 0,,1 FROM C(E) + ;UPDATE AC AND SKIP + STOP + CAME 11,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,11 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55320: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 11,2 ;PRELOAD E WITH 0,,2 + SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + + SKIPA ;PASS IF SOSE DID NOT SKIP + STOP + CAME 11,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 10,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55400: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,0 ;PRELOAD E WITH 0 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 10,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=070707,,070707 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55410: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,1 ;PRELOAD E WITH 0,,1 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 10,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSLE SHOULD NOT SKIP; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55420: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 10,2 ;PRELOAD E WITH 0,,2 + SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSLE DID NOT SKIP + STOP + CAME 10,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 7,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55500: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,0 ;PRELOAD E WITH 0 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THEAC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55510: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,1 ;PRELOAD E WITH 0,,1 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS +;THE NEXT INSTRUCTION. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55520: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 7,2 ;PRELOAD E WITH 0,,2 + SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 7,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55600: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,0 ;PRELOAD E WITH 0 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSGE DID NOT SKIP + STOP + CAME 6,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE +;FINAL RESULTS IN ACAND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55610: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,1 ;PRELOAD E WITH 0,,1 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY. + +C55620: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 6,2 ;PRELOAD E WITH 0,,2 + SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 6,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C55700: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,0 ;PRELOAD E WITH 0 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 5,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC +;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C55710: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,1 ;PRELOAD E WITH 0,,1 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSN DID NOT SKIP + STOP + CAME 5,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;INtTHIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1 +;RESPECTIVELY + +C55720: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 5,2 ;PRELOAD E WITH 0,,2 + SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 5,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 4,[1] ;PASS IF ACWAS UPDATED IF AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIESTHAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1 +;RESPECTIVELY. + +C56000: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,0 ;PRELOAD E WITH 0 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSG DID NOT SKIP + STOP + CAME 4,[-1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + +;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0. +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,1 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0 +;RESPECTIVELY. + +C56010: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,1 ;PRELOAD E WITH 0,,1 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND NOT SKIP + SKIPA ;PASS IF SOSG DID NOT SKIP + STOP + CAME 4,[0] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[0] ;PASS IF AC WAS UPDATED IS AC NON-ZERO + STOP + +;********** +;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES +;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS +;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0 +;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,2 +;BEFORE INCREMENTING. HENCE, SOSG SHOULD SKIP ; AND THE +;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 011, +;RESPECTIVELY. + +C56020: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070 + MOVEI 4,2 ;PRELOAD E WITH 0,,2 + SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E), + ;UPDATE AC AND SKIP + STOP + CAME 4,[1] ;PASS IF E DECREMENTED CORRECTLY + STOP + CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO + STOP + +;********** + + JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakae/README.md b/apps/pdp10/diags/klad/dakae/README.md new file mode 100644 index 000000000..c85042863 --- /dev/null +++ b/apps/pdp10/diags/klad/dakae/README.md @@ -0,0 +1,289 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #5 +permalink: /apps/pdp10/diags/klad/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. + +Resources for this test include: + +- [Instructions](#dakaetxt) +- [History](#dakaehst) +- [Source Code](#dakaemac) +- [MACRO-10 Listing](DAKAE.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 %} diff --git a/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt b/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt new file mode 100644 index 000000000..0206a7346 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt @@ -0,0 +1,6826 @@ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0007 + + 1 ;DAKAF + 2 + 3 + 4 + 5 000002 DECVER==2 + 6 000000 MCNVER==0 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 + 14 ^ + 15 + 16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE + 17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD. + 18 + 19 ;COPYRIGHT 1972,1977 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;JOHN R. KIRCHOFF + 24 + 25 000137 LOC 137 + 26 000137 000000 000002 MCNVER,,DECVER + 27 + 28 NOSYM +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0008 + + 29 SUBTTL DIAGNOSTIC PARAMETERS + 30 + 31 ;PARAMETER DEFINITIONS + 32 000001 EXCASB==1 + 33 000001 USRASB==1 + 34 000001 PGMEND==1 + 35 000100 DEBUG==100 + 36 + 37 ;FLAG DEFINITIONS + 38 010000 USERF=10000 ;USER MODE FLAG + 39 + 40 + 41 ;MACROS + 42 + 43 ;SPECIAL FEATURE PARAMETERS + 44 + 45 030712 SADR1=START + 46 030712 SADR2=START + 47 030712 SADR3=START + 48 030712 SADR4=START + 49 254000 030712 SADR5=JRST START + 50 254000 030712 SADR6=JRST START + 51 254000 030712 SADR7=JRST START + 52 254000 030712 SADR8=JRST START + 53 254000 030712 SADR9=JRST START + 54 254000 030712 SADR10=JRST START + 55 254000 030712 SADR11=JRST START + 56 + 57 000000 PAREA0=0 + 58 000000 PAREA1=0 + 59 000000 PAREA2=0 + 60 444153 414600 PAREA3=SIXBIT/DAKAF/ + 61 645560 000000 PAREA4=SIXBIT/TMP/ + 62 000000 PAREA5=0 + 63 000000 PAREA6=0 + 64 001000 ITERAT==1000 + 65 000001 PGMEND==1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0009 + + 66 SUBTTL DIAGNOSTIC PARAMETERS + 67 + 68 ;ACCUMULATOR ASSIGNMENTS + 69 + 70 ;CONTROL WORDS + 71 + 72 400000 AROV=400000 ;ARITHMETIC OVERFLOW + 73 200000 CRY0=200000 ;CARRY 0 + 74 100000 CRY1=100000 ;CARRY 1 + 75 040000 FOV=40000 ;FLOATING OVERFLOW + 76 020000 BIS=20000 ;BYTE INTERRUPT + 77 010000 USERF=10000 ;USER MODE FLAG + 78 004000 EXIOT=4000 ;USER PRIV I/O FLAG + 79 000100 FXU=100 ;FLOATING UNDERFLOW + 80 000040 DCK=40 ;DIVIDE CHECK + 81 + 82 + 83 ;MACROS + 84 + 85 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) + 86 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + 87 + 88 DEFINE STOP (A)< + 89 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 90 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 91 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 92 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 93 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + 94 + 95 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + 96 + 97 DEFINE SFLAG (A)< + 98 MOVSI 1,A + 99 JFCL 17,.+1 ;RESET ALL FLAGS + 100 JRST 2,.+1(1) ;SET A FLAG> +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0010 + + 101 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 102 + 103 DEFINE S,<;*********************************************************************> + 104 + 105 S^;*********************************************************************^ + 106 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 107 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 108 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 109 S^;*********************************************************************^ + 110 + 111 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 112 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 113 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 114 + 115 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 116 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 117 010000 DING== 010000 ;RING BELL ON ERROR + 118 + 119 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 120 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 121 001000 PALERS==001000 ;PRINT ALL ERRORS + 122 + 123 000400 RELIAB==000400 ;RELIABILITY MODE + 124 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 125 000100 INHPAG==000100 ;INHIBIT PAGING + 126 + 127 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 128 000020 INHCSH==000020 ;INHIBIT CACHE + 129 000010 OPRSEL==000010 ;OPERATOR SELECTION + 130 + 131 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 132 + 133 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 134 + 135 ;SWITCH 17 RESERVED !!! +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011 + + 136 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 137 + 138 S^;*********************************************************************^ + 139 ;*SPECIAL SUBPROGRAM LINKAGES + 140 S^;*********************************************************************^ + 141 + 142 027772 FSELNK= 27772 ;FILE SELECT LINK + 143 027773 FRDLNK= 27773 ;FILE READ LINK + 144 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 145 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 146 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 147 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 148 + 149 S^;*********************************************************************^ + 150 ;*SPECIAL SUBROUTINE FATAL HALTS + 151 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 152 S^;*********************************************************************^ + 153 + 154 ;ADDRESS TAG REASON + 155 ;--------------------- + 156 + 157 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 158 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 159 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 160 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 161 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 162 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 163 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 164 ; 1017 EOPERR ;END OF PROGRAM ERROR + 165 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 166 + 167 S^;*********************************************************************^ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012 + + 168 S^;*********************************************************************^ + 169 ;OPERATOR DEFINITIONS (NON-UUO'S) + 170 S^;*********************************************************************^ + 171 + 172 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 173 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 174 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 175 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 176 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 177 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 178 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 179 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 180 + 181 S^;*********************************************************************^ + 182 ;*SUBROUTINE INITIALIZATION CALL + 183 S^;*********************************************************************^ + 184 + 185 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 186 + 187 S^;*********************************************************************^ + 188 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 189 S^;*********************************************************************^ + 190 + 191 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 192 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 193 + 194 S^;*********************************************************************^ + 195 ;*TERMINAL INPUT UUO'S + 196 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 197 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 198 S^;*********************************************************************^ + 199 + 200 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 201 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 202 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 203 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 204 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 205 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 206 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 207 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 208 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 209 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013 + + 210 ;*TERMINAL OUTPUT UUO'S. + 211 + 212 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 213 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 214 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 215 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 216 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 217 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 218 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 219 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 220 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 221 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 222 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 223 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 224 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 225 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 226 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 227 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 228 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 229 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 230 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 231 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 232 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 233 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 234 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 235 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 236 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 237 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 238 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 239 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 240 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 241 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 242 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 243 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 244 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 245 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 246 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 247 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 248 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 249 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 250 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 251 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 252 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 253 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 254 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 255 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 256 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 257 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 258 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 259 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 260 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 261 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 262 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 263 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 264 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014 + + 265 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 266 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 267 + 268 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 269 + 270 DEFINE PMSG (ARG),< + 271 PSIXM [SIXBIT\ARG'_\]> + 272 + 273 DEFINE PMSGF (ARG),< + 274 PSIXMF [SIXBIT\ARG'_\]> + 275 + 276 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 277 ;* CONSERVES CORE OVER ASCIZ + 278 + 279 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 280 + 281 ;*CONSOLE SWITCH INPUT UUO. + 282 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 283 ;* USER MODE. + 284 + 285 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 286 + 287 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 288 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 289 + 290 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 291 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 292 + 293 ;*KL10 ONLY CACHE OPERATION UUO'S + 294 + 295 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 296 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 297 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0015 + + 298 ;*END OF PASS/PROGRAM UUOS + 299 + 300 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 301 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 302 + 303 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 304 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 305 + 306 ;*MEMORY MANAGEMENT UUO'S + 307 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 308 ;*ADDRESS CONVERSION, ETC... + 309 + 310 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 311 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 312 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 313 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 314 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 315 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 316 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 317 + 318 ;*DEVICE CODE MODIFICATION UUO + 319 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 320 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 321 + 322 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 323 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 324 + 325 030000 IFNDEF MODDVL, + 326 030000 IFNDEF MODDVU, + 327 + 328 ;*"DIAMON" FILE SELECTION AND READ UUOS + 329 + 330 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 331 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 332 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 333 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 334 + 335 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 336 + 337 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 338 + 339 XLIST + 340 IFNDEF KLOLD, + 366 + 367 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 368 + 369 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 370 SALL + 371 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 372 CORECT,,ACTUAL + 373 [SIXBIT\D'_\],,ERR] + 374 XALL > + 375 + 376 >;END OF KLOLD CONDITIONAL + 377 + 378 XLIST + 379 LIST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017 + + 380 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 381 + 382 030000 LOC 30000 + 383 + 384 S^;*********************************************************************^ + 385 ;*PROGRAM STARTING ADDRESSES + 386 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 387 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 388 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 389 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 390 S^;*********************************************************************^ + 391 + 392 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 393 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS + 394 + 395 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 396 + 397 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 398 + 399 030004 254 00 0 00 030712 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 400 + 401 030005 254 00 0 00 030712 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 402 + 403 030006 254 00 0 00 030712 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 404 + 405 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 406 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 407 + 408 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 409 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 410 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 411 + 412 030013 254000 030712 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 413 030014 254000 030712 START2: SADR8 ; " + 414 030015 254000 030712 START3: SADR9 ; " + 415 030016 254000 030712 START4: SADR10 ; " + 416 030017 254000 030712 START5: SADR11 ; " +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018 + + 417 S^;*********************************************************************^ + 418 ;*PROGRAM FIXED PARAMETER AREA + 419 S^;*********************************************************************^ + 420 + 421 030020 444153 414600 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 422 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 423 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 424 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 425 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 426 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 427 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 428 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 429 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 430 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 431 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 432 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 433 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 434 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 435 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 436 + 437 S^;*********************************************************************^ + 438 ;*PROGRAM VARIABLE PARAMETER AREA + 439 S^;*********************************************************************^ + 440 + 441 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 442 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 443 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 444 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 445 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 446 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 447 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 448 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 449 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 450 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 451 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 452 030052 000000 000000 ERRPC: 0 ;ERROR PC + 453 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 454 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 455 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 456 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019 + + 457 S^;*********************************************************************^ + 458 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 459 S^;*********************************************************************^ + 460 + 461 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 462 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 463 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 464 030062 254000 030712 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 465 030063 254000 030712 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 466 030064 CPOPJ1: ;SKIP RETURN + 467 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 468 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 469 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 470 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 471 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 472 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 473 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 474 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 475 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 476 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 477 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 478 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 479 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 480 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 481 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 482 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 483 + 484 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 485 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 486 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 487 + 488 S^;*********************************************************************^ + 489 ;*PROCESSOR CONTROL STORAGE + 490 S^;*********************************************************************^ + 491 + 492 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 493 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 494 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 495 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 496 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 497 + 498 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 499 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 500 + 501 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 502 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 503 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 504 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 505 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 506 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 507 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020 + + 508 S^;*********************************************************************^ + 509 ;*UUO DISPATCH TABLE + 510 S^;*********************************************************************^ + 511 XLIST + 512 LIST + 513 030124 030070 030070 UUODIS: LUUO1,,$UUOER + 514 030125 030070 030070 LUUO3,,LUUO2 + 515 030126 030070 030070 LUUO5,,LUUO4 + 516 030127 030070 030070 LUUO7,,LUUO6 + 517 030130 030070 030070 LUUO11,,LUUO10 + 518 030131 030070 030070 LUUO13,,LUUO12 + 519 030132 030070 030070 LUUO15,,LUUO14 + 520 030133 030070 030070 LUUO17,,LUUO16 + 521 030134 030070 030070 LUUO21,,LUUO20 + 522 030135 030070 030070 LUUO23,,LUUO22 + 523 030136 030070 030070 LUUO25,,LUUO24 + 524 030137 030070 030070 LUUO27,,LUUO26 + 525 030140 030070 030070 LUUO31,,LUUO30 + 526 030141 030070 030070 LUUO33,,LUUO32 + 527 + 528 S^;*********************************************************************^ + 529 ;*MEMORY MANAGMENT STORAGE + 530 S^;*********************************************************************^ + 531 + 532 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 533 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 534 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 535 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 536 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 537 + 538 S^;*********************************************************************^ + 539 ;*PRINT CONTROL STORAGE + 540 S^;*********************************************************************^ + 541 + 542 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 543 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 544 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 545 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 546 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 547 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 548 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 549 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 550 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 551 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 552 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 553 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 554 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 555 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 556 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 557 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 558 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 559 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 560 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 561 S^;*********************************************************************^ + 562 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 563 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 564 ;* MOVEI NAME + 565 ;* PNTA ;OR PNTAF + 566 S^;*********************************************************************^ + 567 + 568 030242 CRLF: ASCII/ + 569 030242 015 012 000 000 000 / + 570 030243 CRLF2: ASCII/ + 571 + 572 030243 015 012 015 012 000 / + 573 030244 054 000 000 000 000 COMMA: ASCII/,/ + 574 030245 056 000 000 000 000 PERIOD: ASCII/./ + 575 030246 040 000 000 000 000 SPACE: ASCII/ / + 576 030247 011 000 000 000 000 TAB: ASCII/ / + 577 030250 MINUS: + 578 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 579 030251 053 000 000 000 000 PLUS: ASCII/+/ + 580 030252 052 000 000 000 000 AST: ASCII/*/ + 581 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 582 030254 050 000 000 000 000 LFP: ASCII/(/ + 583 030255 051 000 000 000 000 RTP: ASCII/)/ + 584 030256 007 0000000000 BELL: BYTE (7) 007 + 585 030257 077 000 000 000 000 QUEST: ASCII/?/ + 586 030260 057 000 000 000 000 SLASH: ASCII!/! + 587 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 588 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 589 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 590 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 591 + 592 S^;*********************************************************************^ + 593 ;*USER MODE OUTPUT FILE INFORMATION + 594 S^;*********************************************************************^ + 595 + 596 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 597 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 598 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 599 030272 BLOCK 2 + 600 + 601 S^;*********************************************************************^ + 602 ;*DISK UPDATE MODE FILE INFORMATION + 603 S^;*********************************************************************^ + 604 + 605 030274 $IBUF: BLOCK 3 + 606 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 607 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 608 030301 BLOCK 2 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 609 S^;*********************************************************************^ + 610 ;*PUSHDOWN LIST CONTROL INFORMATION + 611 S^;*********************************************************************^ + 612 + 613 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 614 030304 PLISTS: BLOCK 200 + 615 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 616 + 617 S^;*********************************************************************^ + 618 ;*POWER LINE CLOCK FREQUENCY FLAG + 619 S^;*********************************************************************^ + 620 + 621 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 622 + 623 S^;*********************************************************************^ + 624 ;*KL10 CACHE CONTROL FLAGS + 625 S^;*********************************************************************^ + 626 + 627 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 628 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 629 + 630 S^;*********************************************************************^ + 631 ;*NUMBER INPUT DIGIT FLAG + 632 S^;*********************************************************************^ + 633 + 634 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 635 + 636 S^;*********************************************************************^ + 637 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 638 S^;*********************************************************************^ + 639 + 640 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 641 + 642 S^;*********************************************************************^ + 643 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 644 S^;*********************************************************************^ + 645 + 646 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 647 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 648 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 649 + 650 S^;*********************************************************************^ + 651 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 652 S^;*********************************************************************^ + 653 + 654 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 655 S^;*********************************************************************^ + 656 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 657 S^;*********************************************************************^ + 658 + 659 030516 000000 000000 KLTYP: 0 + 660 + 661 S^;*********************************************************************^ + 662 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 663 S^;*********************************************************************^ + 664 + 665 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 666 + 667 S^;*********************************************************************^ + 668 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 669 S^;*********************************************************************^ + 670 + 671 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 672 + 673 S^;*********************************************************************^ + 674 ;*"SWITCH" CALL USAGE CONTROL + 675 S^;*********************************************************************^ + 676 + 677 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 678 + 679 S^;*********************************************************************^ + 680 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 681 S^;*********************************************************************^ + 682 + 683 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 684 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 685 + 686 S^;*********************************************************************^ + 687 ;*SPECIAL FUTURE EXPANSION ROOM + 688 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 689 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 690 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 691 S^;*********************************************************************^ + 692 + 693 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 694 + 695 S^;*********************************************************************^ + 696 ;*END OF FIXED STORAGE + 697 S^;*********************************************************************^ + 698 + 699 030577 $ENDFX=&<777700>-1 + 700 030577 LOC $ENDFX + 701 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024 + + 702 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 + 703 + 704 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE + 705 + 706 000000 AC0= 0 + 707 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS + 708 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS + 709 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS + 710 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10) + 711 + 712 ;DTE20 DEVICE CODES + 713 + 714 000200 DTE== 200 ;DTE0 + 715 000204 DTE0== 204 + 716 000204 DTE1== 204 + 717 000210 DTE2== 210 + 718 000214 DTE3== 214 + 719 + 720 ;KL10 EPT COMMUNICATION AREA + 721 + 722 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS + 723 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS + 724 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS + 725 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS + 726 + 727 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG + 728 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG + 729 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION + 730 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT + 731 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT + 732 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD + 733 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER + 734 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE # + 735 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER + 736 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG + 737 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG + 738 + 739 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025 + + 740 ;SPECIAL "FIXED" REASSIGNMENTS + 741 + 742 030600 $$LOC=. ;SAVE CURRENT LOCATION + 743 + 744 030000 LOC 30000 + 745 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START + 746 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS + 747 + 748 000440 LOC 440 + 749 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD" + 750 000443 LOC 443 + 751 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL + 752 + 753 030057 LOC 30057 + 754 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND" + 755 + 756 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP + 757 + 758 000420 LOC 420 + 759 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL + 760 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW + 761 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW + 762 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3 + 763 000424 000000 000000 $$424: 0 ;MMUO + 764 000425 000000 000000 $$425: 0 ;MMUO PC + 765 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT + 766 000427 254 04 0 00 000427 $$427: HALT . + 767 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S + 768 000431 000000 000427 $$431: 427 + 769 000432 000000 000427 $$432: 427 + 770 000433 000000 000427 $$433: 427 + 771 000434 000000 000427 $$434: 427 + 772 000435 000000 000427 $$435: 427 + 773 000436 000000 000427 $$436: 427 + 774 000437 000000 000427 $$437: 427 + 775 + 776 000500 LOC 500 + 777 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD + 778 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC + 779 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC + 780 000503 254 04 0 00 000503 $$503: HALT . +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026 + + 781 030600 LOC $$LOC ;RESET CURRENT LOCATION + 782 + 783 ;SPECIAL STARTUP SEQUENCE + 784 + 785 030600 402 00 0 00 030037 $$START:SETZM USER + 786 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ? + 787 030602 603 00 0 00 010000 TLNE 0,USERF + 788 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD + 789 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ? + 790 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC + 791 030606 332 00 0 00 030037 SKIPE USER + 792 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE + 793 + 794 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ? + 795 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER + 796 030612 402 00 0 00 030516 SETZM KLTYP + 797 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10 + 798 030614 200 01 0 00 034277 MOVE 1,[1,,1] + 799 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS + 800 030616 316 01 0 00 034277 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10 + 801 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP + 802 + 803 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT + 804 030621 7 000 24 0 00 000000 CONI APR,0 + 805 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT + 806 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10 + 807 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD + 808 030625 402 00 0 00 000444 SETZM $DTFLG + 809 030626 402 00 0 00 000445 SETZM $DTCLK + 810 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE # + 811 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS + 812 030631 436 00 0 00 030672 ORM $$DTE1 + 813 030632 436 00 0 00 030704 ORM $$DTE2 + 814 030633 436 00 0 00 030706 ORM $$DTE3 + 815 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG + 816 030635 254 00 0 00 030712 JRST START + 817 + 818 030636 200 00 0 00 034300 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL + 819 030637 202 00 0 00 030643 MOVEM $SPB1 + 820 030640 254 00 0 00 030712 JRST START +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027 + + 821 ;SPECIAL "BEGEND" ROUTINE + 822 + 823 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT + 824 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT + 825 030643 336 00 0 00 030037 $SPB1: SKIPN USER + 826 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE + 827 + 828 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ? + 829 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING + 830 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ? + 831 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR + 832 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON" + 833 + 834 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG + 835 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC + 836 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT + 837 030655 332 00 0 00 030024 SKIPE ITRCNT + 838 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET + 839 030657 254 00 1 00 030012 JRST @RETURN ;DONE + 840 + 841 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT + 842 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED + 843 + 844 030662 335 00 0 00 030043 SKIPGE MONCTL + 845 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL + 846 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS + 847 030665 202 00 0 00 000451 MOVEM 0,$DTCMD + 848 030666 402 00 0 00 000444 SETZM $DTFLG + 849 030667 336 00 0 00 030516 SKIPN KLTYP + 850 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 + 851 030671 332 00 0 00 030516 SKIPE KLTYP + 852 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000 + 853 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS + 854 030674 254 00 0 00 030673 JRST .-1 + 855 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING + 856 + 857 ;SPECIAL KL10 COMPLETED ROUTINE + 858 + 859 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN + 860 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON" + 861 + 862 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION + 863 030701 202 00 0 00 000451 MOVEM 0,$DTCMD + 864 030702 402 00 0 00 000444 SETZM $DTFLG + 865 030703 336 00 0 00 030516 SKIPN KLTYP + 866 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11 + 867 030705 332 00 0 00 030516 SKIPE KLTYP + 868 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000 + 869 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN + 870 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM + 871 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT. +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +DAKAFM MAC 19-JAN-77 17:08 DIAGNOSTIC SECTION SEQ 0028 + + 872 SUBTTL DIAGNOSTIC SECTION + 873 + 874 030712 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD + 875 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS + 876 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE? + 877 030715 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD + 878 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE? + 879 030717 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD + 880 030720 336 00 0 00 030037 SKIPN USER + 881 030721 254 00 0 00 030741 JRST STARTA + 882 030722 331 00 0 00 030043 SKIPL MONCTL + 883 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME + 884 030724 254 00 0 00 030741 JRST STARTA + 885 + 886 030725 PGMNAM: ASCIZ/ + 887 030725 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] + 888 030726 055 061 060 040 113 + 889 030727 101 061 060 040 102 + 890 030730 101 123 111 103 040 + 891 030731 111 116 123 124 122 + 892 030732 125 103 124 111 117 + 893 030733 116 040 104 111 101 + 894 030734 107 116 117 123 124 + 895 030735 111 103 040 050 066 + 896 030736 051 040 133 104 101 + 897 030737 113 101 106 135 015 + 898 030740 012 000 000 000 000 / + 899 + 900 030741 254 00 0 00 030742 STARTA: JRST .+1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0029 + + 901 SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + 902 + 903 ;********** + 904 + 905 ;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. + 906 ;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. + 907 ;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + 908 + 909 030742 474 01 0 00 000000 C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + 910 030743 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1 + 911 030744 401 01 0 00 000002 SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + 912 030745 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC)=0 + 913 STOP^ + 914 030746 254 04 0 00 030747 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 915 030747 324 00 0 00 030750 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 916 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 917 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 918 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 919 030750 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 920 STOP^ + 921 030751 254 04 0 00 030752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 922 030752 324 00 0 00 030753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 923 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 924 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 925 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 926 + 927 ;********** + 928 + 929 ;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) + 930 ;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. + 931 ;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + 932 + 933 030753 474 01 0 00 000000 C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + 934 030754 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1 + 935 030755 402 01 0 00 000002 SETZM 1,2 ;*SETZM SHOULD CLEAR E + 936 030756 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 937 STOP^ + 938 030757 254 04 0 00 030760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 939 030760 324 00 0 00 030761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 940 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 941 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 942 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 943 030761 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0 + 944 STOP^ + 945 030762 254 04 0 00 030763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 946 030763 324 00 0 00 030764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 947 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 948 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 949 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 950 + 951 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0030 + + 952 ;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. + 953 ;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. + 954 ;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + 955 + 956 030764 403 01 0 00 000002 C56300: SETZB 1,2 ;CLEAR AC,E + 957 030765 475 01 0 00 000002 SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + 958 030766 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 959 STOP^ + 960 030767 254 04 0 00 030770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 961 030770 324 00 0 00 030771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 962 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 963 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 964 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 965 030771 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0 + 966 STOP^ + 967 030772 254 04 0 00 030773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 968 030773 324 00 0 00 030774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 972 + 973 ;********** + 974 + 975 ;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E + 976 ;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. + 977 ;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + 978 + 979 030774 403 01 0 00 000002 C56400: SETZB 1,2 ;CLEAR AC,E + 980 030775 476 01 0 00 000002 SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + 981 030776 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC)=0 + 982 STOP^ + 983 030777 254 04 0 00 031000 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 984 031000 324 00 0 00 031001 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 985 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 986 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 987 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 988 031001 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 989 STOP^ + 990 031002 254 04 0 00 031003 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 991 031003 324 00 0 00 031004 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 992 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 993 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 994 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 995 + 996 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0031 + + 997 ;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. + 998 ;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. + 999 ;AC AND E ARE BOTH CHECKED FOR -1,,-1 + 1000 + 1001 031004 403 01 0 00 000002 C56500: SETZB 1,2 ;CLEAR AC,E + 1002 031005 477 01 0 00 000002 SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + 1003 031006 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 1004 STOP^ + 1005 031007 254 04 0 00 031010 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1006 031010 324 00 0 00 031011 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1007 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1008 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1009 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1010 031011 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 1011 STOP^ + 1012 031012 254 04 0 00 031013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1013 031013 324 00 0 00 031014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1014 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1015 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1016 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1017 + 1018 ;********** + 1019 + 1020 ;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION + 1021 ;OF C(AC) AND 0,,E INTO THE AC. + 1022 ;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. + 1023 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + 1024 + 1025 031014 200 01 0 00 034302 C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + 1026 031015 405 01 0 00 123123 ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + 1027 031016 302 01 0 00 103020 CAIE 1,103020 ;PASS IF C(AC)=103103 + 1028 STOP^ + 1029 031017 254 04 0 00 031020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1030 031020 324 00 0 00 031021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1034 + 1035 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0032 + + 1036 ;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF + 1037 ;C(AC) AND C(E) INTO E. + 1038 ;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. + 1039 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND + 1040 ;123000,,00456 RESPECTIVELY + 1041 + 1042 031021 200 01 0 00 034303 C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + 1043 031022 200 02 0 00 034304 MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + 1044 031023 406 02 0 00 000001 ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + 1045 031024 312 02 0 00 034304 CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + 1046 STOP^ + 1047 031025 254 04 0 00 031026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1048 031026 324 00 0 00 031027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1049 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1050 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1051 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1052 031027 312 01 0 00 034305 CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + 1053 STOP^ + 1054 031030 254 04 0 00 031031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1055 031031 324 00 0 00 031032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1059 + 1060 ;********** + 1061 + 1062 ;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF + 1063 ;C(AC) AND C(E) INTO E. + 1064 ;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. + 1065 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND + 1066 ;123000,,00456 RESPECTIVELY + 1067 + 1068 031032 200 01 0 00 034303 C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + 1069 031033 202 01 0 00 031046 MOVEM 1,E56701 + 1070 031034 200 02 0 00 034304 MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + 1071 031035 406 02 0 00 031046 ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + 1072 031036 312 02 0 00 034304 CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + 1073 STOP^ + 1074 031037 254 04 0 00 031040 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1075 031040 324 00 0 00 031041 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1076 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1077 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1078 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1079 031041 200 01 0 00 031046 MOVE 1,E56701 + 1080 031042 312 01 0 00 034305 CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + 1081 STOP^ + 1082 031043 254 04 0 00 031044 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1083 031044 324 00 0 00 031045 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1084 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1085 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1086 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1087 + 1088 031045 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1089 031046 000000 000000 E56701: 0 ;TEST WORD MEMORY + 1090 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0033 + + 1091 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 6 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0034 + + 1092 ;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF + 1093 ;C(AC) AND C(E) INTO BOTH AC AND E + 1094 ;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 + 1095 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + 1096 + 1097 031047 561 03 0 00 000000 C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + 1098 031050 525 06 0 00 121212 HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + 1099 031051 407 03 0 00 000006 ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + 1100 031052 312 03 0 00 034306 CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + 1101 STOP^ + 1102 031053 254 04 0 00 031054 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1103 031054 324 00 0 00 031055 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1104 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1105 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1106 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1107 031055 312 06 0 00 034306 CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + 1108 STOP^ + 1109 031056 254 04 0 00 031057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1110 031057 324 00 0 00 031060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1114 + 1115 ;********** + 1116 + 1117 ;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF + 1118 ;C(AC) AND C(E) INTO BOTH AC AND E + 1119 ;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 + 1120 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + 1121 + 1122 031060 561 03 0 00 000000 C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + 1123 031061 525 06 0 00 121212 HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + 1124 031062 202 06 0 00 031074 MOVEM 6,E57001 + 1125 031063 407 03 0 00 031074 ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + 1126 031064 312 03 0 00 034306 CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + 1127 STOP^ + 1128 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1129 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1130 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1131 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1132 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1133 031067 200 06 0 00 031074 MOVE 6,E57001 + 1134 031070 312 06 0 00 034306 CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + 1135 STOP^ + 1136 031071 254 04 0 00 031072 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1137 031072 324 00 0 00 031073 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1138 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1139 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1140 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1141 + 1142 031073 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1143 031074 000000 000000 E57001: 0 ;TEST WORD MEMORY + 1144 + 1145 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 7 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0035 + + 1146 ;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION + 1147 ;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC + 1148 ;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 + 1149 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + 1150 + 1151 031075 200 05 0 00 034302 C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + 1152 031076 411 05 0 00 135246 ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + 1153 031077 302 05 0 00 030206 CAIE 5,030206 ;PASS IF C(AC)=030206 + 1154 STOP^ + 1155 031100 254 04 0 00 031101 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1156 031101 324 00 0 00 031102 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1157 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1158 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1159 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1160 + 1161 ;********** + 1162 + 1163 ;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF + 1164 ;C(E) AND THE COMPLEMENT OF C(AC) INTO E. + 1165 ;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 + 1166 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND + 1167 ;777010,,0 RESPECTIVELY. + 1168 + 1169 031102 525 04 0 00 000767 C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + 1170 031103 200 06 0 00 034307 MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + 1171 031104 412 04 0 00 000006 ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + 1172 ;INTO E + 1173 031105 312 04 0 00 034310 CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + 1174 STOP^ + 1175 031106 254 04 0 00 031107 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1176 031107 324 00 0 00 031110 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1180 031110 312 06 0 00 034311 CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + 1181 STOP^ + 1182 031111 254 04 0 00 031112 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1183 031112 324 00 0 00 031113 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1187 + 1188 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 8 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0036 + + 1189 ;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF + 1190 ;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. + 1191 ;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 + 1192 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + 1193 + 1194 031113 200 01 0 00 034312 C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + 1195 031114 200 02 0 00 034313 MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + 1196 031115 413 01 0 00 000002 ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + 1197 ;INTO BOTH AC AND E + 1198 031116 312 01 0 00 034314 CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + 1199 STOP^ + 1200 031117 254 04 0 00 031120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1201 031120 324 00 0 00 031121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1202 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1203 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1204 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1205 031121 312 02 0 00 034314 CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + 1206 STOP^ + 1207 031122 254 04 0 00 031123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1208 031123 324 00 0 00 031124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1209 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1210 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1211 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1212 + 1213 ;********** + 1214 + 1215 ;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC + 1216 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT + 1217 ;IN THE AC SHOULD BE 0,,123456 + 1218 + 1219 031124 474 05 0 00 000000 C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + 1220 031125 415 05 0 00 123456 SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + 1221 031126 302 05 0 00 123456 CAIE 5,123456 ;PASS IF C(AC)=0,123456 + 1222 STOP^ + 1223 031127 254 04 0 00 031130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1224 031130 324 00 0 00 031131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1228 + 1229 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 9 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0037 + + 1230 ;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD + 1231 ;NOT MODIFY AC OR E. + 1232 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + 1233 + 1234 031131 400 16 0 00 000000 C57500: SETZ 16, ;CLEAR C(AC) + 1235 031132 474 17 0 00 000000 SETO 17, ;PRELOAD E WITH -1,,-1 + 1236 031133 416 16 0 00 000017 SETMM 16,17 ;*SETMM IS A NO-OP + 1237 031134 332 00 0 00 000016 SKIPE 16 ;PASS IF C(AC) UNCHANGED + 1238 STOP^ + 1239 031135 254 04 0 00 031136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1240 031136 324 00 0 00 031137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1241 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1242 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1243 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1244 031137 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(E) UNCHANGED + 1245 STOP^ + 1246 031140 254 04 0 00 031141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1247 031141 324 00 0 00 031142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1248 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1249 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1250 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1251 + 1252 ;********** + 1253 + 1254 ;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC + 1255 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT + 1256 ;IN BOTH AC AND E SHOULD BE 000100,,-200. + 1257 + 1258 031142 474 00 0 00 000000 C57600: SETO 0, ;CLEAR AC + 1259 031143 200 01 0 00 034315 MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + 1260 031144 417 00 0 00 000001 SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + 1261 031145 312 00 0 00 034315 CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + 1262 STOP^ + 1263 031146 254 04 0 00 031147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1264 031147 324 00 0 00 031150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1265 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1266 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1267 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1268 031150 312 01 0 00 034315 CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + 1269 STOP^ + 1270 031151 254 04 0 00 031152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1271 031152 324 00 0 00 031153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1272 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1273 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1274 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1275 + 1276 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 10 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0038 + + 1277 ;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION + 1278 ;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. + 1279 ;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. + 1280 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + 1281 + 1282 031153 200 15 0 00 034316 C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + 1283 031154 421 15 0 00 717273 ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + 1284 ;INTO THE AC + 1285 031155 312 15 0 00 034317 CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + 1286 STOP^ + 1287 031156 254 04 0 00 031157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1288 031157 324 00 0 00 031160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1289 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1290 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1291 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1292 + 1293 ;********** + 1294 + 1295 ;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF + 1296 ;C(AC) AND THE COMPLEMENT OF C(E) INTO E. + 1297 ;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 + 1298 ;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + 1299 + 1300 031160 200 14 0 00 034320 C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + 1301 031161 200 15 0 00 034321 MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + 1302 031162 422 14 0 00 000015 ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + 1303 031163 312 14 0 00 034320 CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + 1304 STOP^ + 1305 031164 254 04 0 00 031165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1306 031165 324 00 0 00 031166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1307 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1308 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1309 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1310 031166 312 15 0 00 034322 CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + 1311 STOP^ + 1312 031167 254 04 0 00 031170 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1313 031170 324 00 0 00 031171 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1317 + 1318 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 11 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0039 + + 1319 ;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF + 1320 ;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. + 1321 ;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 + 1322 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + 1323 + 1324 031171 200 13 0 00 034323 C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + 1325 031172 200 14 0 00 034324 MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + 1326 031173 423 13 0 00 000014 ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + 1327 ;INTO BOTH AC AND E + 1328 031174 312 13 0 00 034325 CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + 1329 STOP^ + 1330 031175 254 04 0 00 031176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1331 031176 324 00 0 00 031177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1332 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1333 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1334 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1335 031177 312 14 0 00 034325 CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + 1336 STOP^ + 1337 031200 254 04 0 00 031201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1338 031201 324 00 0 00 031202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1339 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1340 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1341 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1342 + 1343 ;********** + 1344 + 1345 + 1346 ;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER + 1347 ;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. + 1348 ;SETA SHOULD NOT MODIFY C(AC) OR C(E) + 1349 + 1350 031202 200 12 0 00 034326 C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + 1351 031203 200 13 0 00 034327 MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + 1352 031204 424 12 0 00 000013 SETA 12,13 ;*SETA IS A NO-OP + 1353 031205 312 12 0 00 034326 CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + 1354 STOP^ + 1355 031206 254 04 0 00 031207 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1356 031207 324 00 0 00 031210 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1357 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1358 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1359 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1360 031210 312 13 0 00 034327 CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + 1361 STOP^ + 1362 031211 254 04 0 00 031212 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1363 031212 324 00 0 00 031213 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1364 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1365 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1366 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1367 + 1368 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 12 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0040 + + 1369 ;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. + 1370 ;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 + 1371 ;SETA SHOULD NOT MODIFY C(AC) + 1372 + 1373 031213 200 12 0 00 034326 C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + 1374 031214 425 12 0 00 123450 SETAI 12,123450 ;*SETAI IS A NO-OP + 1375 031215 312 12 0 00 034326 CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + 1376 STOP^ + 1377 031216 254 04 0 00 031217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1378 031217 324 00 0 00 031220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1379 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1380 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1381 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1382 + 1383 ;********** + 1384 + 1385 ;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. + 1386 ;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE + 1387 ;RESULT IN E SHOULD BE 123456,,0 + 1388 + 1389 031220 515 11 0 00 123456 C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + 1390 031221 474 12 0 00 000000 SETO 12, ;PRELOAD E WITH -1,,-1 + 1391 031222 426 11 0 00 000012 SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + 1392 031223 312 11 0 00 034330 CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + 1393 STOP^ + 1394 031224 254 04 0 00 031225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1395 031225 324 00 0 00 031226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1396 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1397 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1398 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1399 031226 312 12 0 00 034330 CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + 1400 STOP^ + 1401 031227 254 04 0 00 031230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1402 031230 324 00 0 00 031231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1403 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1404 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1405 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1406 + 1407 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 13 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0041 + + 1408 ;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION + 1409 ;OF C(AC) AND THE WORD 0,,E INTO THE AC. + 1410 ;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 + 1411 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + 1412 + 1413 031231 200 10 0 00 034331 C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + 1414 031232 431 10 0 00 434431 XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + 1415 031233 312 10 0 00 034332 CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + 1416 STOP^ + 1417 031234 254 04 0 00 031235 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1418 031235 324 00 0 00 031236 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1419 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1420 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1421 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1422 + 1423 ;********** + 1424 + 1425 ;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION + 1426 ;OF C(AC) AND C(E) INTO BOTH AC AND E. + 1427 ;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 + 1428 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + 1429 + 1430 031236 200 07 0 00 034333 C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + 1431 031237 200 10 0 00 034334 MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 1432 031240 433 07 0 00 000010 XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + 1433 ;INTO BOTH AC AND E + 1434 031241 312 07 0 00 034335 CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + 1435 STOP^ + 1436 031242 254 04 0 00 031243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1437 031243 324 00 0 00 031244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1438 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1439 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1440 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1441 031244 312 10 0 00 034335 CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + 1442 STOP^ + 1443 031245 254 04 0 00 031246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1444 031246 324 00 0 00 031247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1445 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1446 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1447 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1448 + 1449 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 14 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0042 + + 1450 ;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION + 1451 ;OF C(AC) AND THE WORD 0,,E INTO THE AC. + 1452 ;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 + 1453 ;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + 1454 + 1455 031247 200 06 0 00 034336 C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + 1456 031250 435 06 0 00 765567 IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + 1457 031251 312 06 0 00 034337 CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + 1458 STOP^ + 1459 031252 254 04 0 00 031253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1460 031253 324 00 0 00 031254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1461 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1462 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1463 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1464 + 1465 ;********** + 1466 + 1467 ;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION + 1468 ;OF C(AC) AND C(E) INTO E. + 1469 ;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 + 1470 ;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + 1471 + 1472 031254 200 05 0 00 034340 C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + 1473 031255 200 06 0 00 034341 MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + 1474 031256 436 05 0 00 000006 IORM 5,6 ;*IORM SHOULD PLACE + 1475 ;777457,777676 INTO E + 1476 031257 312 05 0 00 034340 CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + 1477 STOP^ + 1478 031260 254 04 0 00 031261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1479 031261 324 00 0 00 031262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1483 031262 312 06 0 00 034342 CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + 1484 STOP^ + 1485 031263 254 04 0 00 031264 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1486 031264 324 00 0 00 031265 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1490 + 1491 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 15 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0043 + + 1492 ;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION + 1493 ;OF C(AC) AND C(E) INTO E. + 1494 ;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 + 1495 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + 1496 + 1497 031265 200 05 0 00 034340 C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + 1498 031266 200 06 0 00 034341 MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + 1499 031267 437 05 0 00 000006 IORB 5,6 ;*IORB SHOULD PLACE + 1500 ;777457,,777676 INTO + 1501 031270 312 05 0 00 034342 CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + 1502 STOP^ + 1503 031271 254 04 0 00 031272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1504 031272 324 00 0 00 031273 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1505 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1506 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1507 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1508 031273 312 06 0 00 034342 CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + 1509 STOP^ + 1510 031274 254 04 0 00 031275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1511 031275 324 00 0 00 031276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1512 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1513 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1514 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1515 + 1516 ;********** + 1517 + 1518 ;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION + 1519 ;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC + 1520 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. + 1521 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + 1522 + 1523 031276 200 04 0 00 034343 C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1524 031277 441 04 0 00 706050 ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + 1525 ;INTO THE AC + 1526 031300 312 04 0 00 034344 CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + 1527 STOP^ + 1528 031301 254 04 0 00 031302 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1529 031302 324 00 0 00 031303 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1530 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1531 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1532 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1533 + 1534 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 16 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0044 + + 1535 ;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION + 1536 ;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO + 1537 ;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 + 1538 ;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + 1539 + 1540 031303 200 03 0 00 034345 C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + 1541 031304 200 04 0 00 034346 MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + 1542 031305 442 03 0 00 000004 ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + 1543 ;000570,,004200 INTO E. + 1544 031306 312 03 0 00 034345 CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + 1545 STOP^ + 1546 031307 254 04 0 00 031310 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1547 031310 324 00 0 00 031311 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1548 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1549 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1550 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1551 031311 312 04 0 00 034347 CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + 1552 STOP^ + 1553 031312 254 04 0 00 031313 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1554 031313 324 00 0 00 031314 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1558 + 1559 ;********** + 1560 + 1561 ;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION + 1562 ;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E + 1563 ;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 + 1564 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + 1565 + 1566 031314 200 03 0 00 034345 C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + 1567 031315 200 04 0 00 034346 MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + 1568 031316 443 03 0 00 000004 ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + 1569 ;000570,,004200 INTO BOTH AC AND E + 1570 031317 312 03 0 00 034347 CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + 1571 STOP^ + 1572 031320 254 04 0 00 031321 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1573 031321 324 00 0 00 031322 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1577 031322 312 04 0 00 034347 CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + 1578 STOP^ + 1579 031323 254 04 0 00 031324 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1580 031324 324 00 0 00 031325 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1584 + 1585 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 17 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0045 + + 1586 ;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1587 ;OF C(AC) AND THE WORD 0,,E INTO THE AC + 1588 ;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 + 1589 ;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + 1590 + 1591 031325 200 02 0 00 034350 C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + 1592 031326 445 02 0 00 123363 EQVI 2,123363 ;*EQVI SHOULD PLACE + 1593 ;070707,,777032 INTO THE AC + 1594 031327 312 02 0 00 034351 CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + 1595 STOP^ + 1596 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1597 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1601 + 1602 ;********** + 1603 + 1604 ;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1605 ;OF C(AC) AND C(E) INTO E. + 1606 ;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 + 1607 ;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + 1608 + 1609 031332 200 01 0 00 034352 C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + 1610 031333 200 02 0 00 034353 MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + 1611 031334 446 01 0 00 000002 EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + 1612 031335 312 01 0 00 034352 CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + 1613 STOP^ + 1614 031336 254 04 0 00 031337 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1615 031337 324 00 0 00 031340 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1616 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1617 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1618 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1619 031340 312 02 0 00 034354 CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + 1620 STOP^ + 1621 031341 254 04 0 00 031342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1622 031342 324 00 0 00 031343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1623 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1624 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1625 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1626 + 1627 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 18 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0046 + + 1628 ;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1629 ;OF C(AC)AND C(E) INTO BOTH AC AND E. + 1630 ;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 + 1631 ;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + 1632 + 1633 031343 200 01 0 00 034352 C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + 1634 031344 200 02 0 00 034353 MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + 1635 031345 447 01 0 00 000002 EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + 1636 ;INTO BOTHE AC AND E. + 1637 031346 312 01 0 00 034354 CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + 1638 STOP^ + 1639 031347 254 04 0 00 031350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1640 031350 324 00 0 00 031351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1644 031351 312 02 0 00 034354 CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + 1645 STOP^ + 1646 031352 254 04 0 00 031353 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1647 031353 324 00 0 00 031354 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1651 + 1652 ;********** + 1653 + 1654 ;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) + 1655 ;INTO THE AC. + 1656 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 + 1657 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + 1658 + 1659 031354 200 00 0 00 034343 C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1660 031355 451 00 0 00 707070 SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + 1661 ;INTO THE AC + 1662 031356 312 00 0 00 034355 CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + 1663 STOP^ + 1664 031357 254 04 0 00 031360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1665 031360 324 00 0 00 031361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1666 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1667 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1668 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1669 + 1670 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 19 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0047 + + 1671 ;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) + 1672 ;INTO E. + 1673 ;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. + 1674 ;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + 1675 + 1676 031361 200 17 0 00 034334 C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + 1677 031362 474 00 0 00 000000 SETO 0, ;PRELOAD E WITH -1,,-1 + 1678 031363 452 17 0 00 000000 SETCAM 17,0 ;*SETCAM SHOULD PLACE + 1679 ;654321,,012345 INTO E + 1680 031364 312 17 0 00 034334 CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + 1681 STOP^ + 1682 031365 254 04 0 00 031366 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1683 031366 324 00 0 00 031367 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1684 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1685 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1686 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1687 031367 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1688 STOP^ + 1689 031370 254 04 0 00 031371 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1690 031371 324 00 0 00 031372 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1691 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1692 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1693 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1694 + 1695 ;********** + 1696 + 1697 ;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) + 1698 ;INTO BOTH AC AND E. + 1699 ;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. + 1700 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + 1701 + 1702 031372 200 17 0 00 034334 C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + 1703 031373 474 00 0 00 000000 SETO 0, ;PRELOAD E WITH -1,,-1 + 1704 031374 453 17 0 00 000000 SETCAB 17,0 ;*SETCAB SHOULD PLACE + 1705 ;654321,,012345 INTO BOTH AC AND E + 1706 031375 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + 1707 STOP^ + 1708 031376 254 04 0 00 031377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1709 031377 324 00 0 00 031400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1710 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1711 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1712 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1713 031400 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1714 STOP^ + 1715 031401 254 04 0 00 031402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1716 031402 324 00 0 00 031403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1717 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1718 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1719 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1720 + 1721 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 20 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0048 + + 1722 ;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION + 1723 ;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. + 1724 ;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 + 1725 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + 1726 + 1727 031403 200 16 0 00 034357 C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1728 031404 455 16 0 00 765401 ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + 1729 ;INTO THE AC + 1730 031405 312 16 0 00 034360 CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + 1731 STOP^ + 1732 031406 254 04 0 00 031407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1733 031407 324 00 0 00 031410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1737 + 1738 ;********** + 1739 + 1740 ;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION + 1741 ;OF C(E) AND THE COMPLEMENT OF C(AC) INTO + 1742 ;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 + 1743 ;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + 1744 + 1745 031410 200 15 0 00 034357 C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1746 031411 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + 1747 031412 456 15 0 00 000016 ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + 1748 ;INTO E + 1749 031413 312 15 0 00 034357 CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + 1750 STOP^ + 1751 031414 254 04 0 00 031415 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1752 031415 324 00 0 00 031416 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1753 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1754 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1755 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1756 031416 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1757 STOP^ + 1758 031417 254 04 0 00 031420 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1759 031420 324 00 0 00 031421 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1760 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1761 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1762 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1763 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 21 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0049 + + 1764 ;********** + 1765 ;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION + 1766 ;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. + 1767 ;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 + 1768 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + 1769 + 1770 031421 200 15 0 00 034357 C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1771 031422 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + 1772 031423 457 15 0 00 000016 ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + 1773 ;INTO BOTHE AC AND E + 1774 031424 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + 1775 STOP^ + 1776 031425 254 04 0 00 031426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1777 031426 324 00 0 00 031427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1778 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1779 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1780 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1781 031427 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1782 STOP^ + 1783 031430 254 04 0 00 031431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1784 031431 324 00 0 00 031432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1785 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1786 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1787 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1788 + 1789 ;********** + 1790 + 1791 ;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE + 1792 ;WORD 0,,E INTO THE AC + 1793 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 + 1794 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + 1795 + 1796 031432 200 00 0 00 034343 C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1797 031433 461 00 0 00 707070 SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + 1798 ;INTO THE AC + 1799 031434 312 00 0 00 034363 CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + 1800 STOP^ + 1801 031435 254 04 0 00 031436 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1802 031436 324 00 0 00 031437 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1803 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1804 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1805 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1806 + 1807 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 22 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0050 + + 1808 ;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) + 1809 ;INTO E. + 1810 ;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. + 1811 ;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + 1812 + 1813 031437 200 17 0 00 034334 C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + 1814 031440 474 00 0 00 000000 SETO 0, ;PRELOAD AC WITH -1,,-1 + 1815 031441 462 00 0 00 000017 SETCMM 0,17 ;*SETCMM SHOULD PLACE + 1816 ;654321,012345 INTO E + 1817 031442 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 1818 STOP^ + 1819 031443 254 04 0 00 031444 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1820 031444 324 00 0 00 031445 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1821 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1822 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1823 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1824 031445 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1825 STOP^ + 1826 031446 254 04 0 00 031447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1827 031447 324 00 0 00 031450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1828 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1829 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1830 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1831 + 1832 ;********** + 1833 + 1834 ;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) + 1835 ;INTO BOTH AC AND E. + 1836 ;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. + 1837 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + 1838 + 1839 031450 200 17 0 00 034334 C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + 1840 031451 474 00 0 00 000000 SETO 0, ;PRELOAD AC WITH -1,,-1 + 1841 031452 463 00 0 00 000017 SETCMB 0,17 ;*SETCMB SHOULD PLACE + 1842 ;654321,,012345 INTO BOTH AC AND E + 1843 031453 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + 1844 STOP^ + 1845 031454 254 04 0 00 031455 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1846 031455 324 00 0 00 031456 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1847 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1848 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1849 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1850 031456 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1851 STOP^ + 1852 031457 254 04 0 00 031460 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1853 031460 324 00 0 00 031461 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1854 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1855 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1856 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1857 + 1858 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 23 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0051 + + 1859 ;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION + 1860 ;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. + 1861 ;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 + 1862 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + 1863 + 1864 031461 200 16 0 00 034357 C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1865 031462 465 16 0 00 765401 ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + 1866 ;INTO THE AC + 1867 031463 312 16 0 00 034364 CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + 1868 STOP^ + 1869 031464 254 04 0 00 031465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1870 031465 324 00 0 00 031466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1874 + 1875 ;********** + 1876 + 1877 ;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION + 1878 ;OF C(AC) AND THE COMPLEMENT OC C(E) INTO + 1879 ;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 + 1880 ;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + 1881 + 1882 031466 200 15 0 00 034357 C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + 1883 031467 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + 1884 031470 466 16 0 00 000015 ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + 1885 ;INTO E + 1886 031471 312 16 0 00 034361 CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + 1887 STOP^ + 1888 031472 254 04 0 00 031473 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1889 031473 324 00 0 00 031474 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1890 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1891 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1892 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1893 031474 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1894 STOP^ + 1895 031475 254 04 0 00 031476 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1896 031476 324 00 0 00 031477 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1897 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1898 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1899 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1900 + 1901 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 24 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0052 + + 1902 ;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION + 1903 ;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. + 1904 ;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 + 1905 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + 1906 + 1907 031477 200 15 0 00 034357 C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + 1908 031500 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + 1909 031501 467 16 0 00 000015 ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + 1910 ;INTO BOTH AC AND E + 1911 031502 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + 1912 STOP^ + 1913 031503 254 04 0 00 031504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1914 031504 324 00 0 00 031505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1915 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1916 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1917 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1918 031505 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + 1919 STOP^ + 1920 031506 254 04 0 00 031507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1921 031507 324 00 0 00 031510 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1922 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1923 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1924 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1925 + 1926 ;********** + 1927 + 1928 ;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR + 1929 ;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. + 1930 ;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. + 1931 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + 1932 + 1933 031510 200 15 0 00 034365 C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + 1934 031511 471 15 0 00 770011 ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + 1935 031512 312 15 0 00 034366 CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + 1936 STOP^ + 1937 031513 254 04 0 00 031514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1938 031514 324 00 0 00 031515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1939 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1940 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1941 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1942 + 1943 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 25 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0053 + + 1944 ;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR + 1945 ;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO + 1946 ;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 + 1947 ;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + 1948 + 1949 031515 200 14 0 00 034367 C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + 1950 031516 200 15 0 00 034370 MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + 1951 031517 472 14 0 00 000015 ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + 1952 ;INTO E + 1953 031520 312 14 0 00 034367 CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + 1954 STOP^ + 1955 031521 254 04 0 00 031522 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1956 031522 324 00 0 00 031523 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1957 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1958 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1959 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1960 031523 312 15 0 00 034371 CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + 1961 STOP^ + 1962 031524 254 04 0 00 031525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1963 031525 324 00 0 00 031526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1964 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1965 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1966 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1967 + 1968 ;********** + 1969 + 1970 ;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR + 1971 ;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E + 1972 ;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + 1973 + 1974 031526 200 14 0 00 034367 C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + 1975 031527 200 15 0 00 034370 MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + 1976 031530 473 14 0 00 000015 ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + 1977 ;INTO BOTH AC AND E + 1978 031531 312 14 0 00 034371 CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + 1979 STOP^ + 1980 031532 254 04 0 00 031533 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1981 031533 324 00 0 00 031534 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1982 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1983 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1984 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1985 031534 312 15 0 00 034371 CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + 1986 STOP^ + 1987 031535 254 04 0 00 031536 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1988 031536 324 00 0 00 031537 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1992 + 1993 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 26 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0054 + + 1994 SUBTTL TEST OF MSCL HWT INSTRUCTIONS + 1995 + 1996 ;********** + 1997 + 1998 ;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT + 1999 ;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 + 2000 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + 2001 + 2002 031537 200 17 0 00 034336 C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + 2003 031540 501 17 0 00 777000 HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + 2004 031541 302 17 0 00 123456 CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + 2005 STOP^ + 2006 031542 254 04 0 00 031543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2007 031543 324 00 0 00 031544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2008 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2009 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2010 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2011 + 2012 ;********** + 2013 + 2014 ;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO + 2015 ;AND IS A NO-OP IF AC=0 + 2016 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 + 2017 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 2018 ;AND 123456,,765432 RESPECTIVELY + 2019 + 2020 031544 474 00 0 00 000000 C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + 2021 031545 200 02 0 00 034334 MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 2022 031546 503 00 0 00 000002 HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + 2023 031547 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2024 STOP^ + 2025 031550 254 04 0 00 031551 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2026 031551 324 00 0 00 031552 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2027 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2028 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2029 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2030 031552 312 02 0 00 034334 CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + 2031 STOP^ + 2032 031553 254 04 0 00 031554 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2033 031554 324 00 0 00 031555 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2034 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2035 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2036 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2037 + 2038 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 27 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0055 + + 2039 ;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? + 2040 ;AND IS A NO-OP IF AC=0 + 2041 ;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 + 2042 ;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 + 2043 ;AND 123456,,765432 RESPECTVIELY + 2044 + 2045 031555 474 01 0 00 000000 C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2046 031556 200 02 0 00 034334 MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 2047 031557 503 01 0 00 000002 HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + 2048 031560 312 01 0 00 034334 CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + 2049 STOP^ + 2050 031561 254 04 0 00 031562 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2051 031562 324 00 0 00 031563 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2052 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2053 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2054 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2055 031563 312 02 0 00 034334 CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + 2056 STOP^ + 2057 031564 254 04 0 00 031565 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2058 031565 324 00 0 00 031566 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2059 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2060 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2061 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2062 + 2063 ;********** + 2064 + 2065 ;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT + 2066 ;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E + 2067 ;IS ALSO PLACED INTO THE AC. + 2068 ;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 + 2069 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 + 2070 ;AND 707070,,707070. + 2071 + 2072 031566 474 00 0 00 000000 C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2073 031567 200 03 0 00 034372 MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2074 031570 507 00 0 00 000003 HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + 2075 ;INTO E. + 2076 031571 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2077 STOP^ + 2078 031572 254 04 0 00 031573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2079 031573 324 00 0 00 031574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2083 031574 312 03 0 00 034373 CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + 2084 STOP^ + 2085 031575 254 04 0 00 031576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2086 031576 324 00 0 00 031577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2087 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2088 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2089 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2090 + 2091 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 28 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0056 + + 2092 ;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT + 2093 ;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E + 2094 ;IS ALSO PLACED INTO THE AC. + 2095 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2096 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 + 2097 ;AND 707070,,707070. + 2098 + 2099 031577 474 01 0 00 000000 C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2100 031600 200 03 0 00 034372 MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2101 031601 507 01 0 00 000003 HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + 2102 ;INTO BOTH AC AND E. + 2103 031602 312 01 0 00 034373 CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + 2104 STOP^ + 2105 031603 254 04 0 00 031604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2106 031604 324 00 0 00 031605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2107 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2108 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2109 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2110 031605 312 03 0 00 034373 CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + 2111 STOP^ + 2112 031606 254 04 0 00 031607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2113 031607 324 00 0 00 031610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2114 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2115 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2116 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2117 + 2118 ;********** + 2119 + 2120 ;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND + 2121 ;PLACES 0 INTO E-RIGHT + 2122 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 + 2123 ;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + 2124 + 2125 031610 200 01 0 00 034374 C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2126 031611 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2127 031612 512 01 0 00 000002 HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + 2128 031613 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2129 STOP^ + 2130 031614 254 04 0 00 031615 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2131 031615 324 00 0 00 031616 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2132 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2133 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2134 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2135 031616 312 02 0 00 034330 CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + 2136 STOP^ + 2137 031617 254 04 0 00 031620 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2138 031620 324 00 0 00 031621 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2139 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2140 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2141 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2142 + 2143 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 29 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0057 + + 2144 ;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T + 2145 ;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2146 ;ALSO PLACED INTO THE AC. + 2147 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2148 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 2149 ;AND 123456,,0 RESPECTIVELY + 2150 + 2151 031621 474 00 0 00 000000 C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2152 031622 200 17 0 00 034372 MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2153 031623 513 00 0 00 000017 HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + 2154 031624 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2155 STOP^ + 2156 031625 254 04 0 00 031626 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2157 031626 324 00 0 00 031627 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2158 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2159 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2160 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2161 031627 312 17 0 00 034330 CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + 2162 STOP^ + 2163 031630 254 04 0 00 031631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2164 031631 324 00 0 00 031632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2165 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2166 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2167 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2168 + 2169 + 2170 ;********** + 2171 + 2172 ;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T + 2173 ;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2174 ;ALSO PLACED INTO THE AC. + 2175 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2176 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 + 2177 ;AND 123456,,0 RESPECTIVELY. + 2178 + 2179 031632 474 01 0 00 000000 C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2180 031633 200 17 0 00 034372 MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2181 031634 513 01 0 00 000017 HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + 2182 ;BOTH AC AND E + 2183 031635 312 01 0 00 034330 CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + 2184 STOP^ + 2185 031636 254 04 0 00 031637 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2186 031637 324 00 0 00 031640 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2190 031640 312 17 0 00 034330 CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + 2191 STOP^ + 2192 031641 254 04 0 00 031642 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2193 031642 324 00 0 00 031643 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2197 + 2198 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 30 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0058 + + 2199 ;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND + 2200 ;PLACES O INTO E-RIGHT. + 2201 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2202 ;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + 2203 + 2204 031643 200 01 0 00 034374 C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2205 031644 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2206 031645 516 01 0 00 000002 HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + 2207 031646 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2208 STOP^ + 2209 031647 254 04 0 00 031650 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2210 031650 324 00 0 00 031651 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2214 031651 312 02 0 00 034376 CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + 2215 STOP^ + 2216 031652 254 04 0 00 031653 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2217 031653 324 00 0 00 031654 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2221 + 2222 ;********** + 2223 + 2224 ;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND + 2225 ;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2226 ;PLACED INTO THE AC. + 2227 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 + 2228 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 + 2229 ;AND 707076,,0 + 2230 + 2231 031654 474 00 0 00 000000 C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2232 031655 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2233 031656 517 00 0 00 000016 HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + 2234 ;INTO E. + 2235 031657 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2236 STOP^ + 2237 031660 254 04 0 00 031661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2238 031661 324 00 0 00 031662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2239 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2240 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2241 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2242 031662 312 16 0 00 034400 CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2243 STOP^ + 2244 031663 254 04 0 00 031664 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2245 031664 324 00 0 00 031665 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2246 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2247 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2248 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2249 + 2250 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 31 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0059 + + 2251 ;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND + 2252 ;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2253 ;PLACED INTO THE AC. + 2254 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 + 2255 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 + 2256 ;AND 707076,,0 + 2257 + 2258 031665 474 01 0 00 000000 C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2259 031666 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2260 031667 517 01 0 00 000016 HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + 2261 ;INTO BOTH AC AND E. + 2262 031670 312 01 0 00 034400 CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2263 STOP^ + 2264 031671 254 04 0 00 031672 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2265 031672 324 00 0 00 031673 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2269 031673 312 16 0 00 034400 CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2270 STOP^ + 2271 031674 254 04 0 00 031675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2272 031675 324 00 0 00 031676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2276 + 2277 ;********** + 2278 + 2279 ;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND + 2280 ;PLACES -1 INTO E-RIGHT. + 2281 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2282 ;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + 2283 + 2284 031676 200 01 0 00 034374 C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2285 031677 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2286 031700 522 01 0 00 000002 HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + 2287 031701 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2288 STOP^ + 2289 031702 254 04 0 00 031703 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2290 031703 324 00 0 00 031704 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2291 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2292 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2293 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2294 031704 312 02 0 00 034401 CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + 2295 STOP^ + 2296 031705 254 04 0 00 031706 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2297 031706 324 00 0 00 031707 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2298 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2299 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2300 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2301 + 2302 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 32 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0060 + + 2303 ;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND + 2304 ;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND + 2305 ;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + 2306 + 2307 031707 200 15 0 00 034402 C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + 2308 031710 200 16 0 00 034403 MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + 2309 031711 524 15 0 00 000016 HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + 2310 031712 312 15 0 00 034404 CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + 2311 STOP^ + 2312 031713 254 04 0 00 031714 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2313 031714 324 00 0 00 031715 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2317 031715 312 16 0 00 034403 CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + 2318 STOP^ + 2319 031716 254 04 0 00 031717 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2320 031717 324 00 0 00 031720 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2324 + 2325 ;********** + 2326 + 2327 ;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND + 2328 ;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. + 2329 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + 2330 + 2331 031720 400 14 0 00 000000 C65000: SETZ 14, ;CLEAR AC + 2332 031721 525 14 0 00 123456 HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + 2333 031722 312 14 0 00 034401 CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + 2334 STOP^ + 2335 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2336 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2337 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2338 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2339 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2340 + 2341 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 33 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0061 + + 2342 ;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT + 2343 ;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 + 2344 ;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + 2345 + 2346 031725 402 00 0 00 000014 C65100: SETZM 14 ;CLEAR E + 2347 031726 200 13 0 00 034405 MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + 2348 031727 526 13 0 00 000014 HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + 2349 031730 312 13 0 00 034405 CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + 2350 + 2351 STOP^ + 2352 031731 254 04 0 00 031732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2353 031732 324 00 0 00 031733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2354 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2355 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2356 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2357 031733 312 14 0 00 034406 CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + 2358 STOP^ + 2359 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2360 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2361 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2362 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2363 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2364 + 2365 ;********** + 2366 + 2367 + 2368 ;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND + 2369 ;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS + 2370 ;PLACED INTO THE AC. + 2371 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 + 2372 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 + 2373 ;AND 707076,,0 + 2374 + 2375 031736 400 00 0 00 000000 C65200: SETZ 0, ;PRELOAD AC WITH 0 + 2376 031737 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2377 031740 527 00 0 00 000016 HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + 2378 ;INTO E. + 2379 031741 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2380 STOP^ + 2381 031742 254 04 0 00 031743 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2382 031743 324 00 0 00 031744 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2383 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2384 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2385 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2386 031744 312 16 0 00 034410 CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2387 STOP^ + 2388 031745 254 04 0 00 031746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2389 031746 324 00 0 00 031747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2390 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2391 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2392 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2393 + 2394 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 34 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0062 + + 2395 ;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND + 2396 ;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2397 ;PLACED INTO THE AC. + 2398 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 + 2399 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 + 2400 ;AND 707076,,-1 + 2401 + 2402 031747 400 01 0 00 000000 C65210: SETZ 1, ;PRELOAD AC WITH 0 + 2403 031750 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2404 031751 527 01 0 00 000016 HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + 2405 ;INTO BOTH AC AND E + 2406 031752 312 01 0 00 034410 CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2407 STOP^ + 2408 031753 254 04 0 00 031754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2409 031754 324 00 0 00 031755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2410 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2411 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2412 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2413 031755 312 16 0 00 034410 CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2414 STOP^ + 2415 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2416 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2417 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2418 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2419 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2420 + 2421 ;********** + 2422 + 2423 ;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT + 2424 ;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, + 2425 ;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E + 2426 ;SHOULD BE 123456,,0. + 2427 + 2428 031760 200 12 0 00 034377 C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + 2429 031761 476 00 0 00 000013 SETOM 13 ;PRELOAD E WITH -1,,-1 + 2430 031762 532 12 0 00 000013 HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + 2431 031763 312 12 0 00 034377 CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + 2432 STOP^ + 2433 031764 254 04 0 00 031765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2434 031765 324 00 0 00 031766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2435 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2436 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2437 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2438 031766 312 13 0 00 034330 CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + 2439 STOP^ + 2440 031767 254 04 0 00 031770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2441 031770 324 00 0 00 031771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2442 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2443 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2444 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2445 + 2446 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 35 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0063 + + 2447 ;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND + 2448 ;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO + 2449 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2450 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. + 2451 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2452 ;AND 765432,,-1 RESPECTIVELY. + 2453 + 2454 031771 400 00 0 00 000000 C65400: SETZ 0, ;CLEAR AC + 2455 031772 515 02 0 00 765432 HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + 2456 031773 533 00 0 00 000002 HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2457 ;INTO E + 2458 031774 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2459 STOP^ + 2460 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2461 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2462 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2463 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2464 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2465 031777 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2466 STOP^ + 2467 032000 254 04 0 00 032001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2468 032001 324 00 0 00 032002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2469 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2470 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2471 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2472 + 2473 ;********** + 2474 + 2475 ;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND + 2476 ;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2477 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2478 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 + 2479 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 + 2480 ;AND 765432,,-1 RESPECTIVELY + 2481 + 2482 032002 400 01 0 00 000000 C65410: SETZ 1, ;CLEAR AC + 2483 032003 515 02 0 00 765432 HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + 2484 032004 533 01 0 00 000002 HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2485 ;INTO BOTH AC AND E + 2486 032005 312 01 0 00 034411 CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + 2487 STOP^ + 2488 032006 254 04 0 00 032007 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2489 032007 324 00 0 00 032010 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2490 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2491 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2492 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2493 032010 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2494 STOP^ + 2495 032011 254 04 0 00 032012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2496 032012 324 00 0 00 032013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2500 + 2501 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 36 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0064 + + 2502 ;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT + 2503 ;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, + 2504 ;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E + 2505 ;SHOULD BE 365432,,0. + 2506 + 2507 032013 200 12 0 00 034412 C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + 2508 032014 476 00 0 00 000013 SETOM 13 ;PRELOAD E WITH -1,,-1 + 2509 032015 532 12 0 00 000013 HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + 2510 032016 312 12 0 00 034412 CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + 2511 STOP^ + 2512 032017 254 04 0 00 032020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2513 032020 324 00 0 00 032021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2517 032021 312 13 0 00 034413 CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + 2518 STOP^ + 2519 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2520 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2521 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2522 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2523 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2524 + 2525 ;********** + 2526 + 2527 ;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND + 2528 ;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2529 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2530 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 + 2531 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2532 ;AND 765432,,-1 RESPECTIVELY + 2533 + 2534 032024 400 00 0 00 000000 C65600: SETZ 0, ;CLEAR AC + 2535 032025 551 02 0 00 765432 HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + 2536 032026 537 00 0 00 000002 HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2537 ;INTO + 2538 032027 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2539 STOP^ + 2540 032030 254 04 0 00 032031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2541 032031 324 00 0 00 032032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2542 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2543 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2544 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2545 032032 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2546 STOP^ + 2547 032033 254 04 0 00 032034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2548 032034 324 00 0 00 032035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2552 + 2553 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 37 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0065 + + 2554 ;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND + 2555 ;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2556 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2557 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 + 2558 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 + 2559 ;AND 765432,,-1 RESPECTIVELY. + 2560 + 2561 032035 400 01 0 00 000000 C65610: SETZ 1, ;CLEAR AC + 2562 032036 551 02 0 00 765432 HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + 2563 032037 537 01 0 00 000002 HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2564 ;INTO BOTH AC AND E + 2565 032040 312 01 0 00 034411 CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + 2566 STOP^ + 2567 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2568 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2569 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2570 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2571 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2572 032043 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2573 STOP^ + 2574 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2575 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2576 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2577 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2578 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2579 + 2580 + 2581 ;********** + 2582 + 2583 ;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT + 2584 ;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 + 2585 ;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + 2586 + 2587 032046 200 11 0 00 034414 C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 2588 032047 402 00 0 00 000012 SETZM 12 ;CLEAR E + 2589 032050 546 11 0 00 000012 HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + 2590 032051 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + 2591 STOP^ + 2592 032052 254 04 0 00 032053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2593 032053 324 00 0 00 032054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2597 032054 302 12 0 00 123456 CAIE 12,123456 ;PASS IF C(E)=0,,123456 + 2598 STOP^ + 2599 032055 254 04 0 00 032056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2600 032056 324 00 0 00 032057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2604 + 2605 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 38 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0066 + + 2606 ;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND + 2607 ;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2608 ;IS ALSO PLACED INTO THE AC. + 2609 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 + 2610 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2611 ;AND 123123,,123123 RESPECTIVELY. + 2612 + 2613 032057 400 00 0 00 000000 C66000: SETZ 0, ;CLEAR AC + 2614 032060 200 12 0 00 034415 MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + 2615 032061 547 00 0 00 000012 HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + 2616 ;INTO E. + 2617 032062 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2618 STOP^ + 2619 032063 254 04 0 00 032064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2620 032064 324 00 0 00 032065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2621 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2622 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2623 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2624 032065 312 12 0 00 034416 CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + 2625 STOP^ + 2626 032066 254 04 0 00 032067 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2627 032067 324 00 0 00 032070 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2628 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2629 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2630 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2631 + 2632 + 2633 ;********** + 2634 + 2635 ;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND + 2636 ;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2637 ;IS ALSO PLACED INTO THE AC. + 2638 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 + 2639 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 + 2640 ;AND 123123,,123123 RESPECTIVELY. + 2641 + 2642 032070 400 01 0 00 000000 C66010: SETZ 1, ;CLEAR AC + 2643 032071 200 12 0 00 034415 MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + 2644 032072 547 01 0 00 000012 HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + 2645 ;INTO BOTH AC AND E. + 2646 032073 312 01 0 00 034416 CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + 2647 STOP^ + 2648 032074 254 04 0 00 032075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2649 032075 324 00 0 00 032076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2650 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2651 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2652 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2653 032076 312 12 0 00 034416 CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + 2654 STOP^ + 2655 032077 254 04 0 00 032100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2656 032100 324 00 0 00 032101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2657 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2658 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2659 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2660 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 38-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0067 + + 2661 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 39 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0068 + + 2662 ;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT + 2663 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2664 ;ALSO PLACED INTO THE AC. + 2665 ;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 + 2666 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 + 2667 ;RESPECTIVELY. + 2668 + 2669 032101 474 00 0 00 000000 C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + 2670 032102 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2671 032103 553 00 0 00 000017 HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + 2672 032104 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2673 STOP^ + 2674 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2675 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2676 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2677 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2678 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2679 032107 302 17 0 00 701234 CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + 2680 STOP^ + 2681 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2682 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2683 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2684 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2685 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2686 + 2687 ;********** + 2688 + 2689 ;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT + 2690 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2691 ;ALSO PLACED INTO THE AC. + 2692 ;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 + 2693 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 + 2694 ;RESPECTIVELY. + 2695 + 2696 032112 474 01 0 00 000000 C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2697 032113 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2698 032114 553 01 0 00 000017 HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + 2699 ;BOTH AC AND E + 2700 032115 302 01 0 00 701234 CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + 2701 STOP^ + 2702 032116 254 04 0 00 032117 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2703 032117 324 00 0 00 032120 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2704 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2705 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2706 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2707 032120 302 17 0 00 701234 CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + 2708 STOP^ + 2709 032121 254 04 0 00 032122 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2710 032122 324 00 0 00 032123 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2714 + 2715 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 40 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0069 + + 2716 ;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC + 2717 ;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE + 2718 ;RESULT IN THE AC SHOULD BE 0. + 2719 + 2720 032123 474 00 0 00 000007 C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + 2721 032124 555 07 0 00 777777 HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + 2722 032125 332 00 0 00 000007 SKIPE 7 ;PASS IF C(AC) = 0 + 2723 STOP^ + 2724 032126 254 04 0 00 032127 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2725 032127 324 00 0 00 032130 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2726 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2727 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2728 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2729 + 2730 ;********** + 2731 + 2732 ;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND + 2733 ;PLACES 0 INTO E-LEFT. + 2734 ;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 + 2735 ;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + 2736 + 2737 032130 200 01 0 00 034374 C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2738 032131 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2739 032132 556 01 0 00 000002 HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + 2740 032133 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2741 STOP^ + 2742 032134 254 04 0 00 032135 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2743 032135 324 00 0 00 032136 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2744 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2745 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2746 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2747 032136 302 02 0 00 123456 CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + 2748 STOP^ + 2749 032137 254 04 0 00 032140 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2750 032140 324 00 0 00 032141 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2754 + 2755 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 41 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0070 + + 2756 ;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND + 2757 ;PLACES 0 INTO E-LEFT. + 2758 ;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 + 2759 ;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + 2760 + 2761 032141 200 01 0 00 034374 C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2762 032142 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2763 032143 202 02 0 00 032155 MOVEM 2,E66301 + 2764 032144 556 01 0 00 032155 HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + 2765 032145 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2766 STOP^ + 2767 032146 254 04 0 00 032147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2768 032147 324 00 0 00 032150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2769 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2770 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2771 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2772 032150 200 02 0 00 032155 MOVE 2,E66301 + 2773 032151 302 02 0 00 123456 CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + 2774 STOP^ + 2775 032152 254 04 0 00 032153 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2776 032153 324 00 0 00 032154 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2777 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2778 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2779 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2780 + 2781 032154 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 2782 032155 000000 000000 E66301: 0 ;TEST WORD MEMORY + 2783 + 2784 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 42 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0071 + + 2785 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2786 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS + 2787 ;ALSO PLACED INTO THE AC. + 2788 ;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2789 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 + 2790 ;RESPECTIVELY. + 2791 + 2792 032156 474 00 0 00 000000 C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2793 032157 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2794 032160 557 00 0 00 000007 HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + 2795 032161 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + 2796 STOP^ + 2797 032162 254 04 0 00 032163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2798 032163 324 00 0 00 032164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2799 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2800 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2801 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2802 032164 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2803 STOP^ + 2804 032165 254 04 0 00 032166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2805 032166 324 00 0 00 032167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2806 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2807 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2808 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2809 + 2810 ;********** + 2811 + 2812 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2813 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2814 ;IS ALSO PLACED INTO THE AC. + 2815 ;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2816 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 + 2817 ;RESPECTIVELY. + 2818 + 2819 032167 474 06 0 00 000000 C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + 2820 032170 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2821 032171 557 06 0 00 000007 HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + 2822 ;BOTH AC AND E + 2823 032172 302 06 0 00 123456 CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + 2824 STOP^ + 2825 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2826 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2827 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2828 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2829 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2830 032175 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2831 STOP^ + 2832 032176 254 04 0 00 032177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2833 032177 324 00 0 00 032200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2834 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2835 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2836 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2837 + 2838 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 43 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0072 + + 2839 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2840 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2841 ;IS ALSO PLACED INTO THE AC. + 2842 ;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2843 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 + 2844 ;RESPECTIVELY. + 2845 + 2846 032200 474 06 0 00 000000 C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + 2847 032201 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2848 032202 202 07 0 00 032214 MOVEM 7,E66411 + 2849 032203 557 06 0 00 032214 HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + 2850 ;BOTH AC AND E + 2851 032204 302 06 0 00 123456 CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + 2852 STOP^ + 2853 032205 254 04 0 00 032206 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2854 032206 324 00 0 00 032207 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2855 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2856 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2857 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2858 032207 200 07 0 00 032214 MOVE 7,E66411 + 2859 032210 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2860 STOP^ + 2861 032211 254 04 0 00 032212 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2862 032212 324 00 0 00 032213 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2863 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2864 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2865 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2866 + 2867 032213 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 2868 032214 000000 000000 E66411: 0 ;TEST WORD MEMORY + 2869 + 2870 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 44 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0073 + + 2871 ;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND + 2872 ;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND + 2873 ;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + 2874 + 2875 032215 200 05 0 00 034414 C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 2876 032216 402 00 0 00 000006 SETZM 6 ;CLEAR E + 2877 032217 562 05 0 00 000006 HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + 2878 032220 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 2879 STOP^ + 2880 032221 254 04 0 00 032222 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2881 032222 324 00 0 00 032223 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2882 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2883 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2884 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2885 032223 312 06 0 00 034417 CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + 2886 STOP^ + 2887 032224 254 04 0 00 032225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2888 032225 324 00 0 00 032226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2889 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2890 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2891 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2892 + 2893 + 2894 ;********** + 2895 + 2896 ;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT + 2897 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS + 2898 ;ALSO PLACED INTO THE AC. + 2899 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 + 2900 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2901 ;AND -1,,701234 RESPECTIVELY. + 2902 + 2903 032226 400 00 0 00 000000 C66600: SETZ 0 ;PRELOAD AC WITH 0 + 2904 032227 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2905 032230 563 00 0 00 000017 HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + 2906 032231 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + 2907 STOP^ + 2908 032232 254 04 0 00 032233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2909 032233 324 00 0 00 032234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2910 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2911 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2912 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2913 032234 312 17 0 00 034417 CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 2914 STOP^ + 2915 032235 254 04 0 00 032236 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2916 032236 324 00 0 00 032237 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2917 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2918 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2919 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2920 + 2921 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 45 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0074 + + 2922 ;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT + 2923 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS + 2924 ;ALSO PLACED INTO THE AC. + 2925 ;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 + 2926 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 + 2927 ;AND -1,,701234 RESPECTIVELY. + 2928 + 2929 032237 400 16 0 00 000000 C66610: SETZ 16, ;PRELOAD AC WITH 0 + 2930 032240 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2931 032241 563 16 0 00 000017 HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + 2932 ;BOTH AC AND E + 2933 032242 312 16 0 00 034417 CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + 2934 STOP^ + 2935 032243 254 04 0 00 032244 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2936 032244 324 00 0 00 032245 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2937 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2938 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2939 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2940 032245 312 17 0 00 034417 CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 2941 STOP^ + 2942 032246 254 04 0 00 032247 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2943 032247 324 00 0 00 032250 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2947 + 2948 ;********** + 2949 + 2950 ;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND + 2951 ;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 + 2952 ;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + 2953 + 2954 032250 400 04 0 00 000000 C66700: SETZ 4, ;CLEAR AC + 2955 032251 200 05 0 00 034420 MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + 2956 032252 564 04 0 00 000005 HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + 2957 032253 312 04 0 00 034421 CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + 2958 STOP^ + 2959 032254 254 04 0 00 032255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2960 032255 324 00 0 00 032256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2964 032256 312 05 0 00 034420 CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + 2965 STOP^ + 2966 032257 254 04 0 00 032260 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2967 032260 324 00 0 00 032261 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2971 + 2972 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 46 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0075 + + 2973 ;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. + 2974 ;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE + 2975 ;RESULT IN THE AC SHOULD BE -1,,0 + 2976 + 2977 032261 200 03 0 00 034334 C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + 2978 032262 565 03 0 00 070707 HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + 2979 032263 312 03 0 00 034422 CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + 2980 STOP^ + 2981 032264 254 04 0 00 032265 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2982 032265 324 00 0 00 032266 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2986 + 2987 ;********** + 2988 + 2989 ;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND + 2990 ;PLACES -1 INTO E-LEFT + 2991 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2992 ;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + 2993 + 2994 032266 200 01 0 00 034374 C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2995 032267 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2996 032270 566 01 0 00 000002 HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + 2997 032271 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2998 STOP^ + 2999 032272 254 04 0 00 032273 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3000 032273 324 00 0 00 032274 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3001 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3002 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3003 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3004 032274 312 02 0 00 034423 CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3005 STOP^ + 3006 032275 254 04 0 00 032276 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3007 032276 324 00 0 00 032277 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3008 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3009 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3010 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3011 + 3012 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 47 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0076 + + 3013 ;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND + 3014 ;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 3015 ;IS ALSO PLACED INTO THE AC. + 3016 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. + 3017 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 3018 ;AND -1,,123456 RESPECTIVELY + 3019 + 3020 032277 400 00 0 00 000000 C67200: SETZ 0 ;PRELOAD AC WITH 0 + 3021 032300 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3022 032301 567 00 0 00 000007 HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + 3023 ; + 3024 032302 302 00 0 00 000000 CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + 3025 STOP^ + 3026 032303 254 04 0 00 032304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3027 032304 324 00 0 00 032305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3028 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3029 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3030 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3031 032305 312 07 0 00 034423 CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3032 STOP^ + 3033 032306 254 04 0 00 032307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3034 032307 324 00 0 00 032310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3035 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3036 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3037 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3038 + 3039 ;********** + 3040 + 3041 ;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND + 3042 ;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 3043 ;IS ALSO PLACED INTO THE AC. + 3044 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. + 3045 ;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 + 3046 ;AND -1,,123456 RESPECTIVELY. + 3047 + 3048 032310 400 01 0 00 000000 C67210: SETZ 1, ;PRELOAD AC WITH 0 + 3049 032311 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3050 032312 567 01 0 00 000007 HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + 3051 ;BOTH AC AND E + 3052 032313 312 01 0 00 034423 CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + 3053 STOP^ + 3054 032314 254 04 0 00 032315 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3055 032315 324 00 0 00 032316 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3059 032316 312 07 0 00 034423 CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3060 STOP^ + 3061 032317 254 04 0 00 032320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3062 032320 324 00 0 00 032321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3063 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3064 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3065 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3066 + 3067 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 48 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0077 + + 3068 ;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT + 3069 ;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, + 3070 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3071 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 + 3072 ;HENCE, THE RESULT IN AC AND E SHOULD BE 0 + 3073 ;AND -1,,701234 RESPECTIVELY. + 3074 + 3075 032321 400 00 0 00 000000 C67300: SETZ 0, ;PRELOAD AC WITH 0 + 3076 032322 200 03 0 00 034414 MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + 3077 032323 573 00 0 00 000003 HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + 3078 + 3079 032324 332 00 0 00 000000 SKIPE ;PASS IF C(AC) IS UNCHANGED + 3080 STOP^ + 3081 032325 254 04 0 00 032326 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3082 032326 324 00 0 00 032327 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3083 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3084 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3085 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3086 032327 312 03 0 00 034417 CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 3087 STOP^ + 3088 032330 254 04 0 00 032331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3089 032331 324 00 0 00 032332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3090 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3091 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3092 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3093 + 3094 ;********** + 3095 + 3096 ;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT + 3097 ;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, + 3098 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3099 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. + 3100 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 + 3101 ;AND -1,,701234 RESPECTIVELY. + 3102 + 3103 032332 400 01 0 00 000000 C67310: SETZ 1, ;PRELOAD AC WITH 0 + 3104 032333 200 03 0 00 034414 MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + 3105 032334 573 01 0 00 000003 HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + 3106 ;BOTH AC AND E + 3107 032335 312 01 0 00 034417 CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + 3108 STOP^ + 3109 032336 254 04 0 00 032337 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3110 032337 324 00 0 00 032340 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3114 032340 312 03 0 00 034417 CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 3115 STOP^ + 3116 032341 254 04 0 00 032342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3117 032342 324 00 0 00 032343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3118 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3119 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3120 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3121 + 3122 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 49 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0078 + + 3123 ;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT + 3124 ;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS + 3125 ;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3126 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 + 3127 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 3128 ;AND 0,,123456 RESPECTIVELY. + 3129 + 3130 032343 474 00 0 00 000000 C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + 3131 032344 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3132 032345 577 00 0 00 000007 HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + 3133 + 3134 032346 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + 3135 STOP^ + 3136 032347 254 04 0 00 032350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3137 032350 324 00 0 00 032351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3138 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3139 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3140 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3141 032351 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E)=0,,123456 + 3142 STOP^ + 3143 032352 254 04 0 00 032353 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3144 032353 324 00 0 00 032354 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3145 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3146 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3147 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3148 + 3149 ;********** + 3150 + 3151 ;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT + 3152 ;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS + 3153 ;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3154 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. + 3155 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 + 3156 ;AND 0,,123456 RESPECTIVELY. + 3157 + 3158 032354 474 01 0 00 000000 C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + 3159 032355 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3160 032356 577 01 0 00 000007 HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + 3161 ;BOTH AC AND E + 3162 032357 302 01 0 00 123456 CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + 3163 STOP^ + 3164 032360 254 04 0 00 032361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3165 032361 324 00 0 00 032362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3166 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3167 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3168 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3169 032362 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E)=0,,123456 + 3170 STOP^ + 3171 032363 254 04 0 00 032364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3172 032364 324 00 0 00 032365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3173 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3174 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3175 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3176 + 3177 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 50 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0079 + + 3178 SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + 3179 + 3180 ;********** + 3181 + 3182 ;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3183 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3184 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3185 ;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO + 3186 ;CHECKED FOR NO MODIFICATION. + 3187 + 3188 032365 200 17 0 00 034414 C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3189 032366 602 17 0 00 000003 TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + 3190 STOP^ + 3191 032367 254 04 0 00 032370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3192 032370 324 00 0 00 032371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3193 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3194 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3195 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3196 032371 312 17 0 00 034414 CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + 3197 STOP^ + 3198 032372 254 04 0 00 032373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3199 032373 324 00 0 00 032374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3200 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3201 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3202 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3203 + 3204 ;********** + 3205 + 3206 ;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3207 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3208 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3209 ;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO + 3210 ;CHECKED FOR NO MODIFICATION. + 3211 + 3212 032374 200 16 0 00 034414 C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3213 032375 602 16 0 00 000300 TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + 3214 032376 334 00 0 00 000000 SKIPA ;PASS IF TRNE DID NOT SKIP + 3215 STOP^ + 3216 032377 254 04 0 00 032400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3217 032400 324 00 0 00 032401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3221 032401 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3222 STOP^ + 3223 032402 254 04 0 00 032403 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3224 032403 324 00 0 00 032404 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3228 + 3229 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 51 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0080 + + 3230 ;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3231 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3232 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3233 ;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO + 3234 ;CHECKED FOR NO MODIFICATION. + 3235 + 3236 032404 200 15 0 00 034414 C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3237 032405 603 15 0 00 000300 TLNE 15,300 ;*TLNE CHOULD SKIP + 3238 STOP^ + 3239 032406 254 04 0 00 032407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3240 032407 324 00 0 00 032410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3241 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3242 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3243 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3244 032410 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + 3245 STOP^ + 3246 032411 254 04 0 00 032412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3247 032412 324 00 0 00 032413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3248 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3249 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3250 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3251 + 3252 ;********** + 3253 + 3254 ;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3255 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO + 3256 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3257 ;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO + 3258 ;CHECKED FOR NO MODIFICATION + 3259 + 3260 032413 200 14 0 00 034414 C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3261 032414 603 14 0 00 000003 TLNE 14,3 ;*TLNE SHOULD NOT SKIP + 3262 032415 334 00 0 00 000000 SKIPA ;PASS IF TLNE DID NOT SKIP + 3263 STOP^ + 3264 032416 254 04 0 00 032417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3265 032417 324 00 0 00 032420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3269 032420 312 14 0 00 034414 CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3270 STOP^ + 3271 032421 254 04 0 00 032422 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3272 032422 324 00 0 00 032423 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3276 + 3277 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 52 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0081 + + 3278 ;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3279 ;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E + 3280 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3281 ;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + 3282 + 3283 032423 200 13 0 00 034414 C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3284 032424 604 13 0 00 000003 TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + 3285 STOP^ + 3286 032425 254 04 0 00 032426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3287 032426 324 00 0 00 032427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3291 032427 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + 3292 STOP^ + 3293 032430 254 04 0 00 032431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3294 032431 324 00 0 00 032432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3298 + 3299 ;********** + 3300 + 3301 ;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3302 ;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. + 3303 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3304 ;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3305 + 3306 032432 200 12 0 00 034414 C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3307 032433 604 12 0 00 000300 TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + 3308 STOP^ + 3309 032434 254 04 0 00 032435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3310 032435 324 00 0 00 032436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3311 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3312 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3313 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3314 032436 312 12 0 00 034414 CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3315 STOP^ + 3316 032437 254 04 0 00 032440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3317 032440 324 00 0 00 032441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3318 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3319 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3320 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3321 + 3322 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 53 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0082 + + 3323 ;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3324 ;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. + 3325 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3326 ;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3327 + 3328 032441 200 11 0 00 034414 C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3329 032442 605 11 0 00 000003 TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + 3330 STOP^ + 3331 032443 254 04 0 00 032444 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3332 032444 324 00 0 00 032445 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3333 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3334 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3335 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3336 032445 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3337 STOP^ + 3338 032446 254 04 0 00 032447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3339 032447 324 00 0 00 032450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3340 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3341 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3342 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3343 + 3344 ;********** + 3345 + 3346 ;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3347 ;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. + 3348 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3349 ;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3350 + 3351 032450 200 10 0 00 034414 C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3352 032451 605 10 0 00 000300 TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + 3353 STOP^ + 3354 032452 254 04 0 00 032453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3355 032453 324 00 0 00 032454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3356 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3357 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3358 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3359 032454 312 10 0 00 034414 CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3360 STOP^ + 3361 032455 254 04 0 00 032456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3362 032456 324 00 0 00 032457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3363 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3364 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3365 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3366 + 3367 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 54 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0083 + + 3368 ;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3369 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN + 3370 ;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3371 ;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3372 + 3373 032457 200 07 0 00 034414 C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3374 032460 606 07 0 00 000300 TRNN 7,300 ;*TRNN SHOULD SKIP + 3375 SToP^ + 3376 032461 254 04 0 00 032462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3377 032462 324 00 0 00 032463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3378 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3379 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3380 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3381 032463 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3382 STOP^ + 3383 032464 254 04 0 00 032465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3384 032465 324 00 0 00 032466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3385 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3386 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3387 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3388 + 3389 ;********** + 3390 + 3391 ;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3392 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN + 3393 ;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3394 ;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3395 + 3396 032466 200 06 0 00 034414 C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3397 032467 606 06 0 00 000003 TRNN 6,3 ;*TRNN SHOULD NOT SKIP + 3398 032470 334 00 0 00 000000 SKIPA ;PASS IF TRNN DID NOT SKIP + 3399 STOP^ + 3400 032471 254 04 0 00 032472 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3401 032472 324 00 0 00 032473 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3405 032473 312 06 0 00 034414 CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3406 STOP^ + 3407 032474 254 04 0 00 032475 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3408 032475 324 00 0 00 032476 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3409 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3410 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3411 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3412 + 3413 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 55 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0084 + + 3414 ;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3415 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3416 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3417 ;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3418 + 3419 032476 200 05 0 00 034414 C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3420 032477 607 05 0 00 000003 TLNN 5,3 ;*TLNN SHOULD SKIP + 3421 STOP^ + 3422 032500 254 04 0 00 032501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3423 032501 324 00 0 00 032502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3424 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3425 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3426 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3427 032502 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3428 STOP^ + 3429 032503 254 04 0 00 032504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3430 032504 324 00 0 00 032505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3431 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3432 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3433 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3434 + 3435 ;********** + 3436 + 3437 ;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION + 3438 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3439 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3440 ;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3441 + 3442 032505 200 04 0 00 034414 C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3443 032506 607 04 0 00 000300 TLNN 4,300 ;*TLNN SHOULD NOT SKIP + 3444 032507 334 00 0 00 000000 SKIPA ;PASS IF TLNN DOES NOT SKIP + 3445 STOP^ + 3446 032510 254 04 0 00 032511 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3447 032511 324 00 0 00 032512 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3451 032512 312 04 0 00 034414 CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3452 STOP^ + 3453 032513 254 04 0 00 032514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3454 032514 324 00 0 00 032515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3458 + 3459 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 56 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0085 + + 3460 ;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3461 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3462 ;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3463 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3464 ;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND + 3465 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + 3466 + 3467 032515 200 03 0 00 034414 C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3468 032516 200 04 0 00 034424 MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3469 032517 613 03 0 00 000004 TSNE 3,4 ;*TSNE SHOULD SKIP + 3470 STOP^ + 3471 032520 254 04 0 00 032521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3472 032521 324 00 0 00 032522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3473 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3474 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3475 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3476 032522 312 03 0 00 034414 CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3477 STOP^ + 3478 032523 254 04 0 00 032524 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3479 032524 324 00 0 00 032525 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3483 032525 312 04 0 00 034424 CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3484 STOP^ + 3485 032526 254 04 0 00 032527 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3486 032527 324 00 0 00 032530 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3490 + 3491 ;********** + 3492 + 3493 ;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3494 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3495 ;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3496 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 + 3497 ;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND + 3498 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + 3499 + 3500 032530 200 02 0 00 034414 C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3501 032531 200 03 0 00 034425 MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + 3502 032532 613 02 0 00 000003 TSNE 2,3 ;*TSNE SHOULD NOT SKIP + 3503 032533 334 00 0 00 000000 SKIPA ;PASS IF TSOE DId NOT SKIP + 3504 STOP^ + 3505 032534 254 04 0 00 032535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3506 032535 324 00 0 00 032536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3507 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3508 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3509 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3510 032536 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3511 STOP^ + 3512 032537 254 04 0 00 032540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3513 032540 324 00 0 00 032541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 56-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0086 + + 3515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3517 032541 312 03 0 00 034425 CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + 3518 STOP^ + 3519 032542 254 04 0 00 032543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3520 032543 324 00 0 00 032544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3521 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3522 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3523 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3524 + 3525 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 57 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0087 + + 3526 ;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3527 ;NEITHER AC NOR E ARE AFFECTED. + 3528 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3529 ;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND + 3530 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3531 + 3532 032544 200 01 0 00 034414 C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3533 032545 200 02 0 00 034424 MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3534 032546 615 01 0 00 000002 TSNA 1,2 ;*TSNA SHOULD SKIP + 3535 STOP^ + 3536 032547 254 04 0 00 032550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3537 032550 324 00 0 00 032551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3538 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3539 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3540 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3541 032551 312 01 0 00 034414 CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3542 STOP^ + 3543 032552 254 04 0 00 032553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3544 032553 324 00 0 00 032554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3545 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3546 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3547 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3548 032554 312 02 0 00 034424 CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3549 STOP^ + 3550 032555 254 04 0 00 032556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3551 032556 324 00 0 00 032557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3552 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3553 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3554 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3555 + 3556 ;********** + 3557 + 3558 ;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3559 ;NEITHER AC NOR E ARE EFFECTED. + 3560 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 + 3561 ;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND + 3562 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3563 + 3564 032557 200 00 0 00 034414 C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3565 032560 200 01 0 00 034425 MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + 3566 032561 615 00 0 00 000001 TSNA 0,1 ;*TSNA SHOULD SKIP + 3567 STOP^ + 3568 032562 254 04 0 00 032563 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3569 032563 324 00 0 00 032564 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3570 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3571 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3572 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3573 032564 312 01 0 00 034425 CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + 3574 STOP^ + 3575 032565 254 04 0 00 032566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3576 032566 324 00 0 00 032567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3577 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3578 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3579 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3580 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 57-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0088 + + 3581 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 58 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0089 + + 3582 ;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3583 ;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3584 ;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3585 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 + 3586 ;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND + 3587 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3588 + 3589 032567 200 17 0 00 034414 C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3590 032570 200 00 0 00 034426 MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + 3591 032571 617 17 0 00 000000 TSNN 17,0 ;*TSNN SHOULD SKIP + 3592 STOP^ + 3593 032572 254 04 0 00 032573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3594 032573 324 00 0 00 032574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3595 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3596 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3597 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3598 032574 312 17 0 00 034414 CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3599 STOP^ + 3600 032575 254 04 0 00 032576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3601 032576 324 00 0 00 032577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3602 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3603 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3604 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3605 032577 312 00 0 00 034426 CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + 3606 STOP^ + 3607 032600 254 04 0 00 032601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3608 032601 324 00 0 00 032602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3609 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3610 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3611 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3612 + 3613 ;********** + 3614 + 3615 ;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3616 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3617 ;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3618 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3619 ;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND + 3620 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3621 + 3622 032602 200 16 0 00 034414 C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3623 032603 200 17 0 00 034424 MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3624 032604 617 16 0 00 000017 TSNN 16,17 ;*TSNN SHOULD NOT SKIP + 3625 032605 334 00 0 00 000000 SKIPA ;PASS IF TSNN DID NOT SKIP + 3626 STOP^ + 3627 032606 254 04 0 00 032607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3628 032607 324 00 0 00 032610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3629 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3630 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3631 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3632 032610 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3633 STOP^ + 3634 032611 254 04 0 00 032612 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3635 032612 324 00 0 00 032613 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3636 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 58-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0090 + + 3637 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3638 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3639 032613 312 17 0 00 034424 CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3640 STOP^ + 3641 032614 254 04 0 00 032615 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3642 032615 324 00 0 00 032616 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3643 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3644 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3645 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3646 + 3647 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 59 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0091 + + 3648 ;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH + 3649 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3650 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3651 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3652 + 3653 032616 200 15 0 00 034414 C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + 3654 032617 620 12 0 00 000003 TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + 3655 ;THE AC AND NOT SKIP + 3656 032620 334 00 0 00 000000 SKIPA ;PASS IF TRZ DOES NOT SKIP + 3657 STOP^ + 3658 032621 254 04 0 00 032622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3659 032622 324 00 0 00 032623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3660 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3661 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3662 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3663 032623 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3664 STOP^ + 3665 032624 254 04 0 00 032625 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3666 032625 324 00 0 00 032626 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3667 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3668 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3669 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3670 + 3671 ;********** + 3672 + 3673 ;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH + 3674 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3675 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3676 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + 3677 + 3678 032626 200 14 0 00 034414 C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3679 032627 620 14 0 00 000300 TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + 3680 ;THE ACAND NOT SKIP + 3681 032630 334 00 0 00 000000 SKIPA ;PASS IF TRX DOES NOT SKIP + 3682 STOP^ + 3683 032631 254 04 0 00 032632 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3684 032632 324 00 0 00 032633 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3685 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3686 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3687 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3688 032633 312 14 0 00 034427 CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3689 STOP^ + 3690 032634 254 04 0 00 032635 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3691 032635 324 00 0 00 032636 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3692 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3693 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3694 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3695 + 3696 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 60 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0092 + + 3697 ;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH + 3698 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3699 ;IN THIS CACE, C(AC)=123456,,701234 AND E=300 + 3700 ;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + 3701 + 3702 032636 200 13 0 00 034414 C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3703 032637 621 13 0 00 000300 TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + 3704 ;THE AC AND NOT SKIP + 3705 032640 334 00 0 00 000000 SKIPA ;PASS IF TLZ DOES NOT SKIP + 3706 STOP^ + 3707 032641 254 04 0 00 032642 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3708 032642 324 00 0 00 032643 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3709 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3710 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3711 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3712 032643 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3713 STOP^ + 3714 032644 254 04 0 00 032645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3715 032645 324 00 0 00 032646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3716 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3717 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3718 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3719 + 3720 ;********** + 3721 + 3722 ;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH + 3723 ;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3724 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3725 ;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + 3726 + 3727 032646 200 12 0 00 034414 C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3728 032647 621 12 0 00 000003 TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + 3729 ;THE AC AND NOT SKIP + 3730 032650 334 00 0 00 000000 SKIPA ;PASS IF TLZ DOES NOT SKIP + 3731 STOP^ + 3732 032651 254 04 0 00 032652 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3733 032652 324 00 0 00 032653 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3737 032653 312 12 0 00 034430 CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + 3738 STOP^ + 3739 032654 254 04 0 00 032655 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3740 032655 324 00 0 00 032656 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3741 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3742 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3743 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3744 + 3745 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 61 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0093 + + 3746 ;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3747 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3748 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3749 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3750 ;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3751 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3752 + 3753 032656 200 11 0 00 034414 C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3754 032657 622 11 0 00 000003 TRZE 11,3 ;*TRZE SHOULD SKIP AND + 3755 ;PLACE 123456,,701234 INTO THE AC + 3756 STOP^ + 3757 032660 254 04 0 00 032661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3758 032661 324 00 0 00 032662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3759 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3760 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3761 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3762 032662 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3763 STOP^ + 3764 032663 254 04 0 00 032664 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3765 032664 324 00 0 00 032665 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3766 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3767 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3768 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3769 + 3770 ;********** + 3771 + 3772 ;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3773 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. + 3774 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3775 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3776 ;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3777 ;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + 3778 + 3779 032665 200 10 0 00 034414 C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + 3780 032666 622 10 0 00 000300 TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + 3781 ;THE AC AND NOT SKIP + 3782 032667 334 00 0 00 000000 SKIPA ;PASS IF TRZE DOES NOT SKIP + 3783 STOP^ + 3784 032670 254 04 0 00 032671 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3785 032671 324 00 0 00 032672 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3786 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3787 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3788 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3789 032672 312 10 0 00 034427 CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3790 STOP^ + 3791 032673 254 04 0 00 032674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3792 032674 324 00 0 00 032675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3793 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3794 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3795 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3796 + 3797 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 62 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0094 + + 3798 ;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3799 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3800 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3801 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3802 ;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3803 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3804 + 3805 032675 200 07 0 00 034414 C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3806 032676 623 07 0 00 000300 TLZE 7,300 ;*TLZE SHOULD SKIP AND + 3807 ;PLACE 123456,,701234 INTO THE AC + 3808 STOP^ + 3809 032677 254 04 0 00 032700 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3810 032700 324 00 0 00 032701 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3811 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3812 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3813 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3814 032701 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3815 STOP^ + 3816 032702 254 04 0 00 032703 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3817 032703 324 00 0 00 032704 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3818 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3819 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3820 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3821 + 3822 ;********** + 3823 + 3824 ;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3825 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3826 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3827 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3828 ;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3829 ;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + 3830 + 3831 032704 200 06 0 00 034414 C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3832 032705 623 06 0 00 000003 TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + 3833 ;THE AC AND NOT SKIP + 3834 032706 334 00 0 00 000000 SKIPA ;PASS IF TLZE DOES NOT SKIP + 3835 STOP^ + 3836 032707 254 04 0 00 032710 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3837 032710 324 00 0 00 032711 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3838 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3839 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3840 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3841 032711 312 06 0 00 034430 CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 3842 STOP^ + 3843 032712 254 04 0 00 032713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3844 032713 324 00 0 00 032714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3845 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3846 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3847 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3848 + 3849 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 63 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0095 + + 3850 ;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3851 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3852 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3853 ;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3854 ;THE AC SHOULD BE 123456,,701234 + 3855 + 3856 032714 200 05 0 00 034414 C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3857 032715 624 05 0 00 000003 TRZA 5,3 ;*TRZA SHOULD SKIP AND + 3858 ;PLACE 123456,,701234 INTO THE AC + 3859 STOP^ + 3860 032716 254 04 0 00 032717 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3861 032717 324 00 0 00 032720 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3862 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3863 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3864 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3865 032720 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3866 STOP^ + 3867 032721 254 04 0 00 032722 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3868 032722 324 00 0 00 032723 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3869 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3870 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3871 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3872 + 3873 ;********** + 3874 + 3875 ;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3876 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3877 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3878 ;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3879 ;THE AC SHOULD BE 123456,,701234. + 3880 + 3881 032723 200 04 0 00 034414 C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3882 032724 624 04 0 00 000300 TRZA 4,300 ;*TRZA SHOULD SKIP AND + 3883 ;PLACE 123456,,701034 INTO THE AC + 3884 STOP^ + 3885 032725 254 04 0 00 032726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3886 032726 324 00 0 00 032727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3887 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3888 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3889 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3890 032727 312 04 0 00 034427 CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3891 STOP^ + 3892 032730 254 04 0 00 032731 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3893 032731 324 00 0 00 032732 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3894 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3895 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3896 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3897 + 3898 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 64 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0096 + + 3899 ;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION + 3900 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3901 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3902 ;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3903 ;THE AC SHOULD BE 123454,,701234. + 3904 + 3905 032732 200 03 0 00 034414 C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3906 032733 625 03 0 00 000003 TLZA 3,3 ;*TLZA SHOULD SKIP AND + 3907 ;PLACE 123454,,701234 INTO THE AC + 3908 STOP^ + 3909 032734 254 04 0 00 032735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3910 032735 324 00 0 00 032736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3911 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3912 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3913 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3914 032736 312 03 0 00 034430 CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 3915 STOP^ + 3916 032737 254 04 0 00 032740 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3917 032740 324 00 0 00 032741 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3918 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3919 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3920 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3921 + 3922 ;********** + 3923 + 3924 ;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3925 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3926 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3927 ;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3928 ;THE AC SHOULD BE 123456,,701234. + 3929 + 3930 032741 200 02 0 00 034414 C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3931 032742 625 02 0 00 000300 TLZA 2,300 ;*TLZA SHOULD SKIP AND + 3932 ;PLACE 123456,,701234 INTO THE AC + 3933 STOP^ + 3934 032743 254 04 0 00 032744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3935 032744 324 00 0 00 032745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3936 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3937 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3938 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3939 032745 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3940 STOP^ + 3941 032746 254 04 0 00 032747 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3942 032747 324 00 0 00 032750 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3943 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3944 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3945 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3946 + 3947 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 65 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0097 + + 3948 ;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3949 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3950 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3951 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3952 ;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3953 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + 3954 + 3955 032750 200 01 0 00 034414 C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3956 032751 626 01 0 00 000300 TRZN 1,300 ;*TRZN SHOULD SKIP AND + 3957 ;PLACE 123456,,701034 INTO THE AC + 3958 STOP^ + 3959 032752 254 04 0 00 032753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3960 032753 324 00 0 00 032754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3964 032754 312 01 0 00 034427 CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3965 STOP^ + 3966 032755 254 04 0 00 032756 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3967 032756 324 00 0 00 032757 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3971 + 3972 ;********** + 3973 + 3974 ;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3975 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3976 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3977 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3978 ;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3979 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + 3980 + 3981 032757 200 00 0 00 034414 C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + 3982 032760 626 00 0 00 000003 TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + 3983 ;THE AC AND NOT SKIP + 3984 032761 334 00 0 00 000000 SKIPA ;PASS IF TRZN DOES NOT SKIP + 3985 STOP^ + 3986 032762 254 04 0 00 032763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3987 032763 324 00 0 00 032764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3988 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3989 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3990 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3991 032764 312 00 0 00 034414 CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3992 STOP^ + 3993 032765 254 04 0 00 032766 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3994 032766 324 00 0 00 032767 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3995 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3996 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3997 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3998 + 3999 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 66 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0098 + + 4000 ;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4001 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4002 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 4003 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4004 ;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4005 ;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + 4006 + 4007 032767 200 17 0 00 034414 C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4008 032770 627 17 0 00 000003 TLZN 17,3 ;TLZN SHOULD SKIP AND + 4009 ;PLACE 123454,,701234 INTO THE AC + 4010 STOP^ + 4011 032771 254 04 0 00 032772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4012 032772 324 00 0 00 032773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4013 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4014 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4015 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4016 032773 312 17 0 00 034430 CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 4017 STOP^ + 4018 032774 254 04 0 00 032775 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4019 032775 324 00 0 00 032776 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4020 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4021 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4022 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4023 + 4024 ;********** + 4025 + 4026 ;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4027 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4028 ;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. + 4029 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4030 ;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4031 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + 4032 + 4033 032776 200 16 0 00 034414 C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4034 032777 627 16 0 00 000300 TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + 4035 ;THE AC AND NOT SKIP + 4036 033000 334 00 0 00 000000 SKIPA ;PASS IF TLZN DOES NOT SKIP + 4037 STOP^ + 4038 033001 254 04 0 00 033002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4039 033002 324 00 0 00 033003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4040 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4041 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4042 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4043 033003 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4044 STOP^ + 4045 033004 254 04 0 00 033005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4046 033005 324 00 0 00 033006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4047 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4048 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4049 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4050 + 4051 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 67 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0099 + + 4052 ;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH + 4053 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4054 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4055 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. + 4056 ;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + 4057 + 4058 033006 200 15 0 00 034414 C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4059 033007 200 16 0 00 034424 MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4060 033010 631 15 0 00 000016 TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + 4061 ;PLACE 123456,,701234 INTO THE AC + 4062 033011 334 00 0 00 000000 SKIPA ;PASS IF TSZ DID NOT SKIP + 4063 STOP^ + 4064 033012 254 04 0 00 033013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4065 033013 324 00 0 00 033014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4066 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4067 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4068 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4069 033014 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4070 STOP^ + 4071 033015 254 04 0 00 033016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4072 033016 324 00 0 00 033017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4076 033017 312 16 0 00 034424 CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + 4077 STOP^ + 4078 033020 254 04 0 00 033021 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4079 033021 324 00 0 00 033022 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4083 + 4084 ;********** + 4085 + 4086 ;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH + 4087 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4088 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4089 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. + 4090 ;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + 4091 + 4092 033022 200 14 0 00 034414 C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4093 033023 200 15 0 00 034431 MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4094 033024 631 14 0 00 000015 TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + 4095 ;PLACE 020406,,501210 INTO THE AC + 4096 033025 334 00 0 00 000000 SKIPA ;PASS IF TSZ DID NOT SKIP + 4097 STOP^ + 4098 033026 254 04 0 00 033027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4099 033027 324 00 0 00 033030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4100 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4101 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4102 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4103 033030 312 14 0 00 034432 CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + 4104 STOP^ + 4105 033031 254 04 0 00 033032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4106 033032 324 00 0 00 033033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 67-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0100 + + 4107 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4108 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4109 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4110 033033 312 15 0 00 034431 CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + 4111 STOP^ + 4112 033034 254 04 0 00 033035 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4113 033035 324 00 0 00 033036 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4114 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4115 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4116 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4117 + 4118 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 68 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0101 + + 4119 ;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4120 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4121 ;C(E). + 4122 ;AC BITS ARE THEN CHANGED TO ZERO. + 4123 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. + 4124 ;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC + 4125 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4126 + 4127 033036 200 13 0 00 034414 C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4128 033037 200 14 0 00 034433 MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4129 033040 632 13 0 00 000014 TDZE 13,14 ;*TDZE SHOULD SKIP AND + 4130 ;PLACE 123456,,701234 INTO THE AC + 4131 STOP^ + 4132 033041 254 04 0 00 033042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4133 033042 324 00 0 00 033043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4134 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4135 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4136 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4137 033043 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + 4138 STOP^ + 4139 033044 254 04 0 00 033045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4140 033045 324 00 0 00 033046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4141 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4142 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4143 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4144 033046 312 14 0 00 034433 CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4145 STOP^ + 4146 033047 254 04 0 00 033050 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4147 033050 324 00 0 00 033051 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4148 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4149 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4150 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4151 + 4152 ;********** + 4153 + 4154 ;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4155 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4156 ;C(E) ARE ZERO. THESE MASKED + 4157 ;AC BITS ARE THEN CHANGED TO ZERO. + 4158 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 + 4159 ;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC + 4160 ;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + 4161 + 4162 033051 200 12 0 00 034414 C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4163 033052 200 13 0 00 034434 MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + 4164 033053 632 12 0 00 000013 TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + 4165 ;PLACE 023456,,701234 INTO THE AC + 4166 033054 334 00 0 00 000000 SKIPA ;PASS IF TDZE DOES NOT SKIP + 4167 STOP^ + 4168 033055 254 04 0 00 033056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4169 033056 324 00 0 00 033057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4170 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4171 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4172 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4173 033057 312 12 0 00 034435 CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 68-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0102 + + 4174 STOP^ + 4175 033060 254 04 0 00 033061 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4176 033061 324 00 0 00 033062 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4180 033062 312 13 0 00 034434 CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + 4181 STOP^ + 4182 033063 254 04 0 00 033064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4183 033064 324 00 0 00 033065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4187 + 4188 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 69 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0103 + + 4189 ;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4190 ;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN + 4191 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4192 ;AC BITS ARE THEN CHANGED TO ZERO. + 4193 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 + 4194 ;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC + 4195 ;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + 4196 + 4197 033065 200 11 0 00 034414 C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4198 033066 200 12 0 00 034424 MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4199 033067 633 11 0 00 000012 TSZE 11,12 ;*TSZE SHOULD SKIP AND + 4200 ;PLACE 123456,,701234 INTO THE AC + 4201 STOP^ + 4202 033070 254 04 0 00 033071 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4203 033071 324 00 0 00 033072 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4204 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4205 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4206 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4207 033072 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + 4208 STOP^ + 4209 033073 254 04 0 00 033074 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4210 033074 324 00 0 00 033075 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4214 033075 312 12 0 00 034424 CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + 4215 STOP^ + 4216 033076 254 04 0 00 033077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4217 033077 324 00 0 00 033100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4221 + 4222 ;********** + 4223 + 4224 ;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4225 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4226 ;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4227 ;AC BITS ARE THEN CHANGED TO ZERO + 4228 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 + 4229 ;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC + 4230 ;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + 4231 + 4232 033100 200 10 0 00 034414 C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4233 033101 200 11 0 00 034436 MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + 4234 033102 633 10 0 00 000011 TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + 4235 ;PLACE 120456,,701234 INTO THE AC + 4236 033103 334 00 0 00 000000 SKIPA ;PASS IF TSZE DID NOT SKIP + 4237 STOP^ + 4238 033104 254 04 0 00 033105 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4239 033105 324 00 0 00 033106 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4240 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4241 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4242 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4243 033106 312 10 0 00 034437 CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 69-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0104 + + 4244 STOP^ + 4245 033107 254 04 0 00 033110 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4246 033110 324 00 0 00 033111 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4247 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4248 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4249 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4250 033111 312 11 0 00 034436 CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + 4251 STOP^ + 4252 033112 254 04 0 00 033113 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4253 033113 324 00 0 00 033114 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4254 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4255 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4256 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4257 + 4258 + 4259 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 70 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0105 + + 4260 ;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH + 4261 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 4262 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 4263 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 + 4264 ;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 4265 + 4266 033114 200 07 0 00 034414 C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4267 033115 200 10 0 00 034433 MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4268 033116 634 07 0 00 000010 TDZA 7,10 ;*TDZA SHOULD SKIP AND + 4269 ;PLACE 123456,,701234 INTO THE AC + 4270 STOP^ + 4271 033117 254 04 0 00 033120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4272 033120 324 00 0 00 033121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4276 033121 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + 4277 STOP^ + 4278 033122 254 04 0 00 033123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4279 033123 324 00 0 00 033124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4280 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4281 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4282 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4283 033124 312 10 0 00 034433 CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + 4284 STOP^ + 4285 033125 254 04 0 00 033126 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4286 033126 324 00 0 00 033127 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4287 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4288 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4289 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4290 033127 312 10 0 00 034433 CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4291 STOP^ + 4292 033130 254 04 0 00 033131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4293 033131 324 00 0 00 033132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4294 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4295 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4296 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4297 + 4298 ;********** + 4299 + 4300 ;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH + 4301 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 4302 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4303 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 4304 ;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + 4305 + 4306 033132 200 06 0 00 034414 C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4307 033133 200 07 0 00 034431 MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4308 033134 634 06 0 00 000007 TDZA 6,7 ;*TDZA SHOULD SKIP AND + 4309 ;PLACE 121052,,000204 INTO THE AC + 4310 STOP^ + 4311 033135 254 04 0 00 033136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4312 033136 324 00 0 00 033137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4313 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4314 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 70-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0106 + + 4315 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4316 033137 312 06 0 00 034440 CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + 4317 STOP^ + 4318 033140 254 04 0 00 033141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4319 033141 324 00 0 00 033142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4320 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4321 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4322 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4323 033142 312 07 0 00 034431 CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + 4324 STOP^ + 4325 033143 254 04 0 00 033144 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4326 033144 324 00 0 00 033145 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4327 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4328 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4329 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4330 + 4331 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 71 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0107 + + 4332 ;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH + 4333 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 4334 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4335 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 4336 ;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 4337 + 4338 033145 200 05 0 00 034414 C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4339 033146 200 06 0 00 034424 MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4340 033147 635 05 0 00 000006 TSZA 5,6 ;*TSZA SHOULD SKIP AND + 4341 ;PLACE 123456,,701234 INTO THE AC + 4342 STOP^ + 4343 033150 254 04 0 00 033151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4344 033151 324 00 0 00 033152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4345 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4346 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4347 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4348 033152 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4349 STOP^ + 4350 033153 254 04 0 00 033154 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4351 033154 324 00 0 00 033155 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4352 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4353 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4354 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4355 033155 312 06 0 00 034424 CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + 4356 STOP^ + 4357 033156 254 04 0 00 033157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4358 033157 324 00 0 00 033160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4359 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4360 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4361 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4362 + 4363 ;********** + 4364 + 4365 ;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH + 4366 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 4367 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4368 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 4369 ;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + 4370 + 4371 033160 200 04 0 00 034414 C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4372 033161 200 05 0 00 034441 MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + 4373 033162 635 04 0 00 000005 TSZA 4,5 ;*TSZA SHOULD SKIP AND + 4374 ;PLACE 0 INTO THE AC + 4375 STOP^ + 4376 033163 254 04 0 00 033164 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4377 033164 324 00 0 00 033165 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4378 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4379 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4380 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4381 033165 312 04 0 00 034407 CAME 4,[0] ;PASS IF C(AC)=0 + 4382 STOP^ + 4383 033166 254 04 0 00 033167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4384 033167 324 00 0 00 033170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4385 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4386 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 71-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0108 + + 4387 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4388 033170 312 05 0 00 034441 CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + 4389 SToP^ + 4390 033171 254 04 0 00 033172 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4391 033172 324 00 0 00 033173 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4395 + 4396 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 72 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0109 + + 4397 ;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4398 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4399 ;C(E) ARE ZERO. THESE MASKED + 4400 ;AC BITS ARE THEN CHANGEDTO ZERO. + 4401 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 4402 ;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC + 4403 ;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + 4404 + 4405 033173 200 03 0 00 034414 C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4406 033174 200 04 0 00 034442 MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + 4407 033175 636 03 0 00 000004 TDZN 3,4 ;*TDZN SHoULD SKIP AND + 4408 ;PLACE 123456,,701230 INTO THE AC + 4409 STOP^ + 4410 033176 254 04 0 00 033177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4411 033177 324 00 0 00 033200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4412 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4413 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4414 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4415 033200 312 03 0 00 034443 CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + 4416 STOP^ + 4417 033201 254 04 0 00 033202 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4418 033202 324 00 0 00 033203 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4419 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4420 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4421 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4422 033203 312 04 0 00 034442 CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + 4423 STOP^ + 4424 033204 254 04 0 00 033205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4425 033205 324 00 0 00 033206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4426 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4427 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4428 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4429 + 4430 ;********** + 4431 + 4432 ;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4433 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4434 ;C(E) ARE ZERO. THESE MASKED + 4435 ;AC BITS ARE THEN CHANGED TO ZERO. + 4436 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 4437 ;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC + 4438 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4439 + 4440 033206 200 02 0 00 034414 C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4441 033207 200 03 0 00 034433 MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4442 033210 636 02 0 00 000003 TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + 4443 ;PLACE 123456,,701234 INTO THE AC + 4444 033211 334 00 0 00 000000 SKIPA ;PASS IF TDZN DOES NOT SKIP + 4445 STOP^ + 4446 033212 254 04 0 00 033213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4447 033213 324 00 0 00 033214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4451 033214 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 72-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0110 + + 4452 STOP^ + 4453 033215 254 04 0 00 033216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4454 033216 324 00 0 00 033217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4458 033217 312 03 0 00 034433 CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4459 STOP^ + 4460 033220 254 04 0 00 033221 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4461 033221 324 00 0 00 033222 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4462 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4463 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4464 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4465 + 4466 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 73 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0111 + + 4467 ;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION + 4468 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4469 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4470 ;AC BITS ARE THEN CHANGED TO ZERO. + 4471 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. + 4472 ;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC + 4473 ;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + 4474 + 4475 033222 200 01 0 00 034414 C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4476 033223 200 02 0 00 034444 MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + 4477 033224 637 01 0 00 000002 TSZN 1,2 ;*TSZN SHOULD SKIP AND + 4478 ;PLACE 123456,,700234 INTO THE AC + 4479 STOP^ + 4480 033225 254 04 0 00 033226 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4481 033226 324 00 0 00 033227 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4482 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4483 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4484 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4485 033227 312 01 0 00 034445 CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + 4486 STOP^ + 4487 033230 254 04 0 00 033231 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4488 033231 324 00 0 00 033232 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4489 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4490 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4491 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4492 033232 312 02 0 00 034444 CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + 4493 STOP^ + 4494 033233 254 04 0 00 033234 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4495 033234 324 00 0 00 033235 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4496 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4497 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4498 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4499 + 4500 ;********** + 4501 + 4502 ;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4503 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4504 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4505 ;AC BITS ARE THEN CHANGED TO ZERO. + 4506 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- + 4507 ;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC + 4508 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4509 + 4510 033235 200 00 0 00 034414 C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4511 033236 200 01 0 00 034424 MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + 4512 033237 637 00 0 00 000001 TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + 4513 ;PLACE 123456,,701234 INTO THE AC + 4514 033240 334 00 0 00 000000 SKIPA ;PASS IF TSZN DOES NOT SKIP + 4515 STOP^ + 4516 033241 254 04 0 00 033242 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4517 033242 324 00 0 00 033243 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4518 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4519 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4520 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4521 033243 312 00 0 00 034414 CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 73-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0112 + + 4522 STOP^ + 4523 033244 254 04 0 00 033245 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4524 033245 324 00 0 00 033246 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4525 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4526 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4527 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4528 033246 312 01 0 00 034424 CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + 4529 STOP^ + 4530 033247 254 04 0 00 033250 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4531 033250 324 00 0 00 033251 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4535 + 4536 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 74 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0113 + + 4537 ;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH + 4538 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4539 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4540 ;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + 4541 + 4542 033251 200 17 0 00 034414 C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4543 033252 640 17 0 00 000003 TRC 17,3 ;*TRC SHOULD NOT SKIP AND + 4544 ;PLACE 123456,,701237 INTO THE AC + 4545 033253 334 00 0 00 000000 SKIPA ;PASS IF TRC DID NOT SKIP + 4546 STOP^ + 4547 033254 254 04 0 00 033255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4548 033255 324 00 0 00 033256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4552 033256 312 17 0 00 034446 CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4553 STOP^ + 4554 033257 254 04 0 00 033260 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4555 033260 324 00 0 00 033261 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4556 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4557 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4558 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4559 + 4560 ;********** + 4561 + 4562 ;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH + 4563 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4564 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4565 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + 4566 + 4567 033261 200 16 0 00 034414 C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4568 033262 640 16 0 00 000300 TRC 16,300 ;*TRC SHOULD NOT SKIP AND + 4569 ;PLACE 123456,,701134 INTO THE AC + 4570 033263 334 00 0 00 000000 SKIPA ;PASS IF TRC DID NOT SKIP + 4571 STOP^ + 4572 033264 254 04 0 00 033265 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4573 033265 324 00 0 00 033266 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4577 033266 312 16 0 00 034447 CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4578 STOP^ + 4579 033267 254 04 0 00 033270 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4580 033270 324 00 0 00 033271 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4584 + 4585 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 75 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0114 + + 4586 ;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH + 4587 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4588 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4589 ;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + 4590 + 4591 033271 200 15 0 00 034414 C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4592 033272 641 15 0 00 000300 TLC 15,300 ;*TLC SHOULD NOT SKIP AND + 4593 ;PLACE 123756,,701234 INTO THE AC + 4594 033273 334 00 0 00 000000 SKIPA ;PASS IF TLC DID NOT SKIP + 4595 STOP^ + 4596 033274 254 04 0 00 033275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4597 033275 324 00 0 00 033276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4601 033276 312 15 0 00 034450 CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + 4602 STOP^ + 4603 033277 254 04 0 00 033300 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4604 033300 324 00 0 00 033301 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4605 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4606 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4607 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4608 + 4609 ;********** + 4610 + 4611 ;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH + 4612 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4613 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4614 ;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + 4615 + 4616 033301 200 14 0 00 034414 C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4617 033302 641 14 0 00 000003 TLC 14,3 ;*TLC SHOULD NOT SKIP AND + 4618 ;PLACE 123455,,701234 INTO THE AC + 4619 033303 334 00 0 00 000000 SKIPA ;PASS IF TLC DID NOT SKIP + 4620 STOP^ + 4621 033304 254 04 0 00 033305 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4622 033305 324 00 0 00 033306 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4623 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4624 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4625 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4626 033306 312 14 0 00 034451 CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4627 STOP^ + 4628 033307 254 04 0 00 033310 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4629 033310 324 00 0 00 033311 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4630 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4631 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4632 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4633 + 4634 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 76 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0115 + + 4635 ;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4636 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4637 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4638 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4639 ;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4640 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + 4641 + 4642 033311 200 13 0 00 034414 C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4643 033312 642 13 0 00 000003 TRCE 13,3 ;*TRCE SHOULD SKIP AND + 4644 ;PLACE 123456,,701237 INTO ThE AC + 4645 STOP^ + 4646 033313 254 04 0 00 033314 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4647 033314 324 00 0 00 033315 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4651 033315 312 13 0 00 034446 CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4652 STOP^ + 4653 033316 254 04 0 00 033317 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4654 033317 324 00 0 00 033320 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4658 + 4659 ;********** + 4660 + 4661 ;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4662 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4663 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4664 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4665 ;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4666 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + 4667 + 4668 033320 200 12 0 00 034414 C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4669 033321 642 12 0 00 000300 TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + 4670 ;PLACE 123456,,701134 INTO THE AC + 4671 033322 334 00 0 00 000000 SKIPA ;PASS IF TRCE DID NOT SKIP + 4672 STOP^ + 4673 033323 254 04 0 00 033324 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4674 033324 324 00 0 00 033325 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4675 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4676 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4677 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4678 033325 312 12 0 00 034447 CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4679 STOP^ + 4680 033326 254 04 0 00 033327 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4681 033327 324 00 0 00 033330 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4682 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4683 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4684 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4685 + 4686 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 77 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0116 + + 4687 ;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4688 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4689 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4690 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4691 ;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4692 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + 4693 + 4694 033330 200 11 0 00 034414 C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4695 033331 643 11 0 00 000300 TLCE 11,300 ;*TLCE SHOULD SKIP AND + 4696 ;PLACE 123756,,701234 INTO THE AC + 4697 STOP^ + 4698 033332 254 04 0 00 033333 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4699 033333 324 00 0 00 033334 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4700 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4701 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4702 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4703 033334 312 11 0 00 034450 CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4704 STOP^ + 4705 033335 254 04 0 00 033336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4706 033336 324 00 0 00 033337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4707 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4708 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4709 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4710 + 4711 ;********** + 4712 + 4713 ;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4714 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4715 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4716 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4717 ;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4718 ;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + 4719 + 4720 033337 200 10 0 00 034414 C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4721 033340 643 10 0 00 000003 TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + 4722 ;PLACE 123455,,701234 INTO THE AC + 4723 033341 334 00 0 00 000000 SKIPA ;PASS IF TLCE DID NOT SKIP + 4724 STOP^ + 4725 033342 254 04 0 00 033343 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4726 033343 324 00 0 00 033344 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4727 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4728 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4729 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4730 033344 312 10 0 00 034451 CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + 4731 STOP^ + 4732 033345 254 04 0 00 033346 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4733 033346 324 00 0 00 033347 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4737 + 4738 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 78 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0117 + + 4739 ;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4740 ;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. + 4741 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4742 ;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4743 ;THE AC SHOULD BE 123456,,701237. + 4744 + 4745 033347 200 07 0 00 034414 C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4746 033350 644 07 0 00 000003 TRCA 7,3 ;*TRCA SHOULD SKIP AND + 4747 ;PLACE 123456,,701237 INTO THE AC + 4748 STOP^ + 4749 033351 254 04 0 00 033352 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4750 033352 324 00 0 00 033353 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4754 033353 312 07 0 00 034446 CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4755 STOP^ + 4756 033354 254 04 0 00 033355 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4757 033355 324 00 0 00 033356 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4758 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4759 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4760 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4761 + 4762 ;********** + 4763 + 4764 ;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4765 ;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E + 4766 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4767 ;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4768 ;THE AC SHOULD BE 123456,,701134 + 4769 + 4770 033356 200 06 0 00 034414 C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4771 033357 644 06 0 00 000300 TRCA 6,300 ;*TRCA SHOULD SKIP AND + 4772 ;PLACE 123456,,701134 INTO THE AC + 4773 STOP^ + 4774 033360 254 04 0 00 033361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4775 033361 324 00 0 00 033362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4776 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4777 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4778 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4779 033362 312 06 0 00 034447 CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4780 STOP^ + 4781 033363 254 04 0 00 033364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4782 033364 324 00 0 00 033365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4786 + 4787 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 79 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0118 + + 4788 ;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4789 ;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E + 4790 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 4791 ;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4792 ;THE AC SHOULD 123456,,701234 + 4793 + 4794 033365 200 05 0 00 034414 C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4795 033366 645 05 0 00 000003 TLCA 5,3 ;*TLCA SHOULD SKIP AND + 4796 ;PLACE 12345,,701234 INTO THE AC + 4797 STOP^ + 4798 033367 254 04 0 00 033370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4799 033370 324 00 0 00 033371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4800 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4801 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4802 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4803 033371 312 05 0 00 034451 CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4804 STOP^ + 4805 033372 254 04 0 00 033373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4806 033373 324 00 0 00 033374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4807 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4808 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4809 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4810 + 4811 ;********** + 4812 + 4813 ;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4814 ;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E + 4815 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4816 ;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4817 ;THE AC SHOULD BE 123756,,701234 + 4818 + 4819 033374 200 04 0 00 034414 C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4820 033375 645 04 0 00 000300 TLCA 4,300 ;*TLCA SHOULD SKIP AND + 4821 ;PLACE 123756,,701234 INTO THE AC + 4822 STOP^ + 4823 033376 254 04 0 00 033377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4824 033377 324 00 0 00 033400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4825 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4826 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4827 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4828 033400 312 04 0 00 034450 CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4829 STOP^ + 4830 033401 254 04 0 00 033402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4831 033402 324 00 0 00 033403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4832 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4833 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4834 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4835 + 4836 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 80 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0119 + + 4837 ;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4838 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4839 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4840 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4841 ;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4842 ;AND RESULT IN THE AC SHOULD BE 123456,,701134 + 4843 + 4844 033403 200 03 0 00 034414 C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4845 033404 646 03 0 00 000300 TRCN 3,300 ;*SHOULD SKIP AND + 4846 ;PLACE 123456,,701134 INTO THE AC + 4847 STOP^ + 4848 033405 254 04 0 00 033406 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4849 033406 324 00 0 00 033407 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4850 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4851 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4852 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4853 033407 312 03 0 00 034447 CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4854 STOP^ + 4855 033410 254 04 0 00 033411 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4856 033411 324 00 0 00 033412 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4857 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4858 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4859 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4860 + 4861 ;********** + 4862 + 4863 ;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4864 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4865 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4866 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 4867 ;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4868 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + 4869 + 4870 033412 200 02 0 00 034414 C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4871 033413 646 02 0 00 000003 TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + 4872 ;PLACE 123456,,701237 INTO THE AC + 4873 033414 334 00 0 00 000000 SKIPA ;PASS IF TRCN DID NOT SKIP + 4874 STOP^ + 4875 033415 254 04 0 00 033416 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4876 033416 324 00 0 00 033417 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4877 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4878 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4879 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4880 033417 312 02 0 00 034446 CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4881 STOP^ + 4882 033420 254 04 0 00 033421 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4883 033421 324 00 0 00 033422 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4884 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4885 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4886 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4887 + 4888 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 81 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0120 + + 4889 ;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4890 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4891 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4892 ;IN THE CASE, C(AC)=123456,,701234 AND E=3 + 4893 ;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4894 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 4895 + 4896 033422 200 01 0 00 034414 C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4897 033423 647 01 0 00 000003 TLCN 1,3 ;*TLCN SHOULD SKIP AND + 4898 ;PLACE 123455,701234 INTO THE AC + 4899 STOP^ + 4900 033424 254 04 0 00 033425 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4901 033425 324 00 0 00 033426 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4902 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4903 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4904 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4905 033426 312 01 0 00 034451 CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4906 STOP^ + 4907 033427 254 04 0 00 033430 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4908 033430 324 00 0 00 033431 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4909 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4910 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4911 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4912 + 4913 ;********** + 4914 + 4915 ;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4916 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. + 4917 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4918 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4919 ;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4920 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 4921 + 4922 033431 200 00 0 00 034414 C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4923 033432 647 00 0 00 000300 TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + 4924 ;PLACE 123756,,701234 INTO THE AC + 4925 033433 334 00 0 00 000000 SKIPA ;PASS IF TLCN DID NOT SKIP + 4926 STOP^ + 4927 033434 254 04 0 00 033435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4928 033435 324 00 0 00 033436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4929 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4930 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4931 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4932 033436 312 00 0 00 034450 CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4933 STOP^ + 4934 033437 254 04 0 00 033440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4935 033440 324 00 0 00 033441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4936 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4937 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4938 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4939 + 4940 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 82 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0121 + + 4941 ;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH + 4942 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4943 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4944 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 + 4945 ;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + 4946 + 4947 033441 200 17 0 00 034414 C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4948 033442 200 00 0 00 034424 MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4949 033443 651 17 0 00 000000 TSC 17,0 ;*TSC SHOULD NOT SKIP AND + 4950 ;PLACE -1,,-1 INTO THE AC + 4951 033444 334 00 0 00 000000 SKIPA ;PASS IF TSC DOES NOT SKIP + 4952 STOP^ + 4953 033445 254 04 0 00 033446 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4954 033446 324 00 0 00 033447 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4955 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4956 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4957 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4958 033447 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + 4959 STOP^ + 4960 033450 254 04 0 00 033451 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4961 033451 324 00 0 00 033452 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4962 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4963 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4964 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4965 033452 312 00 0 00 034424 CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + 4966 STOP^ + 4967 033453 254 04 0 00 033454 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4968 033454 324 00 0 00 033455 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4972 + 4973 ;********** + 4974 + 4975 ;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH + 4976 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4977 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4978 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 4979 ;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + 4980 + 4981 033455 200 16 0 00 034414 C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4982 033456 200 17 0 00 034431 MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4983 033457 651 16 0 00 000017 TSC 16,17 ;*TSC SHOULD NOT SKIP AND + 4984 ;PLACE 624426,,553711 INTO THE AC + 4985 033460 334 00 0 00 000000 SKIPA ;PASS IF TSC DOES NOT SKIP + 4986 STOP^ + 4987 033461 254 04 0 00 033462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4988 033462 324 00 0 00 033463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4992 033463 312 16 0 00 034452 CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + 4993 STOP^ + 4994 033464 254 04 0 00 033465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4995 033465 324 00 0 00 033466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 82-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0122 + + 4996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4999 033466 312 17 0 00 034431 CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + 5000 STOP^ + 5001 033467 254 04 0 00 033470 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5002 033470 324 00 0 00 033471 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5006 + 5007 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 83 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0123 + + 5008 ;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5009 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5010 ;C(E) ARE ZERO. THESE MASKED + 5011 ;AC BITS ARE THEN COMPLEMENTED + 5012 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5013 ;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC + 5014 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5015 + 5016 033471 200 15 0 00 034414 C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5017 033472 200 16 0 00 034433 MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5018 033473 652 15 0 00 000016 TDCE 15,16 ;*TDCE SHOULD SKIP AND + 5019 ;PLACE -1,,-1 INTO THE AC + 5020 STOP^ + 5021 033474 254 04 0 00 033475 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5022 033475 324 00 0 00 033476 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5023 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5024 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5025 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5026 033476 312 15 0 00 034301 CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + 5027 STOP^ + 5028 033477 254 04 0 00 033500 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5029 033500 324 00 0 00 033501 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5030 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5031 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5032 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5033 033501 312 16 0 00 034433 CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + 5034 STOP^ + 5035 033502 254 04 0 00 033503 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5036 033503 324 00 0 00 033504 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5037 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5038 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5039 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5040 + 5041 ;********** + 5042 + 5043 ;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5044 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5045 ;C(E) ARE ZERO. THESE MASKED + 5046 ;AC BITS ARE THEN COMPLEMENTED + 5047 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 + 5048 ;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC + 5049 ;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + 5050 + 5051 033504 200 14 0 00 034414 C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5052 033505 200 15 0 00 034434 MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + 5053 033506 652 14 0 00 000015 TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + 5054 ;PLACE 677777,,-1 INTO THE AC + 5055 033507 334 00 0 00 000000 SKIPA ;PASS IF TDCE DOES NOT SKIP + 5056 STOP^ + 5057 033510 254 04 0 00 033511 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5058 033511 324 00 0 00 033512 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5059 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5060 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5061 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5062 033512 312 14 0 00 034453 CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 83-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0124 + + 5063 STOP^ + 5064 033513 254 04 0 00 033514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5065 033514 324 00 0 00 033515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5066 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5067 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5068 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5069 033515 312 15 0 00 034434 CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + 5070 STOP^ + 5071 033516 254 04 0 00 033517 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5072 033517 324 00 0 00 033520 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5076 + 5077 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 84 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0125 + + 5078 ;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5079 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5080 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5081 ;AC BITS ARE THEN COMPLEMENTED + 5082 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5083 ;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC + 5084 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5085 + 5086 033520 200 13 0 00 034414 C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5087 033521 200 14 0 00 034424 MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5088 033522 653 13 0 00 000014 TSCE 13,14 ;*TSCE SHOULD SKIP AND + 5089 ;PLACE -1,,-1 INTO THE AC + 5090 STOP^ + 5091 033523 254 04 0 00 033524 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5092 033524 324 00 0 00 033525 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5093 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5094 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5095 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5096 033525 312 13 0 00 034301 CAME 13,[-1] ;PASS IF C(E) UNCHANGED + 5097 STOP^ + 5098 033526 254 04 0 00 033527 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5099 033527 324 00 0 00 033530 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5100 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5101 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5102 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5103 + 5104 ;********** + 5105 + 5106 ;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5107 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5108 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5109 ;AC BITS ARE THEN COMPLEMENTED + 5110 ;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 + 5111 ;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC + 5112 ;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + 5113 + 5114 033530 200 12 0 00 034414 C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5115 033531 200 13 0 00 034436 MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + 5116 033532 653 12 0 00 000013 TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + 5117 ;PLACE 774777,,-1 INTO THE AC + 5118 033533 334 00 0 00 000000 SKIPA ;PASS IF TSCE DOES NOT SKIP + 5119 STOP^ + 5120 033534 254 04 0 00 033535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5121 033535 324 00 0 00 033536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5122 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5123 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5124 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5125 033536 312 12 0 00 034454 CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + 5126 STOP^ + 5127 033537 254 04 0 00 033540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5128 033540 324 00 0 00 033541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5129 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5130 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5131 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5132 033541 312 13 0 00 034436 CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 84-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0126 + + 5133 STOP^ + 5134 033542 254 04 0 00 033543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5135 033543 324 00 0 00 033544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5136 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5137 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5138 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5139 + 5140 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 85 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0127 + + 5141 ;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5142 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 5143 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5144 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5145 ;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5146 + 5147 033544 200 11 0 00 034414 C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5148 033545 200 12 0 00 034433 MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5149 033546 654 11 0 00 000012 TDCA 11,12 ;*TDCA SHOULD SKIP AND + 5150 ;PLACE -1,,-1 INTO THE AC + 5151 STOP^ + 5152 033547 254 04 0 00 033550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5153 033550 324 00 0 00 033551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5154 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5155 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5156 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5157 033551 312 11 0 00 034301 CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + 5158 STOP^ + 5159 033552 254 04 0 00 033553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5160 033553 324 00 0 00 033554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5161 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5162 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5163 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5164 033554 312 12 0 00 034433 CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5165 STOP^ + 5166 033555 254 04 0 00 033556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5167 033556 324 00 0 00 033557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5171 + 5172 ;********** + 5173 + 5174 ;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5175 ;CORRESPOND TO 1'S IN C(E) AND SLWAYS + 5176 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5177 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 5178 ;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + 5179 + 5180 033557 200 10 0 00 034414 C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5181 033560 200 11 0 00 034431 MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 5182 033561 654 10 0 00 000011 TDCA 10,11 ;*TDCA SHOULD SKP AND + 5183 ;PLACE 371173,,006244 INTO THE AC + 5184 STOP^ + 5185 033562 254 04 0 00 033563 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5186 033563 324 00 0 00 033564 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5190 033564 312 10 0 00 034455 CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + 5191 STOP^ + 5192 033565 254 04 0 00 033566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5193 033566 324 00 0 00 033567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 85-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0128 + + 5196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5197 033567 312 11 0 00 034431 CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + 5198 STOP^ + 5199 033570 254 04 0 00 033571 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5200 033571 324 00 0 00 033572 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5201 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5202 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5203 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5204 + 5205 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 86 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0129 + + 5206 ;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5207 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 5208 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5209 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5210 ;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5211 + 5212 033572 200 07 0 00 034414 C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5213 033573 200 10 0 00 034424 MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 5214 033574 655 07 0 00 000010 TSCA 7,10 ;*TSCA CHOULD SKIP AND + 5215 ;PLACE -1,,-1 INTO THE AC + 5216 STOP^ + 5217 033575 254 04 0 00 033576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5218 033576 324 00 0 00 033577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5222 033577 312 07 0 00 034301 CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + 5223 STOP^ + 5224 033600 254 04 0 00 033601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5225 033601 324 00 0 00 033602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5229 033602 312 10 0 00 034424 CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + 5230 STOP^ + 5231 033603 254 04 0 00 033604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5232 033604 324 00 0 00 033605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5233 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5234 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5235 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5236 + 5237 ;********** + 5238 + 5239 ;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5240 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 5241 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5242 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 5243 ;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + 5244 + 5245 033605 200 06 0 00 034414 C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5246 033606 200 07 0 00 034441 MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + 5247 033607 655 06 0 00 000007 TSCA 6,7 ;*TSCA SHOULD SKIP AND + 5248 ;PLACE 0 INTO THE AC + 5249 STOP^ + 5250 033610 254 04 0 00 033611 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5251 033611 324 00 0 00 033612 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5252 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5253 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5254 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5255 033612 312 06 0 00 034407 CAME 6,[0] ;PASS IF C(AC)=0 + 5256 STOP^ + 5257 033613 254 04 0 00 033614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5258 033614 324 00 0 00 033615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5259 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5260 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 86-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0130 + + 5261 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5262 033615 312 07 0 00 034441 CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + 5263 STOP^ + 5264 033616 254 04 0 00 033617 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5265 033617 324 00 0 00 033620 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5269 + 5270 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 87 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0131 + + 5271 ;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5272 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5273 ;C(E) ARE ZERO. THESE MASKED + 5274 ;AC BITS ARE THEN COMPLEMENTED + 5275 ;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 5276 ;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC + 5277 ;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + 5278 + 5279 033620 200 05 0 00 034414 C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5280 033621 200 06 0 00 034442 MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + 5281 033622 656 05 0 00 000006 TDCN 5,6 ;*TDCN SHOULD SKIP AND + 5282 ;PLACE -1,,777773 INTO THE AC + 5283 STOP^ + 5284 033623 254 04 0 00 033624 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5285 033624 324 00 0 00 033625 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5286 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5287 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5288 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5289 033625 312 05 0 00 034456 CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + 5290 STOP^ + 5291 033626 254 04 0 00 033627 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5292 033627 324 00 0 00 033630 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5293 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5294 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5295 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5296 033630 312 06 0 00 034442 CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + 5297 STOP^ + 5298 033631 254 04 0 00 033632 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5299 033632 324 00 0 00 033633 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5300 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5301 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5302 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5303 + 5304 ;********** + 5305 + 5306 ;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5307 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5308 ;C(E) ARE ZERO. THESE MASKED + 5309 ;AC BITS ARE THEN COMPLEMENTED + 5310 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5311 ;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC + 5312 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5313 + 5314 033633 200 04 0 00 034414 C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5315 033634 200 05 0 00 034433 MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + 5316 033635 656 04 0 00 000005 TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + 5317 ;PLACE -1,,-1 INTO THE AC + 5318 033636 334 00 0 00 000000 SKIPA ;PASS IF TDCN DOES NOT SKIP + 5319 STOP^ + 5320 033637 254 04 0 00 033640 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5321 033640 324 00 0 00 033641 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5322 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5323 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5324 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5325 033641 312 04 0 00 034301 CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 87-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0132 + + 5326 STOP^ + 5327 033642 254 04 0 00 033643 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5328 033643 324 00 0 00 033644 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5329 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5330 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5331 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5332 033644 312 05 0 00 034433 CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5333 STOP^ + 5334 033645 254 04 0 00 033646 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5335 033646 324 00 0 00 033647 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5336 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5337 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5338 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5339 + 5340 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 88 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0133 + + 5341 ;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5342 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5343 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5344 ;AC BITS ARE THEN COMPLEMENTED + 5345 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 + 5346 ;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC + 5347 ;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + 5348 + 5349 033647 200 03 0 00 034414 C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5350 033650 200 04 0 00 034444 MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + 5351 033651 657 03 0 00 000004 TSCN 3,4 ;*TSCN SHOULD SKIP AND + 5352 ;PLACE -1,,776777 INTO THE AC + 5353 STOP^ + 5354 033652 254 04 0 00 033653 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5355 033653 324 00 0 00 033654 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5356 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5357 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5358 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5359 033654 312 03 0 00 034457 CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + 5360 STOP^ + 5361 033655 254 04 0 00 033656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5362 033656 324 00 0 00 033657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5363 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5364 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5365 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5366 033657 312 04 0 00 034444 CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + 5367 STOP^ + 5368 033660 254 04 0 00 033661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5369 033661 324 00 0 00 033662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5370 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5371 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5372 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5373 + 5374 ;********** + 5375 + 5376 ;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5377 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5378 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5379 ;AC BITS ARE THEN COMPLEMENTD + 5380 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5381 ;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC + 5382 ;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + 5383 + 5384 033662 200 02 0 00 034414 C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5385 033663 200 03 0 00 034424 MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5386 033664 657 02 0 00 000003 TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + 5387 ;PLACE -1,,-1 INTO THE AC + 5388 033665 334 00 0 00 000000 SKIPA ;PASS IF TSCN DOES NOT SKIP + 5389 STOP^ + 5390 033666 254 04 0 00 033667 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5391 033667 324 00 0 00 033670 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5395 033670 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 88-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0134 + + 5396 STOP^ + 5397 033671 254 04 0 00 033672 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5398 033672 324 00 0 00 033673 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5399 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5400 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5401 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5402 033673 312 03 0 00 034424 CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + 5403 STOP^ + 5404 033674 254 04 0 00 033675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5405 033675 324 00 0 00 033676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5406 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5407 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5408 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5409 + 5410 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 89 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0135 + + 5411 ;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH + 5412 ;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP + 5413 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5414 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + 5415 + 5416 033676 200 01 0 00 034414 C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5417 033677 660 01 0 00 000003 TRO 1,3 ;*TRO SHOULD NOT SKIP AND + 5418 ;PLACE 123456,,701237 INTO THE AC + 5419 033700 334 00 0 00 000000 SKIPA ;PASS IF TRO DID NOT SKIP + 5420 STOP^ + 5421 033701 254 04 0 00 033702 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5422 033702 324 00 0 00 033703 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5423 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5424 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5425 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5426 033703 312 01 0 00 034446 CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5427 STOP^ + 5428 033704 254 04 0 00 033705 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5429 033705 324 00 0 00 033706 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5430 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5431 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5432 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5433 + 5434 ;********** + 5435 + 5436 ;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH + 5437 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5438 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5439 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + 5440 + 5441 033706 200 00 0 00 034414 C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5442 033707 660 00 0 00 000300 TRO 0,300 ;*TRO SHOULD NOT SKIP AND + 5443 ;PLACE 123456,,701334 INTO THE AC + 5444 033710 334 00 0 00 000000 SKIPA ;PASS IF TRO DID NOT SKIP + 5445 STOP^ + 5446 033711 254 04 0 00 033712 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5447 033712 324 00 0 00 033713 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5451 033713 312 00 0 00 034460 CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5452 STOP^ + 5453 033714 254 04 0 00 033715 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5454 033715 324 00 0 00 033716 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5458 + 5459 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 90 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0136 + + 5460 ;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH + 5461 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5462 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5463 ;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5464 + 5465 033716 200 17 0 00 034414 C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5466 033717 661 17 0 00 000300 TLO 17,300 ;*TLO SHOULD NOT SKIP AND + 5467 ;PLACE 123756,,701234 INTO THE AC + 5468 033720 334 00 0 00 000000 SKIPA ;PASS IF TLO DID NOT SKIP + 5469 STOP^ + 5470 033721 254 04 0 00 033722 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5471 033722 324 00 0 00 033723 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5472 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5473 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5474 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5475 033723 312 17 0 00 034450 CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + 5476 STOP^ + 5477 033724 254 04 0 00 033725 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5478 033725 324 00 0 00 033726 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5479 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5480 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5481 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5482 + 5483 ;********** + 5484 + 5485 ;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH + 5486 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5487 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5488 ;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5489 + 5490 033726 200 16 0 00 034461 C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + 5491 033727 661 16 0 00 000003 TLO 16,3 ;*TLO SHOULD NOT SKIP AND + 5492 ;PLACE 123457,,701234 INTO THE AC + 5493 033730 334 00 0 00 000000 SKIPA ;PASS IF DID NOT SKIP + 5494 STOP^ + 5495 033731 254 04 0 00 033732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5496 033732 324 00 0 00 033733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5500 033733 312 16 0 00 034462 CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + 5501 STOP^ + 5502 033734 254 04 0 00 033735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5503 033735 324 00 0 00 033736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5504 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5505 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5506 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5507 + 5508 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 91 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0137 + + 5509 ;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5510 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5511 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5512 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5513 ;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5514 ;AND RESULT IN THE AC SHOUD BE 123456,,701237 + 5515 + 5516 033736 200 15 0 00 034414 C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5517 033737 662 15 0 00 000003 TROE 15,3 ;TROE SHOULD SKIP AND + 5518 ;PLACE 123456,,701237 IN TO THE AC + 5519 STOP^ + 5520 033740 254 04 0 00 033741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5521 033741 324 00 0 00 033742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5522 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5523 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5524 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5525 033742 312 15 0 00 034446 CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5526 STOP^ + 5527 033743 254 04 0 00 033744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5528 033744 324 00 0 00 033745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5529 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5530 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5531 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5532 + 5533 ;********** + 5534 + 5535 ;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5536 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5537 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5538 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5539 ;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5540 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + 5541 + 5542 033745 200 14 0 00 034414 C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5543 033746 662 14 0 00 000300 TROE 14,300 ;*TROE SHOULD NOT SKIP AND + 5544 ;PLACE 123456,,701224 INTO THE AC + 5545 033747 334 00 0 00 000000 SKIPA ;PASS IF DID NOT SKIP + 5546 STOP^ + 5547 033750 254 04 0 00 033751 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5548 033751 324 00 0 00 033752 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5552 033752 312 14 0 00 034460 CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5553 STOP^ + 5554 033753 254 04 0 00 033754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5555 033754 324 00 0 00 033755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5556 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5557 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5558 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5559 + 5560 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 92 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0138 + + 5561 ;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5562 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5563 ;THESE MASKED AC BITS ARE TEN CHANGED TO ONES + 5564 ;IN THES CASE, C(AC)=123456,,701234 AND E=300 + 5565 ;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5566 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5567 + 5568 033755 200 13 0 00 034414 C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5569 033756 663 13 0 00 000300 TLOE 13,300 ;*TLOE SOULD SKIP AND + 5570 ;PLAND 123756,,701234 INTO THE AC + 5571 STOP^ + 5572 033757 254 04 0 00 033760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5573 033760 324 00 0 00 033761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5577 033761 312 13 0 00 034450 CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + 5578 STOP^ + 5579 033762 254 04 0 00 033763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5580 033763 324 00 0 00 033764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5584 + 5585 ;******** + 5586 + 5587 ;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5588 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5589 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5590 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5591 ;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5592 ;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5593 + 5594 033764 200 12 0 00 034414 C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5595 033765 663 12 0 00 000003 TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + 5596 ;PLACE 123457,,701234 INTO THE AC + 5597 033766 334 00 0 00 000000 SKIPA ;PASS IF TLOE DID NOT SKIP + 5598 STOP^ + 5599 033767 254 04 0 00 033770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5600 033770 324 00 0 00 033771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5604 033771 312 12 0 00 034463 CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + 5605 STOP^ + 5606 033772 254 04 0 00 033773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5607 033773 324 00 0 00 033774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5608 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5609 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5610 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5611 + 5612 ;******* +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 93 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0139 + + 5613 ;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5614 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES + 5615 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5616 ;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5617 ;THE AC SHOULD BE 123456,,701237 + 5618 + 5619 033774 200 11 0 00 034414 C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5620 033775 664 11 0 00 000003 TROA 11,3 ;*TROA SHOULD SKIP AND + 5621 ;PLACE 123456,,701237 + 5622 STOP^ + 5623 033776 254 04 0 00 033777 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5624 033777 324 00 0 00 034000 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5625 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5626 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5627 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5628 034000 312 11 0 00 034446 CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5629 STOP^ + 5630 034001 254 04 0 00 034002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5631 034002 324 00 0 00 034003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5632 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5633 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5634 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5635 + 5636 ;********** + 5637 + 5638 ;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION + 5639 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES + 5640 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5641 ;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5642 ;THE AC SHOULD BE 123456,,701334 + 5643 + 5644 034003 200 10 0 00 034414 C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5645 034004 664 10 0 00 000300 TROA 10,300 ;*TROA SHOULD SKIP AND + 5646 ;PLACE 123456,,701334 INTO THE AC + 5647 STOP^ + 5648 034005 254 04 0 00 034006 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5649 034006 324 00 0 00 034007 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5650 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5651 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5652 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5653 034007 312 10 0 00 034460 CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + 5654 STOP^ + 5655 034010 254 04 0 00 034011 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5656 034011 324 00 0 00 034012 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5657 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5658 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5659 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5660 + 5661 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 94 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0140 + + 5662 ;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5663 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES + 5664 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5665 ;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN + 5666 ;THE AC SHOULD BE 123457,,701234 + 5667 + 5668 034012 200 07 0 00 034414 C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5669 034013 665 07 0 00 000003 TLOA 7,3 ;*TLOA SHOULD SKIP AND + 5670 ;PLACE 123457,,701234 INTO THE AC + 5671 STOP^ + 5672 034014 254 04 0 00 034015 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5673 034015 324 00 0 00 034016 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5674 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5675 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5676 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5677 034016 312 07 0 00 034463 CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + 5678 STOP^ + 5679 034017 254 04 0 00 034020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5680 034020 324 00 0 00 034021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5681 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5682 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5683 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5684 + 5685 ;********** + 5686 + 5687 ;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5688 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES + 5689 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5690 ;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5691 ;THE AC SHOULD BE 123756,,701234 + 5692 + 5693 034021 200 06 0 00 034414 C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5694 034022 665 06 0 00 000300 TLOA 6,300 ;*TLOA SHOULD SKIP AND + 5695 ;PLACE 123756,,701234 INTO THE AC + 5696 STOP^ + 5697 034023 254 04 0 00 034024 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5698 034024 324 00 0 00 034025 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5699 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5700 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5701 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5702 034025 312 06 0 00 034450 CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 5703 STOP^ + 5704 034026 254 04 0 00 034027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5705 034027 324 00 0 00 034030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5706 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5707 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5708 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5709 + 5710 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 95 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0141 + + 5711 ;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5712 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5713 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5714 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5715 ;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5716 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + 5717 + 5718 034030 200 05 0 00 034414 C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5719 034031 666 05 0 00 000300 TRON 5,300 ;*TRON SHOULD SKIP AND + 5720 ;PLACE 123456,,701334 INTO THE AC + 5721 STOP^ + 5722 034032 254 04 0 00 034033 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5723 034033 324 00 0 00 034034 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5724 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5725 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5726 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5727 034034 312 05 0 00 034460 CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5728 STOP^ + 5729 034035 254 04 0 00 034036 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5730 034036 324 00 0 00 034037 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5731 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5732 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5733 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5734 + 5735 ;********** + 5736 + 5737 ;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5738 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5739 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5740 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5741 ;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5742 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + 5743 + 5744 034037 200 04 0 00 034414 C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5745 034040 666 04 0 00 000003 TRON 4,3 ;*TRON SHOULD NOT SKIP AND + 5746 ;PLACE 123456,,701237 INTO THE AC + 5747 034041 334 00 0 00 000000 SKIPA ;PASS IF TRON DID NOT SKIP + 5748 STOP^ + 5749 034042 254 04 0 00 034043 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5750 034043 324 00 0 00 034044 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5754 034044 312 04 0 00 034446 CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + 5755 STOP^ + 5756 034045 254 04 0 00 034046 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5757 034046 324 00 0 00 034047 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5758 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5759 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5760 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5761 + 5762 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 96 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0142 + + 5763 ;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5764 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5765 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5766 ;IN THIS CASE, C(AC)-123456,,701234 AND E=3 + 5767 ;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5768 ;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5769 + 5770 034047 200 03 0 00 034414 C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5771 034050 667 03 0 00 000003 TLON 3,3 ;*TLON SHOULD SKIP AND + 5772 ;PLACE 123457,,701234 INTO THE AC + 5773 STOP^ + 5774 034051 254 04 0 00 034052 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5775 034052 324 00 0 00 034053 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5776 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5777 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5778 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5779 034053 312 03 0 00 034463 CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + 5780 STOP^ + 5781 034054 254 04 0 00 034055 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5782 034055 324 00 0 00 034056 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5786 + 5787 ;******* + 5788 + 5789 ;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5790 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5791 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5792 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5793 ;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5794 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5795 + 5796 034056 200 02 0 00 034414 C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5797 034057 667 02 0 00 000300 TLON 2,300 ;*TLON SHOULD NOT SKIP AND + 5798 ;PLACE 123756,,701234 INTO THE AC + 5799 034060 334 00 0 00 000000 SKIPA ;PASS IF TLON DID NOT SKIP + 5800 STOP^ + 5801 034061 254 04 0 00 034062 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5802 034062 324 00 0 00 034063 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5803 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5804 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5805 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5806 034063 312 02 0 00 034450 CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 5807 STOP^ + 5808 034064 254 04 0 00 034065 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5809 034065 324 00 0 00 034066 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5810 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5811 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5812 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5813 + 5814 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 97 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0143 + + 5815 ;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5816 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5817 ;C(E)ARE ZERO. THESE MASKED + 5818 ;AC BITS ARE THEN CHANGED TO ONES + 5819 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5820 ;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC + 5821 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5822 + 5823 034066 200 01 0 00 034414 C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5824 034067 200 02 0 00 034433 MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5825 034070 672 01 0 00 000002 TDOE 1,2 ;*TDOE SHOULD SKIP AND + 5826 ;PLACE -1,,-1 INTO THE AC + 5827 STOP^ + 5828 034071 254 04 0 00 034072 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5829 034072 324 00 0 00 034073 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5830 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5831 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5832 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5833 034073 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 5834 STOP^ + 5835 034074 254 04 0 00 034075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5836 034075 324 00 0 00 034076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5837 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5838 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5839 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5840 034076 312 02 0 00 034433 CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5841 STOP^ + 5842 034077 254 04 0 00 034100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5843 034100 324 00 0 00 034101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5844 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5845 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5846 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5847 + 5848 ;********** + 5849 + 5850 ;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION + 5851 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5852 ;C(E) ARE ZERO. THESE MASKED + 5853 ;AC BITS ARE THEN CHANGED TO ONES + 5854 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 + 5855 ;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC + 5856 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + 5857 + 5858 034101 200 00 0 00 034414 C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5859 034102 200 01 0 00 034434 MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + 5860 034103 672 00 0 00 000001 TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + 5861 ;PLACE -1,,-1 INTO THE AC + 5862 034104 334 00 0 00 000000 SKIPA ;PASS IF TDOE DOES NOT SKIP + 5863 STOP^ + 5864 034105 254 04 0 00 034106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5865 034106 324 00 0 00 034107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5866 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5867 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5868 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5869 034107 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 97-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0144 + + 5870 STOP^ + 5871 034110 254 04 0 00 034111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5872 034111 324 00 0 00 034112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5873 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5874 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5875 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5876 034112 312 01 0 00 034434 CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + 5877 STOP^ + 5878 034113 254 04 0 00 034114 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5879 034114 324 00 0 00 034115 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5880 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5881 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5882 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5883 + 5884 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 98 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0145 + + 5885 ;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5886 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5887 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5888 ;AC BITS ARE THEN CHANGED TO ONES. + 5889 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5890 ;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC + 5891 ;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + 5892 + 5893 034115 200 17 0 00 034414 C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5894 034116 200 00 0 00 034424 MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5895 034117 673 17 0 00 000000 TSOE 17,0 ;*TSOE SHOULD SKIP AND + 5896 ;PLACE -1,,-1 INTO THE AC + 5897 STOP^ + 5898 034120 254 04 0 00 034121 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5899 034121 324 00 0 00 034122 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5900 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5901 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5902 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5903 034122 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + 5904 STOP^ + 5905 034123 254 04 0 00 034124 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5906 034124 324 00 0 00 034125 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5907 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5908 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5909 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5910 034125 312 00 0 00 034424 CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + 5911 STOP^ + 5912 034126 254 04 0 00 034127 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5913 034127 324 00 0 00 034130 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5914 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5915 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5916 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5917 + 5918 ;********** + 5919 + 5920 ;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5921 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5922 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5923 ;AC BITS ARE THEN CHANGED TO ONES. + 5924 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 + 5925 ;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC + 5926 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + 5927 + 5928 034130 200 16 0 00 034414 C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + 5929 034131 200 17 0 00 034436 MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + 5930 034132 673 16 0 00 000017 TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + 5931 ;*TSOE SHOULD NOT SKIP AND + 5932 ;PLACE -1,,-1 INTO THE AC + 5933 034133 334 00 0 00 000000 SKIPA ;PASS IF SKIP + 5934 STOP^ + 5935 034134 254 04 0 00 034135 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5936 034135 324 00 0 00 034136 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5937 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5938 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5939 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 98-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0146 + + 5940 034136 312 16 0 00 034301 CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + 5941 STOP^ + 5942 034137 254 04 0 00 034140 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5943 034140 324 00 0 00 034141 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5947 034141 312 17 0 00 034436 CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + 5948 STOP^ + 5949 034142 254 04 0 00 034143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5950 034143 324 00 0 00 034144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5951 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5952 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5953 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5954 + 5955 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 99 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0147 + + 5956 ;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH + 5957 ;CORRRESPOND TO 1'S IN C(E) AND ALWAYS + 5958 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5959 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 + 5960 ;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5961 + 5962 034144 200 15 0 00 034414 C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5963 034145 200 16 0 00 034433 MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5964 034146 674 15 0 00 000016 TDOA 15,16 ;*TDOA SHOULD SKIP AND + 5965 ;PLACE -1,,-1 INTO THE AC + 5966 STOP^ + 5967 034147 254 04 0 00 034150 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5968 034150 324 00 0 00 034151 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5972 034151 312 15 0 00 034301 CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + 5973 STOP^ + 5974 034152 254 04 0 00 034153 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5975 034153 324 00 0 00 034154 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5979 034154 312 16 0 00 034433 CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + 5980 STOP^ + 5981 034155 254 04 0 00 034156 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5982 034156 324 00 0 00 034157 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5986 + 5987 ;********** + 5988 + 5989 ;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH + 5990 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 5991 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5992 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 5993 ;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + 5994 + 5995 034157 200 14 0 00 034414 C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5996 034160 200 15 0 00 034431 MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 5997 034161 674 14 0 00 000015 TDOA 14,15 ;*TDOA SHOULD SKIP AND + 5998 ;PLACE 373577,707274 ONTO THE AC + 5999 STOP^ + 6000 034162 254 04 0 00 034163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6001 034163 324 00 0 00 034164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6005 034164 312 14 0 00 034464 CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + 6006 STOP^ + 6007 034165 254 04 0 00 034166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6008 034166 324 00 0 00 034167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6009 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6010 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 99-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0148 + + 6011 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6012 034167 312 15 0 00 034431 CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + 6013 STOP^ + 6014 034170 254 04 0 00 034171 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6015 034171 324 00 0 00 034172 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6016 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6017 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6018 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6019 + 6020 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 100 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0149 + + 6021 ;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH + 6022 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 6023 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 6024 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 6025 ;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 6026 + 6027 034172 200 13 0 00 034414 C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6028 034173 200 14 0 00 034465 MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + 6029 034174 675 13 0 00 000014 TSOA 13,14 ;*TSOA SHOULD SKIP AND + 6030 ;PLACE -1,,-1 ONTO THE AC + 6031 STOP^ + 6032 034175 254 04 0 00 034176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6033 034176 324 00 0 00 034177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6034 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6035 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6036 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6037 034177 312 13 0 00 034301 CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + 6038 STOP^ + 6039 034200 254 04 0 00 034201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6040 034201 324 00 0 00 034202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6041 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6042 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6043 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6044 034202 312 14 0 00 034465 CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + 6045 STOP^ + 6046 034203 254 04 0 00 034204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6047 034204 324 00 0 00 034205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6048 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6049 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6050 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6051 + 6052 ;********** + 6053 + 6054 ;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH + 6055 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 6056 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 6057 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 6058 ;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 6059 + 6060 034205 200 12 0 00 034414 C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6061 034206 200 13 0 00 034441 MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + 6062 034207 675 12 0 00 000013 TSOA 12,13 ;*TSOA SHOULD SKIP AND + 6063 ;PLACE 123456,,701234 INTO THE AC + 6064 STOP^ + 6065 034210 254 04 0 00 034211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6066 034211 324 00 0 00 034212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6067 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6068 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6069 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6070 034212 312 12 0 00 034414 CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 6071 STOP^ + 6072 034213 254 04 0 00 034214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6073 034214 324 00 0 00 034215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6074 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6075 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 100-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0150 + + 6076 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6077 034215 312 13 0 00 034441 CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + 6078 STOP^ + 6079 034216 254 04 0 00 034217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6080 034217 324 00 0 00 034220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6081 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6082 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6083 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6084 + 6085 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 101 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0151 + + 6086 ;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6087 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6088 ;C(E) ARE ZERO. THESE MASKED + 6089 ;AC BITS ARE THEN CHANGED TO ONES + 6090 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 6091 ;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC + 6092 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6093 + 6094 034220 200 11 0 00 034414 C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6095 034221 200 12 0 00 034442 MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + 6096 034222 676 11 0 00 000012 TDON 11,12 ;*TDON SHOULD SKIP AND + 6097 ;PLACE -1,,-1 INTO THE AC + 6098 STOP^ + 6099 034223 254 04 0 00 034224 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6100 034224 324 00 0 00 034225 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6101 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6102 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6103 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6104 034225 312 11 0 00 034301 CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + 6105 STOP^ + 6106 034226 254 04 0 00 034227 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6107 034227 324 00 0 00 034230 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6108 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6109 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6110 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6111 034230 312 12 0 00 034442 CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + 6112 STOP^ + 6113 034231 254 04 0 00 034232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6114 034232 324 00 0 00 034233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6118 + 6119 ;********** + 6120 + 6121 ;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6122 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6123 ;C(E) ARE ZERO. THESE MASKED + 6124 ;AC BITS ARE THEN CHANGED TO ONES. + 6125 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 6126 ;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC + 6127 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6128 + 6129 034233 200 10 0 00 034414 C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6130 034234 200 11 0 00 034433 MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 6131 034235 676 10 0 00 000011 TDON 10,11 ;*TDON SHOULD NOT SKIP AND + 6132 ;PLACE -1,,-1 INTO THE AC + 6133 034236 334 00 0 00 000000 SKIPA ;PASS IF TDON DOES NOT SKIP + 6134 STOP ^ + 6135 034237 254 04 0 00 034240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6136 034240 324 00 0 00 034241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6137 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6138 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6139 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6140 034241 312 10 0 00 034301 CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 101-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0152 + + 6141 STOP^ + 6142 034242 254 04 0 00 034243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6143 034243 324 00 0 00 034244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6144 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6145 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6146 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6147 034244 312 11 0 00 034433 CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + 6148 STOP^ + 6149 034245 254 04 0 00 034246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6150 034246 324 00 0 00 034247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6151 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6152 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6153 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6154 + 6155 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 102 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0153 + + 6156 ;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6157 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6158 ;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED + 6159 ;AC BITS ARE THEN CHANGED TO ONES + 6160 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 + 6161 ;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC + 6162 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6163 + 6164 034247 200 07 0 00 034414 C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6165 034250 200 10 0 00 034444 MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + 6166 034251 677 07 0 00 000010 TSON 7,10 ;*TSON HOULD SKIP AND + 6167 ;PLACE -1,,-1 INTO THE AC + 6168 STOP^ + 6169 034252 254 04 0 00 034253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6170 034253 324 00 0 00 034254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6171 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6172 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6173 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6174 034254 312 07 0 00 034301 CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + 6175 STOP^ + 6176 034255 254 04 0 00 034256 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6177 034256 324 00 0 00 034257 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6178 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6179 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6180 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6181 034257 312 10 0 00 034444 CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + 6182 STOP^ + 6183 034260 254 04 0 00 034261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6184 034261 324 00 0 00 034262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6185 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6186 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6187 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6188 + 6189 ;********** + 6190 + 6191 ;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6192 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6193 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 6194 ;AC BITS ARE THEN CHANGED TO ONES. + 6195 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 6196 ;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC + 6197 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6198 + 6199 034262 200 06 0 00 034414 C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6200 034263 200 07 0 00 034424 MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + 6201 034264 677 06 0 00 000007 TSON 6,7 ;*TSON SHOULD NOT SKIP AND + 6202 ;PLACE -1,,-1 INTO THE AC + 6203 034265 334 00 0 00 000000 SKIPA ;PASS IF TSON DOES NOT SKIP + 6204 STOP^ + 6205 034266 254 04 0 00 034267 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6206 034267 324 00 0 00 034270 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6207 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6208 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6209 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6210 034270 312 06 0 00 034301 CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 102-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0154 + + 6211 STOP^ + 6212 034271 254 04 0 00 034272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6213 034272 324 00 0 00 034273 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6214 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6215 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6216 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6217 034273 312 07 0 00 034424 CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + 6218 STOP^ + 6219 034274 254 04 0 00 034275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6220 034275 324 00 0 00 034276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6221 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6222 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6223 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6224 + 6225 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 103 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0155 + + 6226 034276 254 00 0 00 030057 JRST BEGEND + 6227 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 6228 + 6229 ;PROGRAM LITERALS + 6230 + 6231 XLIST + 6232 IFNDEF $LPAPER, + 6233 034277 LIT + 6234 034277 000001 000001 + 6235 034300 254 00 0 00 030741 + 6236 034301 777777 777777 + 6237 034302 777000 707070 + 6238 034303 777000 000777 + 6239 034304 123456 123456 + 6240 034305 123000 000456 + 6241 034306 121212 000000 + 6242 034307 777350 777776 + 6243 034310 000767 777777 + 6244 034311 777010 000000 + 6245 034312 000777 770077 + 6246 034313 123456 246123 + 6247 034314 123000 006100 + 6248 034315 000100 777600 + 6249 034316 123456 246135 + 6250 034317 123456 040104 + 6251 034320 123321 456654 + 6252 034321 770077 007770 + 6253 034322 003300 450004 + 6254 034323 123456 663322 + 6255 034324 777000 700770 + 6256 034325 000456 063002 + 6257 034326 123456 777776 + 6258 034327 010203 123450 + 6259 034330 123456 000000 + 6260 034331 000777 123456 + 6261 034332 000777 517067 + 6262 034333 707077 555666 + 6263 034334 123456 765432 + 6264 034335 624421 230254 + 6265 034336 707070 123456 + 6266 034337 707070 767577 + 6267 034340 123456 777666 + 6268 034341 777001 123470 + 6269 034342 777457 777676 + 6270 034343 777000 123456 + 6271 034344 000777 050321 + 6272 034345 777007 771100 + 6273 034346 063202 123477 + 6274 034347 000570 004200 + 6275 034350 707070 123426 + 6276 034351 070707 777032 + 6277 034352 123456 123457 + 6278 034353 707633 121212 + 6279 034354 153512 775132 + 6280 034355 000777 654321 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0156 + + 6281 034356 654321 012345 + 6282 034357 777000 123477 + 6283 034360 000777 775701 + 6284 034361 707070 707072 + 6285 034362 707777 757372 + 6286 034363 777777 070707 + 6287 034364 777777 133777 + 6288 034365 707070 070706 + 6289 034366 777777 707777 + 6290 034367 123456 770077 + 6291 034370 777001 123324 + 6292 034371 654777 657753 + 6293 034372 123456 707070 + 6294 034373 707070 707070 + 6295 034374 123456 123422 + 6296 034375 707070 717171 + 6297 034376 123422 000000 + 6298 034377 123456 707076 + 6299 034400 707076 000000 + 6300 034401 123456 777777 + 6301 034402 123456 135724 + 6302 034403 765432 246135 + 6303 034404 246135 777777 + 6304 034405 123123 456765 + 6305 034406 456765 777777 + 6306 034407 000000 000000 + 6307 034410 707076 777777 + 6308 034411 765432 777777 + 6309 034412 365432 123456 + 6310 034413 365432 000000 + 6311 034414 123456 701234 + 6312 034415 123123 246135 + 6313 034416 123123 123123 + 6314 034417 777777 701234 + 6315 034420 765432 107654 + 6316 034421 777777 765432 + 6317 034422 777777 000000 + 6318 034423 777777 123456 + 6319 034424 076543 654321 + 6320 034425 076543 654323 + 6321 034426 076547 654321 + 6322 034427 123456 701034 + 6323 034430 123454 701234 + 6324 034431 252525 707070 + 6325 034432 020406 501210 + 6326 034433 654321 076543 + 6327 034434 754321 076543 + 6328 034435 023456 701234 + 6329 034436 076543 657321 + 6330 034437 120456 701234 + 6331 034440 121052 000204 + 6332 034441 701234 123456 + 6333 034442 654321 076547 + 6334 034443 123456 701230 + 6335 034444 077543 654321 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0157 + + 6336 034445 123456 700234 + 6337 034446 123456 701237 + 6338 034447 123456 701134 + 6339 034450 123756 701234 + 6340 034451 123455 701234 + 6341 034452 624426 553711 + 6342 034453 677777 777777 + 6343 034454 774777 777777 + 6344 034455 371173 006244 + 6345 034456 777777 777773 + 6346 034457 777777 776777 + 6347 034460 123456 701334 + 6348 034461 123456 070234 + 6349 034462 123457 070234 + 6350 034463 123457 701234 + 6351 034464 373577 707274 + 6352 034465 176543 654321 + 6353 LIST + 6354 034466 000000 000000 ENDSLD: 0 + 6355 + 6356 IFDEF DEBUG,< + 6357 034467 PATCH: BLOCK DEBUG ;PATCHING AREA + 6358 > + 6359 + 6360 ;PROGRAM VARIABLES + 6361 034567 VAR + 6362 + 6363 IFDEF PGMEND,< + 6364 034567 000000 000000 END: 0 + 6365 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 034570 +CPU TIME USED 00:27.392 + +11K CORE USED diff --git a/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt b/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt new file mode 100644 index 000000000..477d093a6 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt @@ -0,0 +1,3219 @@ +;MACROS + +; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) +; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + +DEFINE STOP (A)< + HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + +SUBTTL DIAGNOSTIC SECTION + +START: ;SETZM USER# ;CLEAR USER CONTROL WORD + ;JSP 0,.+1 ;GET FLAGS + ;TLNE USERF ;IN USER MODE? + ;SETOM USER ;YES, SET USER CONTROL WORD + ;SKIPN MONFLG ;SPECIAL USER MODE? + ;SETZM USER ;YES, CLEAR USER CONTROL WORD + ;SKIPN USER + ;JRST STARTA + ;SKIPL MONCTL + ;TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. +;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + +C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. +;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + +C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZM 1,2 ;*SETZM SHOULD CLEAR E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. +;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. +;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + +C56300: SETZB 1,2 ;CLEAR AC,E + SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E +;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. +;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + +C56400: SETZB 1,2 ;CLEAR AC,E + SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. +;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. +;AC AND E ARE BOTH CHECKED FOR -1,,-1 + +C56500: SETZB 1,2 ;CLEAR AC,E + SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + +C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + CAIE 1,103020 ;PASS IF C(AC)=103103 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVEM 1,E56701 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + MOVE 1,E56701 + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + + SKIPA ;GO TO NEXT TEST +E56701: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + MOVEM 6,E57001 + ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + MOVE 6,E57001 + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + + SKIPA ;GO TO NEXT TEST +E57001: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION +;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC +;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + +C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + CAIE 5,030206 ;PASS IF C(AC)=030206 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO E. +;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND +;777010,,0 RESPECTIVELY. + +C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + ;INTO E + CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + +C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + ;INTO BOTH AC AND E + CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + STOP + CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT +;IN THE AC SHOULD BE 0,,123456 + +C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + CAIE 5,123456 ;PASS IF C(AC)=0,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD +;NOT MODIFY AC OR E. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + +C57500: SETZ 16, ;CLEAR C(AC) + SETO 17, ;PRELOAD E WITH -1,,-1 + SETMM 16,17 ;*SETMM IS A NO-OP + SKIPE 16 ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT +;IN BOTH AC AND E SHOULD BE 000100,,-200. + +C57600: SETO 0, ;CLEAR AC + MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + STOP + CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + +C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + ;INTO THE AC + CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO E. +;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 +;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + +C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + STOP + CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + +C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + ;INTO BOTH AC AND E + CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + STOP + CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER +;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. +;SETA SHOULD NOT MODIFY C(AC) OR C(E) + +C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + SETA 12,13 ;*SETA IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. +;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 +;SETA SHOULD NOT MODIFY C(AC) + +C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + SETAI 12,123450 ;*SETAI IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. +;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE +;RESULT IN E SHOULD BE 123456,,0 + +C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + SETO 12, ;PRELOAD E WITH -1,,-1 + SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + +C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + STOP + +;********** + +;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + +C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + ;INTO BOTH AC AND E + CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + STOP + CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + STOP + +;********** +;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 +;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + +C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + STOP + +;********** + +;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + +C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORM 5,6 ;*IORM SHOULD PLACE + ;777457,777676 INTO E + CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + STOP + +;********** +;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + +C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORB 5,6 ;*IORB SHOULD PLACE + ;777457,,777676 INTO + CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + +C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + ;INTO THE AC + CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + +C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + ;000570,,004200 INTO E. + CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + +C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + ;000570,,004200 INTO BOTH AC AND E + CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 +;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + +C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + EQVI 2,123363 ;*EQVI SHOULD PLACE + ;070707,,777032 INTO THE AC + CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + STOP + +;********** + +;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 +;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + +C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC)AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 +;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + +C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + ;INTO BOTHE AC AND E. + CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + STOP + CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) +;INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + +C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + ;INTO THE AC + CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) +;INTO E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAM 17,0 ;*SETCAM SHOULD PLACE + ;654321,,012345 INTO E + CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) +;INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAB 17,0 ;*SETCAB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION +;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + +C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + ;INTO THE AC + CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + ;INTO BOTHE AC AND E + CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE +;WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + +C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + ;INTO THE AC + CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) +;INTO E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMM 0,17 ;*SETCMM SHOULD PLACE + ;654321,012345 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) +;INTO BOTH AC AND E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMB 0,17 ;*SETCMB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + +C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + ;INTO THE AC + CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OC C(E) INTO +;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + ;INTO BOTH AC AND E + CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + +C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 +;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + +C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + ;INTO E + CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR +;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + +C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + ;INTO BOTH AC AND E + CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** +SUBTTL TEST OF MSCL HWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT +;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + +C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,765432 RESPECTIVELY + +C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 +;AND 123456,,765432 RESPECTVIELY + +C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707070,,707070. + +C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 +;AND 707070,,707070. + +C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO BOTH AC AND E. + CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** + +;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES 0 INTO E-RIGHT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + +C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,0 RESPECTIVELY + +C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 +;AND 123456,,0 RESPECTIVELY. + +C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + ;BOTH AC AND E + CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND +;PLACES O INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + +C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707076,,0 + +C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 +;AND 707076,,0 + +C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO BOTH AC AND E. + CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + +C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND +;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND +;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + +C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + STOP + CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND +;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + +C65000: SETZ 14, ;CLEAR AC + HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 +;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + +C65100: SETZM 14 ;CLEAR E + MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + + STOP + CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 +;AND 707076,,0 + +C65200: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 +;AND 707076,,-1 + +C65210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO BOTH AC AND E + CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT +;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 123456,,0. + +C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY. + +C65400: SETZ 0, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO E + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY + +C65410: SETZ 1, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 365432,,0. + +C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY + +C65600: SETZ 0, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY. + +C65610: SETZ 1, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT +;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 +;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + +C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 12 ;CLEAR E + HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + STOP + CAIE 12,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 123123,,123123 RESPECTIVELY. + +C66000: SETZ 0, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 +;AND 123123,,123123 RESPECTIVELY. + +C66010: SETZ 1, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO BOTH AC AND E. + CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 +;RESPECTIVELY. + +C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 +;RESPECTIVELY. + +C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + ;BOTH AC AND E + CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC +;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE +;RESULT IN THE AC SHOULD BE 0. + +C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + SKIPE 7 ;PASS IF C(AC) = 0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + MOVEM 2,E66301 + HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + MOVE 2,E66301 + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66301: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 +;RESPECTIVELY. + +C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + MOVEM 7,E66411 + HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + MOVE 7,E66411 + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66411: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND +;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + +C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 6 ;CLEAR E + HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C66600: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C66610: SETZ 16, ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND +;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 +;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + +C66700: SETZ 4, ;CLEAR AC + MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + STOP + CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. +;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE +;RESULT IN THE AC SHOULD BE -1,,0 + +C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND +;PLACES -1 INTO E-LEFT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + +C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,123456 RESPECTIVELY + +C67200: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + ; + CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 +;AND -1,,123456 RESPECTIVELY. + +C67210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + ;BOTH AC AND E + CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULT IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C67300: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + + SKIPE ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C67310: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 0,,123456 RESPECTIVELY. + +C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 +;AND 0,,123456 RESPECTIVELY. + +C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + STOP + CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF TRNE DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 15,300 ;*TLNE CHOULD SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION + +C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 14,3 ;*TLNE SHOULD NOT SKIP + SKIPA ;PASS IF TLNE DID NOT SKIP + STOP + CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + +C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + STOP + CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 7,300 ;*TRNN SHOULD SKIP + SToP + CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 6,3 ;*TRNN SHOULD NOT SKIP + SKIPA ;PASS IF TRNN DID NOT SKIP + STOP + CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 5,3 ;*TLNN SHOULD SKIP + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 4,300 ;*TLNN SHOULD NOT SKIP + SKIPA ;PASS IF TLNN DOES NOT SKIP + STOP + CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNE 3,4 ;*TSNE SHOULD SKIP + STOP + CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNE 2,3 ;*TSNE SHOULD NOT SKIP + SKIPA ;PASS IF TSOE DId NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNA 1,2 ;*TSNA SHOULD SKIP + STOP + CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE EFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNA 0,1 ;*TSNA SHOULD SKIP + STOP + CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 +;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + TSNN 17,0 ;*TSNN SHOULD SKIP + STOP + CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNN 16,17 ;*TSNN SHOULD NOT SKIP + SKIPA ;PASS IF TSNN DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZ DOES NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + +C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE ACAND NOT SKIP + SKIPA ;PASS IF TRX DOES NOT SKIP + STOP + CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CACE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + +C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZE 11,3 ;*TRZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + +C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZE DOES NOT SKIP + STOP + CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 7,300 ;*TLZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZE DOES NOT SKIP + STOP + CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234 + +C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 5,3 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 4,300 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123454,,701234. + +C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 3,3 ;*TLZA SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 2,300 ;*TLZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + +C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZN 1,300 ;*TRZN SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + +C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 17,3 ;TLZN SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZN DOES NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + +C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + +C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 020406,,501210 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E). +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. +;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZE 13,14 ;*TDZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 +;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + +C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + ;PLACE 023456,,701234 INTO THE AC + SKIPA ;PASS IF TDZE DOES NOT SKIP + STOP + CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 + STOP + CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 +;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + +C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZE 11,12 ;*TSZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 +;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + +C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + ;PLACE 120456,,701234 INTO THE AC + SKIPA ;PASS IF TSZE DID NOT SKIP + STOP + CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 + STOP + CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZA 7,10 ;*TDZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + +C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDZA 6,7 ;*TDZA SHOULD SKIP AND + ;PLACE 121052,,000204 INTO THE AC + STOP + CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + STOP + CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZA 5,6 ;*TSZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSZA 4,5 ;*TSZA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 4,[0] ;PASS IF C(AC)=0 + STOP + CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + SToP + +;********** +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGEDTO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + +C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDZN 3,4 ;*TDZN SHoULD SKIP AND + ;PLACE 123456,,701230 INTO THE AC + STOP + CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + STOP + CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TDZN DOES NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. +;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + +C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + TSZN 1,2 ;*TSZN SHOULD SKIP AND + ;PLACE 123456,,700234 INTO THE AC + STOP + CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + STOP + CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- +;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + +C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 17,3 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 16,300 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + +C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 15,300 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 14,3 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + +C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 13,3 ;*TRCE SHOULD SKIP AND + ;PLACE 123456,,701237 INTO ThE AC + STOP + CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRCE DID NOT SKIP + STOP + CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + +C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 11,300 ;*TLCE SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLCE DID NOT SKIP + STOP + CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + STOP + +;********** +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237. + +C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 7,3 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701237 INTO THE AC + STOP + CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701134 + +C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 6,300 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD 123456,,701234 + +C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 5,3 ;*TLCA SHOULD SKIP AND + ;PLACE 12345,,701234 INTO THE AC + STOP + CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 4,300 ;*TLCA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOULD BE 123456,,701134 + +C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 3,300 ;*SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRCN DID NOT SKIP + STOP + CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 1,3 ;*TLCN SHOULD SKIP AND + ;PLACE 123455,701234 INTO THE AC + STOP + CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLCN DID NOT SKIP + STOP + CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + +C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSC 17,0 ;*TSC SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + +C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSC 16,17 ;*TSC SHOULD NOT SKIP AND + ;PLACE 624426,,553711 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + STOP + CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCE 15,16 ;*TDCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 +;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + +C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + ;PLACE 677777,,-1 INTO THE AC + SKIPA ;PASS IF TDCE DOES NOT SKIP + STOP + CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 + STOP + CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCE 13,14 ;*TSCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 +;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + +C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + ;PLACE 774777,,-1 INTO THE AC + SKIPA ;PASS IF TSCE DOES NOT SKIP + STOP + CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + STOP + CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCA 11,12 ;*TDCA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND SLWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + +C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDCA 10,11 ;*TDCA SHOULD SKP AND + ;PLACE 371173,,006244 INTO THE AC + STOP + CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + STOP + CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCA 7,10 ;*TSCA CHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSCA 6,7 ;*TSCA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 6,[0] ;PASS IF C(AC)=0 + STOP + CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + +C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDCN 5,6 ;*TDCN SHOULD SKIP AND + ;PLACE -1,,777773 INTO THE AC + STOP + CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + STOP + CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDCN DOES NOT SKIP + STOP + CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + +C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + TSCN 3,4 ;*TSCN SHOULD SKIP AND + ;PLACE -1,,776777 INTO THE AC + STOP + CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + STOP + CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTD +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + +C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSCN DOES NOT SKIP + STOP + CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 1,3 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + +C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 0,300 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701334 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLO 17,300 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLO DID NOT SKIP + STOP + CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + TLO 16,3 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOUD BE 123456,,701237 + +C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 15,3 ;TROE SHOULD SKIP AND + ;PLACE 123456,,701237 IN TO THE AC + STOP + CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 14,300 ;*TROE SHOULD NOT SKIP AND + ;PLACE 123456,,701224 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE TEN CHANGED TO ONES +;IN THES CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 13,300 ;*TLOE SOULD SKIP AND + ;PLAND 123756,,701234 INTO THE AC + STOP + CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;******** + +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF TLOE DID NOT SKIP + STOP + CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237 + +C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 11,3 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701237 + STOP + CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701334 + +C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 10,300 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN +;THE AC SHOULD BE 123457,,701234 + +C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 7,3 ;*TLOA SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + STOP + +;********** + +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 6,300 ;*TLOA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 5,300 ;*TRON SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 4,3 ;*TRON SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRON DID NOT SKIP + STOP + CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)-123456,,701234 AND E=3 +;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 3,3 ;*TLON SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* + +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 2,300 ;*TLON SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLON DID NOT SKIP + STOP + CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E)ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOE 1,2 ;*TDOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 +;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + +C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDOE DOES NOT SKIP + STOP + CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + +C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOE 17,0 ;*TSOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 +;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + +C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + ;*TSOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF SKIP + STOP + CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOA 15,16 ;*TDOA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + +C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDOA 14,15 ;*TDOA SHOULD SKIP AND + ;PLACE 373577,707274 ONTO THE AC + STOP + CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOA 13,14 ;*TSOA SHOULD SKIP AND + ;PLACE -1,,-1 ONTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + TSOA 12,13 ;*TSOA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + TDON 11,12 ;*TDON SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDON 10,11 ;*TDON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDON DOES NOT SKIP + STOP + CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + TSON 7,10 ;*TSON HOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + TSON 6,7 ;*TSON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSON DOES NOT SKIP + STOP + CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 + STOP + CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + ;JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt b/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt new file mode 100644 index 000000000..6874af270 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt @@ -0,0 +1,3207 @@ +SUBTTL DIAGNOSTIC SECTION + +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN MONFLG ;SPECIAL USER MODE? + SETZM USER ;YES, CLEAR USER CONTROL WORD + SKIPN USER + JRST STARTA + SKIPL MONCTL + TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. +;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + +C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. +;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + +C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZM 1,2 ;*SETZM SHOULD CLEAR E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. +;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. +;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + +C56300: SETZB 1,2 ;CLEAR AC,E + SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E +;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. +;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + +C56400: SETZB 1,2 ;CLEAR AC,E + SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. +;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. +;AC AND E ARE BOTH CHECKED FOR -1,,-1 + +C56500: SETZB 1,2 ;CLEAR AC,E + SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + +C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + CAIE 1,103020 ;PASS IF C(AC)=103103 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVEM 1,E56701 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + MOVE 1,E56701 + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + + SKIPA ;GO TO NEXT TEST +E56701: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + MOVEM 6,E57001 + ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + MOVE 6,E57001 + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + + SKIPA ;GO TO NEXT TEST +E57001: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION +;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC +;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + +C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + CAIE 5,030206 ;PASS IF C(AC)=030206 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO E. +;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND +;777010,,0 RESPECTIVELY. + +C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + ;INTO E + CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + +C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + ;INTO BOTH AC AND E + CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + STOP + CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT +;IN THE AC SHOULD BE 0,,123456 + +C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + CAIE 5,123456 ;PASS IF C(AC)=0,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD +;NOT MODIFY AC OR E. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + +C57500: SETZ 16, ;CLEAR C(AC) + SETO 17, ;PRELOAD E WITH -1,,-1 + SETMM 16,17 ;*SETMM IS A NO-OP + SKIPE 16 ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT +;IN BOTH AC AND E SHOULD BE 000100,,-200. + +C57600: SETO 0, ;CLEAR AC + MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + STOP + CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + +C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + ;INTO THE AC + CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO E. +;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 +;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + +C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + STOP + CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + +C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + ;INTO BOTH AC AND E + CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + STOP + CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER +;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. +;SETA SHOULD NOT MODIFY C(AC) OR C(E) + +C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + SETA 12,13 ;*SETA IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. +;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 +;SETA SHOULD NOT MODIFY C(AC) + +C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + SETAI 12,123450 ;*SETAI IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. +;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE +;RESULT IN E SHOULD BE 123456,,0 + +C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + SETO 12, ;PRELOAD E WITH -1,,-1 + SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + +C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + STOP + +;********** + +;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + +C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + ;INTO BOTH AC AND E + CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + STOP + CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + STOP + +;********** +;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 +;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + +C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + STOP + +;********** + +;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + +C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORM 5,6 ;*IORM SHOULD PLACE + ;777457,777676 INTO E + CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + STOP + +;********** +;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + +C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORB 5,6 ;*IORB SHOULD PLACE + ;777457,,777676 INTO + CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + +C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + ;INTO THE AC + CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + +C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + ;000570,,004200 INTO E. + CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + +C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + ;000570,,004200 INTO BOTH AC AND E + CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 +;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + +C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + EQVI 2,123363 ;*EQVI SHOULD PLACE + ;070707,,777032 INTO THE AC + CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + STOP + +;********** + +;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 +;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + +C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC)AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 +;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + +C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + ;INTO BOTHE AC AND E. + CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + STOP + CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) +;INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + +C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + ;INTO THE AC + CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) +;INTO E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAM 17,0 ;*SETCAM SHOULD PLACE + ;654321,,012345 INTO E + CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) +;INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAB 17,0 ;*SETCAB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION +;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + +C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + ;INTO THE AC + CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + ;INTO BOTHE AC AND E + CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE +;WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + +C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + ;INTO THE AC + CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) +;INTO E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMM 0,17 ;*SETCMM SHOULD PLACE + ;654321,012345 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) +;INTO BOTH AC AND E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMB 0,17 ;*SETCMB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + +C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + ;INTO THE AC + CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OC C(E) INTO +;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + ;INTO BOTH AC AND E + CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + +C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 +;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + +C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + ;INTO E + CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR +;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + +C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + ;INTO BOTH AC AND E + CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** +SUBTTL TEST OF MSCL HWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT +;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + +C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,765432 RESPECTIVELY + +C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 +;AND 123456,,765432 RESPECTVIELY + +C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707070,,707070. + +C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 +;AND 707070,,707070. + +C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO BOTH AC AND E. + CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** + +;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES 0 INTO E-RIGHT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + +C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,0 RESPECTIVELY + +C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 +;AND 123456,,0 RESPECTIVELY. + +C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + ;BOTH AC AND E + CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND +;PLACES O INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + +C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707076,,0 + +C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 +;AND 707076,,0 + +C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO BOTH AC AND E. + CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + +C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND +;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND +;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + +C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + STOP + CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND +;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + +C65000: SETZ 14, ;CLEAR AC + HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 +;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + +C65100: SETZM 14 ;CLEAR E + MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + + STOP + CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 +;AND 707076,,0 + +C65200: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 +;AND 707076,,-1 + +C65210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO BOTH AC AND E + CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT +;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 123456,,0. + +C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY. + +C65400: SETZ 0, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO E + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY + +C65410: SETZ 1, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 365432,,0. + +C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY + +C65600: SETZ 0, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY. + +C65610: SETZ 1, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT +;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 +;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + +C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 12 ;CLEAR E + HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + STOP + CAIE 12,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 123123,,123123 RESPECTIVELY. + +C66000: SETZ 0, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 +;AND 123123,,123123 RESPECTIVELY. + +C66010: SETZ 1, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO BOTH AC AND E. + CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 +;RESPECTIVELY. + +C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 +;RESPECTIVELY. + +C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + ;BOTH AC AND E + CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC +;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE +;RESULT IN THE AC SHOULD BE 0. + +C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + SKIPE 7 ;PASS IF C(AC) = 0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + MOVEM 2,E66301 + HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + MOVE 2,E66301 + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66301: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 +;RESPECTIVELY. + +C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + MOVEM 7,E66411 + HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + MOVE 7,E66411 + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66411: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND +;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + +C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 6 ;CLEAR E + HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C66600: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C66610: SETZ 16, ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND +;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 +;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + +C66700: SETZ 4, ;CLEAR AC + MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + STOP + CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. +;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE +;RESULT IN THE AC SHOULD BE -1,,0 + +C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND +;PLACES -1 INTO E-LEFT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + +C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,123456 RESPECTIVELY + +C67200: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + ; + CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 +;AND -1,,123456 RESPECTIVELY. + +C67210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + ;BOTH AC AND E + CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULT IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C67300: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + + SKIPE ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C67310: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 0,,123456 RESPECTIVELY. + +C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 +;AND 0,,123456 RESPECTIVELY. + +C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + STOP + CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF TRNE DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 15,300 ;*TLNE CHOULD SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION + +C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 14,3 ;*TLNE SHOULD NOT SKIP + SKIPA ;PASS IF TLNE DID NOT SKIP + STOP + CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + +C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + STOP + CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 7,300 ;*TRNN SHOULD SKIP + SToP + CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 6,3 ;*TRNN SHOULD NOT SKIP + SKIPA ;PASS IF TRNN DID NOT SKIP + STOP + CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 5,3 ;*TLNN SHOULD SKIP + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 4,300 ;*TLNN SHOULD NOT SKIP + SKIPA ;PASS IF TLNN DOES NOT SKIP + STOP + CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNE 3,4 ;*TSNE SHOULD SKIP + STOP + CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNE 2,3 ;*TSNE SHOULD NOT SKIP + SKIPA ;PASS IF TSOE DId NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNA 1,2 ;*TSNA SHOULD SKIP + STOP + CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE EFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNA 0,1 ;*TSNA SHOULD SKIP + STOP + CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 +;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + TSNN 17,0 ;*TSNN SHOULD SKIP + STOP + CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNN 16,17 ;*TSNN SHOULD NOT SKIP + SKIPA ;PASS IF TSNN DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZ DOES NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + +C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE ACAND NOT SKIP + SKIPA ;PASS IF TRX DOES NOT SKIP + STOP + CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CACE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + +C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZE 11,3 ;*TRZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + +C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZE DOES NOT SKIP + STOP + CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 7,300 ;*TLZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZE DOES NOT SKIP + STOP + CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234 + +C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 5,3 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 4,300 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123454,,701234. + +C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 3,3 ;*TLZA SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 2,300 ;*TLZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + +C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZN 1,300 ;*TRZN SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + +C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 17,3 ;TLZN SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZN DOES NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + +C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + +C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 020406,,501210 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E). +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. +;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZE 13,14 ;*TDZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 +;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + +C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + ;PLACE 023456,,701234 INTO THE AC + SKIPA ;PASS IF TDZE DOES NOT SKIP + STOP + CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 + STOP + CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 +;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + +C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZE 11,12 ;*TSZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 +;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + +C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + ;PLACE 120456,,701234 INTO THE AC + SKIPA ;PASS IF TSZE DID NOT SKIP + STOP + CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 + STOP + CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZA 7,10 ;*TDZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + +C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDZA 6,7 ;*TDZA SHOULD SKIP AND + ;PLACE 121052,,000204 INTO THE AC + STOP + CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + STOP + CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZA 5,6 ;*TSZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSZA 4,5 ;*TSZA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 4,[0] ;PASS IF C(AC)=0 + STOP + CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + SToP + +;********** +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGEDTO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + +C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDZN 3,4 ;*TDZN SHoULD SKIP AND + ;PLACE 123456,,701230 INTO THE AC + STOP + CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + STOP + CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TDZN DOES NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. +;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + +C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + TSZN 1,2 ;*TSZN SHOULD SKIP AND + ;PLACE 123456,,700234 INTO THE AC + STOP + CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + STOP + CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- +;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + +C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 17,3 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 16,300 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + +C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 15,300 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 14,3 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + +C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 13,3 ;*TRCE SHOULD SKIP AND + ;PLACE 123456,,701237 INTO ThE AC + STOP + CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRCE DID NOT SKIP + STOP + CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + +C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 11,300 ;*TLCE SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLCE DID NOT SKIP + STOP + CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + STOP + +;********** +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237. + +C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 7,3 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701237 INTO THE AC + STOP + CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701134 + +C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 6,300 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD 123456,,701234 + +C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 5,3 ;*TLCA SHOULD SKIP AND + ;PLACE 12345,,701234 INTO THE AC + STOP + CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 4,300 ;*TLCA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOULD BE 123456,,701134 + +C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 3,300 ;*SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRCN DID NOT SKIP + STOP + CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 1,3 ;*TLCN SHOULD SKIP AND + ;PLACE 123455,701234 INTO THE AC + STOP + CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLCN DID NOT SKIP + STOP + CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + +C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSC 17,0 ;*TSC SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + +C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSC 16,17 ;*TSC SHOULD NOT SKIP AND + ;PLACE 624426,,553711 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + STOP + CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCE 15,16 ;*TDCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 +;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + +C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + ;PLACE 677777,,-1 INTO THE AC + SKIPA ;PASS IF TDCE DOES NOT SKIP + STOP + CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 + STOP + CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCE 13,14 ;*TSCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 +;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + +C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + ;PLACE 774777,,-1 INTO THE AC + SKIPA ;PASS IF TSCE DOES NOT SKIP + STOP + CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + STOP + CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCA 11,12 ;*TDCA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND SLWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + +C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDCA 10,11 ;*TDCA SHOULD SKP AND + ;PLACE 371173,,006244 INTO THE AC + STOP + CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + STOP + CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCA 7,10 ;*TSCA CHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSCA 6,7 ;*TSCA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 6,[0] ;PASS IF C(AC)=0 + STOP + CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + +C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDCN 5,6 ;*TDCN SHOULD SKIP AND + ;PLACE -1,,777773 INTO THE AC + STOP + CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + STOP + CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDCN DOES NOT SKIP + STOP + CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + +C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + TSCN 3,4 ;*TSCN SHOULD SKIP AND + ;PLACE -1,,776777 INTO THE AC + STOP + CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + STOP + CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTD +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + +C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSCN DOES NOT SKIP + STOP + CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 1,3 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + +C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 0,300 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701334 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLO 17,300 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLO DID NOT SKIP + STOP + CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + TLO 16,3 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOUD BE 123456,,701237 + +C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 15,3 ;TROE SHOULD SKIP AND + ;PLACE 123456,,701237 IN TO THE AC + STOP + CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 14,300 ;*TROE SHOULD NOT SKIP AND + ;PLACE 123456,,701224 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE TEN CHANGED TO ONES +;IN THES CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 13,300 ;*TLOE SOULD SKIP AND + ;PLAND 123756,,701234 INTO THE AC + STOP + CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;******** + +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF TLOE DID NOT SKIP + STOP + CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237 + +C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 11,3 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701237 + STOP + CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701334 + +C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 10,300 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN +;THE AC SHOULD BE 123457,,701234 + +C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 7,3 ;*TLOA SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + STOP + +;********** + +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 6,300 ;*TLOA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 5,300 ;*TRON SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 4,3 ;*TRON SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRON DID NOT SKIP + STOP + CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)-123456,,701234 AND E=3 +;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 3,3 ;*TLON SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* + +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 2,300 ;*TLON SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLON DID NOT SKIP + STOP + CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E)ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOE 1,2 ;*TDOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 +;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + +C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDOE DOES NOT SKIP + STOP + CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + +C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOE 17,0 ;*TSOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 +;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + +C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + ;*TSOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF SKIP + STOP + CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOA 15,16 ;*TDOA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + +C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDOA 14,15 ;*TDOA SHOULD SKIP AND + ;PLACE 373577,707274 ONTO THE AC + STOP + CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOA 13,14 ;*TSOA SHOULD SKIP AND + ;PLACE -1,,-1 ONTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + TSOA 12,13 ;*TSOA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + TDON 11,12 ;*TDON SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDON 10,11 ;*TDON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDON DOES NOT SKIP + STOP + CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + TSON 7,10 ;*TSON HOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + TSON 6,7 ;*TSON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSON DOES NOT SKIP + STOP + CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 + STOP + CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakaf/README.md b/apps/pdp10/diags/klad/dakaf/README.md new file mode 100644 index 000000000..7cbbc5b55 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/README.md @@ -0,0 +1,276 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #6 +permalink: /apps/pdp10/diags/klad/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. + +Resources for this test include: + +- [Instructions](#dakaftxt) +- [History](#dakafhst) +- [Source Code](#dakafmac) +- [MACRO-10 Listing](DAKAF.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 %} diff --git a/apps/pdp10/diags/klad/dakag/DAKAG.LST.txt b/apps/pdp10/diags/klad/dakag/DAKAG.LST.txt new file mode 100644 index 000000000..3321ddaca --- /dev/null +++ b/apps/pdp10/diags/klad/dakag/DAKAG.LST.txt @@ -0,0 +1,3126 @@ +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0007 + + 1 ;DAKAG + 2 + 3 + 4 + 5 000002 DECVER==2 + 6 000000 MCNVER==0 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 + 14 ^ + 15 + 16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE + 17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD. + 18 + 19 ;COPYRIGHT 1972,1977 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;JOHN R. KIRCHOFF + 24 ;DICK MALISKA + 25 + 26 000137 LOC 137 + 27 000137 000000 000002 MCNVER,,DECVER + 28 + 29 NOSYM +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2 +DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0008 + + 30 SUBTTL DIAGNOSTIC PARAMETERS + 31 + 32 ;PARAMETER DEFINITIONS + 33 000001 EXCASB==1 + 34 000001 USRASB==1 + 35 000001 PGMEND==1 + 36 000100 DEBUG==100 + 37 + 38 ;FLAG DEFINITIONS + 39 010000 USERF=10000 ;USER MODE FLAG + 40 + 41 + 42 ;MACROS + 43 + 44 ;SPECIAL FEATURE PARAMETERS + 45 + 46 030712 SADR1=START + 47 030712 SADR2=START + 48 030712 SADR3=START + 49 030712 SADR4=START + 50 254000 030712 SADR5=JRST START + 51 254000 030712 SADR6=JRST START + 52 254000 030712 SADR7=JRST START + 53 254000 030712 SADR8=JRST START + 54 254000 030712 SADR9=JRST START + 55 254000 030712 SADR10=JRST START + 56 254000 030712 SADR11=JRST START + 57 + 58 000000 PAREA0=0 + 59 000000 PAREA1=0 + 60 000000 PAREA2=0 + 61 444153 414700 PAREA3=SIXBIT/DAKAG/ + 62 645560 000000 PAREA4=SIXBIT/TMP/ + 63 000000 PAREA5=0 + 64 000000 PAREA6=0 + 65 001000 ITERAT==1000 + 66 000001 PGMEND==1 +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3 +DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0009 + + 67 SUBTTL DIAGNOSTIC PARAMETERS + 68 + 69 ;ACCUMULATOR ASSIGNMENTS + 70 + 71 ;CONTROL WORDS + 72 + 73 400000 AROV=400000 ;ARITHMETIC OVERFLOW + 74 200000 CRY0=200000 ;CARRY 0 + 75 100000 CRY1=100000 ;CARRY 1 + 76 040000 FOV=40000 ;FLOATING OVERFLOW + 77 020000 BIS=20000 ;BYTE INTERRUPT + 78 010000 USERF=10000 ;USER MODE FLAG + 79 004000 EXIOT=4000 ;USER PRIV I/O FLAG + 80 000100 FXU=100 ;FLOATING UNDERFLOW + 81 000040 DCK=40 ;DIVIDE CHECK + 82 + 83 + 84 ;MACROS + 85 + 86 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) + 87 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + 88 + 89 DEFINE STOP (A)< + 90 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 91 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 92 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 93 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 94 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + 95 + 96 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + 97 + 98 DEFINE SFLAG (A)< + 99 MOVSI 1,A + 100 JFCL 17,.+1 ;RESET ALL FLAGS + 101 JRST 2,.+1(1) ;SET A FLAG> +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0010 + + 102 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 103 + 104 DEFINE S,<;*********************************************************************> + 105 + 106 S^;*********************************************************************^ + 107 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 108 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 109 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 110 S^;*********************************************************************^ + 111 + 112 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 113 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 114 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 115 + 116 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 117 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 118 010000 DING== 010000 ;RING BELL ON ERROR + 119 + 120 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 121 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 122 001000 PALERS==001000 ;PRINT ALL ERRORS + 123 + 124 000400 RELIAB==000400 ;RELIABILITY MODE + 125 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 126 000100 INHPAG==000100 ;INHIBIT PAGING + 127 + 128 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 129 000020 INHCSH==000020 ;INHIBIT CACHE + 130 000010 OPRSEL==000010 ;OPERATOR SELECTION + 131 + 132 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 133 + 134 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 135 + 136 ;SWITCH 17 RESERVED !!! +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011 + + 137 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 138 + 139 S^;*********************************************************************^ + 140 ;*SPECIAL SUBPROGRAM LINKAGES + 141 S^;*********************************************************************^ + 142 + 143 027772 FSELNK= 27772 ;FILE SELECT LINK + 144 027773 FRDLNK= 27773 ;FILE READ LINK + 145 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 146 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 147 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 148 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 149 + 150 S^;*********************************************************************^ + 151 ;*SPECIAL SUBROUTINE FATAL HALTS + 152 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 153 S^;*********************************************************************^ + 154 + 155 ;ADDRESS TAG REASON + 156 ;--------------------- + 157 + 158 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 159 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 160 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 161 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 162 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 163 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 164 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 165 ; 1017 EOPERR ;END OF PROGRAM ERROR + 166 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 167 + 168 S^;*********************************************************************^ +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012 + + 169 S^;*********************************************************************^ + 170 ;OPERATOR DEFINITIONS (NON-UUO'S) + 171 S^;*********************************************************************^ + 172 + 173 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 174 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 175 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 176 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 177 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 178 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 179 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 180 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 181 + 182 S^;*********************************************************************^ + 183 ;*SUBROUTINE INITIALIZATION CALL + 184 S^;*********************************************************************^ + 185 + 186 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 187 + 188 S^;*********************************************************************^ + 189 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 190 S^;*********************************************************************^ + 191 + 192 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 193 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 194 + 195 S^;*********************************************************************^ + 196 ;*TERMINAL INPUT UUO'S + 197 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 198 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 199 S^;*********************************************************************^ + 200 + 201 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 202 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 203 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 204 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 205 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 206 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 207 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 208 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 209 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 210 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013 + + 211 ;*TERMINAL OUTPUT UUO'S. + 212 + 213 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 214 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 215 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 216 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 217 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 218 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 219 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 220 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 221 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 222 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 223 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 224 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 225 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 226 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 227 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 228 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 229 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 230 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 231 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 232 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 233 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 234 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 235 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 236 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 237 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 238 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 239 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 240 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 241 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 242 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 243 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 244 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 245 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 246 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 247 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 248 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 249 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 250 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 251 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 252 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 253 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 254 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 255 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 256 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 257 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 258 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 259 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 260 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 261 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 262 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 263 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 264 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 265 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014 + + 266 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 267 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 268 + 269 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 270 + 271 DEFINE PMSG (ARG),< + 272 PSIXM [SIXBIT\ARG'_\]> + 273 + 274 DEFINE PMSGF (ARG),< + 275 PSIXMF [SIXBIT\ARG'_\]> + 276 + 277 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 278 ;* CONSERVES CORE OVER ASCIZ + 279 + 280 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 281 + 282 ;*CONSOLE SWITCH INPUT UUO. + 283 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 284 ;* USER MODE. + 285 + 286 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 287 + 288 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 289 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 290 + 291 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 292 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 293 + 294 ;*KL10 ONLY CACHE OPERATION UUO'S + 295 + 296 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 297 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 298 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0015 + + 299 ;*END OF PASS/PROGRAM UUOS + 300 + 301 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 302 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 303 + 304 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 305 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 306 + 307 ;*MEMORY MANAGEMENT UUO'S + 308 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 309 ;*ADDRESS CONVERSION, ETC... + 310 + 311 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 312 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 313 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 314 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 315 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 316 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 317 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 318 + 319 ;*DEVICE CODE MODIFICATION UUO + 320 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 321 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 322 + 323 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 324 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 325 + 326 030000 IFNDEF MODDVL, + 327 030000 IFNDEF MODDVU, + 328 + 329 ;*"DIAMON" FILE SELECTION AND READ UUOS + 330 + 331 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 332 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 333 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 334 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 335 + 336 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 337 + 338 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 339 + 340 XLIST + 341 IFNDEF KLOLD, + 367 + 368 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 369 + 370 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 371 SALL + 372 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 373 CORECT,,ACTUAL + 374 [SIXBIT\D'_\],,ERR] + 375 XALL > + 376 + 377 >;END OF KLOLD CONDITIONAL + 378 + 379 XLIST + 380 LIST +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017 + + 381 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 382 + 383 030000 LOC 30000 + 384 + 385 S^;*********************************************************************^ + 386 ;*PROGRAM STARTING ADDRESSES + 387 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 388 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 389 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 390 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 391 S^;*********************************************************************^ + 392 + 393 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 394 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS + 395 + 396 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 397 + 398 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 399 + 400 030004 254 00 0 00 030712 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 401 + 402 030005 254 00 0 00 030712 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 403 + 404 030006 254 00 0 00 030712 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 405 + 406 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 407 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 408 + 409 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 410 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 411 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 412 + 413 030013 254000 030712 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 414 030014 254000 030712 START2: SADR8 ; " + 415 030015 254000 030712 START3: SADR9 ; " + 416 030016 254000 030712 START4: SADR10 ; " + 417 030017 254000 030712 START5: SADR11 ; " +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018 + + 418 S^;*********************************************************************^ + 419 ;*PROGRAM FIXED PARAMETER AREA + 420 S^;*********************************************************************^ + 421 + 422 030020 444153 414700 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 423 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 424 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 425 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 426 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 427 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 428 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 429 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 430 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 431 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 432 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 433 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 434 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 435 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 436 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 437 + 438 S^;*********************************************************************^ + 439 ;*PROGRAM VARIABLE PARAMETER AREA + 440 S^;*********************************************************************^ + 441 + 442 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 443 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 444 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 445 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 446 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 447 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 448 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 449 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 450 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 451 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 452 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 453 030052 000000 000000 ERRPC: 0 ;ERROR PC + 454 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 455 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 456 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 457 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019 + + 458 S^;*********************************************************************^ + 459 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 460 S^;*********************************************************************^ + 461 + 462 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 463 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 464 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 465 030062 254000 030712 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 466 030063 254000 030712 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 467 030064 CPOPJ1: ;SKIP RETURN + 468 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 469 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 470 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 471 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 472 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 473 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 474 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 475 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 476 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 477 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 478 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 479 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 480 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 481 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 482 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 483 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 484 + 485 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 486 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 487 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 488 + 489 S^;*********************************************************************^ + 490 ;*PROCESSOR CONTROL STORAGE + 491 S^;*********************************************************************^ + 492 + 493 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 494 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 495 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 496 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 497 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 498 + 499 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 500 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 501 + 502 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 503 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 504 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 505 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 506 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 507 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 508 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020 + + 509 S^;*********************************************************************^ + 510 ;*UUO DISPATCH TABLE + 511 S^;*********************************************************************^ + 512 XLIST + 513 LIST + 514 030124 030070 030070 UUODIS: LUUO1,,$UUOER + 515 030125 030070 030070 LUUO3,,LUUO2 + 516 030126 030070 030070 LUUO5,,LUUO4 + 517 030127 030070 030070 LUUO7,,LUUO6 + 518 030130 030070 030070 LUUO11,,LUUO10 + 519 030131 030070 030070 LUUO13,,LUUO12 + 520 030132 030070 030070 LUUO15,,LUUO14 + 521 030133 030070 030070 LUUO17,,LUUO16 + 522 030134 030070 030070 LUUO21,,LUUO20 + 523 030135 030070 030070 LUUO23,,LUUO22 + 524 030136 030070 030070 LUUO25,,LUUO24 + 525 030137 030070 030070 LUUO27,,LUUO26 + 526 030140 030070 030070 LUUO31,,LUUO30 + 527 030141 030070 030070 LUUO33,,LUUO32 + 528 + 529 S^;*********************************************************************^ + 530 ;*MEMORY MANAGMENT STORAGE + 531 S^;*********************************************************************^ + 532 + 533 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 534 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 535 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 536 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 537 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 538 + 539 S^;*********************************************************************^ + 540 ;*PRINT CONTROL STORAGE + 541 S^;*********************************************************************^ + 542 + 543 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 544 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 545 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 546 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 547 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 548 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 549 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 550 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 551 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 552 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 553 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 554 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 555 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 556 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 557 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 558 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 559 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 560 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 561 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 562 S^;*********************************************************************^ + 563 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 564 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 565 ;* MOVEI NAME + 566 ;* PNTA ;OR PNTAF + 567 S^;*********************************************************************^ + 568 + 569 030242 CRLF: ASCII/ + 570 030242 015 012 000 000 000 / + 571 030243 CRLF2: ASCII/ + 572 + 573 030243 015 012 015 012 000 / + 574 030244 054 000 000 000 000 COMMA: ASCII/,/ + 575 030245 056 000 000 000 000 PERIOD: ASCII/./ + 576 030246 040 000 000 000 000 SPACE: ASCII/ / + 577 030247 011 000 000 000 000 TAB: ASCII/ / + 578 030250 MINUS: + 579 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 580 030251 053 000 000 000 000 PLUS: ASCII/+/ + 581 030252 052 000 000 000 000 AST: ASCII/*/ + 582 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 583 030254 050 000 000 000 000 LFP: ASCII/(/ + 584 030255 051 000 000 000 000 RTP: ASCII/)/ + 585 030256 007 0000000000 BELL: BYTE (7) 007 + 586 030257 077 000 000 000 000 QUEST: ASCII/?/ + 587 030260 057 000 000 000 000 SLASH: ASCII!/! + 588 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 589 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 590 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 591 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 592 + 593 S^;*********************************************************************^ + 594 ;*USER MODE OUTPUT FILE INFORMATION + 595 S^;*********************************************************************^ + 596 + 597 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 598 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 599 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 600 030272 BLOCK 2 + 601 + 602 S^;*********************************************************************^ + 603 ;*DISK UPDATE MODE FILE INFORMATION + 604 S^;*********************************************************************^ + 605 + 606 030274 $IBUF: BLOCK 3 + 607 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 608 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 609 030301 BLOCK 2 +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 610 S^;*********************************************************************^ + 611 ;*PUSHDOWN LIST CONTROL INFORMATION + 612 S^;*********************************************************************^ + 613 + 614 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 615 030304 PLISTS: BLOCK 200 + 616 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 617 + 618 S^;*********************************************************************^ + 619 ;*POWER LINE CLOCK FREQUENCY FLAG + 620 S^;*********************************************************************^ + 621 + 622 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 623 + 624 S^;*********************************************************************^ + 625 ;*KL10 CACHE CONTROL FLAGS + 626 S^;*********************************************************************^ + 627 + 628 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 629 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 630 + 631 S^;*********************************************************************^ + 632 ;*NUMBER INPUT DIGIT FLAG + 633 S^;*********************************************************************^ + 634 + 635 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 636 + 637 S^;*********************************************************************^ + 638 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 639 S^;*********************************************************************^ + 640 + 641 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 642 + 643 S^;*********************************************************************^ + 644 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 645 S^;*********************************************************************^ + 646 + 647 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 648 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 649 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 650 + 651 S^;*********************************************************************^ + 652 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 653 S^;*********************************************************************^ + 654 + 655 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 656 S^;*********************************************************************^ + 657 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 658 S^;*********************************************************************^ + 659 + 660 030516 000000 000000 KLTYP: 0 + 661 + 662 S^;*********************************************************************^ + 663 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 664 S^;*********************************************************************^ + 665 + 666 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 667 + 668 S^;*********************************************************************^ + 669 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 670 S^;*********************************************************************^ + 671 + 672 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 673 + 674 S^;*********************************************************************^ + 675 ;*"SWITCH" CALL USAGE CONTROL + 676 S^;*********************************************************************^ + 677 + 678 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 679 + 680 S^;*********************************************************************^ + 681 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 682 S^;*********************************************************************^ + 683 + 684 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 685 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 686 + 687 S^;*********************************************************************^ + 688 ;*SPECIAL FUTURE EXPANSION ROOM + 689 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 690 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 691 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 692 S^;*********************************************************************^ + 693 + 694 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 695 + 696 S^;*********************************************************************^ + 697 ;*END OF FIXED STORAGE + 698 S^;*********************************************************************^ + 699 + 700 030577 $ENDFX=&<777700>-1 + 701 030577 LOC $ENDFX + 702 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024 + + 703 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 + 704 + 705 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE + 706 + 707 000000 AC0= 0 + 708 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS + 709 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS + 710 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS + 711 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10) + 712 + 713 ;DTE20 DEVICE CODES + 714 + 715 000200 DTE== 200 ;DTE0 + 716 000204 DTE0== 204 + 717 000204 DTE1== 204 + 718 000210 DTE2== 210 + 719 000214 DTE3== 214 + 720 + 721 ;KL10 EPT COMMUNICATION AREA + 722 + 723 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS + 724 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS + 725 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS + 726 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS + 727 + 728 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG + 729 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG + 730 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION + 731 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT + 732 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT + 733 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD + 734 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER + 735 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE # + 736 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER + 737 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG + 738 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG + 739 + 740 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025 + + 741 ;SPECIAL "FIXED" REASSIGNMENTS + 742 + 743 030600 $$LOC=. ;SAVE CURRENT LOCATION + 744 + 745 030000 LOC 30000 + 746 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START + 747 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS + 748 + 749 000440 LOC 440 + 750 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD" + 751 000443 LOC 443 + 752 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL + 753 + 754 030057 LOC 30057 + 755 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND" + 756 + 757 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP + 758 + 759 000420 LOC 420 + 760 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL + 761 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW + 762 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW + 763 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3 + 764 000424 000000 000000 $$424: 0 ;MMUO + 765 000425 000000 000000 $$425: 0 ;MMUO PC + 766 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT + 767 000427 254 04 0 00 000427 $$427: HALT . + 768 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S + 769 000431 000000 000427 $$431: 427 + 770 000432 000000 000427 $$432: 427 + 771 000433 000000 000427 $$433: 427 + 772 000434 000000 000427 $$434: 427 + 773 000435 000000 000427 $$435: 427 + 774 000436 000000 000427 $$436: 427 + 775 000437 000000 000427 $$437: 427 + 776 + 777 000500 LOC 500 + 778 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD + 779 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC + 780 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC + 781 000503 254 04 0 00 000503 $$503: HALT . +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026 + + 782 030600 LOC $$LOC ;RESET CURRENT LOCATION + 783 + 784 ;SPECIAL STARTUP SEQUENCE + 785 + 786 030600 402 00 0 00 030037 $$START:SETZM USER + 787 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ? + 788 030602 603 00 0 00 010000 TLNE 0,USERF + 789 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD + 790 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ? + 791 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC + 792 030606 332 00 0 00 030037 SKIPE USER + 793 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE + 794 + 795 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ? + 796 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER + 797 030612 402 00 0 00 030516 SETZM KLTYP + 798 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10 + 799 030614 200 01 0 00 032223 MOVE 1,[1,,1] + 800 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS + 801 030616 316 01 0 00 032223 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10 + 802 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP + 803 + 804 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT + 805 030621 7 000 24 0 00 000000 CONI APR,0 + 806 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT + 807 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10 + 808 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD + 809 030625 402 00 0 00 000444 SETZM $DTFLG + 810 030626 402 00 0 00 000445 SETZM $DTCLK + 811 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE # + 812 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS + 813 030631 436 00 0 00 030672 ORM $$DTE1 + 814 030632 436 00 0 00 030704 ORM $$DTE2 + 815 030633 436 00 0 00 030706 ORM $$DTE3 + 816 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG + 817 030635 254 00 0 00 030712 JRST START + 818 + 819 030636 200 00 0 00 032224 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL + 820 030637 202 00 0 00 030643 MOVEM $SPB1 + 821 030640 254 00 0 00 030712 JRST START +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027 + + 822 ;SPECIAL "BEGEND" ROUTINE + 823 + 824 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT + 825 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT + 826 030643 336 00 0 00 030037 $SPB1: SKIPN USER + 827 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE + 828 + 829 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ? + 830 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING + 831 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ? + 832 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR + 833 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON" + 834 + 835 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG + 836 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC + 837 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT + 838 030655 332 00 0 00 030024 SKIPE ITRCNT + 839 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET + 840 030657 254 00 1 00 030012 JRST @RETURN ;DONE + 841 + 842 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT + 843 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED + 844 + 845 030662 335 00 0 00 030043 SKIPGE MONCTL + 846 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL + 847 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS + 848 030665 202 00 0 00 000451 MOVEM 0,$DTCMD + 849 030666 402 00 0 00 000444 SETZM $DTFLG + 850 030667 336 00 0 00 030516 SKIPN KLTYP + 851 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 + 852 030671 332 00 0 00 030516 SKIPE KLTYP + 853 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000 + 854 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS + 855 030674 254 00 0 00 030673 JRST .-1 + 856 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING + 857 + 858 ;SPECIAL KL10 COMPLETED ROUTINE + 859 + 860 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN + 861 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON" + 862 + 863 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION + 864 030701 202 00 0 00 000451 MOVEM 0,$DTCMD + 865 030702 402 00 0 00 000444 SETZM $DTFLG + 866 030703 336 00 0 00 030516 SKIPN KLTYP + 867 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11 + 868 030705 332 00 0 00 030516 SKIPE KLTYP + 869 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000 + 870 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN + 871 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM + 872 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT. +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +DAKAGM MAC 19-JAN-77 17:37 DIAGNOSTIC SECTION SEQ 0028 + + 873 SUBTTL DIAGNOSTIC SECTION + 874 + 875 030712 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD + 876 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS + 877 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE? + 878 030715 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD + 879 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE? + 880 030717 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD + 881 030720 336 00 0 00 030037 SKIPN USER + 882 030721 254 00 0 00 030741 JRST STARTA + 883 030722 331 00 0 00 030043 SKIPL MONCTL + 884 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME + 885 030724 254 00 0 00 030741 JRST STARTA + 886 + 887 030725 PGMNAM: ASCIZ/ + 888 030725 015 012 120 104 120 PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (7) [DAKAG] + 889 030726 055 061 060 040 113 + 890 030727 111 061 060 040 102 + 891 030730 101 123 111 103 040 + 892 030731 111 116 123 124 122 + 893 030732 125 103 124 111 117 + 894 030733 116 040 104 111 101 + 895 030734 107 116 117 123 124 + 896 030735 111 103 040 050 067 + 897 030736 051 040 133 104 101 + 898 030737 113 101 107 135 015 + 899 030740 012 000 000 000 000 / + 900 + 901 030741 254 00 0 00 030742 STARTA: JRST .+1 +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0029 + + 902 SUBTTL TEST OF PUSH INSTRUCTION + 903 + 904 ;********** + 905 + 906 ;THIS TEST VERIFIES THAT PUSH DECODES CORRECTLY. + 907 ;IF PUSH DECODES AS PUSHJ, THIS TEST FAILS. + 908 + 909 030742 400 02 0 00 000000 C27200: SETZ 2, ;CLEAR AC + 910 030743 261 02 0 00 030745 PUSH 2,.+2 ;*PUSH SHOULD NOT JUMP + 911 030744 334 00 0 00 000000 SKIPA ;PASS IF PUSH DID NOT JUMP + 912 STOP^ + 913 030745 254 04 0 00 030746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 914 030746 324 00 0 00 030747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 915 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 916 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 917 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 918 + 919 ;********** + 920 + 921 ;THIS TEST VERIFIES THAT PUSH DOES NOT MODIFY C(E). + 922 ;CLEAR E AND AC; THEN, EXECUTE PUSH. + 923 ;CHECK E FOR ORIGINAL CONTENTS ,0. + 924 ;PASS IF C(E)=0. + 925 + 926 030747 403 00 0 00 000002 C27300: SETZB 2 ;CLEAR AC,E + 927 030750 261 02 0 00 000000 PUSH 2, ;*PUSH SHOULD NOT ALTER C(E) + 928 030751 332 00 0 00 000000 SKIPE ;PASS IF C(E)=0,,0 + 929 STOP^ + 930 030752 254 04 0 00 030753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 931 030753 324 00 0 00 030754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 932 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 933 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 934 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 935 + 936 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0030 + + 937 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC. + 938 ;FIRST THE AC IS CLEARED; THEN PUSH IS EXECUTED. + 939 ;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + 940 + 941 030754 400 02 0 00 000000 C27400: SETZ 2, ;CLEAR AC + 942 030755 261 02 0 00 030756 PUSH 2,.+1 ;*PUSH SHOULD ADD 1,,1 TO C(AC) + 943 030756 312 02 0 00 032223 CAME 2,[XWD 1,1] ;PASS IF C(AC)=1,,1 + 944 STOP^ + 945 030757 254 04 0 00 030760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 946 030760 324 00 0 00 030761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 947 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 948 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 949 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 950 + 951 ;********** + 952 + 953 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). + 954 ;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. + 955 ;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR THE INITIAL VALUE, 0. + 956 ;IF C(AC0)=0, THIS TEST PASSES + 957 + 958 030761 403 00 0 00 000002 C27500: SETZB 2 ;CLEAR AC AND AC0 + 959 030762 261 02 0 00 032225 PUSH 2,[16541320] ;*PUSH SHOULD NOT MODIFY C(AC0) + 960 030763 332 00 0 00 000000 SKIPE ;PASS IF C(AC0)=0 + 961 STOP^ + 962 030764 254 04 0 00 030765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 963 030765 324 00 0 00 030766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 964 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 965 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 966 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 967 + 968 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0031 + + 969 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). + 970 ;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. + 971 ;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR + 972 ;IF C(AC0)IS NOT EQUAL TO E, THIS TEST PASSES + 973 + 974 030766 403 01 0 00 000002 C27600: SETZB 1,2 ;CLEAR AC AND AC0 + 975 030767 261 02 0 00 030770 PUSH 2,.+1 ;*PUSH SHOULD NOT MODIFY C(AC0) + 976 030770 306 00 0 00 030770 CAIN . ;FAIL IF C(AC0)=E + 977 STOP^ + 978 030771 254 04 0 00 030772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 979 030772 324 00 0 00 030773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 980 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 981 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 982 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 983 + 984 ;********** + 985 + 986 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO + 987 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC AND THE LOCATION SPECIFIED + 988 ;BY UPDATING C(AC-RIGHT) ARE CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. + 989 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE + 990 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + 991 + 992 030773 403 01 0 00 000002 C27700: SETZB 1,2 ;CLEAR AC, C(AC-RIGHT) + 993 030774 261 02 0 00 032226 PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC1 + 994 030775 312 01 0 00 032226 CAME 1,[-1] ;PASS IF C(1)=-1,,-1 + 995 STOP^ + 996 030776 254 04 0 00 030777 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 997 030777 324 00 0 00 031000 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 998 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 999 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1000 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1001 + 1002 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0032 + + 1003 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO + 1004 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC + 1005 ;IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=0. + 1006 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR 0, THE + 1007 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=0, THIS TEST PASSES. + 1008 + 1009 031000 402 00 0 00 000002 C30000: SETZM 2 ;CLEAR AC + 1010 031001 261 02 0 00 032227 PUSH 2,[0] ;*PUSH SHOULD PLACE 0 INTO AC1 + 1011 031002 332 00 0 00 000001 SKIPE 1 ;PASS IF C(1)=0 + 1012 STOP^ + 1013 031003 254 04 0 00 031004 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1014 031004 324 00 0 00 031005 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1015 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1016 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1017 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1018 + 1019 ;********** + 1020 + 1021 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO + 1022 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, + 1023 ;AC IS PRELOADED WITH 0,,-1, AND THE LOCATION SPECIFIED + 1024 ;BY UPDATING C(AC-RIGHT) IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. + 1025 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE + 1026 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + 1027 + 1028 031005 201 02 0 00 777777 C30100: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + 1029 031006 400 00 0 00 000000 SETZ ;CLEAR AC, C(AC-RIGHT) + 1030 031007 261 02 0 00 032226 PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC0 + 1031 031010 312 00 0 00 032226 CAME [-1] ;PASS IF C(0)=-1,,-1 + 1032 STOP^ + 1033 031011 254 04 0 00 031012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1034 031012 324 00 0 00 031013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1035 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1036 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1037 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1038 + 1039 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 6 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0033 + + 1040 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM AC BIT 18 TO BIT 17 OF THE AC ON PUSH. + 1041 ;THE AC IS PRELOADED WITH 0,,-1; THEN PUSH IS EXECUTED. PUSH SHOULD ADD ONE TO BOTH + 1042 ;HALVES OF THE AC, GENERATING A CARRY FROM BIT 18 TO BIT 17. IF A CARRY WAS GENERATED, + 1043 ;THIS TEST PASSES. + 1044 + 1045 031013 201 02 0 00 777777 C30101: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + 1046 031014 261 02 0 00 000000 PUSH 2,0 ;*PUSH SHOULD GENERATE A CARRY FROM BIT 18 TO BIT 17 + 1047 031015 312 02 0 00 032230 CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + 1048 STOP^ + 1049 031016 254 04 0 00 031017 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1050 031017 324 00 0 00 031020 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1051 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1052 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1053 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1054 + 1055 ;************* +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 7 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0034 + + 1056 SUBTTL TEST OF PUSHJ INSTRUCTION + 1057 + 1058 ;********** + 1059 + 1060 ;THIS TEST VERIFIES THAT PUSHJ TRANSFERS CONTROL TO THE LOCATION ADDRESSED BY E. + 1061 ;IF PUSHJ DOES NOT JUMP, THIS TEST FAILS + 1062 + 1063 031020 C30200: SFLAG CRY0 ^;SETS CRY0 FLAG + 1064 + 1065 031020 205 01 0 00 200000 MOVSI 1,CRY0 + 1066 031021 255 17 0 00 031022 JFCL 17,.+1 ;RESET ALL FLAGS + 1067 031022 254 02 0 01 031023 JRST 2,.+1(1) ;SET CRY0 FLAG + 1068 031023 400 00 0 00 000000 SETZ ;CLEAR AC + 1069 031024 260 00 0 00 031026 PUSHJ .+2 ;*PUSHJ SHOULD JUMP TO LOCATION E + 1070 STOP^ + 1071 031025 254 04 0 00 031026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1072 031026 324 00 0 00 031027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1076 + 1077 ;********** + 1078 + 1079 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT MODIFY C(PC) WHERE PC IS ONE GREATER + 1080 ;THAN THE LOCATION OF THE PUSHJ INSTRUCTION. + 1081 ;IF PUSHJ MODIFIES C(PC), THIS TEST FAILS + 1082 + 1083 031027 C30300: SFLAG CRY0 ^;SET CRY0 + 1084 + 1085 031027 205 01 0 00 200000 MOVSI 1,CRY0 + 1086 031030 255 17 0 00 031031 JFCL 17,.+1 ;RESET ALL FLAGS + 1087 031031 254 02 0 01 031032 JRST 2,.+1(1) ;SET CRY0 FLAG + 1088 031032 403 01 0 00 031034 SETZB 1,.+2 ;CLEAR C(AC-RIGHT) AND C(PC) + 1089 031033 260 00 0 00 031036 PUSHJ .+3 ;*PUSHJ SHOULD NOT MODIFY C(PC) + 1090 031034 000000 000000 0 ;THIS LOCATION SHOULD NOT BE MODIFIED BY PUSHJ + 1091 031035 310 00 0 00 000000 CAM ;PUSHJ SHOULD JUMP OVER THIS LOCATION + 1092 031036 332 00 0 00 031034 SKIPE .-2 ;PASS IF PUSHJ DID NOT MODIFY C(PC) + 1093 STOP^ + 1094 031037 254 04 0 00 031040 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1095 031040 324 00 0 00 031041 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1096 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1097 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1098 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1099 + 1100 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 8 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0035 + + 1101 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN E + 1102 ;IF PUSHJ STORED IN E, THIS TEST FAILS + 1103 + 1104 031041 C30400: SFLAG CRY0 ^;SET CRY0 + 1105 + 1106 031041 205 01 0 00 200000 MOVSI 1,CRY0 + 1107 031042 255 17 0 00 031043 JFCL 17,.+1 ;RESET ALL FLAGS + 1108 031043 254 02 0 01 031044 JRST 2,.+1(1) ;SET CRY0 FLAG + 1109 031044 403 00 0 00 000001 SETZB 1 ;CLEAR AC AND C(AC-RIGHT + 1110 031045 260 00 0 00 031046 PUSHJ .+1 ;*PUSHJ SHOULD NOT STORE IN E + 1111 031046 200 02 0 00 031046 MOVE 2,. ;SAVE C(E) + 1112 031047 312 02 0 00 031046 CAME 2,.-1 ;FAIL IF PUSHJ STORED IN E + 1113 STOP^ + 1114 031050 254 04 0 00 031051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1115 031051 324 00 0 00 031052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1116 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1117 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1118 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1119 + 1120 ;********** + 1121 + 1122 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN LOC 0 + 1123 ;PUSHJ SHOULD STORE PC IN C(AC-RIGHT) - LOCATION 2. + 1124 ;IF PUSHJ STORES IN LOCATION 0, THIS TEST FAILS + 1125 + 1126 031052 201 02 0 00 000001 C30500: MOVEI 2,1 ;PRELOAD AC WITH 0,,1 + 1127 031053 400 00 0 00 000000 SETZ 0 ;CLEAR 0 + 1128 031054 260 02 0 00 031055 PUSHJ 2,.+1 ;*PUSHJ SHOULD NOT STORE IN LOCATION 0 + 1129 031055 332 00 0 00 000000 SKIPE ;FAIL IF PUSHJ STORED IN LOCATION 0 + 1130 STOP^ + 1131 031056 254 04 0 00 031057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1132 031057 324 00 0 00 031060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1133 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1134 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1135 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1136 + 1137 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 9 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0036 + + 1138 ;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN THE LOCATION SPECIFIED + 1139 ;BY C(AC-RIGHT) AFTER INCREMENTING AC. + 1140 ;IN THIS TEST, AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. + 1141 ;C(C(AC-RIGHT))IS THEN COMPARED TO ZERO. IF C(C(AC-RIGHT)) IS NON-ZERO, + 1142 ;A PC WAS STORED AND THIS TEST PASSES. + 1143 + 1144 031060 403 00 0 00 000001 C30600: SETZB 1 ;CLEAR AC, C(AC-RIGHT) + 1145 031061 260 00 0 00 031063 PUSHJ .+2 ;*PUSHJ SHOULD STORE PC IN RIGHT HALF OF C(AC-RIGHT) + 1146 031062 254 04 0 00 031062 HALT . ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + 1147 031063 405 01 0 00 777777 ANDI 1,-1 ;SAVE C(C(AC-RIGHT)) + 1148 031064 306 01 0 00 031063 CAIN 1,.-1 ;FAIL IF PC WAS NOT STORED IN C(AC-RIGHT) + 1149 STOP^ + 1150 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1151 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1152 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1153 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1154 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1155 + 1156 ;********** + 1157 + 1158 ;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC + 1159 ;THE AC IS CLEARED AND PUSHJ IS EXECUTED + 1160 ;AC IS CHECKED FOR 1,,1 IF C(AC)=1,,1, THIS TEST PASSES + 1161 + 1162 031067 400 00 0 00 000000 C31000: SETZ ;CLEAR AC + 1163 031070 260 00 0 00 031071 PUSHJ .+1 ;*PUSHJ SHOULD PLACE 1,,1 INTO THE AC + 1164 031071 312 00 0 00 032223 CAME [1,,1] ;PASS IF C(AC)=1,,1 + 1165 STOP^ + 1166 031072 254 04 0 00 031073 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1167 031073 324 00 0 00 031074 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1171 + 1172 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 10 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0037 + + 1173 ;THIS TEST VERIFIES THAT PUSHJ STORES THE FLAGS IN LEFT HALF OF C(AC-RIGHT) + 1174 ;FIRST, CRY0 IS SET AND AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. + 1175 ;C(C(AC-RIGHT)) IS THEN CHECKED FOR CRY0. IF CRY0 IS SET, THIS TEST PASSES. + 1176 + 1177 031074 C31100: SFLAG CRY0 ^;SET CRY0 + 1178 + 1179 031074 205 01 0 00 200000 MOVSI 1,CRY0 + 1180 031075 255 17 0 00 031076 JFCL 17,.+1 ;RESET ALL FLAGS + 1181 031076 254 02 0 01 031077 JRST 2,.+1(1) ;SET CRY0 FLAG + 1182 031077 403 00 0 00 000001 SETZB 1 ;CLEAR AC AND C(AC-RIGHT) + 1183 031100 260 00 0 00 031101 PUSHJ .+1 ;*PUSHJ SHOULD STORE FLAGS IN LEFT HALF OF C(AC-RIGHT) + 1184 031101 607 01 0 00 200000 TLNN 1,CRY0 ;PASS IF CRY0 STORED CORRECTLY + 1185 STOP^ + 1186 031102 254 04 0 00 031103 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1187 031103 324 00 0 00 031104 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1188 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1189 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1190 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1191 + 1192 ;********** + 1193 + 1194 ;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC + 1195 ;THE AC IS PRELOADED WITH 0,,1 AND PUSHJ IS EXECUTED + 1196 ;AC IS CHECKED FOR 1,,2 IF C(AC)=1,,2, THIS TEST PASSES + 1197 + 1198 031104 201 01 0 00 000001 C31400: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + 1199 031105 260 01 0 00 031107 PUSHJ 1,.+2 ;*PUSHJ SHOULD PLACE 1,,2 INTO THE AC + 1200 031106 254 04 0 00 000000 HALT ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + 1201 031107 312 01 0 00 032231 CAME 1,[XWD 1,2] ;PASS IF AC WAS INCREMENTED CORRECTLY + 1202 STOP^ + 1203 031110 254 04 0 00 031111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1204 031111 324 00 0 00 031112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1205 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1206 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1207 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1208 + 1209 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 11 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0038 + + 1210 ;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN RIGHT HALF OF C(AC-RIGHT) + 1211 ;THIS TEST PASSES IF THE PC WAS STORED CORRECTLY. + 1212 + 1213 031112 201 01 0 00 000001 C31500: MOVEI 1,1 ;PLACE 0,,1 INTO AC + 1214 031113 260 01 0 00 031115 PUSHJ 1,.+2 ;*PUSHJ SHOULD STORE .+1 INTO RIGHT HALF OF C(AC-RIGHT) + 1215 031114 254 04 0 00 000000 HALT ;PUSHJ SHOULD JUMP OVER THIS PC + 1216 031115 405 02 0 00 777777 ANDI 2,-1 ;SAVE RIGHT HALF OF C(AC-RIGHT) + 1217 031116 302 02 0 00 031114 CAIE 2,.-2 ;PASS IF PC STORED CORRECTLY + 1218 STOP^ + 1219 031117 254 04 0 00 031120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1220 031120 324 00 0 00 031121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1221 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1222 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1223 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1224 + 1225 ;********** + 1226 + 1227 ;THIS TEST VERIFIES THAT PUSHJ ALWAYS RESETS BIS. + 1228 ;FIRST BIS IS SET; THEN PUSHJ IS EXECUTED. THE FLAGS ARE + 1229 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA PUSHJ, THIS TEST PASSES. + 1230 + 1231 031121 C31501: SFLAG BIS ^;SET BIS + 1232 + 1233 031121 205 01 0 00 020000 MOVSI 1,BIS + 1234 031122 255 17 0 00 031123 JFCL 17,.+1 ;RESET ALL FLAGS + 1235 031123 254 02 0 01 031124 JRST 2,.+1(1) ;SET BIS FLAG + 1236 031124 400 00 0 00 000000 SETZ ;CLEAR AC + 1237 031125 260 00 0 00 031126 PUSHJ .+1 ;*PUSHJ SHOULD RESET BIS + 1238 031126 265 00 0 00 031127 JSP .+1 ;SAVE FLAGS + 1239 031127 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET + 1240 STOP^ + 1241 031130 254 04 0 00 031131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1242 031131 324 00 0 00 031132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1243 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1244 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1245 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1246 + 1247 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 12 +DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0039 + + 1248 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON PUSHJ. + 1249 ;THE AC IS PRELOADED WITH 0,,-1; THEN PUSHJ IS EXECUTED. PUSHJ SHOULD ADD ONE TO + 1250 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. IF A + 1251 ;CARRY WAS GENERATED, THE TEST PASSES. + 1252 + 1253 031132 201 02 0 00 777777 C31502: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + 1254 031133 260 02 0 00 031134 PUSHJ 2,.+1 ;*PUSHJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + 1255 031134 312 02 0 00 032230 CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + 1256 STOP^ + 1257 031135 254 04 0 00 031136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1258 031136 324 00 0 00 031137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1259 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1260 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1261 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1262 + 1263 ;**************** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 13 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0040 + + 1264 SUBTTL TEST OF POP INSTRUCTION + 1265 + 1266 ;********** + 1267 + 1268 ;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC + 1269 ;THE AC IS PRELOADED WITH 1,,1; THEN, POP IS EXECUTED. + 1270 ;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + 1271 + 1272 031137 200 00 0 00 032223 C31600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + 1273 031140 262 00 0 00 000001 POP 1 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + 1274 031141 332 00 0 00 000000 SKIPE ;PASS IF AC WAS DECREMENTED CORRECTLY + 1275 STOP^ + 1276 031142 254 04 0 00 031143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1277 031143 324 00 0 00 031144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1278 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1279 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1280 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1281 + 1282 ;********** + 1283 + 1284 ;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC + 1285 ;THE AC IS PRELOADED WITH 2,,2; THEN, POP IS EXECUTED. + 1286 ;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + 1287 + 1288 031144 200 00 0 00 032232 C31700: MOVE [XWD 2,2] ;PRELOAD AC WITH E,,E WHERE E=2 + 1289 031145 201 02 0 00 000005 MOVEI 2,5 ;PRELOAD 2 WITH 0,,5 + 1290 031146 262 00 0 00 000002 POP 2 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + 1291 031147 312 00 0 00 032223 CAME [1,,1] ;PASS IF AC WAS DECREMENTED CORRECTLY + 1292 STOP^ + 1293 031150 254 04 0 00 031151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1294 031151 324 00 0 00 031152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1298 + 1299 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 14 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0041 + + 1300 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E + 1301 ;IN THIS CASE, AC=0 AND AC IS PRELOADED WITH 2,,2; E=2 AND IS PRELOADED WITH 0. + 1302 ;POP IS THEN EXECUTED. POP SHOULD PLACE 0 INTO E. IF C(E)=0, THIS TEST PASSES. + 1303 + 1304 031152 200 00 0 00 032232 C32300: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + 1305 031153 402 00 0 00 000002 SETZM 2 ;CLEAR E AND C(AC-RIGHT) + 1306 031154 262 00 0 00 000002 POP 2 ;*POP SHOULD PLACE 0 INTO E + 1307 031155 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0 + 1308 STOP^ + 1309 031156 254 04 0 00 031157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1310 031157 324 00 0 00 031160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1311 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1312 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1313 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1314 + 1315 ;********** + 1316 + 1317 ;THIS TEST VERIFIES THAT POP DOES NOT MODIFY C(C(AC-RIGHT)-1). + 1318 ;THIS TEST FAILS IF C(C(AC-RIGHT)-1) IS MODIFIED BY POP. + 1319 + 1320 031160 200 00 0 00 032232 C32400: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + 1321 031161 201 02 0 00 000017 MOVEI 2,17 ;PRELOAD 2 WITH 0,,17 + 1322 031162 402 00 0 00 000001 SETZM 1 ;CLEAR C(C(AC-RIGHT)-1) + 1323 031163 262 00 0 00 000002 POP 2 ;*POP SHOULD NOT MODIFY C(C(AC-RIGHT)-1) + 1324 031164 332 00 0 00 000001 SKIPE 1 ;PASS IF C(C(AC-RIGHT)-1) WAS UNALTERED + 1325 STOP^ + 1326 031165 254 04 0 00 031166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1327 031166 324 00 0 00 031167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1328 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1329 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1330 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1331 + 1332 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 15 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0042 + + 1333 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. + 1334 ;IN THIS CASE, AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,3. + 1335 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,3 [C(C(AC-RIGHT))] . + 1336 ;IF C(E)=0,,3, THIS TEST PASSES. + 1337 + 1338 031167 200 00 0 00 032232 C32500: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + 1339 031170 201 02 0 00 000003 MOVEI 2,3 ;PRELOAD C(AC-RIGHT) WITH 0,,3 + 1340 031171 402 00 0 00 000003 SETZM 3 ;CLEAR E + 1341 031172 262 00 0 00 000003 POP 3 ;*POP SHOULD PLACE 0,,3 INTO E + 1342 031173 302 03 0 00 000003 CAIE 3,3 ;PASS IF C(E)=0,,3 + 1343 STOP^ + 1344 031174 254 04 0 00 031175 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1345 031175 324 00 0 00 031176 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1346 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1347 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1348 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1349 + 1350 ;********** + 1351 + 1352 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, + 1353 ;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,17. + 1354 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,17 [C(C(AC-RIGHT))] . + 1355 ;IF C(E)=0,,17, THIS TEST PASSES. + 1356 + 1357 031176 402 00 0 00 000002 C32600: SETZM 2 ;CLEAR E + 1358 031177 200 00 0 00 032232 MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + 1359 031200 201 02 0 00 000017 MOVEI 2,17 ;PRELOAD C(AC-RIGHT) WITH 0,,17 + 1360 031201 262 00 0 00 000002 POP 2 ;*POP SHOULD PLACE 0,,17 INTO E + 1361 031202 302 02 0 00 000017 CAIE 2,17 ;PASS IF C(E)=0,,17 + 1362 STOP^ + 1363 031203 254 04 0 00 031204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1364 031204 324 00 0 00 031205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1365 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1366 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1367 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1368 + 1369 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 16 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0043 + + 1370 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, + 1371 ;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH -1,,-1. + 1372 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR -1,,-1 [C(C(AC-RIGHT))] . + 1373 ;IF C(E)=0,,3, THIS TEST PASSES. + 1374 + 1375 031205 200 00 0 00 032232 C33100: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + 1376 031206 476 00 0 00 000002 SETOM 2 ;PRELOAD C(AC-RIGHT) WITH -1,,-1 + 1377 031207 402 00 0 00 000003 SETZM 3 ;CLEAR E + 1378 031210 262 00 0 00 000003 POP 3 ;*POP SHOULD PLACE -1,,-1 INTO E + 1379 031211 312 03 0 00 032226 CAME 3,[-1] ;PASS IF C(E)=-1,,-1 + 1380 STOP^ + 1381 031212 254 04 0 00 031213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1382 031213 324 00 0 00 031214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1383 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1384 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1385 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1386 + 1387 ;********** + 1388 + 1389 ;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC. + 1390 ;IN THIS CASE, THE AC IS PRELOADED WITH 1,,17; E=1 AND E IS PRELOADED WITH 0; + 1391 ;C(AC-RIGHT) IS PRELOADED WITH -1,,-1; AND POP IS EXECUTED. POP SHOULD PLACE -1,,-1 + 1392 ;INTO E AND 0,,16 INTO AC. IF AC AND E ARE UPDATED CORRECTLY, THIS TEST PASSES. + 1393 + 1394 031214 200 00 0 00 032233 C33300: MOVE [XWD 1,17] ;PRELOAD AC WITH 1,,17 + 1395 031215 402 00 0 00 000001 SETZM 1 ;PRELOAD E WITH 0 + 1396 031216 476 00 0 00 000017 SETOM 17 ;PRELOAD C(AC-RIGHT) WITH 1,,1 + 1397 031217 262 00 0 00 000001 POP 1 ;*POP SHOULD PLACE -1,,-1 INTO E AND 0,,16 INTO AC + 1398 031220 312 01 0 00 032226 CAME 1,[-1] ;PASS IF C(E)=-1,,-1 + 1399 STOP^ + 1400 031221 254 04 0 00 031222 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1401 031222 324 00 0 00 031223 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1405 031223 302 00 0 00 000016 C33310: CAIE 16 ;PASS IF C(AC)=0,,16 + 1406 STOP^ + 1407 031224 254 04 0 00 031225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1408 031225 324 00 0 00 031226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1409 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1410 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1411 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1412 + 1413 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 17 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0044 + + 1414 ;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC + 1415 ;IN THIS CASE, THE AC IS PRELOADED WITH -1,,0; E=17 + 1416 ;C(AC-RIGHT) IS PRELOADED WITH 0; AND POP IS EXECUTED. POP SHOULD PLACE 0 + 1417 ;INTO E. IF AC IS UPDATED CORRECTLY, THIS TEST PASSES. + 1418 + 1419 031226 205 01 0 00 777777 C33400: MOVSI 1,-1 ;PRELOAD AC WITH -1,,0 + 1420 031227 400 00 0 00 000000 SETZ ;CLEAR C(AC-RIGHT) + 1421 031230 262 01 0 00 000017 POP 1,17 ;*POP SHOULD PLACE 0 INTO E + 1422 031231 332 00 0 00 000017 SKIPE 17 ;PASS IF C(E)=0 + 1423 STOP^ + 1424 031232 254 04 0 00 031233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1425 031233 324 00 0 00 031234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1426 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1427 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1428 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1429 + 1430 ;********** + 1431 + 1432 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POP. + 1433 ;THE AC IS PRELOADED WITH 2,,0; THEN POP IS EXECUTED. POP SHOULD SUBTRACT ONE FROM + 1434 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. + 1435 ;IF A CARRY WAS GENERATED, THIS TEST PASSES. + 1436 + 1437 031234 515 02 0 00 000002 C33401: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + 1438 031235 262 02 0 00 000000 POP 2,0 ;*POP SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + 1439 031236 302 02 0 00 777777 CAIE 2,-1 ;PASS IF C(AC) = 0,,-1 (CARRY WAS GENERATED) + 1440 STOP^ + 1441 031237 254 04 0 00 031240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1442 031240 324 00 0 00 031241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1443 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1444 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1445 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1446 + 1447 ;************ +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 18 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POPJ INSTRUCTION SEQ 0045 + + 1448 SUBTTL TEST OF POPJ INSTRUCTION + 1449 + 1450 ;********** + 1451 + 1452 ;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF + 1453 ;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. + 1454 ;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + 1455 + 1456 031241 200 00 0 00 032223 C33500: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + 1457 031242 201 01 0 00 031245 MOVEI 1,.+3 ;PRELOAD C(AC-RIGHT) WITH .+3 + 1458 031243 263 00 0 00 031245 POPJ .+2 ;*POPJ SHOULD JUMP TO LOCATION + 1459 ;ADDRESSED BY C(C(AC-RIGHT)) + 1460 STOP^ + 1461 031244 254 04 0 00 031245 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1462 031245 324 00 0 00 031246 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1463 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1464 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1465 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1466 + 1467 ;********** + 1468 + 1469 ;THIS TEST VERIFIES THAT POPJ SUBTRACTS 1,,1 FROM THE AC + 1470 ;THIS AC IS PRELOADED WITH 1,,1; THEN,POPJ IS EXECUTED. + 1471 ;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + 1472 + 1473 031246 200 00 0 00 032223 C33600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + 1474 031247 201 01 0 00 031251 MOVEI 1,.+2 ;PRELOAD C(AC-NIGHT)WITH .+2 + 1475 031250 263 00 0 00 031251 POPJ .+1 ;*POPJ SHOULD SUBTRACT 1,,1 FROM AC + 1476 031251 312 00 0 00 032227 CAME [0] ;PASS IF C(AC)=0 + 1477 STOP^ + 1478 031252 254 04 0 00 031253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1479 031253 324 00 0 00 031254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1483 + 1484 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 19 +DAKAGM MAC 19-JAN-77 17:37 TEST OF POPJ INSTRUCTION SEQ 0046 + + 1485 ;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF + 1486 ;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. + 1487 ;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + 1488 + 1489 031254 200 00 0 00 032223 C33700: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + 1490 031255 201 01 0 00 031257 MOVEI 1,.+2 ;PRELOAD C(AC-RIGHT) WITH C33700+3 + 1491 + 1492 031256 263 00 0 00 031260 POPJ .+2 ;*POPJ SHOULD JUMP TO C33700+3 + 1493 031257 334 00 0 00 000000 SKIPA ;PASS IF POPJ JUMPED CORRECTLY + 1494 STOP^ + 1495 031260 254 04 0 00 031261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1496 031261 324 00 0 00 031262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1500 + 1501 ;********** + 1502 + 1503 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POPJ. + 1504 ;THE AC IS PRELOADED WITH 2,,0; THEN POPJ IS EXECUTED POPJ SHOULD SUBTRACT ONE FROM + 1505 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. + 1506 ;IF A CARRY WAS GENERATED, THIS TEST PASSES. + 1507 + 1508 031262 515 02 0 00 000002 C33701: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + 1509 031263 201 00 0 00 031265 MOVEI 0,.+2 ;PRELOAD RH(AC) WITH C33701: +3 + 1510 031264 263 02 0 00 000000 POPJ 2,0 ;*POPJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + 1511 031265 302 02 0 00 777777 CAIE 2,-1 ;PASS IF C(AC)=0,,-1 (CARRY WAS GENERATED) + 1512 STOP^ + 1513 031266 254 04 0 00 031267 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1514 031267 324 00 0 00 031270 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1515 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1516 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1517 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1518 + 1519 ;************* +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 20 +DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0047 + + 1520 SUBTTL XCT INSTRUCTION - ADDITIONAL TESTS + 1521 + 1522 ;********** + 1523 + 1524 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE + 1525 ;TO THE LOCATION OF THE XCT. + 1526 + 1527 031270 477 00 0 00 000001 C34000: SETOB 1 + 1528 031271 256 00 0 00 032234 XCT [CAME 0,1] ;*CAME SHOULD SKIP TO C34000+3 + 1529 STOP^ + 1530 031272 254 04 0 00 031273 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1531 031273 324 00 0 00 031274 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1535 + 1536 ;********** + 1537 + 1538 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE + 1539 ;TO THE LOCATION OF THE XCT. + 1540 + 1541 031274 477 00 0 00 000001 C34100: SETOB 1 + 1542 031275 256 00 0 00 032236 XCT [XCT[XCT[CAME 0,1]]] ;*CAME SHOULD SKIP TO C34100+3 + 1543 STOP^ + 1544 031276 254 04 0 00 031277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1545 031277 324 00 0 00 031300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1546 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1547 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1548 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1549 + 1550 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 21 +DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0048 + + 1551 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS + 1552 ;SPECIFIED BY THE JUMP. + 1553 + 1554 031300 256 00 0 00 032237 C34200: XCT [JRST .+4] ;*JRST SHOULD JUMP TO C34200+4 + 1555 + 1556 031301 254 04 0 00 000000 HALT ;JRST SHOULD JUMP OVER THIS LOCATION + 1557 031302 254 04 0 00 000000 HALT ;JRST SHOULD JUMP OVER THIS LOCATION + 1558 STOP^ + 1559 031303 254 04 0 00 031304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1560 031304 324 00 0 00 031305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1561 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1562 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1563 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1564 + 1565 ;********** + 1566 + 1567 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS + 1568 ;SPECIFIED BY THE JUMP AND THAT WHEN THE PC IS SAVED IT CONTAINS AN + 1569 ;ADDRESS ONE GREATER THAN THE LOCATION OF FIRST XCT OF THE CHAIN. + 1570 + 1571 031305 402 00 0 00 000003 C34300: SETZM 3 ;CLEAR AC OF JSP + 1572 031306 256 00 0 00 032242 XCT [XCT[XCT[JSP 3,.+3]]] ;*JSP SHOULD JUMP TO C34300+4 AND + 1573 031307 254 04 0 00 000000 HALT ;THE SAVED PC SHOULD BE C 34300+2 + 1574 031310 254 04 0 00 000000 HALT ;PASS IF JSP JUMPED CORRECTLY + 1575 031311 620 03 0 00 031307 TRZ 3,.-2 ;AND SAVED PC=C34300+2 + 1576 031312 602 03 0 00 777777 TRNE 3,-1 + 1577 STOP^ + 1578 031313 254 04 0 00 031314 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1579 031314 324 00 0 00 031315 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1580 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1581 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1582 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1583 + 1584 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 22 +DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0049 + + 1585 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE + 1586 ;TO THE LOCATION OF THE XCT. + 1587 ;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION + 1588 ;FOLLOWING XCT SHOULD BE EXECUTED AFTER 'CAME' IS EXECUTED. + 1589 + 1590 031315 403 00 0 00 000000 C34400: SETZB 0 ;SET-UP AC,E SO THAT + 1591 031316 476 00 0 00 000001 SETOM 1 ;CAME WILL NOT SKIP + 1592 031317 256 00 0 00 032234 XCT [CAME 0,1] ;*CAME SHOULD CAUSE EXECUTION + 1593 ;OF INSTRUCTION FOLLOWING XCT + 1594 031320 254 00 0 00 031322 JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED + 1595 STOP^ + 1596 031321 254 04 0 00 031322 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1597 031322 324 00 0 00 031323 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1601 + 1602 ;********** + 1603 + 1604 ;THIS TEST VERIFIES INDEXING FOR XCT OF AN ADD INSTRUCTION + 1605 ;C(4)=10, AND C(6)=3, SO THE RESULT IN 6 (THE AC) SHOULD BE 16 + 1606 ;C(11)=13 + 1607 + 1608 031323 201 04 0 00 000010 C34500: MOVEI 4,10 ;PRELOAD INDEX REG WITH 10 + 1609 031324 201 11 0 00 000013 MOVEI 11,13 ;PRELOAD EFFECTIVE ADDRESS WITH 13 + 1610 031325 201 06 0 00 000003 MOVEI 6,3 ;PRELOAD AC WITH 3 + 1611 031326 256 00 0 00 032243 XCT [ADD 6,1(4)] ;*ADD SHOULD PLACE 16 IN AC + 1612 031327 302 06 0 00 000016 CAIE 6,16 ;PASS IF C(AC)=16 + 1613 STOP^ + 1614 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1615 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1616 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1617 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1618 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1619 + 1620 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 23 +DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0050 + + 1621 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE + 1622 ;TO THE LOCATION OF THE XCT + 1623 ;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION + 1624 ;FOLLOWING XCT SHOULD BE EXECUTED AFTER CAME IS EXECUTED. + 1625 + 1626 031332 402 00 0 00 000002 C34600: SETZM 2 ;SETUP E SO THAT SKIPL WILL NOT SKIP + 1627 031333 256 00 0 00 032244 XCT [SKIPL 1,2] ;*SKIPL SHOULD CAUSE INSTRUCTION + 1628 ;OF FOLLOWING INSTRUCTION + 1629 031334 254 00 0 00 031336 JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED. + 1630 STOP^ + 1631 031335 254 04 0 00 031336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1632 031336 324 00 0 00 031337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1633 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1634 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1635 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1636 031337 332 00 0 00 000001 C34610: SKIPE 1 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + 1637 ;PLACED 0 INTO AC1 + 1638 STOP^ + 1639 031340 254 04 0 00 031341 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1640 031341 324 00 0 00 031342 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1644 + 1645 ;********** + 1646 + 1647 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE + 1648 ;TO THE LOCATION OF THE XCT. + 1649 + 1650 031342 476 00 0 00 000006 C34700: SETOM 6 ;SETUP E SO THAT SKIPL WILL SKIP + 1651 031343 256 00 0 00 032245 XCT [SKIPL 3,6] ;*SKIPL SHOULD SKIP TO C34700+3 + 1652 STOP^ + 1653 031344 254 04 0 00 031345 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1654 031345 324 00 0 00 031346 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1658 031346 331 00 0 00 000003 C34710: SKIPL 3 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + 1659 ;PLACED 0 INTO AC1 + 1660 STOP^ + 1661 031347 254 04 0 00 031350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1662 031350 324 00 0 00 031351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1663 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1664 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1665 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1666 + 1667 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 24 +DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0051 + + 1668 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS + 1669 ;SPECIFIED BY THE JUMP. + 1670 ;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + 1671 + 1672 031351 200 03 0 00 032246 C35000: MOVE 3,[-2,,5] ;SETUP AC SO THAT AOBJN WILL JUMP + 1673 031352 256 00 0 00 032247 XCT [AOBJN 3,.+3] ;*JUMP SHOULD BE TO C35000+4 + 1674 031353 254 04 0 00 000000 HALT ;JUMP OVER THIS INSTRUCTION + 1675 031354 254 04 0 00 000000 HALT ;JUMP OVER THIS INSTRUCTION + 1676 031355 312 03 0 00 032250 CAME 3,[-1,,6] ;PASS IF C(AC)=-1,,6 AND AOBJN JUMPED + 1677 STOP^ + 1678 031356 254 04 0 00 031357 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1679 031357 324 00 0 00 031360 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1680 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1681 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1682 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1683 + 1684 ;********** + 1685 + 1686 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS + 1687 ;SPECIFIED BY THE JUMP. + 1688 ;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + 1689 + 1690 031360 200 03 0 00 032250 C35100: MOVE 3,[-1,,6] ;SETUP AC SO THAT AOBJN WILL NOT JUMP + 1691 031361 256 00 0 00 032251 XCT [AOBJN 3,.+2] ;*AOBJN SHOULD NOT JUMP + 1692 031362 312 03 0 00 032252 CAME 3,[0,,7] ;PASS IF AOBJN DID NOT JUMP AND C(AC)=0,,7 + 1693 STOP^ + 1694 031363 254 04 0 00 031364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1695 031364 324 00 0 00 031365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1696 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1697 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1698 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1699 + 1700 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 25 +DAKAGM MAC 19-JAN-77 17:37 TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING SEQ 0052 + + 1701 SUBTTL TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING + 1702 + 1703 ;********** + 1704 + 1705 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION + 1706 ;FROM AN INDIRECTLY ADDRESSED LOCATION + 1707 + 1708 031365 403 00 0 00 000002 C35200: SETZB 2 + 1709 031366 254 00 0 00 031371 JRST .+3 + 1710 031367 000000 031370 .+1 + 1711 031370 476 00 0 00 000002 SETOM 2 ;THIS INSTRUCTION SHOULD BE EXECUTED + 1712 031371 256 00 1 00 031367 XCT @.-2 + 1713 031372 312 02 0 00 032226 CAME 2,[-1,,-1] ;PASS IF 'SETOM 2' WAS EXECUTED + 1714 STOP^ + 1715 031373 254 04 0 00 031374 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1716 031374 324 00 0 00 031375 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1717 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1718 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1719 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1720 + 1721 ;********** + 1722 + 1723 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION + 1724 ;FROM AN INDEXED LOCATION + 1725 + 1726 031375 201 04 0 00 031376 C35300: MOVEI 4,.+1 + 1727 031376 254 00 0 00 031400 JRST .+2 + 1728 031377 302 04 0 00 031376 CAIE 4,.-1 ;THIS INSTRUCTION SHOULD BE EXECUTED + 1729 031400 256 00 0 04 000001 XCT 1(4) + 1730 STOP ^;PASS IF 'CAIE 4,,-1' WAS EXECUTED + 1731 + 1732 031401 254 04 0 00 031402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1733 031402 324 00 0 00 031403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1 + 1737 + 1738 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 26 +DAKAGM MAC 19-JAN-77 17:37 TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING SEQ 0053 + + 1739 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION + 1740 ;FROM AN INDIRECTLY ADDRESSED AND INDEXED LOCATION + 1741 + 1742 031403 402 00 0 00 000005 C35400: SETZM 5 + 1743 031404 201 03 0 00 031407 MOVEI 3,.+3 + 1744 031405 254 00 0 00 031407 JRST .+2 + 1745 031406 201 05 0 00 031411 MOVEI 5,.+3 + 1746 031407 256 00 1 03 777777 XCT @-1(3) + 1747 031410 254 00 0 00 031412 JRST .+2 + 1748 031411 476 00 0 00 000005 SETOM 5 ;THIS INSTRUCTION SHOULD BE EXECUTED + 1749 031412 312 05 0 00 032226 CAME 5,[-1,,-1] ;PASS IF 'SETOM 5' WAS EXECUTED + 1750 STOP^ + 1751 031413 254 04 0 00 031414 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1752 031414 324 00 0 00 031415 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1753 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1754 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1755 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1756 + 1757 ;********** + 1758 + 1759 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INDIRECTLY ADDRESSED + 1760 ;AND INDEXED INSTRUCTION + 1761 + 1762 031415 402 00 0 00 000003 C35500: SETZM 3 + 1763 031416 201 10 0 00 000003 MOVEI 10,3 + 1764 031417 254 00 0 00 031424 JRST .+5 + 1765 031420 254 04 0 00 000000 HALT + 1766 031421 254 04 0 00 000000 HALT + 1767 031422 200 03 1 10 031420 MOVE 3,@.-2(10) ;THIS INSTRUCTION SHOULD BE EXECUTED + 1768 031423 254 04 0 00 032253 HALT [0,,707070] + 1769 031424 256 00 0 00 031422 XCT .-2 + 1770 031425 302 03 0 00 707070 CAIE 3,707070 ;PASS IF 'MOVE 3,@.-2(10)' WAS EXECUTED + 1771 STOP^ + 1772 031426 254 04 0 00 031427 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1773 031427 324 00 0 00 031430 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1774 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1775 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1776 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1777 + 1778 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 27 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0054 + + 1779 SUBTTL TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER + 1780 + 1781 ;********** + 1782 + 1783 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1784 ;IN THIS CASE, 0,,0 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1785 ;SO THAT FINAL C(AC)=0,,0. + 1786 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1787 + 1788 031430 200 00 0 00 032227 C35600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + 1789 031431 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1790 031432 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 0,,0 RIGHT 3 BIT POSITIONS + 1791 031433 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + 1792 STOP^ + 1793 031434 254 04 0 00 031435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1794 031435 324 00 0 00 031436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1795 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1796 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1797 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1798 031436 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1799 STOP^ + 1800 031437 254 04 0 00 031440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1801 031440 324 00 0 00 031441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1802 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1803 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1804 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1805 + 1806 ;********** + 1807 + 1808 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1809 ;IN THIS CASE, -1,,-1 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1810 ;SO THAT FINAL C(AC)=-1,,-1. + 1811 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1812 + 1813 031441 200 00 0 00 032226 C35700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH 0,,0 + 1814 031442 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1815 031443 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE -1,,-1 RIGHT 3 BIT POSITIONS + 1816 031444 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + 1817 STOP^ + 1818 031445 254 04 0 00 031446 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1819 031446 324 00 0 00 031447 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1820 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1821 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1822 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1823 031447 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1824 STOP^ + 1825 031450 254 04 0 00 031451 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1826 031451 324 00 0 00 031452 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1827 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1828 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1829 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1830 + 1831 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 28 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0055 + + 1832 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1833 ;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1834 ;SO THAT FINAL C(AC)=525252,,525252. + 1835 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1836 + 1837 031452 200 00 0 00 032255 C36000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 1838 031453 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1839 031454 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 252525,,252525 + 1840 ;RIGHT 3 BIT POSITIONS + 1841 031455 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + 1842 STOP^ + 1843 031456 254 04 0 00 031457 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1844 031457 324 00 0 00 031460 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1845 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1846 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1847 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1848 031460 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1849 STOP^ + 1850 031461 254 04 0 00 031462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1851 031462 324 00 0 00 031463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1852 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1853 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1854 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1855 + 1856 ;********** + 1857 + 1858 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1859 ;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1860 ;SO THAT FINAL C(AC)=252525,,252525. + 1861 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1862 + 1863 031463 200 00 0 00 032256 C36100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 1864 031464 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1865 031465 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 525252,,525252 + 1866 ;RIGHT 3 BIT POSITIONS + 1867 031466 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + 1868 STOP^ + 1869 031467 254 04 0 00 031470 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1870 031470 324 00 0 00 031471 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1874 031471 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1875 STOP^ + 1876 031472 254 04 0 00 031473 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1877 031473 324 00 0 00 031474 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1878 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1879 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1880 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1881 + 1882 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 29 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0056 + + 1883 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1884 ;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1885 ;SO THAT FINAL C(AC)=023070,,360370. + 1886 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1887 + 1888 031474 200 00 0 00 032257 C36200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 1889 031475 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1890 031476 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 230703,,603700 + 1891 ;RIGHT 3 BIT POSITIONS + 1892 031477 312 00 0 00 032260 CAME 0,[023070,,360370] ;PASS IF C(AC)=023070,,360370 + 1893 STOP^ + 1894 031500 254 04 0 00 031501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1895 031501 324 00 0 00 031502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1896 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1897 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1898 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1899 031502 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1900 STOP^ + 1901 031503 254 04 0 00 031504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1902 031504 324 00 0 00 031505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1906 + 1907 ;********** + 1908 + 1909 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1910 ;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS + 1911 ;SO THAT FINAL C(AC)=200760,,360706. + 1912 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1913 + 1914 031505 200 00 0 00 032261 C36300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + 1915 031506 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1916 031507 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 007603,,607062 + 1917 ;RIGHT 3 BIT POSITIONS + 1918 031510 312 00 0 00 032262 CAME 0,[200760,,360706] ;PASS IF C(AC)=200760,,360706 + 1919 STOP^ + 1920 031511 254 04 0 00 031512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1921 031512 324 00 0 00 031513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1922 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1923 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1924 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1925 031513 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1926 STOP^ + 1927 031514 254 04 0 00 031515 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1928 031515 324 00 0 00 031516 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1929 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1930 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1931 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1932 + 1933 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 30 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0057 + + 1934 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1935 ;IN THIS CASE, 0,,0 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 1936 ;SO THAT FINAL C(AC)=0,,0. + 1937 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1938 + 1939 031516 200 02 0 00 032227 C36400: MOVE 2,[0,,0] ;PRELOAD AC WITH 0,,0 + 1940 031517 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1941 031520 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 0,,0 LEFT 15 BIT POSITIONS + 1942 031521 312 02 0 00 032227 CAME 2,[0,,0] ;PASS IF C(AC)=0,,0 + 1943 STOP^ + 1944 031522 254 04 0 00 031523 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1945 031523 324 00 0 00 031524 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1946 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1947 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1948 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1949 031524 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1950 STOP^ + 1951 031525 254 04 0 00 031526 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1952 031526 324 00 0 00 031527 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1953 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1954 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1955 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1956 + 1957 ;********** + 1958 + 1959 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1960 ;IN THIS CASE, -1,,-1 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 1961 ;SO THAT FINAL C(AC)=-1,,-1. + 1962 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1963 + 1964 031527 200 02 0 00 032226 C36500: MOVE 2,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 1965 031530 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1966 031531 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE -1,,-1 LEFT 15 BIT POSITIONS + 1967 031532 312 02 0 00 032226 CAME 2,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + 1968 STOP^ + 1969 031533 254 04 0 00 031534 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1970 031534 324 00 0 00 031535 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1971 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1972 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1973 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1974 031535 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 1975 STOP^ + 1976 031536 254 04 0 00 031537 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1977 031537 324 00 0 00 031540 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1978 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1979 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1980 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1981 + 1982 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 31 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0058 + + 1983 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 1984 ;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 1985 ;SO THAT FINAL C(AC)=525252,,525252. + 1986 ;C(AC+1) SHOULD NOT BE AFFECTED. + 1987 + 1988 031540 200 02 0 00 032255 C36600: MOVE 2,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 1989 031541 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 1990 031542 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 252525,,252525 + 1991 ;LEFT 15 BIT POSITIONS + 1992 031543 312 02 0 00 032256 CAME 2,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + 1993 STOP^ + 1994 031544 254 04 0 00 031545 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1995 031545 324 00 0 00 031546 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1999 031546 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2000 STOP^ + 2001 031547 254 04 0 00 031550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2002 031550 324 00 0 00 031551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2006 + 2007 ;********** + 2008 + 2009 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 2010 ;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 2011 ;SO THAT FINAL C(AC)=252525,,252525. + 2012 ;C(AC+1) SHOULD NOT BE AFFECTED. + 2013 + 2014 031551 200 02 0 00 032256 C36700: MOVE 2,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2015 031552 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2016 031553 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 525252,,525252 + 2017 ;LEFT 15 BIT POSITIONS + 2018 031554 312 02 0 00 032255 CAME 2,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + 2019 STOP^ + 2020 031555 254 04 0 00 031556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2021 031556 324 00 0 00 031557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2022 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2023 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2024 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2025 031557 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2026 STOP^ + 2027 031560 254 04 0 00 031561 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2028 031561 324 00 0 00 031562 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2029 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2030 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2031 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2032 + 2033 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 32 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0059 + + 2034 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 2035 ;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 2036 ;SO THAT FINAL C(AC)074076,,004616. + 2037 ;C(AC+1) SHOULD NOT BE AFFECTED. + 2038 + 2039 031562 200 02 0 00 032257 C37000: MOVE 2,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 2040 031563 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2041 031564 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 230703,,603700 + 2042 ;LEFT 15 BIT POSITIONS + 2043 031565 312 02 0 00 032263 CAME 2,[074076,,004616] ;PASS IF C(AC)074076,,004616 + 2044 STOP^ + 2045 031566 254 04 0 00 031567 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2046 031567 324 00 0 00 031570 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2047 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2048 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2049 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2050 031570 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2051 STOP^ + 2052 031571 254 04 0 00 031572 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2053 031572 324 00 0 00 031573 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2054 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2055 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2056 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2057 + 2058 ;********** + 2059 + 2060 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. + 2061 ;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED LEFT 15 BIT POSITIONS + 2062 ;SO THAT FINAL C(AC)074161,,440174. + 2063 ;C(AC+1) SHOULD NOT BE AFFECTED. + 2064 + 2065 031573 200 02 0 00 032261 C37100: MOVE 2,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + 2066 031574 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2067 031575 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 007603,,607062 + 2068 ;LEFT 15 BIT POSITIONS + 2069 031576 312 02 0 00 032264 CAME 2,[074161,,440174] ;PASS IF C(AC)074161,,440174 + 2070 STOP^ + 2071 031577 254 04 0 00 031600 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2072 031600 324 00 0 00 031601 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2076 031601 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2077 STOP^ + 2078 031602 254 04 0 00 031603 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2079 031603 324 00 0 00 031604 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2083 + 2084 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 33 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0060 + + 2085 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2086 ;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2087 ;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + 2088 + 2089 031604 200 00 0 00 032227 C37200: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + 2090 031605 200 01 0 00 032227 MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + 2091 031606 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 3 BIT POSITIONS + 2092 031607 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + 2093 STOP^ + 2094 031610 254 04 0 00 031611 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2095 031611 324 00 0 00 031612 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2096 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2097 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2098 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2099 031612 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + 2100 STOP^ + 2101 031613 254 04 0 00 031614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2102 031614 324 00 0 00 031615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2103 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2104 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2105 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2106 + 2107 ;********** + 2108 + 2109 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2110 ;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2111 ;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + 2112 + 2113 031615 200 00 0 00 032226 C37300: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 2114 031616 200 01 0 00 032226 MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + 2115 031617 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE -1,,-1 + 2116 ;-1,,-1 LEFT 3 BIT POSITIONS + 2117 031620 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + 2118 STOP^ + 2119 031621 254 04 0 00 031622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2120 031622 324 00 0 00 031623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2121 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2122 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2123 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2124 031623 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + 2125 STOP^ + 2126 031624 254 04 0 00 031625 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2127 031625 324 00 0 00 031626 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2128 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2129 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2130 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2131 + 2132 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 34 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0061 + + 2133 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2134 ;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2135 ;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + 2136 + 2137 031626 200 00 0 00 032255 C37400: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 2138 031627 200 01 0 00 032255 MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + 2139 031630 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 252525,,252525 + 2140 ;252525,,252525 LEFT 3 BIT POSITIONS + 2141 031631 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + 2142 STOP^ + 2143 031632 254 04 0 00 031633 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2144 031633 324 00 0 00 031634 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2145 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2146 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2147 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2148 031634 312 01 0 00 032256 CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + 2149 STOP^ + 2150 031635 254 04 0 00 031636 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2151 031636 324 00 0 00 031637 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2152 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2153 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2154 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2155 + 2156 ;********** + 2157 + 2158 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2159 ;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2160 ;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + 2161 + 2162 031637 200 00 0 00 032256 C37500: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2163 031640 200 01 0 00 032256 MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + 2164 031641 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 525252,,525252 + 2165 ;525252,,525252 LEFT 3 BIT POSITIONS + 2166 031642 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + 2167 STOP^ + 2168 031643 254 04 0 00 031644 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2169 031644 324 00 0 00 031645 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2170 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2171 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2172 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2173 031645 312 01 0 00 032255 CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + 2174 STOP^ + 2175 031646 254 04 0 00 031647 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2176 031647 324 00 0 00 031650 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2180 + 2181 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 35 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0062 + + 2182 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2183 ;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2184 ;SO THAT FINAL C(AC)=307036,,37007 AND FINAL C(AC+1)=700376,,003772 + 2185 + 2186 031650 200 00 0 00 032257 C37600: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 2187 031651 200 01 0 00 032265 MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + 2188 031652 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 230703,,603700 + 2189 ;770037,,600377 LEFT 3 BIT POSITIONS + 2190 031653 312 00 0 00 032266 CAME 0,[307036,,037007] ;PASS IF C(AC)=307036,,37007 + 2191 STOP^ + 2192 031654 254 04 0 00 031655 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2193 031655 324 00 0 00 031656 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2197 031656 312 01 0 00 032267 CAME 1,[700376,,003772] ;PASS IF C(AC+1)=700376,,003772 + 2198 STOP^ + 2199 031657 254 04 0 00 031660 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2200 031660 324 00 0 00 031661 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2201 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2202 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2203 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2204 + 2205 ;********** + 2206 + 2207 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2208 ;IN THIS CASE, 776003,,760077 007603,,607062 SHOULD BE ROTATED LEFT 3 BIT POSITIONS + 2209 ;SO THAT FINAL C(AC)=760037,,600770 AND FINAL C(AC+1)=076036,,070627 + 2210 + 2211 031661 200 00 0 00 032270 C37700: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + 2212 031662 200 01 0 00 032261 MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + 2213 031663 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 776003,,760077 + 2214 ;007603,,607062 LEFT 3 BIT POSITIONS + 2215 031664 312 00 0 00 032271 CAME 0,[760037,,600770] ;PASS IF C(AC)=076036,,070627 + 2216 STOP^ + 2217 031665 254 04 0 00 031666 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2218 031666 324 00 0 00 031667 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2222 031667 312 01 0 00 032272 CAME 1,[076036,,070627] ;PASS IF C(AC+1)=760037,,600770 + 2223 STOP^ + 2224 031670 254 04 0 00 031671 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2225 031671 324 00 0 00 031672 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2229 + 2230 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 36 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0063 + + 2231 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2232 ;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2233 ;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + 2234 + 2235 031672 200 00 0 00 032227 C40000: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + 2236 031673 200 01 0 00 032227 MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + 2237 031674 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 7 BIT POSITIONS + 2238 031675 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + 2239 STOP^ + 2240 031676 254 04 0 00 031677 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2241 031677 324 00 0 00 031700 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2242 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2243 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2244 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2245 031700 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + 2246 STOP^ + 2247 031701 254 04 0 00 031702 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2248 031702 324 00 0 00 031703 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2249 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2250 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2251 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2252 + 2253 ;********** + 2254 + 2255 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2256 ;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2257 ;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + 2258 + 2259 031703 200 00 0 00 032226 C40100: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 2260 031704 200 01 0 00 032226 MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + 2261 031705 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE -1,,-1 + 2262 ;-1,,-1 LEFT 7 BIT POSITIONS + 2263 031706 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + 2264 STOP^ + 2265 031707 254 04 0 00 031710 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2266 031710 324 00 0 00 031711 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2267 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2268 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2269 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2270 031711 312 01 0 00 032226 CAME 1,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + 2271 STOP^ + 2272 031712 254 04 0 00 031713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2273 031713 324 00 0 00 031714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2274 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2275 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2276 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2277 + 2278 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 37 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0064 + + 2279 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2280 ;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2281 ;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + 2282 + 2283 031714 200 00 0 00 032255 C40200: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 2284 031715 200 01 0 00 032255 MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + 2285 031716 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 252525,,252525 + 2286 ;252525,,252525 LEFT 7 BIT POSITIONS + 2287 031717 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + 2288 STOP^ + 2289 031720 254 04 0 00 031721 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2290 031721 324 00 0 00 031722 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2291 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2292 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2293 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2294 031722 312 01 0 00 032256 CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + 2295 STOP^ + 2296 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2297 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2298 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2299 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2300 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2301 + 2302 ;********** + 2303 + 2304 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2305 ;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2306 ;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + 2307 + 2308 031725 200 00 0 00 032256 C40300: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2309 031726 200 01 0 00 032256 MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + 2310 031727 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 525252,,525252 + 2311 ;525252,,525252 LEFT 7 BIT POSITIONS + 2312 031730 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + 2313 STOP^ + 2314 031731 254 04 0 00 031732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2315 031732 324 00 0 00 031733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2316 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2317 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2318 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2319 031733 312 01 0 00 032255 CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + 2320 STOP^ + 2321 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2322 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2323 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2324 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2325 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2326 + 2327 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 38 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0065 + + 2328 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2329 ;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2330 ;SO THAT FINAL C(AC)=160740,,760176 AND FINAL C(AC+1)=007740,,077646 + 2331 + 2332 031736 200 00 0 00 032257 C40400: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 2333 031737 200 01 0 00 032265 MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + 2334 031740 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 230703,,603700 + 2335 ;770037,,600377 LEFT 7 BIT POSITIONS + 2336 031741 312 00 0 00 032273 CAME 0,[160740,,760176] ;PASS IF C(AC)=160740,,760176 + 2337 STOP^ + 2338 031742 254 04 0 00 031743 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2339 031743 324 00 0 00 031744 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2340 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2341 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2342 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2343 031744 312 01 0 00 032274 CAME 1,[007740,,077646] ;PASS IF C(AC+1)=007740,,077646 + 2344 STOP^ + 2345 031745 254 04 0 00 031746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2346 031746 324 00 0 00 031747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2347 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2348 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2349 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2350 + 2351 ;********** + 2352 + 2353 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. + 2354 ;IN THIS CASE, 776003,,760077 007603,,607063 SHOULD BE ROTATED LEFT 7 BIT POSITIONS + 2355 ;SO THAT FINAL C(AC)=400774,,017610 AND FINAL C(AC+1)=740741,,614577 + 2356 + 2357 031747 200 00 0 00 032270 C40500: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + 2358 031750 200 01 0 00 032261 MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + 2359 031751 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 776003,,760077 + 2360 ;007603,,607062 LEFT 7 BIT POSITIONS + 2361 031752 312 00 0 00 032275 CAME 0,[400774,,017601] ;PASS IF C(AC)=400774,,017601 + 2362 STOP^ + 2363 031753 254 04 0 00 031754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2364 031754 324 00 0 00 031755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2365 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2366 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2367 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2368 031755 312 01 0 00 032276 CAME 1,[740741,,614577] ;PASS IF C(AC+1)=740741,,614577 + 2369 STOP^ + 2370 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2371 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2372 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2373 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2374 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2375 + 2376 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 39 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0066 + + 2377 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2378 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2379 ;SO THAT FINAL C(AC)=0,,0. + 2380 ;C(AC+1) SHOULD NOT BE AFFECTED + 2381 + 2382 031760 200 00 0 00 032227 C40600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + 2383 031761 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2384 031762 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + 2385 ;RIGHT 33 OCTAL BIT POSITIONS + 2386 031763 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + 2387 STOP^ + 2388 031764 254 04 0 00 031765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2389 031765 324 00 0 00 031766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2390 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2391 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2392 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2393 031766 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2394 STOP^ + 2395 031767 254 04 0 00 031770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2396 031770 324 00 0 00 031771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2397 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2398 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2399 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2400 + 2401 ;********** + 2402 + 2403 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2404 ;IN -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2405 ;SO THAT FINAL C(AC)=0,,777. + 2406 ;C(AC+1) SHOULD NOT BE AFFECTED + 2407 + 2408 031771 200 00 0 00 032226 C40700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 2409 031772 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2410 031773 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + 2411 ;RIGHT 33 OCTAL BIT POSITIONS + 2412 031774 312 00 0 00 032277 CAME 0,[0,777] ;PASS IF C(AC)=0,,777 + 2413 STOP^ + 2414 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2415 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2416 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2417 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2418 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2419 031777 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2420 STOP^ + 2421 032000 254 04 0 00 032001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2422 032001 324 00 0 00 032002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2423 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2424 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2425 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2426 + 2427 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 40 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0067 + + 2428 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2429 ;IN 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2430 ;SO THAT FINAL C(AC)=0,,252. + 2431 ;C(AC+1) SHOULD NOT BE AFFECTED + 2432 + 2433 032002 200 00 0 00 032255 C41000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 2434 032003 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2435 032004 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + 2436 ;RIGHT 33 OCTAL BIT POSITIONS + 2437 032005 312 00 0 00 032300 CAME 0,[0,,252] ;PASS IF C(AC)=0,,252 + 2438 STOP^ + 2439 032006 254 04 0 00 032007 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2440 032007 324 00 0 00 032010 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2441 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2442 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2443 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2444 032010 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2445 STOP^ + 2446 032011 254 04 0 00 032012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2447 032012 324 00 0 00 032013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2451 + 2452 ;********** + 2453 + 2454 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2455 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2456 ;SO THAT FINAL C(AC)=0,,525. + 2457 ;C(AC+1) SHOULD NOT BE AFFECTED + 2458 + 2459 032013 200 00 0 00 032256 C41100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2460 032014 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2461 032015 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + 2462 ;RIGHT 33 OCTAL BIT POSITIONS + 2463 032016 312 00 0 00 032301 CAME 0,[0,,525] ;PASS IF C(AC)=0,,525 + 2464 STOP^ + 2465 032017 254 04 0 00 032020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2466 032020 324 00 0 00 032021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2467 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2468 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2469 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2470 032021 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2471 STOP^ + 2472 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2473 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2474 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2475 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2476 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2477 + 2478 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 41 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0068 + + 2479 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2480 ;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2481 ;SO THAT FINAL C(AC)=0,,230. + 2482 ;C(AC+1) SHOULD NOT BE AFFECTED + 2483 + 2484 032024 200 00 0 00 032257 C41200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 2485 032025 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2486 032026 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + 2487 ;RIGHT 33 OCTAL BIT POSITIONS + 2488 032027 312 00 0 00 032302 CAME 0,[0,,230] ;PASS IF C(AC)=230703,,603700 + 2489 STOP^ + 2490 032030 254 04 0 00 032031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2491 032031 324 00 0 00 032032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2492 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2493 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2494 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2495 032032 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2496 STOP^ + 2497 032033 254 04 0 00 032034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2498 032034 324 00 0 00 032035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2499 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2500 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2501 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2502 + 2503 ;********** + 2504 + 2505 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2506 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2507 ;SO THAT FINAL C(AC)=0,,7. + 2508 ;C(AC+1) SHOULD NOT BE AFFECTED + 2509 + 2510 032035 200 00 0 00 032261 C41300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + 2511 032036 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + 2512 032037 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,6070062 + 2513 ;RIGHT 33 OCTAL BIT POSITIONS + 2514 032040 312 00 0 00 032252 CAME 0,[0,,7] ;PASS IF C(AC)=0,,7 + 2515 STOP^ + 2516 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2517 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2518 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2519 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2520 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2521 032043 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2522 STOP^ + 2523 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2524 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2525 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2526 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2527 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2528 + 2529 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 42 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0069 + + 2530 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2531 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2532 ;SO THAT FINAL C(AC)=0,,0. + 2533 ;C(AC+1) SHOULD NOT BE AFFECTED + 2534 + 2535 032046 200 01 0 00 032227 C41400: MOVE 1,[0,,0] ;PRELOAD AC WITH 0,,0 + 2536 032047 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2537 032050 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + 2538 ;RIGHT 27 OCTAL BIT POSITIONS + 2539 032051 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + 2540 STOP^ + 2541 032052 254 04 0 00 032053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2542 032053 324 00 0 00 032054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2543 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2544 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2545 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2546 032054 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2547 STOP^ + 2548 032055 254 04 0 00 032056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2549 032056 324 00 0 00 032057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2550 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2551 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2552 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2553 + 2554 ;********** + 2555 + 2556 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2557 ;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2558 ;SO THAT FINAL C(AC)=0,,17777. + 2559 ;C(AC+1) SHOULD NOT BE AFFECTED + 2560 + 2561 032057 200 01 0 00 032226 C41500: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 2562 032060 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2563 032061 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + 2564 ;RIGHT 27 OCTAL BIT POSITIONS + 2565 032062 312 01 0 00 032303 CAME 1,[0,,17777] ;PASS IF C(AC)=0,17777 + 2566 STOP^ + 2567 032063 254 04 0 00 032064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2568 032064 324 00 0 00 032065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2569 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2570 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2571 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2572 032065 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2573 STOP^ + 2574 032066 254 04 0 00 032067 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2575 032067 324 00 0 00 032070 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2576 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2577 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2578 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2579 + 2580 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 43 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0070 + + 2581 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2582 ;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2583 ;SO THAT FINAL C(AC)=0,,5252. + 2584 ;C(AC+1) SHOULD NOT BE AFFECTED + 2585 + 2586 032070 200 01 0 00 032255 C41600: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 2587 032071 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2588 032072 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + 2589 ;RIGHT 27 OCTAL BIT POSITIONS + 2590 032073 312 01 0 00 032304 CAME 1,[0,,5252] ;PASS IF C(AC)=0,,5252 + 2591 STOP^ + 2592 032074 254 04 0 00 032075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2593 032075 324 00 0 00 032076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2597 032076 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2598 STOP^ + 2599 032077 254 04 0 00 032100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2600 032100 324 00 0 00 032101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2604 + 2605 ;********** + 2606 + 2607 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2608 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2609 ;SO THAT FINAL C(AC)=0,,12525. + 2610 ;C(AC+1) SHOULD NOT BE AFFECTED + 2611 + 2612 032101 200 01 0 00 032256 C41700: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2613 032102 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2614 032103 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + 2615 ;RIGHT 27 OCTAL BIT POSITIONS + 2616 032104 312 01 0 00 032305 CAME 1,[0,,12525] ;PASS IF C(AC)=0,,12525 + 2617 STOP^ + 2618 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2619 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2620 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2621 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2622 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2623 032107 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2624 STOP^ + 2625 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2626 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2627 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2628 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2629 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2630 + 2631 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 44 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0071 + + 2632 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2633 ;IN THIS CASE, 230703,602700 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2634 ;SO THAT FINAL C(AC)=0,,4616. + 2635 ;C(AC+1) SHOULD NOT BE AFFECTED + 2636 + 2637 032112 200 01 0 00 032257 C42000: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,603700 + 2638 032113 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2639 032114 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + 2640 ;RIGHT 27 OCTAL BIT POSITIONS + 2641 032115 312 01 0 00 032306 CAME 1,[0,,4616] ;PASS IF C(AC)=0,,4616 + 2642 STOP^ + 2643 032116 254 04 0 00 032117 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2644 032117 324 00 0 00 032120 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2645 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2646 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2647 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2648 032120 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2649 STOP^ + 2650 032121 254 04 0 00 032122 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2651 032122 324 00 0 00 032123 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2652 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2653 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2654 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2655 + 2656 ;********** + 2657 + 2658 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2659 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS + 2660 ;SO THAT FINAL C(AC)=0,,174. + 2661 ;C(AC+1) SHOULD NOT BE AFFECTED + 2662 + 2663 032123 200 01 0 00 032261 C42100: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + 2664 032124 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2665 032125 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + 2666 ;RIGHT 27 OCTAL BIT POSITIONS + 2667 032126 312 01 0 00 032307 CAME 1,[0,,174] ;PASS IF C(AC)=0,,174 + 2668 STOP^ + 2669 032127 254 04 0 00 032130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2670 032130 324 00 0 00 032131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2671 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2672 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2673 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2674 032131 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2675 STOP^ + 2676 032132 254 04 0 00 032133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2677 032133 324 00 0 00 032134 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2678 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2679 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2680 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2681 + 2682 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 45 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0072 + + 2683 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2684 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2685 ;SO THAT FINAL C(AC)=0,,0. + 2686 ;C(AC+1) SHOULD NOT BE AFFECTED + 2687 + 2688 032134 200 01 0 00 032227 C42200: MOVE 1,[0,0] ;PRELOAD AC WITH 0,,0 + 2689 032135 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2690 032136 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + 2691 ;RIGHT 33 OCTAL BIT POSITIONS + 2692 032137 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + 2693 STOP^ + 2694 032140 254 04 0 00 032141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2695 032141 324 00 0 00 032142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2696 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2697 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2698 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2699 032142 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2700 STOP^ + 2701 032143 254 04 0 00 032144 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2702 032144 324 00 0 00 032145 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2703 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2704 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2705 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2706 + 2707 ;********** + 2708 + 2709 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2710 ;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2711 ;SO THAT FINAL C(AC)=0,,777. + 2712 ;C(AC+1) SHOULD NOT BE AFFECTED + 2713 + 2714 032145 200 01 0 00 032226 C42300: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + 2715 032146 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2716 032147 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + 2717 ;RIGHT 33 OCTAL BIT POSITIONS + 2718 032150 312 01 0 00 032277 CAME 1,[0,,777] ;PASS IF C(AC)=0,,777 + 2719 STOP^ + 2720 032151 254 04 0 00 032152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2721 032152 324 00 0 00 032153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2722 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2723 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2724 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2725 032153 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2726 STOP^ + 2727 032154 254 04 0 00 032155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2728 032155 324 00 0 00 032156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2729 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2730 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2731 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2732 + 2733 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 46 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0073 + + 2734 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2735 ;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2736 ;SO THAT FINAL C(AC)=0,,252. + 2737 ;C(AC+1) SHOULD NOT BE AFFECTED + 2738 + 2739 032156 200 01 0 00 032255 C42400: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + 2740 032157 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2741 032160 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + 2742 ;RIGHT 33 OCTAL BIT POSITIONS + 2743 032161 312 01 0 00 032300 CAME 1,[0,,252] ;PASS IF C(AC)=0,,252 + 2744 STOP^ + 2745 032162 254 04 0 00 032163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2746 032163 324 00 0 00 032164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2747 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2748 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2749 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2750 032164 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2751 STOP^ + 2752 032165 254 04 0 00 032166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2753 032166 324 00 0 00 032167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2754 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2755 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2756 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2757 + 2758 ;********** + 2759 + 2760 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2761 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2762 ;SO THAT FINAL C(AC)=0,,525. + 2763 ;C(AC+1) SHOULD NOT BE AFFECTED + 2764 + 2765 032167 200 01 0 00 032256 C42500: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + 2766 032170 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2767 032171 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + 2768 ;RIGHT 33 OCTAL BIT POSITIONS + 2769 032172 312 01 0 00 032301 CAME 1,[0,,525] ;PASS IF C(AC)=0,525 + 2770 STOP^ + 2771 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2772 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2773 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2774 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2775 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2776 032175 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2777 STOP^ + 2778 032176 254 04 0 00 032177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2779 032177 324 00 0 00 032200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2780 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2781 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2782 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2783 + 2784 ;********** +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 47 +DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0074 + + 2785 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2786 ;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2787 ;SO THAT FINAL C(AC)=0,,230. + 2788 ;C(AC+1) SHOULD NOT BE AFFECTED + 2789 + 2790 032200 200 01 0 00 032257 C42600: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + 2791 032201 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2792 032202 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + 2793 ;RIGHT 33 OCTAL BIT POSITIONS + 2794 032203 312 01 0 00 032302 CAME 1,[0,,230] ;PASS IF C(AC)=0,,230 + 2795 STOP^ + 2796 032204 254 04 0 00 032205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2797 032205 324 00 0 00 032206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2798 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2799 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2800 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2801 032206 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2802 STOP^ + 2803 032207 254 04 0 00 032210 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2804 032210 324 00 0 00 032211 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2805 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2806 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2807 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2808 + 2809 ;********** + 2810 + 2811 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY + 2812 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS + 2813 ;SO THAT FINAL C(AC)=0,,7. + 2814 ;C(AC+1) SHOULD NOT BE AFFECTED + 2815 + 2816 032211 200 01 0 00 032261 C42700: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + 2817 032212 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + 2818 032213 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + 2819 ;RIGHT 33 OCTAL BIT POSITIONS + 2820 032214 312 01 0 00 032252 CAME 1,[0,,7] ;PASS IF C(AC)=0,,7 + 2821 STOP^ + 2822 032215 254 04 0 00 032216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2823 032216 324 00 0 00 032217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2824 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2825 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2826 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2827 032217 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + 2828 STOP^ + 2829 032220 254 04 0 00 032221 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2830 032221 324 00 0 00 032222 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2831 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2832 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2833 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2834 + 2835 032222 254 00 0 00 030057 JRST BEGEND ;REPEAT TEST +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0075 + + 2836 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 2837 + 2838 ;PROGRAM LITERALS + 2839 + 2840 XLIST + 2841 IFNDEF $LPAPER, + 2842 032223 LIT + 2843 032223 000001 000001 + 2844 032224 254 00 0 00 030741 + 2845 032225 000016 541320 + 2846 032226 777777 777777 + 2847 032227 000000 000000 + 2848 032230 000002 000000 + 2849 032231 000001 000002 + 2850 032232 000002 000002 + 2851 032233 000001 000017 + 2852 032234 312 00 0 00 000001 + 2853 032235 256 00 0 00 032234 + 2854 032236 256 00 0 00 032235 + 2855 032237 254 00 0 00 031304 + 2856 032240 265 03 0 00 031311 + 2857 032241 256 00 0 00 032240 + 2858 032242 256 00 0 00 032241 + 2859 032243 270 06 0 04 000001 + 2860 032244 331 01 0 00 000002 + 2861 032245 331 03 0 00 000006 + 2862 032246 777776 000005 + 2863 032247 253 03 0 00 031355 + 2864 032250 777777 000006 + 2865 032251 253 03 0 00 031363 + 2866 032252 000000 000007 + 2867 032253 000000 707070 + 2868 032254 172737 405060 + 2869 032255 252525 252525 + 2870 032256 525252 525252 + 2871 032257 230703 603700 + 2872 032260 023070 360370 + 2873 032261 007603 607062 + 2874 032262 200760 360706 + 2875 032263 074076 004616 + 2876 032264 074161 440174 + 2877 032265 770037 600377 + 2878 032266 307036 037007 + 2879 032267 700376 003772 + 2880 032270 776003 760077 + 2881 032271 760037 600770 + 2882 032272 076036 070627 + 2883 032273 160740 760176 + 2884 032274 007740 077646 + 2885 032275 400774 017601 + 2886 032276 740741 614577 + 2887 032277 000000 000777 + 2888 032300 000000 000252 + 2889 032301 000000 000525 + 2890 032302 000000 000230 +DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0076 + + 2891 032303 000000 017777 + 2892 032304 000000 005252 + 2893 032305 000000 012525 + 2894 032306 000000 004616 + 2895 032307 000000 000174 + 2896 LIST + 2897 032310 000000 000000 ENDSLD: 0 + 2898 + 2899 IFDEF DEBUG,< + 2900 032311 PATCH: BLOCK DEBUG ;PATCHING AREA + 2901 > + 2902 + 2903 ;PROGRAM VARIABLES + 2904 032411 VAR + 2905 + 2906 IFDEF PGMEND,< + 2907 032411 000000 000000 END: 0 + 2908 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 032412 +CPU TIME USED 00:13.678 + +10K CORE USED diff --git a/apps/pdp10/diags/klad/dakag/DAKAG.MAC.txt b/apps/pdp10/diags/klad/dakag/DAKAG.MAC.txt new file mode 100644 index 000000000..4a7001ec6 --- /dev/null +++ b/apps/pdp10/diags/klad/dakag/DAKAG.MAC.txt @@ -0,0 +1,1290 @@ +SUBTTL DIAGNOSTIC PARAMETERS + +;ACCUMULATOR ASSIGNMENTS + +;CONTROL WORDS + +AROV=400000 ;ARITHMETIC OVERFLOW +CRY0=200000 ;CARRY 0 +CRY1=100000 ;CARRY 1 +FOV=40000 ;FLOATING OVERFLOW +BIS=20000 ;BYTE INTERRUPT +USERF=10000 ;USER MODE FLAG +EXIOT=4000 ;USER PRIV I/O FLAG +FXU=100 ;FLOATING UNDERFLOW +DCK=40 ;DIVIDE CHECK + +;MACROS + +; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) +; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + +DEFINE STOP (A)< + HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + +; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + +DEFINE SFLAG (A)< + MOVSI 1,A + JFCL 17,.+1 ;RESET ALL FLAGS + JRST 2,.+1(1) ;SET A FLAG> + +SUBTTL DIAGNOSTIC SECTION + +START: ;SETZM USER# ;CLEAR USER CONTROL WORD + ;JSP 0,.+1 ;GET FLAGS + ;TLNE USERF ;IN USER MODE? + ;SETOM USER ;YES, SET USER CONTROL WORD + ;SKIPN MONFLG ;SPECIAL USER MODE? + ;SETZM USER ;YES, CLEAR USER CONTROL WORD + ;SKIPN USER + ;JRST STARTA + ;SKIPL MONCTL + ;TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (7) [DAKAG] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF PUSH INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT PUSH DECODES CORRECTLY. +;IF PUSH DECODES AS PUSHJ, THIS TEST FAILS. + +C27200: SETZ 2, ;CLEAR AC + PUSH 2,.+2 ;*PUSH SHOULD NOT JUMP + SKIPA ;PASS IF PUSH DID NOT JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH DOES NOT MODIFY C(E). +;CLEAR E AND AC; THEN, EXECUTE PUSH. +;CHECK E FOR ORIGINAL CONTENTS ,0. +;PASS IF C(E)=0. + +C27300: SETZB 2 ;CLEAR AC,E + PUSH 2, ;*PUSH SHOULD NOT ALTER C(E) + SKIPE ;PASS IF C(E)=0,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC. +;FIRST THE AC IS CLEARED; THEN PUSH IS EXECUTED. +;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + +C27400: SETZ 2, ;CLEAR AC + PUSH 2,.+1 ;*PUSH SHOULD ADD 1,,1 TO C(AC) + CAME 2,[XWD 1,1] ;PASS IF C(AC)=1,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). +;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. +;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR THE INITIAL VALUE, 0. +;IF C(AC0)=0, THIS TEST PASSES + +C27500: SETZB 2 ;CLEAR AC AND AC0 + PUSH 2,[16541320] ;*PUSH SHOULD NOT MODIFY C(AC0) + SKIPE ;PASS IF C(AC0)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). +;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. +;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR +;IF C(AC0)IS NOT EQUAL TO E, THIS TEST PASSES + +C27600: SETZB 1,2 ;CLEAR AC AND AC0 + PUSH 2,.+1 ;*PUSH SHOULD NOT MODIFY C(AC0) + CAIN . ;FAIL IF C(AC0)=E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC AND THE LOCATION SPECIFIED +;BY UPDATING C(AC-RIGHT) ARE CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + +C27700: SETZB 1,2 ;CLEAR AC, C(AC-RIGHT) + PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC1 + CAME 1,[-1] ;PASS IF C(1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC +;IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=0. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR 0, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=0, THIS TEST PASSES. + +C30000: SETZM 2 ;CLEAR AC + PUSH 2,[0] ;*PUSH SHOULD PLACE 0 INTO AC1 + SKIPE 1 ;PASS IF C(1)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, +;AC IS PRELOADED WITH 0,,-1, AND THE LOCATION SPECIFIED +;BY UPDATING C(AC-RIGHT) IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + +C30100: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + SETZ ;CLEAR AC, C(AC-RIGHT) + PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC0 + CAME [-1] ;PASS IF C(0)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM AC BIT 18 TO BIT 17 OF THE AC ON PUSH. +;THE AC IS PRELOADED WITH 0,,-1; THEN PUSH IS EXECUTED. PUSH SHOULD ADD ONE TO BOTH +;HALVES OF THE AC, GENERATING A CARRY FROM BIT 18 TO BIT 17. IF A CARRY WAS GENERATED, +;THIS TEST PASSES. + +C30101: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + PUSH 2,0 ;*PUSH SHOULD GENERATE A CARRY FROM BIT 18 TO BIT 17 + CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + STOP + +;************* +SUBTTL TEST OF PUSHJ INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT PUSHJ TRANSFERS CONTROL TO THE LOCATION ADDRESSED BY E. +;IF PUSHJ DOES NOT JUMP, THIS TEST FAILS + +C30200: SFLAG CRY0 ;SETS CRY0 FLAG + SETZ ;CLEAR AC + PUSHJ .+2 ;*PUSHJ SHOULD JUMP TO LOCATION E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ DOES NOT MODIFY C(PC) WHERE PC IS ONE GREATER +;THAN THE LOCATION OF THE PUSHJ INSTRUCTION. +;IF PUSHJ MODIFIES C(PC), THIS TEST FAILS + +C30300: SFLAG CRY0 ;SET CRY0 + SETZB 1,.+2 ;CLEAR C(AC-RIGHT) AND C(PC) + PUSHJ .+3 ;*PUSHJ SHOULD NOT MODIFY C(PC) + 0 ;THIS LOCATION SHOULD NOT BE MODIFIED BY PUSHJ + CAM ;PUSHJ SHOULD JUMP OVER THIS LOCATION + SKIPE .-2 ;PASS IF PUSHJ DID NOT MODIFY C(PC) + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN E +;IF PUSHJ STORED IN E, THIS TEST FAILS + +C30400: SFLAG CRY0 ;SET CRY0 + SETZB 1 ;CLEAR AC AND C(AC-RIGHT + PUSHJ .+1 ;*PUSHJ SHOULD NOT STORE IN E + MOVE 2,. ;SAVE C(E) + CAME 2,.-1 ;FAIL IF PUSHJ STORED IN E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN LOC 0 +;PUSHJ SHOULD STORE PC IN C(AC-RIGHT) - LOCATION 2. +;IF PUSHJ STORES IN LOCATION 0, THIS TEST FAILS + +C30500: MOVEI 2,1 ;PRELOAD AC WITH 0,,1 + SETZ 0 ;CLEAR 0 + PUSHJ 2,.+1 ;*PUSHJ SHOULD NOT STORE IN LOCATION 0 + SKIPE ;FAIL IF PUSHJ STORED IN LOCATION 0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN THE LOCATION SPECIFIED +;BY C(AC-RIGHT) AFTER INCREMENTING AC. +;IN THIS TEST, AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. +;C(C(AC-RIGHT))IS THEN COMPARED TO ZERO. IF C(C(AC-RIGHT)) IS NON-ZERO, +;A PC WAS STORED AND THIS TEST PASSES. + +C30600: SETZB 1 ;CLEAR AC, C(AC-RIGHT) + PUSHJ .+2 ;*PUSHJ SHOULD STORE PC IN RIGHT HALF OF C(AC-RIGHT) + HALT . ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + ANDI 1,-1 ;SAVE C(C(AC-RIGHT)) + CAIN 1,.-1 ;FAIL IF PC WAS NOT STORED IN C(AC-RIGHT) + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC +;THE AC IS CLEARED AND PUSHJ IS EXECUTED +;AC IS CHECKED FOR 1,,1 IF C(AC)=1,,1, THIS TEST PASSES + +C31000: SETZ ;CLEAR AC + PUSHJ .+1 ;*PUSHJ SHOULD PLACE 1,,1 INTO THE AC + CAME [1,,1] ;PASS IF C(AC)=1,,1 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE FLAGS IN LEFT HALF OF C(AC-RIGHT) +;FIRST, CRY0 IS SET AND AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. +;C(C(AC-RIGHT)) IS THEN CHECKED FOR CRY0. IF CRY0 IS SET, THIS TEST PASSES. + +C31100: SFLAG CRY0 ;SET CRY0 + SETZB 1 ;CLEAR AC AND C(AC-RIGHT) + PUSHJ .+1 ;*PUSHJ SHOULD STORE FLAGS IN LEFT HALF OF C(AC-RIGHT) + TLNN 1,CRY0 ;PASS IF CRY0 STORED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC +;THE AC IS PRELOADED WITH 0,,1 AND PUSHJ IS EXECUTED +;AC IS CHECKED FOR 1,,2 IF C(AC)=1,,2, THIS TEST PASSES + +C31400: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + PUSHJ 1,.+2 ;*PUSHJ SHOULD PLACE 1,,2 INTO THE AC + HALT ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + CAME 1,[XWD 1,2] ;PASS IF AC WAS INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN RIGHT HALF OF C(AC-RIGHT) +;THIS TEST PASSES IF THE PC WAS STORED CORRECTLY. + +C31500: MOVEI 1,1 ;PLACE 0,,1 INTO AC + PUSHJ 1,.+2 ;*PUSHJ SHOULD STORE .+1 INTO RIGHT HALF OF C(AC-RIGHT) + HALT ;PUSHJ SHOULD JUMP OVER THIS PC + ANDI 2,-1 ;SAVE RIGHT HALF OF C(AC-RIGHT) + CAIE 2,.-2 ;PASS IF PC STORED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN PUSHJ IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA PUSHJ, THIS TEST PASSES. + +C31501: SFLAG BIS ;SET BIS + SETZ ;CLEAR AC + PUSHJ .+1 ;*PUSHJ SHOULD RESET BIS + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON PUSHJ. +;THE AC IS PRELOADED WITH 0,,-1; THEN PUSHJ IS EXECUTED. PUSHJ SHOULD ADD ONE TO +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. IF A +;CARRY WAS GENERATED, THE TEST PASSES. + +C31502: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + PUSHJ 2,.+1 ;*PUSHJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + STOP + +;**************** +SUBTTL TEST OF POP INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC +;THE AC IS PRELOADED WITH 1,,1; THEN, POP IS EXECUTED. +;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + +C31600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + POP 1 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + SKIPE ;PASS IF AC WAS DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC +;THE AC IS PRELOADED WITH 2,,2; THEN, POP IS EXECUTED. +;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + +C31700: MOVE [XWD 2,2] ;PRELOAD AC WITH E,,E WHERE E=2 + MOVEI 2,5 ;PRELOAD 2 WITH 0,,5 + POP 2 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + CAME [1,,1] ;PASS IF AC WAS DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E +;IN THIS CASE, AC=0 AND AC IS PRELOADED WITH 2,,2; E=2 AND IS PRELOADED WITH 0. +;POP IS THEN EXECUTED. POP SHOULD PLACE 0 INTO E. IF C(E)=0, THIS TEST PASSES. + +C32300: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + SETZM 2 ;CLEAR E AND C(AC-RIGHT) + POP 2 ;*POP SHOULD PLACE 0 INTO E + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP DOES NOT MODIFY C(C(AC-RIGHT)-1). +;THIS TEST FAILS IF C(C(AC-RIGHT)-1) IS MODIFIED BY POP. + +C32400: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,17 ;PRELOAD 2 WITH 0,,17 + SETZM 1 ;CLEAR C(C(AC-RIGHT)-1) + POP 2 ;*POP SHOULD NOT MODIFY C(C(AC-RIGHT)-1) + SKIPE 1 ;PASS IF C(C(AC-RIGHT)-1) WAS UNALTERED + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. +;IN THIS CASE, AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,3. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,3 [C(C(AC-RIGHT))] . +;IF C(E)=0,,3, THIS TEST PASSES. + +C32500: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,3 ;PRELOAD C(AC-RIGHT) WITH 0,,3 + SETZM 3 ;CLEAR E + POP 3 ;*POP SHOULD PLACE 0,,3 INTO E + CAIE 3,3 ;PASS IF C(E)=0,,3 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, +;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,17. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,17 [C(C(AC-RIGHT))] . +;IF C(E)=0,,17, THIS TEST PASSES. + +C32600: SETZM 2 ;CLEAR E + MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,17 ;PRELOAD C(AC-RIGHT) WITH 0,,17 + POP 2 ;*POP SHOULD PLACE 0,,17 INTO E + CAIE 2,17 ;PASS IF C(E)=0,,17 + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, +;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH -1,,-1. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR -1,,-1 [C(C(AC-RIGHT))] . +;IF C(E)=0,,3, THIS TEST PASSES. + +C33100: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + SETOM 2 ;PRELOAD C(AC-RIGHT) WITH -1,,-1 + SETZM 3 ;CLEAR E + POP 3 ;*POP SHOULD PLACE -1,,-1 INTO E + CAME 3,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC. +;IN THIS CASE, THE AC IS PRELOADED WITH 1,,17; E=1 AND E IS PRELOADED WITH 0; +;C(AC-RIGHT) IS PRELOADED WITH -1,,-1; AND POP IS EXECUTED. POP SHOULD PLACE -1,,-1 +;INTO E AND 0,,16 INTO AC. IF AC AND E ARE UPDATED CORRECTLY, THIS TEST PASSES. + +C33300: MOVE [XWD 1,17] ;PRELOAD AC WITH 1,,17 + SETZM 1 ;PRELOAD E WITH 0 + SETOM 17 ;PRELOAD C(AC-RIGHT) WITH 1,,1 + POP 1 ;*POP SHOULD PLACE -1,,-1 INTO E AND 0,,16 INTO AC + CAME 1,[-1] ;PASS IF C(E)=-1,,-1 + STOP +C33310: CAIE 16 ;PASS IF C(AC)=0,,16 + STOP + +;********** +;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC +;IN THIS CASE, THE AC IS PRELOADED WITH -1,,0; E=17 +;C(AC-RIGHT) IS PRELOADED WITH 0; AND POP IS EXECUTED. POP SHOULD PLACE 0 +;INTO E. IF AC IS UPDATED CORRECTLY, THIS TEST PASSES. + +C33400: MOVSI 1,-1 ;PRELOAD AC WITH -1,,0 + SETZ ;CLEAR C(AC-RIGHT) + POP 1,17 ;*POP SHOULD PLACE 0 INTO E + SKIPE 17 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POP. +;THE AC IS PRELOADED WITH 2,,0; THEN POP IS EXECUTED. POP SHOULD SUBTRACT ONE FROM +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. +;IF A CARRY WAS GENERATED, THIS TEST PASSES. + +C33401: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + POP 2,0 ;*POP SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAIE 2,-1 ;PASS IF C(AC) = 0,,-1 (CARRY WAS GENERATED) + STOP + +;************ +SUBTTL TEST OF POPJ INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF +;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. +;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + +C33500: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+3 ;PRELOAD C(AC-RIGHT) WITH .+3 + POPJ .+2 ;*POPJ SHOULD JUMP TO LOCATION + ;ADDRESSED BY C(C(AC-RIGHT)) + STOP + +;********** + +;THIS TEST VERIFIES THAT POPJ SUBTRACTS 1,,1 FROM THE AC +;THIS AC IS PRELOADED WITH 1,,1; THEN,POPJ IS EXECUTED. +;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + +C33600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+2 ;PRELOAD C(AC-NIGHT)WITH .+2 + POPJ .+1 ;*POPJ SHOULD SUBTRACT 1,,1 FROM AC + CAME [0] ;PASS IF C(AC)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF +;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. +;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + +C33700: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+2 ;PRELOAD C(AC-RIGHT) WITH C33700+3 + POPJ .+2 ;*POPJ SHOULD JUMP TO C33700+3 + SKIPA ;PASS IF POPJ JUMPED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POPJ. +;THE AC IS PRELOADED WITH 2,,0; THEN POPJ IS EXECUTED POPJ SHOULD SUBTRACT ONE FROM +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. +;IF A CARRY WAS GENERATED, THIS TEST PASSES. + +C33701: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + MOVEI 0,.+2 ;PRELOAD RH(AC) WITH C33701: +3 + POPJ 2,0 ;*POPJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAIE 2,-1 ;PASS IF C(AC)=0,,-1 (CARRY WAS GENERATED) + STOP + +;************* +SUBTTL XCT INSTRUCTION - ADDITIONAL TESTS + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34000: SETOB 1 + XCT [CAME 0,1] ;*CAME SHOULD SKIP TO C34000+3 + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34100: SETOB 1 + XCT [XCT[XCT[CAME 0,1]]] ;*CAME SHOULD SKIP TO C34100+3 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. + +C34200: XCT [JRST .+4] ;*JRST SHOULD JUMP TO C34200+4 + HALT ;JRST SHOULD JUMP OVER THIS LOCATION + HALT ;JRST SHOULD JUMP OVER THIS LOCATION + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP AND THAT WHEN THE PC IS SAVED IT CONTAINS AN +;ADDRESS ONE GREATER THAN THE LOCATION OF FIRST XCT OF THE CHAIN. + +C34300: SETZM 3 ;CLEAR AC OF JSP + XCT [XCT[XCT[JSP 3,.+3]]] ;*JSP SHOULD JUMP TO C34300+4 AND + HALT ;THE SAVED PC SHOULD BE C 34300+2 + HALT ;PASS IF JSP JUMPED CORRECTLY + TRZ 3,.-2 ;AND SAVED PC=C34300+2 + TRNE 3,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. +;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION +;FOLLOWING XCT SHOULD BE EXECUTED AFTER 'CAME' IS EXECUTED. + +C34400: SETZB 0 ;SET-UP AC,E SO THAT + SETOM 1 ;CAME WILL NOT SKIP + XCT [CAME 0,1] ;*CAME SHOULD CAUSE EXECUTION + ;OF INSTRUCTION FOLLOWING XCT + JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES INDEXING FOR XCT OF AN ADD INSTRUCTION +;C(4)=10, AND C(6)=3, SO THE RESULT IN 6 (THE AC) SHOULD BE 16 +;C(11)=13 + +C34500: MOVEI 4,10 ;PRELOAD INDEX REG WITH 10 + MOVEI 11,13 ;PRELOAD EFFECTIVE ADDRESS WITH 13 + MOVEI 6,3 ;PRELOAD AC WITH 3 + XCT [ADD 6,1(4)] ;*ADD SHOULD PLACE 16 IN AC + CAIE 6,16 ;PASS IF C(AC)=16 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT +;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION +;FOLLOWING XCT SHOULD BE EXECUTED AFTER CAME IS EXECUTED. + +C34600: SETZM 2 ;SETUP E SO THAT SKIPL WILL NOT SKIP + XCT [SKIPL 1,2] ;*SKIPL SHOULD CAUSE INSTRUCTION + ;OF FOLLOWING INSTRUCTION + JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED. + STOP +C34610: SKIPE 1 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + ;PLACED 0 INTO AC1 + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34700: SETOM 6 ;SETUP E SO THAT SKIPL WILL SKIP + XCT [SKIPL 3,6] ;*SKIPL SHOULD SKIP TO C34700+3 + STOP +C34710: SKIPL 3 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + ;PLACED 0 INTO AC1 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. +;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + +C35000: MOVE 3,[-2,,5] ;SETUP AC SO THAT AOBJN WILL JUMP + XCT [AOBJN 3,.+3] ;*JUMP SHOULD BE TO C35000+4 + HALT ;JUMP OVER THIS INSTRUCTION + HALT ;JUMP OVER THIS INSTRUCTION + CAME 3,[-1,,6] ;PASS IF C(AC)=-1,,6 AND AOBJN JUMPED + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. +;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + +C35100: MOVE 3,[-1,,6] ;SETUP AC SO THAT AOBJN WILL NOT JUMP + XCT [AOBJN 3,.+2] ;*AOBJN SHOULD NOT JUMP + CAME 3,[0,,7] ;PASS IF AOBJN DID NOT JUMP AND C(AC)=0,,7 + STOP + +;********** +SUBTTL TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDIRECTLY ADDRESSED LOCATION + +C35200: SETZB 2 + JRST .+3 + .+1 + SETOM 2 ;THIS INSTRUCTION SHOULD BE EXECUTED + XCT @.-2 + CAME 2,[-1,,-1] ;PASS IF 'SETOM 2' WAS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDEXED LOCATION + +C35300: MOVEI 4,.+1 + JRST .+2 + CAIE 4,.-1 ;THIS INSTRUCTION SHOULD BE EXECUTED + XCT 1(4) + STOP ;PASS IF 'CAIE 4,,-1' WAS EXECUTED + +;********** +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDIRECTLY ADDRESSED AND INDEXED LOCATION + +C35400: SETZM 5 + MOVEI 3,.+3 + JRST .+2 + MOVEI 5,.+3 + XCT @-1(3) + JRST .+2 + SETOM 5 ;THIS INSTRUCTION SHOULD BE EXECUTED + CAME 5,[-1,,-1] ;PASS IF 'SETOM 5' WAS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INDIRECTLY ADDRESSED +;AND INDEXED INSTRUCTION + +C35500: SETZM 3 + MOVEI 10,3 + JRST .+5 + HALT + HALT + MOVE 3,@.-2(10) ;THIS INSTRUCTION SHOULD BE EXECUTED + HALT [0,,707070] + XCT .-2 + CAIE 3,707070 ;PASS IF 'MOVE 3,@.-2(10)' WAS EXECUTED + STOP + +;********** +SUBTTL TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C35600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 0,,0 RIGHT 3 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C35700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE -1,,-1 RIGHT 3 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 252525,,252525 + ;RIGHT 3 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 525252,,525252 + ;RIGHT 3 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=023070,,360370. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 230703,,603700 + ;RIGHT 3 BIT POSITIONS + CAME 0,[023070,,360370] ;PASS IF C(AC)=023070,,360370 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=200760,,360706. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 007603,,607062 + ;RIGHT 3 BIT POSITIONS + CAME 0,[200760,,360706] ;PASS IF C(AC)=200760,,360706 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36400: MOVE 2,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 0,,0 LEFT 15 BIT POSITIONS + CAME 2,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36500: MOVE 2,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE -1,,-1 LEFT 15 BIT POSITIONS + CAME 2,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36600: MOVE 2,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 252525,,252525 + ;LEFT 15 BIT POSITIONS + CAME 2,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36700: MOVE 2,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 525252,,525252 + ;LEFT 15 BIT POSITIONS + CAME 2,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)074076,,004616. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C37000: MOVE 2,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 230703,,603700 + ;LEFT 15 BIT POSITIONS + CAME 2,[074076,,004616] ;PASS IF C(AC)074076,,004616 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)074161,,440174. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C37100: MOVE 2,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 007603,,607062 + ;LEFT 15 BIT POSITIONS + CAME 2,[074161,,440174] ;PASS IF C(AC)074161,,440174 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + +C37200: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + ROTC 0,3 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 3 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + +C37300: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + ROTC 0,3 ;*ROTC SHOULD ROTATE -1,,-1 + ;-1,,-1 LEFT 3 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + +C37400: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + ROTC 0,3 ;*ROTC SHOULD ROTATE 252525,,252525 + ;252525,,252525 LEFT 3 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + +C37500: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + ROTC 0,3 ;*ROTC SHOULD ROTATE 525252,,525252 + ;525252,,525252 LEFT 3 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=307036,,37007 AND FINAL C(AC+1)=700376,,003772 + +C37600: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + ROTC 0,3 ;*ROTC SHOULD ROTATE 230703,,603700 + ;770037,,600377 LEFT 3 BIT POSITIONS + CAME 0,[307036,,037007] ;PASS IF C(AC)=307036,,37007 + STOP + CAME 1,[700376,,003772] ;PASS IF C(AC+1)=700376,,003772 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 776003,,760077 007603,,607062 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=760037,,600770 AND FINAL C(AC+1)=076036,,070627 + +C37700: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + ROTC 0,3 ;*ROTC SHOULD ROTATE 776003,,760077 + ;007603,,607062 LEFT 3 BIT POSITIONS + CAME 0,[760037,,600770] ;PASS IF C(AC)=076036,,070627 + STOP + CAME 1,[076036,,070627] ;PASS IF C(AC+1)=760037,,600770 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + +C40000: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + ROTC 0,7 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 7 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + +C40100: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + ROTC 0,7 ;*ROTC SHOULD ROTATE -1,,-1 + ;-1,,-1 LEFT 7 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + +C40200: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + ROTC 0,7 ;*ROTC SHOULD ROTATE 252525,,252525 + ;252525,,252525 LEFT 7 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + +C40300: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + ROTC 0,7 ;*ROTC SHOULD ROTATE 525252,,525252 + ;525252,,525252 LEFT 7 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=160740,,760176 AND FINAL C(AC+1)=007740,,077646 + +C40400: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + ROTC 0,7 ;*ROTC SHOULD ROTATE 230703,,603700 + ;770037,,600377 LEFT 7 BIT POSITIONS + CAME 0,[160740,,760176] ;PASS IF C(AC)=160740,,760176 + STOP + CAME 1,[007740,,077646] ;PASS IF C(AC+1)=007740,,077646 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 776003,,760077 007603,,607063 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=400774,,017610 AND FINAL C(AC+1)=740741,,614577 + +C40500: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + ROTC 0,7 ;*ROTC SHOULD ROTATE 776003,,760077 + ;007603,,607062 LEFT 7 BIT POSITIONS + CAME 0,[400774,,017601] ;PASS IF C(AC)=400774,,017601 + STOP + CAME 1,[740741,,614577] ;PASS IF C(AC+1)=740741,,614577 + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C40600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C40700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,777] ;PASS IF C(AC)=0,,777 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,252] ;PASS IF C(AC)=0,,252 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,525] ;PASS IF C(AC)=0,,525 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,230. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,230] ;PASS IF C(AC)=230703,,603700 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,7. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,6070062 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,7] ;PASS IF C(AC)=0,,7 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41400: MOVE 1,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,17777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41500: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,17777] ;PASS IF C(AC)=0,17777 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,5252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41600: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,5252] ;PASS IF C(AC)=0,,5252 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,12525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41700: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,12525] ;PASS IF C(AC)=0,,12525 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,602700 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,4616. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42000: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,603700 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,4616] ;PASS IF C(AC)=0,,4616 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,174. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42100: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,174] ;PASS IF C(AC)=0,,174 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42200: MOVE 1,[0,0] ;PRELOAD AC WITH 0,,0 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42300: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,777] ;PASS IF C(AC)=0,,777 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42400: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,252] ;PASS IF C(AC)=0,,252 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42500: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,525] ;PASS IF C(AC)=0,525 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,230. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42600: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,230] ;PASS IF C(AC)=0,,230 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,7. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42700: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,7] ;PASS IF C(AC)=0,,7 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + + ;JRST BEGEND ;REPEAT TEST diff --git a/apps/pdp10/diags/klad/dakag/DAKAGM.MAC.txt b/apps/pdp10/diags/klad/dakag/DAKAGM.MAC.txt new file mode 100644 index 000000000..39bec0a24 --- /dev/null +++ b/apps/pdp10/diags/klad/dakag/DAKAGM.MAC.txt @@ -0,0 +1,1255 @@ +SUBTTL DIAGNOSTIC SECTION + +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN MONFLG ;SPECIAL USER MODE? + SETZM USER ;YES, CLEAR USER CONTROL WORD + SKIPN USER + JRST STARTA + SKIPL MONCTL + TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (7) [DAKAG] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF PUSH INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT PUSH DECODES CORRECTLY. +;IF PUSH DECODES AS PUSHJ, THIS TEST FAILS. + +C27200: SETZ 2, ;CLEAR AC + PUSH 2,.+2 ;*PUSH SHOULD NOT JUMP + SKIPA ;PASS IF PUSH DID NOT JUMP + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH DOES NOT MODIFY C(E). +;CLEAR E AND AC; THEN, EXECUTE PUSH. +;CHECK E FOR ORIGINAL CONTENTS ,0. +;PASS IF C(E)=0. + +C27300: SETZB 2 ;CLEAR AC,E + PUSH 2, ;*PUSH SHOULD NOT ALTER C(E) + SKIPE ;PASS IF C(E)=0,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC. +;FIRST THE AC IS CLEARED; THEN PUSH IS EXECUTED. +;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + +C27400: SETZ 2, ;CLEAR AC + PUSH 2,.+1 ;*PUSH SHOULD ADD 1,,1 TO C(AC) + CAME 2,[XWD 1,1] ;PASS IF C(AC)=1,,1 + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). +;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. +;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR THE INITIAL VALUE, 0. +;IF C(AC0)=0, THIS TEST PASSES + +C27500: SETZB 2 ;CLEAR AC AND AC0 + PUSH 2,[16541320] ;*PUSH SHOULD NOT MODIFY C(AC0) + SKIPE ;PASS IF C(AC0)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)). +;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED. +;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR +;IF C(AC0)IS NOT EQUAL TO E, THIS TEST PASSES + +C27600: SETZB 1,2 ;CLEAR AC AND AC0 + PUSH 2,.+1 ;*PUSH SHOULD NOT MODIFY C(AC0) + CAIN . ;FAIL IF C(AC0)=E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC AND THE LOCATION SPECIFIED +;BY UPDATING C(AC-RIGHT) ARE CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + +C27700: SETZB 1,2 ;CLEAR AC, C(AC-RIGHT) + PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC1 + CAME 1,[-1] ;PASS IF C(1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC +;IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=0. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR 0, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=0, THIS TEST PASSES. + +C30000: SETZM 2 ;CLEAR AC + PUSH 2,[0] ;*PUSH SHOULD PLACE 0 INTO AC1 + SKIPE 1 ;PASS IF C(1)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO +;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, +;AC IS PRELOADED WITH 0,,-1, AND THE LOCATION SPECIFIED +;BY UPDATING C(AC-RIGHT) IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1. +;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE +;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES. + +C30100: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + SETZ ;CLEAR AC, C(AC-RIGHT) + PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC0 + CAME [-1] ;PASS IF C(0)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM AC BIT 18 TO BIT 17 OF THE AC ON PUSH. +;THE AC IS PRELOADED WITH 0,,-1; THEN PUSH IS EXECUTED. PUSH SHOULD ADD ONE TO BOTH +;HALVES OF THE AC, GENERATING A CARRY FROM BIT 18 TO BIT 17. IF A CARRY WAS GENERATED, +;THIS TEST PASSES. + +C30101: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + PUSH 2,0 ;*PUSH SHOULD GENERATE A CARRY FROM BIT 18 TO BIT 17 + CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + STOP + +;************* +SUBTTL TEST OF PUSHJ INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT PUSHJ TRANSFERS CONTROL TO THE LOCATION ADDRESSED BY E. +;IF PUSHJ DOES NOT JUMP, THIS TEST FAILS + +C30200: SFLAG CRY0 ;SETS CRY0 FLAG + SETZ ;CLEAR AC + PUSHJ .+2 ;*PUSHJ SHOULD JUMP TO LOCATION E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ DOES NOT MODIFY C(PC) WHERE PC IS ONE GREATER +;THAN THE LOCATION OF THE PUSHJ INSTRUCTION. +;IF PUSHJ MODIFIES C(PC), THIS TEST FAILS + +C30300: SFLAG CRY0 ;SET CRY0 + SETZB 1,.+2 ;CLEAR C(AC-RIGHT) AND C(PC) + PUSHJ .+3 ;*PUSHJ SHOULD NOT MODIFY C(PC) + 0 ;THIS LOCATION SHOULD NOT BE MODIFIED BY PUSHJ + CAM ;PUSHJ SHOULD JUMP OVER THIS LOCATION + SKIPE .-2 ;PASS IF PUSHJ DID NOT MODIFY C(PC) + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN E +;IF PUSHJ STORED IN E, THIS TEST FAILS + +C30400: SFLAG CRY0 ;SET CRY0 + SETZB 1 ;CLEAR AC AND C(AC-RIGHT + PUSHJ .+1 ;*PUSHJ SHOULD NOT STORE IN E + MOVE 2,. ;SAVE C(E) + CAME 2,.-1 ;FAIL IF PUSHJ STORED IN E + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN LOC 0 +;PUSHJ SHOULD STORE PC IN C(AC-RIGHT) - LOCATION 2. +;IF PUSHJ STORES IN LOCATION 0, THIS TEST FAILS + +C30500: MOVEI 2,1 ;PRELOAD AC WITH 0,,1 + SETZ 0 ;CLEAR 0 + PUSHJ 2,.+1 ;*PUSHJ SHOULD NOT STORE IN LOCATION 0 + SKIPE ;FAIL IF PUSHJ STORED IN LOCATION 0 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN THE LOCATION SPECIFIED +;BY C(AC-RIGHT) AFTER INCREMENTING AC. +;IN THIS TEST, AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. +;C(C(AC-RIGHT))IS THEN COMPARED TO ZERO. IF C(C(AC-RIGHT)) IS NON-ZERO, +;A PC WAS STORED AND THIS TEST PASSES. + +C30600: SETZB 1 ;CLEAR AC, C(AC-RIGHT) + PUSHJ .+2 ;*PUSHJ SHOULD STORE PC IN RIGHT HALF OF C(AC-RIGHT) + HALT . ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + ANDI 1,-1 ;SAVE C(C(AC-RIGHT)) + CAIN 1,.-1 ;FAIL IF PC WAS NOT STORED IN C(AC-RIGHT) + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC +;THE AC IS CLEARED AND PUSHJ IS EXECUTED +;AC IS CHECKED FOR 1,,1 IF C(AC)=1,,1, THIS TEST PASSES + +C31000: SETZ ;CLEAR AC + PUSHJ .+1 ;*PUSHJ SHOULD PLACE 1,,1 INTO THE AC + CAME [1,,1] ;PASS IF C(AC)=1,,1 + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE FLAGS IN LEFT HALF OF C(AC-RIGHT) +;FIRST, CRY0 IS SET AND AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED. +;C(C(AC-RIGHT)) IS THEN CHECKED FOR CRY0. IF CRY0 IS SET, THIS TEST PASSES. + +C31100: SFLAG CRY0 ;SET CRY0 + SETZB 1 ;CLEAR AC AND C(AC-RIGHT) + PUSHJ .+1 ;*PUSHJ SHOULD STORE FLAGS IN LEFT HALF OF C(AC-RIGHT) + TLNN 1,CRY0 ;PASS IF CRY0 STORED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC +;THE AC IS PRELOADED WITH 0,,1 AND PUSHJ IS EXECUTED +;AC IS CHECKED FOR 1,,2 IF C(AC)=1,,2, THIS TEST PASSES + +C31400: MOVEI 1,1 ;PRELOAD AC WITH 0,,1 + PUSHJ 1,.+2 ;*PUSHJ SHOULD PLACE 1,,2 INTO THE AC + HALT ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION + CAME 1,[XWD 1,2] ;PASS IF AC WAS INCREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN RIGHT HALF OF C(AC-RIGHT) +;THIS TEST PASSES IF THE PC WAS STORED CORRECTLY. + +C31500: MOVEI 1,1 ;PLACE 0,,1 INTO AC + PUSHJ 1,.+2 ;*PUSHJ SHOULD STORE .+1 INTO RIGHT HALF OF C(AC-RIGHT) + HALT ;PUSHJ SHOULD JUMP OVER THIS PC + ANDI 2,-1 ;SAVE RIGHT HALF OF C(AC-RIGHT) + CAIE 2,.-2 ;PASS IF PC STORED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT PUSHJ ALWAYS RESETS BIS. +;FIRST BIS IS SET; THEN PUSHJ IS EXECUTED. THE FLAGS ARE +;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA PUSHJ, THIS TEST PASSES. + +C31501: SFLAG BIS ;SET BIS + SETZ ;CLEAR AC + PUSHJ .+1 ;*PUSHJ SHOULD RESET BIS + JSP .+1 ;SAVE FLAGS + TLNE BIS ;PASS IF BIS FLAG IS RESET + STOP + +;********** +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON PUSHJ. +;THE AC IS PRELOADED WITH 0,,-1; THEN PUSHJ IS EXECUTED. PUSHJ SHOULD ADD ONE TO +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. IF A +;CARRY WAS GENERATED, THE TEST PASSES. + +C31502: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1 + PUSHJ 2,.+1 ;*PUSHJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED) + STOP + +;**************** +SUBTTL TEST OF POP INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC +;THE AC IS PRELOADED WITH 1,,1; THEN, POP IS EXECUTED. +;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + +C31600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + POP 1 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + SKIPE ;PASS IF AC WAS DECREMENTED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC +;THE AC IS PRELOADED WITH 2,,2; THEN, POP IS EXECUTED. +;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES. + +C31700: MOVE [XWD 2,2] ;PRELOAD AC WITH E,,E WHERE E=2 + MOVEI 2,5 ;PRELOAD 2 WITH 0,,5 + POP 2 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC + CAME [1,,1] ;PASS IF AC WAS DECREMENTED CORRECTLY + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E +;IN THIS CASE, AC=0 AND AC IS PRELOADED WITH 2,,2; E=2 AND IS PRELOADED WITH 0. +;POP IS THEN EXECUTED. POP SHOULD PLACE 0 INTO E. IF C(E)=0, THIS TEST PASSES. + +C32300: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + SETZM 2 ;CLEAR E AND C(AC-RIGHT) + POP 2 ;*POP SHOULD PLACE 0 INTO E + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP DOES NOT MODIFY C(C(AC-RIGHT)-1). +;THIS TEST FAILS IF C(C(AC-RIGHT)-1) IS MODIFIED BY POP. + +C32400: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,17 ;PRELOAD 2 WITH 0,,17 + SETZM 1 ;CLEAR C(C(AC-RIGHT)-1) + POP 2 ;*POP SHOULD NOT MODIFY C(C(AC-RIGHT)-1) + SKIPE 1 ;PASS IF C(C(AC-RIGHT)-1) WAS UNALTERED + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. +;IN THIS CASE, AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,3. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,3 [C(C(AC-RIGHT))] . +;IF C(E)=0,,3, THIS TEST PASSES. + +C32500: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,3 ;PRELOAD C(AC-RIGHT) WITH 0,,3 + SETZM 3 ;CLEAR E + POP 3 ;*POP SHOULD PLACE 0,,3 INTO E + CAIE 3,3 ;PASS IF C(E)=0,,3 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, +;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,17. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,17 [C(C(AC-RIGHT))] . +;IF C(E)=0,,17, THIS TEST PASSES. + +C32600: SETZM 2 ;CLEAR E + MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + MOVEI 2,17 ;PRELOAD C(AC-RIGHT) WITH 0,,17 + POP 2 ;*POP SHOULD PLACE 0,,17 INTO E + CAIE 2,17 ;PASS IF C(E)=0,,17 + STOP + +;********** +;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE, +;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH -1,,-1. +;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR -1,,-1 [C(C(AC-RIGHT))] . +;IF C(E)=0,,3, THIS TEST PASSES. + +C33100: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2 + SETOM 2 ;PRELOAD C(AC-RIGHT) WITH -1,,-1 + SETZM 3 ;CLEAR E + POP 3 ;*POP SHOULD PLACE -1,,-1 INTO E + CAME 3,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC. +;IN THIS CASE, THE AC IS PRELOADED WITH 1,,17; E=1 AND E IS PRELOADED WITH 0; +;C(AC-RIGHT) IS PRELOADED WITH -1,,-1; AND POP IS EXECUTED. POP SHOULD PLACE -1,,-1 +;INTO E AND 0,,16 INTO AC. IF AC AND E ARE UPDATED CORRECTLY, THIS TEST PASSES. + +C33300: MOVE [XWD 1,17] ;PRELOAD AC WITH 1,,17 + SETZM 1 ;PRELOAD E WITH 0 + SETOM 17 ;PRELOAD C(AC-RIGHT) WITH 1,,1 + POP 1 ;*POP SHOULD PLACE -1,,-1 INTO E AND 0,,16 INTO AC + CAME 1,[-1] ;PASS IF C(E)=-1,,-1 + STOP +C33310: CAIE 16 ;PASS IF C(AC)=0,,16 + STOP + +;********** +;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC +;IN THIS CASE, THE AC IS PRELOADED WITH -1,,0; E=17 +;C(AC-RIGHT) IS PRELOADED WITH 0; AND POP IS EXECUTED. POP SHOULD PLACE 0 +;INTO E. IF AC IS UPDATED CORRECTLY, THIS TEST PASSES. + +C33400: MOVSI 1,-1 ;PRELOAD AC WITH -1,,0 + SETZ ;CLEAR C(AC-RIGHT) + POP 1,17 ;*POP SHOULD PLACE 0 INTO E + SKIPE 17 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POP. +;THE AC IS PRELOADED WITH 2,,0; THEN POP IS EXECUTED. POP SHOULD SUBTRACT ONE FROM +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. +;IF A CARRY WAS GENERATED, THIS TEST PASSES. + +C33401: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + POP 2,0 ;*POP SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAIE 2,-1 ;PASS IF C(AC) = 0,,-1 (CARRY WAS GENERATED) + STOP + +;************ +SUBTTL TEST OF POPJ INSTRUCTION + +;********** + +;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF +;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. +;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + +C33500: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+3 ;PRELOAD C(AC-RIGHT) WITH .+3 + POPJ .+2 ;*POPJ SHOULD JUMP TO LOCATION + ;ADDRESSED BY C(C(AC-RIGHT)) + STOP + +;********** + +;THIS TEST VERIFIES THAT POPJ SUBTRACTS 1,,1 FROM THE AC +;THIS AC IS PRELOADED WITH 1,,1; THEN,POPJ IS EXECUTED. +;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES. + +C33600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+2 ;PRELOAD C(AC-NIGHT)WITH .+2 + POPJ .+1 ;*POPJ SHOULD SUBTRACT 1,,1 FROM AC + CAME [0] ;PASS IF C(AC)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF +;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC. +;THIS TEST PASSES IF POPJ JUMPS CORRECTLY. + +C33700: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1 + MOVEI 1,.+2 ;PRELOAD C(AC-RIGHT) WITH C33700+3 + POPJ .+2 ;*POPJ SHOULD JUMP TO C33700+3 + SKIPA ;PASS IF POPJ JUMPED CORRECTLY + STOP + +;********** + +;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POPJ. +;THE AC IS PRELOADED WITH 2,,0; THEN POPJ IS EXECUTED POPJ SHOULD SUBTRACT ONE FROM +;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. +;IF A CARRY WAS GENERATED, THIS TEST PASSES. + +C33701: HRLZI 2,2 ;PRELOAD AC WITH 2,,0 + MOVEI 0,.+2 ;PRELOAD RH(AC) WITH C33701: +3 + POPJ 2,0 ;*POPJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17 + CAIE 2,-1 ;PASS IF C(AC)=0,,-1 (CARRY WAS GENERATED) + STOP + +;************* +SUBTTL XCT INSTRUCTION - ADDITIONAL TESTS + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34000: SETOB 1 + XCT [CAME 0,1] ;*CAME SHOULD SKIP TO C34000+3 + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34100: SETOB 1 + XCT [XCT[XCT[CAME 0,1]]] ;*CAME SHOULD SKIP TO C34100+3 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. + +C34200: XCT [JRST .+4] ;*JRST SHOULD JUMP TO C34200+4 + HALT ;JRST SHOULD JUMP OVER THIS LOCATION + HALT ;JRST SHOULD JUMP OVER THIS LOCATION + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP AND THAT WHEN THE PC IS SAVED IT CONTAINS AN +;ADDRESS ONE GREATER THAN THE LOCATION OF FIRST XCT OF THE CHAIN. + +C34300: SETZM 3 ;CLEAR AC OF JSP + XCT [XCT[XCT[JSP 3,.+3]]] ;*JSP SHOULD JUMP TO C34300+4 AND + HALT ;THE SAVED PC SHOULD BE C 34300+2 + HALT ;PASS IF JSP JUMPED CORRECTLY + TRZ 3,.-2 ;AND SAVED PC=C34300+2 + TRNE 3,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. +;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION +;FOLLOWING XCT SHOULD BE EXECUTED AFTER 'CAME' IS EXECUTED. + +C34400: SETZB 0 ;SET-UP AC,E SO THAT + SETOM 1 ;CAME WILL NOT SKIP + XCT [CAME 0,1] ;*CAME SHOULD CAUSE EXECUTION + ;OF INSTRUCTION FOLLOWING XCT + JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES INDEXING FOR XCT OF AN ADD INSTRUCTION +;C(4)=10, AND C(6)=3, SO THE RESULT IN 6 (THE AC) SHOULD BE 16 +;C(11)=13 + +C34500: MOVEI 4,10 ;PRELOAD INDEX REG WITH 10 + MOVEI 11,13 ;PRELOAD EFFECTIVE ADDRESS WITH 13 + MOVEI 6,3 ;PRELOAD AC WITH 3 + XCT [ADD 6,1(4)] ;*ADD SHOULD PLACE 16 IN AC + CAIE 6,16 ;PASS IF C(AC)=16 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT +;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION +;FOLLOWING XCT SHOULD BE EXECUTED AFTER CAME IS EXECUTED. + +C34600: SETZM 2 ;SETUP E SO THAT SKIPL WILL NOT SKIP + XCT [SKIPL 1,2] ;*SKIPL SHOULD CAUSE INSTRUCTION + ;OF FOLLOWING INSTRUCTION + JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED. + STOP +C34610: SKIPE 1 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + ;PLACED 0 INTO AC1 + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE +;TO THE LOCATION OF THE XCT. + +C34700: SETOM 6 ;SETUP E SO THAT SKIPL WILL SKIP + XCT [SKIPL 3,6] ;*SKIPL SHOULD SKIP TO C34700+3 + STOP +C34710: SKIPL 3 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL + ;PLACED 0 INTO AC1 + STOP + +;********** +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. +;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + +C35000: MOVE 3,[-2,,5] ;SETUP AC SO THAT AOBJN WILL JUMP + XCT [AOBJN 3,.+3] ;*JUMP SHOULD BE TO C35000+4 + HALT ;JUMP OVER THIS INSTRUCTION + HALT ;JUMP OVER THIS INSTRUCTION + CAME 3,[-1,,6] ;PASS IF C(AC)=-1,,6 AND AOBJN JUMPED + STOP + +;********** + +;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS +;SPECIFIED BY THE JUMP. +;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN + +C35100: MOVE 3,[-1,,6] ;SETUP AC SO THAT AOBJN WILL NOT JUMP + XCT [AOBJN 3,.+2] ;*AOBJN SHOULD NOT JUMP + CAME 3,[0,,7] ;PASS IF AOBJN DID NOT JUMP AND C(AC)=0,,7 + STOP + +;********** +SUBTTL TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDIRECTLY ADDRESSED LOCATION + +C35200: SETZB 2 + JRST .+3 + .+1 + SETOM 2 ;THIS INSTRUCTION SHOULD BE EXECUTED + XCT @.-2 + CAME 2,[-1,,-1] ;PASS IF 'SETOM 2' WAS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDEXED LOCATION + +C35300: MOVEI 4,.+1 + JRST .+2 + CAIE 4,.-1 ;THIS INSTRUCTION SHOULD BE EXECUTED + XCT 1(4) + STOP ;PASS IF 'CAIE 4,,-1' WAS EXECUTED + +;********** +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION +;FROM AN INDIRECTLY ADDRESSED AND INDEXED LOCATION + +C35400: SETZM 5 + MOVEI 3,.+3 + JRST .+2 + MOVEI 5,.+3 + XCT @-1(3) + JRST .+2 + SETOM 5 ;THIS INSTRUCTION SHOULD BE EXECUTED + CAME 5,[-1,,-1] ;PASS IF 'SETOM 5' WAS EXECUTED + STOP + +;********** + +;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INDIRECTLY ADDRESSED +;AND INDEXED INSTRUCTION + +C35500: SETZM 3 + MOVEI 10,3 + JRST .+5 + HALT + HALT + MOVE 3,@.-2(10) ;THIS INSTRUCTION SHOULD BE EXECUTED + HALT [0,,707070] + XCT .-2 + CAIE 3,707070 ;PASS IF 'MOVE 3,@.-2(10)' WAS EXECUTED + STOP + +;********** +SUBTTL TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C35600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 0,,0 RIGHT 3 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C35700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE -1,,-1 RIGHT 3 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 252525,,252525 + ;RIGHT 3 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 525252,,525252 + ;RIGHT 3 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=023070,,360370. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 230703,,603700 + ;RIGHT 3 BIT POSITIONS + CAME 0,[023070,,360370] ;PASS IF C(AC)=023070,,360370 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=200760,,360706. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 0,-3 ;*ROT SHOULD ROTATE 007603,,607062 + ;RIGHT 3 BIT POSITIONS + CAME 0,[200760,,360706] ;PASS IF C(AC)=200760,,360706 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36400: MOVE 2,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 0,,0 LEFT 15 BIT POSITIONS + CAME 2,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36500: MOVE 2,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE -1,,-1 LEFT 15 BIT POSITIONS + CAME 2,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36600: MOVE 2,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 252525,,252525 + ;LEFT 15 BIT POSITIONS + CAME 2,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C36700: MOVE 2,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 525252,,525252 + ;LEFT 15 BIT POSITIONS + CAME 2,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)074076,,004616. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C37000: MOVE 2,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 230703,,603700 + ;LEFT 15 BIT POSITIONS + CAME 2,[074076,,004616] ;PASS IF C(AC)074076,,004616 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED LEFT 15 BIT POSITIONS +;SO THAT FINAL C(AC)074161,,440174. +;C(AC+1) SHOULD NOT BE AFFECTED. + +C37100: MOVE 2,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + ROT 2,15 ;*ROT SHOULD ROTATE 007603,,607062 + ;LEFT 15 BIT POSITIONS + CAME 2,[074161,,440174] ;PASS IF C(AC)074161,,440174 + STOP + CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + +C37200: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + ROTC 0,3 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 3 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + +C37300: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + ROTC 0,3 ;*ROTC SHOULD ROTATE -1,,-1 + ;-1,,-1 LEFT 3 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + +C37400: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + ROTC 0,3 ;*ROTC SHOULD ROTATE 252525,,252525 + ;252525,,252525 LEFT 3 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + +C37500: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + ROTC 0,3 ;*ROTC SHOULD ROTATE 525252,,525252 + ;525252,,525252 LEFT 3 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=307036,,37007 AND FINAL C(AC+1)=700376,,003772 + +C37600: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + ROTC 0,3 ;*ROTC SHOULD ROTATE 230703,,603700 + ;770037,,600377 LEFT 3 BIT POSITIONS + CAME 0,[307036,,037007] ;PASS IF C(AC)=307036,,37007 + STOP + CAME 1,[700376,,003772] ;PASS IF C(AC+1)=700376,,003772 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 776003,,760077 007603,,607062 SHOULD BE ROTATED LEFT 3 BIT POSITIONS +;SO THAT FINAL C(AC)=760037,,600770 AND FINAL C(AC+1)=076036,,070627 + +C37700: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + ROTC 0,3 ;*ROTC SHOULD ROTATE 776003,,760077 + ;007603,,607062 LEFT 3 BIT POSITIONS + CAME 0,[760037,,600770] ;PASS IF C(AC)=076036,,070627 + STOP + CAME 1,[076036,,070627] ;PASS IF C(AC+1)=760037,,600770 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0 + +C40000: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0 + ROTC 0,7 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 7 BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1 + +C40100: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1 + ROTC 0,7 ;*ROTC SHOULD ROTATE -1,,-1 + ;-1,,-1 LEFT 7 BIT POSITIONS + CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252 + +C40200: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525 + ROTC 0,7 ;*ROTC SHOULD ROTATE 252525,,252525 + ;252525,,252525 LEFT 7 BIT POSITIONS + CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252 + STOP + CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525 + +C40300: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252 + ROTC 0,7 ;*ROTC SHOULD ROTATE 525252,,525252 + ;525252,,525252 LEFT 7 BIT POSITIONS + CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525 + STOP + CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525 + STOP + +;********** +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=160740,,760176 AND FINAL C(AC+1)=007740,,077646 + +C40400: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377 + ROTC 0,7 ;*ROTC SHOULD ROTATE 230703,,603700 + ;770037,,600377 LEFT 7 BIT POSITIONS + CAME 0,[160740,,760176] ;PASS IF C(AC)=160740,,760176 + STOP + CAME 1,[007740,,077646] ;PASS IF C(AC+1)=007740,,077646 + STOP + +;********** + +;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY. +;IN THIS CASE, 776003,,760077 007603,,607063 SHOULD BE ROTATED LEFT 7 BIT POSITIONS +;SO THAT FINAL C(AC)=400774,,017610 AND FINAL C(AC+1)=740741,,614577 + +C40500: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077 + MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062 + ROTC 0,7 ;*ROTC SHOULD ROTATE 776003,,760077 + ;007603,,607062 LEFT 7 BIT POSITIONS + CAME 0,[400774,,017601] ;PASS IF C(AC)=400774,,017601 + STOP + CAME 1,[740741,,614577] ;PASS IF C(AC+1)=740741,,614577 + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C40600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C40700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,777] ;PASS IF C(AC)=0,,777 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,252] ;PASS IF C(AC)=0,,252 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,525] ;PASS IF C(AC)=0,,525 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,230. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,230] ;PASS IF C(AC)=230703,,603700 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,7. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060 + LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,6070062 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 0,[0,,7] ;PASS IF C(AC)=0,,7 + STOP + CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41400: MOVE 1,[0,,0] ;PRELOAD AC WITH 0,,0 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,17777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41500: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,17777] ;PASS IF C(AC)=0,17777 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,5252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41600: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,5252] ;PASS IF C(AC)=0,,5252 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,12525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C41700: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,12525] ;PASS IF C(AC)=0,,12525 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,602700 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,4616. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42000: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,603700 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,4616] ;PASS IF C(AC)=0,,4616 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,174. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42100: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + ;RIGHT 27 OCTAL BIT POSITIONS + CAME 1,[0,,174] ;PASS IF C(AC)=0,,174 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,0. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42200: MOVE 1,[0,0] ;PRELOAD AC WITH 0,,0 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,0] ;PASS IF C(AC)=0,,0 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,777. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42300: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,777] ;PASS IF C(AC)=0,,777 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,252. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42400: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,252] ;PASS IF C(AC)=0,,252 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,525. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42500: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,525] ;PASS IF C(AC)=0,525 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,230. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42600: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,,603700 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,230] ;PASS IF C(AC)=0,,230 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + +;********** + +;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY +;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS +;SO THAT FINAL C(AC)=0,,7. +;C(AC+1) SHOULD NOT BE AFFECTED + +C42700: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062 + MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060 + LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062 + ;RIGHT 33 OCTAL BIT POSITIONS + CAME 1,[0,,7] ;PASS IF C(AC)=0,,7 + STOP + CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED + STOP + + JRST BEGEND ;REPEAT TEST diff --git a/apps/pdp10/diags/klad/dakag/README.md b/apps/pdp10/diags/klad/dakag/README.md new file mode 100644 index 000000000..62973ef8f --- /dev/null +++ b/apps/pdp10/diags/klad/dakag/README.md @@ -0,0 +1,278 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #7 +permalink: /apps/pdp10/diags/klad/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. + +Resources for this test include: + +- [Instructions](#dakagtxt) +- [History](#dakaghst) +- [Source Code](#dakagmac) +- [MACRO-10 Listing](DAKAG.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 %} diff --git a/apps/pdp10/diags/klad/dakah/DAKAH.LST.txt b/apps/pdp10/diags/klad/dakah/DAKAH.LST.txt new file mode 100644 index 000000000..fb636eeda --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/DAKAH.LST.txt @@ -0,0 +1,7091 @@ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +DAKAHT MAC 19-JAN-77 17:35 DIAGNOSTIC PARAMETERS SEQ 0007 + + 1 ;DAKAH + 2 + 3 + 4 + 5 000002 DECVER==2 + 6 000000 MCNVER==0 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 + 14 ^ + 15 + 16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE + 17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD. + 18 + 19 ;COPYRIGHT 1972,1977 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;JOHN R. KIRCHOFF + 24 + 25 000137 LOC 137 + 26 000137 000000 000002 MCNVER,,DECVER + 27 + 28 NOSYM +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 2 +DAKAHT MAC 19-JAN-77 17:35 DIAGNOSTIC PARAMETERS SEQ 0008 + + 29 SUBTTL DIAGNOSTIC PARAMETERS + 30 + 31 ;CONTROL WORDS + 32 + 33 004000 EXIOT=4000 ;USER PRIV I/O FLAG + 34 010000 USERF=10000 ;USER MODE FLAG + 35 + 36 000400 DACT=400 + 37 000774 ME=774 + 38 002377 PIG0=2377 + 39 040000 PIH1=40000 + 40 020000 PIH2=20000 + 41 010000 PIH3=10000 + 42 004000 PIH4=4000 + 43 002000 PIH5=2000 + 44 001000 PIH6=1000 + 45 000400 PIH7=400 + 46 002000 PIOSET=2000 + 47 001000 PIOCLR=1000 + 48 004000 PIREQ=4000 + 49 000200 ACT=200 + 50 020000 PROT=20000 + 51 010000 NONEX=10000 + 52 004000 UMIOT=4000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 3 +DAKAHT MAC 19-JAN-77 17:35 DIAGNOSTIC PARAMETERS SEQ 0009 + + 53 ;SUBROUTINE DEFINITIONS + 54 + 55 030726 SADR1=START + 56 030726 SADR2=START + 57 030726 SADR3=START + 58 030726 SADR4=START + 59 030726 SADR5=START + 60 030726 SADR6=START + 61 254000 030726 SADR7=JRST START + 62 254000 030726 SADR8=JRST START + 63 254000 030726 SADR9=JRST START + 64 254000 030726 SADR10=JRST START + 65 254000 030726 SADR11=JRST START + 66 000000 PAREA1=0 + 67 000000 PAREA2=0 + 68 000000 PAREA3=0 + 69 000000 PAREA4=0 + 70 000000 PAREA5=0 + 71 000000 PAREA6=0 + 72 000001 ITERAT=1 + 73 000001 EXCASB==1 + 74 000001 PGMEND==1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4 +DAKAHT MAC 19-JAN-77 17:35 DIAGNOSTIC PARAMETERS SEQ 0010 + + 75 + 76 ;MACROS + 77 + 78 ;STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMP .+1) + 79 ; TO A (JUMP .-X) TO CYCLE ON FAILING INSTRUCTION. + 80 + 81 DEFINE STOP (A)< + 82 HALT .+1 + 83 JUMP .+1 + 84 > + 85 + 86 ;SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED + 87 ; FLAG FOR TESTING. + 88 + 89 DEFINE SFLAG (A)< + 90 MOVSI 1,A + 91 JFCL 17,.+1 + 92 JRST 2,.+1(1) + 93 > + 94 + 95 ;CHANEL - USED FOR 2 CHANNEL SYSTEM CHECK + 96 + 97 DEFINE CHANEL (A)< + 98 SKIPN PI7SYS# + 99 JRST A + 100 > + 101 + 102 ;RETURN - USED TO SETUP UUO TRAP + 103 + 104 DEFINE RETURN (A)< + 105 MOVE 2,[JSP 2,A] + 106 MOVEM 2,41 + 107 SETOB 2,40 + 108 > + 109 + 110 ;CLEAN - USED TO CLEAR THE PROCESSOR EXCEPT CLOCK + 111 ; CLEAR DEVICES AND PI SYSTEM + 112 + 113 DEFINE CLEAN (A)< + 114 CONO 634440 + 115 CONO PI,10000 + 116 > +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0011 + + 117 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 118 + 119 DEFINE S,<;*********************************************************************> + 120 + 121 S^;*********************************************************************^ + 122 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 123 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 124 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 125 S^;*********************************************************************^ + 126 + 127 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 128 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 129 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 130 + 131 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 132 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 133 010000 DING== 010000 ;RING BELL ON ERROR + 134 + 135 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 136 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 137 001000 PALERS==001000 ;PRINT ALL ERRORS + 138 + 139 000400 RELIAB==000400 ;RELIABILITY MODE + 140 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 141 000100 INHPAG==000100 ;INHIBIT PAGING + 142 + 143 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 144 000020 INHCSH==000020 ;INHIBIT CACHE + 145 000010 OPRSEL==000010 ;OPERATOR SELECTION + 146 + 147 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 148 + 149 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 150 + 151 ;SWITCH 17 RESERVED !!! +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012 + + 152 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 153 + 154 S^;*********************************************************************^ + 155 ;*SPECIAL SUBPROGRAM LINKAGES + 156 S^;*********************************************************************^ + 157 + 158 027772 FSELNK= 27772 ;FILE SELECT LINK + 159 027773 FRDLNK= 27773 ;FILE READ LINK + 160 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 161 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 162 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 163 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 164 + 165 S^;*********************************************************************^ + 166 ;*SPECIAL SUBROUTINE FATAL HALTS + 167 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 168 S^;*********************************************************************^ + 169 + 170 ;ADDRESS TAG REASON + 171 ;--------------------- + 172 + 173 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 174 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 175 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 176 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 177 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 178 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 179 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 180 ; 1017 EOPERR ;END OF PROGRAM ERROR + 181 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 182 + 183 S^;*********************************************************************^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013 + + 184 S^;*********************************************************************^ + 185 ;OPERATOR DEFINITIONS (NON-UUO'S) + 186 S^;*********************************************************************^ + 187 + 188 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 189 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 190 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 191 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 192 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 193 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 194 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 195 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 196 + 197 S^;*********************************************************************^ + 198 ;*SUBROUTINE INITIALIZATION CALL + 199 S^;*********************************************************************^ + 200 + 201 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 202 + 203 S^;*********************************************************************^ + 204 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 205 S^;*********************************************************************^ + 206 + 207 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 208 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 209 + 210 S^;*********************************************************************^ + 211 ;*TERMINAL INPUT UUO'S + 212 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 213 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 214 S^;*********************************************************************^ + 215 + 216 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 217 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 218 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 219 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 220 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 221 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 222 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 223 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 224 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 225 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014 + + 226 ;*TERMINAL OUTPUT UUO'S. + 227 + 228 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 229 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 230 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 231 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 232 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 233 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 234 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 235 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 236 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 237 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 238 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 239 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 240 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 241 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 242 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 243 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 244 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 245 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 246 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 247 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 248 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 249 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 250 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 251 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 252 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 253 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 254 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 255 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 256 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 257 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 258 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 259 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 260 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 261 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 262 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 263 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 264 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 265 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 266 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 267 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 268 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 269 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 270 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 271 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 272 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 273 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 274 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 275 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 276 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 277 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 278 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 279 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 280 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0015 + + 281 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 282 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 283 + 284 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 285 + 286 DEFINE PMSG (ARG),< + 287 PSIXM [SIXBIT\ARG'_\]> + 288 + 289 DEFINE PMSGF (ARG),< + 290 PSIXMF [SIXBIT\ARG'_\]> + 291 + 292 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 293 ;* CONSERVES CORE OVER ASCIZ + 294 + 295 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 296 + 297 ;*CONSOLE SWITCH INPUT UUO. + 298 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 299 ;* USER MODE. + 300 + 301 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 302 + 303 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 304 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 305 + 306 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 307 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 308 + 309 ;*KL10 ONLY CACHE OPERATION UUO'S + 310 + 311 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 312 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 313 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016 + + 314 ;*END OF PASS/PROGRAM UUOS + 315 + 316 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 317 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 318 + 319 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 320 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 321 + 322 ;*MEMORY MANAGEMENT UUO'S + 323 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 324 ;*ADDRESS CONVERSION, ETC... + 325 + 326 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 327 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 328 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 329 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 330 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 331 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 332 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 333 + 334 ;*DEVICE CODE MODIFICATION UUO + 335 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 336 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 337 + 338 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 339 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 340 + 341 030000 IFNDEF MODDVL, + 342 030000 IFNDEF MODDVU, + 343 + 344 ;*"DIAMON" FILE SELECTION AND READ UUOS + 345 + 346 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 347 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 348 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 349 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 350 + 351 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 352 + 353 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 354 + 355 XLIST + 356 IFNDEF KLOLD, + 382 + 383 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 384 + 385 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 386 SALL + 387 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 388 CORECT,,ACTUAL + 389 [SIXBIT\D'_\],,ERR] + 390 XALL > + 391 + 392 >;END OF KLOLD CONDITIONAL + 393 + 394 XLIST + 395 LIST +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018 + + 396 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 397 + 398 030000 LOC 30000 + 399 + 400 S^;*********************************************************************^ + 401 ;*PROGRAM STARTING ADDRESSES + 402 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 403 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 404 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 405 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 406 S^;*********************************************************************^ + 407 + 408 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 409 030001 254 00 0 00 030726 $START: JRST START ;MODE CHECK STARTING ADDRESS + 410 + 411 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 412 + 413 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 414 + 415 030004 254 00 0 00 030726 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 416 + 417 030005 254 00 0 00 030726 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 418 + 419 030006 254 00 0 00 030726 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 420 + 421 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 422 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 423 + 424 030010 254 00 0 00 030737 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 425 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 426 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 427 + 428 030013 254000 030726 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 429 030014 254000 030726 START2: SADR8 ; " + 430 030015 254000 030726 START3: SADR9 ; " + 431 030016 254000 030726 START4: SADR10 ; " + 432 030017 254000 030726 START5: SADR11 ; " +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019 + + 433 S^;*********************************************************************^ + 434 ;*PROGRAM FIXED PARAMETER AREA + 435 S^;*********************************************************************^ + 436 + 437 030020 000000 000000 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 438 030021 000000 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 439 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 440 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 441 030024 000000 000001 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 442 030025 000000 030712 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 443 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 444 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 445 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 446 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 447 030032 000000 000000 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 448 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 449 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 450 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 451 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 452 + 453 S^;*********************************************************************^ + 454 ;*PROGRAM VARIABLE PARAMETER AREA + 455 S^;*********************************************************************^ + 456 + 457 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 458 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 459 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 460 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 461 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 462 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 463 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 464 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 465 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 466 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 467 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 468 030052 000000 000000 ERRPC: 0 ;ERROR PC + 469 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 470 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 471 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 472 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020 + + 473 S^;*********************************************************************^ + 474 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 475 S^;*********************************************************************^ + 476 + 477 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 478 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 479 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 480 030062 000000 030726 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 481 030063 000000 030726 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 482 030064 CPOPJ1: ;SKIP RETURN + 483 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 484 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 485 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 486 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 487 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 488 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 489 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 490 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 491 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 492 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 493 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 494 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 495 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 496 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 497 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 498 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 499 + 500 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 501 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 502 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 503 + 504 S^;*********************************************************************^ + 505 ;*PROCESSOR CONTROL STORAGE + 506 S^;*********************************************************************^ + 507 + 508 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 509 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 510 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 511 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 512 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 513 + 514 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 515 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 516 + 517 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 518 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 519 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 520 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 521 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 522 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 523 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 524 S^;*********************************************************************^ + 525 ;*UUO DISPATCH TABLE + 526 S^;*********************************************************************^ + 527 XLIST + 528 LIST + 529 030124 030070 030070 UUODIS: LUUO1,,$UUOER + 530 030125 030070 030070 LUUO3,,LUUO2 + 531 030126 030070 030070 LUUO5,,LUUO4 + 532 030127 030070 030070 LUUO7,,LUUO6 + 533 030130 030070 030070 LUUO11,,LUUO10 + 534 030131 030070 030070 LUUO13,,LUUO12 + 535 030132 030070 030070 LUUO15,,LUUO14 + 536 030133 030070 030070 LUUO17,,LUUO16 + 537 030134 030070 030070 LUUO21,,LUUO20 + 538 030135 030070 030070 LUUO23,,LUUO22 + 539 030136 030070 030070 LUUO25,,LUUO24 + 540 030137 030070 030070 LUUO27,,LUUO26 + 541 030140 030070 030070 LUUO31,,LUUO30 + 542 030141 030070 030070 LUUO33,,LUUO32 + 543 + 544 S^;*********************************************************************^ + 545 ;*MEMORY MANAGMENT STORAGE + 546 S^;*********************************************************************^ + 547 + 548 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 549 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 550 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 551 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 552 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 553 + 554 S^;*********************************************************************^ + 555 ;*PRINT CONTROL STORAGE + 556 S^;*********************************************************************^ + 557 + 558 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 559 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 560 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 561 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 562 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 563 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 564 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 565 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 566 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 567 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 568 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 569 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 570 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 571 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 572 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 573 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 574 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 575 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 576 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 577 S^;*********************************************************************^ + 578 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 579 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 580 ;* MOVEI NAME + 581 ;* PNTA ;OR PNTAF + 582 S^;*********************************************************************^ + 583 + 584 030242 CRLF: ASCII/ + 585 030242 015 012 000 000 000 / + 586 030243 CRLF2: ASCII/ + 587 + 588 030243 015 012 015 012 000 / + 589 030244 054 000 000 000 000 COMMA: ASCII/,/ + 590 030245 056 000 000 000 000 PERIOD: ASCII/./ + 591 030246 040 000 000 000 000 SPACE: ASCII/ / + 592 030247 011 000 000 000 000 TAB: ASCII/ / + 593 030250 MINUS: + 594 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 595 030251 053 000 000 000 000 PLUS: ASCII/+/ + 596 030252 052 000 000 000 000 AST: ASCII/*/ + 597 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 598 030254 050 000 000 000 000 LFP: ASCII/(/ + 599 030255 051 000 000 000 000 RTP: ASCII/)/ + 600 030256 007 0000000000 BELL: BYTE (7) 007 + 601 030257 077 000 000 000 000 QUEST: ASCII/?/ + 602 030260 057 000 000 000 000 SLASH: ASCII!/! + 603 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 604 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 605 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 606 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 607 + 608 S^;*********************************************************************^ + 609 ;*USER MODE OUTPUT FILE INFORMATION + 610 S^;*********************************************************************^ + 611 + 612 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 613 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 614 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 615 030272 BLOCK 2 + 616 + 617 S^;*********************************************************************^ + 618 ;*DISK UPDATE MODE FILE INFORMATION + 619 S^;*********************************************************************^ + 620 + 621 030274 $IBUF: BLOCK 3 + 622 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 623 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 624 030301 BLOCK 2 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 625 S^;*********************************************************************^ + 626 ;*PUSHDOWN LIST CONTROL INFORMATION + 627 S^;*********************************************************************^ + 628 + 629 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 630 030304 PLISTS: BLOCK 200 + 631 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 632 + 633 S^;*********************************************************************^ + 634 ;*POWER LINE CLOCK FREQUENCY FLAG + 635 S^;*********************************************************************^ + 636 + 637 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 638 + 639 S^;*********************************************************************^ + 640 ;*KL10 CACHE CONTROL FLAGS + 641 S^;*********************************************************************^ + 642 + 643 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 644 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 645 + 646 S^;*********************************************************************^ + 647 ;*NUMBER INPUT DIGIT FLAG + 648 S^;*********************************************************************^ + 649 + 650 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 651 + 652 S^;*********************************************************************^ + 653 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 654 S^;*********************************************************************^ + 655 + 656 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 657 + 658 S^;*********************************************************************^ + 659 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 660 S^;*********************************************************************^ + 661 + 662 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 663 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 664 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 665 + 666 S^;*********************************************************************^ + 667 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 668 S^;*********************************************************************^ + 669 + 670 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 671 S^;*********************************************************************^ + 672 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 673 S^;*********************************************************************^ + 674 + 675 030516 000000 000000 KLTYP: 0 + 676 + 677 S^;*********************************************************************^ + 678 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 679 S^;*********************************************************************^ + 680 + 681 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 682 + 683 S^;*********************************************************************^ + 684 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 685 S^;*********************************************************************^ + 686 + 687 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 688 + 689 S^;*********************************************************************^ + 690 ;*"SWITCH" CALL USAGE CONTROL + 691 S^;*********************************************************************^ + 692 + 693 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 694 + 695 S^;*********************************************************************^ + 696 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 697 S^;*********************************************************************^ + 698 + 699 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 700 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 701 + 702 S^;*********************************************************************^ + 703 ;*SPECIAL FUTURE EXPANSION ROOM + 704 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 705 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 706 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 707 S^;*********************************************************************^ + 708 + 709 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 710 + 711 S^;*********************************************************************^ + 712 ;*END OF FIXED STORAGE + 713 S^;*********************************************************************^ + 714 + 715 030577 $ENDFX=&<777700>-1 + 716 030577 LOC $ENDFX + 717 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025 + + 718 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 + 719 + 720 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE + 721 + 722 000000 AC0= 0 + 723 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS + 724 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS + 725 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS + 726 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10) + 727 + 728 ;DTE20 DEVICE CODES + 729 + 730 000200 DTE== 200 ;DTE0 + 731 000204 DTE0== 204 + 732 000204 DTE1== 204 + 733 000210 DTE2== 210 + 734 000214 DTE3== 214 + 735 + 736 ;KL10 EPT COMMUNICATION AREA + 737 + 738 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS + 739 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS + 740 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS + 741 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS + 742 + 743 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG + 744 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG + 745 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION + 746 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT + 747 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT + 748 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD + 749 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER + 750 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE # + 751 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER + 752 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG + 753 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG + 754 + 755 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 2 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026 + + 756 ;SPECIAL "FIXED" REASSIGNMENTS + 757 + 758 030600 $$LOC=. ;SAVE CURRENT LOCATION + 759 + 760 030000 LOC 30000 + 761 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START + 762 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS + 763 + 764 000440 LOC 440 + 765 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD" + 766 000443 LOC 443 + 767 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL + 768 + 769 030057 LOC 30057 + 770 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND" + 771 + 772 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP + 773 + 774 000420 LOC 420 + 775 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL + 776 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW + 777 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW + 778 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3 + 779 000424 000000 000000 $$424: 0 ;MMUO + 780 000425 000000 000000 $$425: 0 ;MMUO PC + 781 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT + 782 000427 254 04 0 00 000427 $$427: HALT . + 783 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S + 784 000431 000000 000427 $$431: 427 + 785 000432 000000 000427 $$432: 427 + 786 000433 000000 000427 $$433: 427 + 787 000434 000000 000427 $$434: 427 + 788 000435 000000 000427 $$435: 427 + 789 000436 000000 000427 $$436: 427 + 790 000437 000000 000427 $$437: 427 + 791 + 792 000500 LOC 500 + 793 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD + 794 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC + 795 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC + 796 000503 254 04 0 00 000503 $$503: HALT . +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 3 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027 + + 797 030600 LOC $$LOC ;RESET CURRENT LOCATION + 798 + 799 ;SPECIAL STARTUP SEQUENCE + 800 + 801 030600 402 00 0 00 030037 $$START:SETZM USER + 802 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ? + 803 030602 603 00 0 00 010000 TLNE 0,USERF + 804 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD + 805 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ? + 806 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC + 807 030606 332 00 0 00 030037 SKIPE USER + 808 030607 254 00 0 00 030726 JRST START ;USER MODE, DON'T NEED CPU TYPE + 809 + 810 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ? + 811 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER + 812 030612 402 00 0 00 030516 SETZM KLTYP + 813 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10 + 814 030614 200 01 0 00 036415 MOVE 1,[1,,1] + 815 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS + 816 030616 316 01 0 00 036415 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10 + 817 030617 254 00 0 00 030726 JRST START ;KI10, NO ADDITIONAL SETUP + 818 + 819 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT + 820 030621 7 000 24 0 00 000000 CONI APR,0 + 821 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT + 822 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10 + 823 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD + 824 030625 402 00 0 00 000444 SETZM $DTFLG + 825 030626 402 00 0 00 000445 SETZM $DTCLK + 826 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE # + 827 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS + 828 030631 436 00 0 00 030672 ORM $$DTE1 + 829 030632 436 00 0 00 030704 ORM $$DTE2 + 830 030633 436 00 0 00 030706 ORM $$DTE3 + 831 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG + 832 030635 254 00 0 00 030726 JRST START + 833 + 834 030636 200 00 0 00 036416 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL + 835 030637 202 00 0 00 030643 MOVEM $SPB1 + 836 030640 254 00 0 00 030726 JRST START +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0028 + + 837 ;SPECIAL "BEGEND" ROUTINE + 838 + 839 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT + 840 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT + 841 030643 336 00 0 00 030037 $SPB1: SKIPN USER + 842 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE + 843 + 844 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ? + 845 030646 254 00 0 00 030737 JRST STARTA ;NO, KEEP RUNNING + 846 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ? + 847 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR + 848 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON" + 849 + 850 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG + 851 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC + 852 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT + 853 030655 332 00 0 00 030024 SKIPE ITRCNT + 854 030656 254 00 0 00 030737 JRST STARTA ;NOT COMPLETED YET + 855 030657 254 00 1 00 030012 JRST @RETURN ;DONE + 856 + 857 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT + 858 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED + 859 + 860 030662 335 00 0 00 030043 SKIPGE MONCTL + 861 030663 254 00 0 00 030737 JRST STARTA ;"DIAMON" CONTROL + 862 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS + 863 030665 202 00 0 00 000451 MOVEM 0,$DTCMD + 864 030666 402 00 0 00 000444 SETZM $DTFLG + 865 030667 336 00 0 00 030516 SKIPN KLTYP + 866 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 + 867 030671 332 00 0 00 030516 SKIPE KLTYP + 868 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000 + 869 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS + 870 030674 254 00 0 00 030673 JRST .-1 + 871 030675 254 00 0 00 030737 JRST STARTA ;KEEP RUNNING + 872 + 873 ;SPECIAL KL10 COMPLETED ROUTINE + 874 + 875 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN + 876 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON" + 877 + 878 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION + 879 030701 202 00 0 00 000451 MOVEM 0,$DTCMD + 880 030702 402 00 0 00 000444 SETZM $DTFLG + 881 030703 336 00 0 00 030516 SKIPN KLTYP + 882 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11 + 883 030705 332 00 0 00 030516 SKIPE KLTYP + 884 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000 + 885 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN + 886 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM + 887 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT. +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0029 + + 888 SUBTTL DIAGNOSTIC SECTION + 889 + 890 LALL + 891 + 892 030712 PGMNAM: ASCIZ / + 893 030712 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC # 8 [DAKAH] + 894 030713 055 061 060 040 113 + 895 030714 101 061 060 040 102 + 896 030715 101 123 111 103 040 + 897 030716 111 116 123 124 122 + 898 030717 125 103 124 111 117 + 899 030720 116 040 104 111 101 + 900 030721 107 116 117 123 124 + 901 030722 111 103 040 043 040 + 902 030723 070 040 133 104 101 + 903 030724 113 101 110 135 015 + 904 030725 012 000 000 000 000 / + 905 030726 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD + 906 030727 265 00 0 00 030730 JSP 0,.+1 ;GET FLAGS + 907 030730 603 00 0 00 010000 TLNE USERF ;IN USER MODE? + 908 030731 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD + 909 030732 336 00 0 00 030037 SKIPN USER + 910 030733 254 00 0 00 030737 JRST STARTA + 911 030734 051 03 0 00 030712 TTCALL 3,PGMNAM ;MENTION OUR NAME + 912 OUTSTR [ASCIZ / + 913 ?EXEC MODE DIAGNOSTIC ONLY + 914 030735 051 03 0 00 036417 /] ;TELL USER + 915 030736 254 04 0 00 030736 HALT . ;AND DIE... + 916 + 917 030737 STARTA: + 918 030737 402 00 0 00 036671 ST: SETZM MATPOF# ;CLR MA TRAP OFFSET FLAG. + 919 030740 332 01 0 00 035772 MOD: SKIPE 1,SAV40 ;RESTORE THESE LOC IF PROG + 920 030741 202 01 0 00 010040 MOVEM 1,10040 ;IF PROG MODIFIED + 921 030742 332 01 0 00 035773 SKIPE 1,SAV41 + 922 030743 202 01 0 00 010041 MOVEM 1,10041 + 923 030744 332 01 0 00 035774 SKIPE 1,SAV42 + 924 030745 202 01 0 00 010042 MOVEM 1,10042 + 925 030746 332 01 0 00 035775 SKIPE 1,SAV43 + 926 030747 202 01 0 00 010043 MOVEM 1,10043 + 927 030750 7 000 24 0 00 036667 CONI CPSAV# + 928 030751 7 004 24 0 00 036673 CONI PI,PISAV# + 929 + 930 030752 7 000 04 0 00 000000 DATAI ;DO WE HAVE FP + 931 030753 335 00 0 00 030043 SKIPGE MONCTL ;MONITR CONTROL ? + 932 030754 200 00 0 00 030043 MOVE 0,MONCTL ;YES + 933 030755 464 00 0 00 036426 ORCM [1B35] + 934 030756 452 00 0 00 036670 SETCAM FPTRAP# + 935 030757 476 00 0 00 036672 SETOM PI7SYS# + 936 + 937 030760 7 000 04 0 00 000000 DATAI ;IS THIS MACH WITH USER + 938 030761 335 00 0 00 030043 SKIPGE MONCTL ;MONITR CONTROL ? + 939 030762 200 00 0 00 030043 MOVE 0,MONCTL ;YES + 940 030763 464 00 0 00 036427 ORCM [1B34] + 941 030764 452 00 0 00 036674 SETCAM USMOD# + 942 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0030 + + 943 030765 332 00 0 00 036671 SKIPE MATPOF# ;START AT 3776? + 944 030766 254 00 0 00 036352 JRST MOD200 ;YES. GO CK MA 29 SET. + 945 + 946 ;MACH/OPTION DEPENDENT + 947 ;TEST UU0 + 948 + 949 RETURN MOD1 ^;TEST UUO FOR NOT GOING TO 60 + 950 + 951 030767 200 02 0 00 036430 MOVE 2,[JSP 2,MOD1] + 952 030770 202 02 0 00 000041 MOVEM 2,41 + 953 030771 477 02 0 00 000040 SETOB 2,40 + 954 + 955 030772 200 01 0 00 036431 MOVE 1,[JRST .+4] ;IF THIS ROUT STOPS THE + 956 030773 200 02 0 00 036432 MOVE 2,[JSP MOD1+1] ;TRAP WAS TO 60. IF UU0 HANG + 957 030774 202 02 0 00 000061 MOVEM 2,61 ;THE MACH, CHECK XCTF0 AND + 958 030775 000000 000000 0 ;UU0F0 FLAGS FOR NOT SETING + 959 030776 334 00 0 00 000000 MOD1: SKIPA ;CHECK MA 31 SET + 960 STOP ^;IR 1XX GATE FAIL + 961 + 962 030777 254 04 0 00 031000 HALT .+1 + 963 031000 320 00 0 00 031001 JUMP .+1 + 964 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0031 + + 965 + 966 031001 MOD2: RETURN MOD3 ^;TEST 40 TO MA LOGIC (UU0) + 967 + 968 031001 200 02 0 00 036433 MOVE 2,[JSP 2,MOD3] + 969 031002 202 02 0 00 000041 MOVEM 2,41 + 970 031003 477 02 0 00 000040 SETOB 2,40 + 971 + 972 031004 200 01 0 00 036434 MOVE 1,[JRST .+3] ;IF 40 WAS NOT (J) TO MA + 973 031005 000000 000000 0 ;THIS UU0 WILL STORE IN LOC 0 + 974 031006 334 00 0 00 000000 MOD3: SKIPA ;CHECK MA-30 SET + 975 STOP ^;ON THE MA1 PRINT + 976 + 977 031007 254 04 0 00 031010 HALT .+1 + 978 031010 320 00 0 00 031011 JUMP .+1 + 979 + 980 + 981 031011 MOD4: RETURN MOD5 ^;IF THE MA FROM AR + 982 + 983 031011 200 02 0 00 036435 MOVE 2,[JSP 2,MOD5] + 984 031012 202 02 0 00 000041 MOVEM 2,41 + 985 031013 477 02 0 00 000040 SETOB 2,40 + 986 + 987 031014 200 02 0 00 036436 MOVE 2,[JSP MOD5+1] ;INHIBIT (AT6) FAILED THE + 988 031015 202 00 0 00 000061 MOVEM 61 ;UU0 WOULD STORE IN E ORED + 989 031016 000000 000020 20 ;WITH 40 RATHER THAN C(40) + 990 031017 334 00 0 00 000000 MOD5: SKIPA ;MA FM AR(J) CAME UP CHECK + 991 STOP ^;AND OF AT6-IR UU0 ON MA1 PRINT + 992 + 993 031020 254 04 0 00 031021 HALT .+1 + 994 031021 320 00 0 00 031022 JUMP .+1 + 995 + 996 + 997 031022 MOD6: RETURN MOD7 ^;TEST UU0 ABILITY TO STORE + 998 + 999 031022 200 02 0 00 036437 MOVE 2,[JSP 2,MOD7] + 1000 031023 202 02 0 00 000041 MOVEM 2,41 + 1001 031024 477 02 0 00 000040 SETOB 2,40 + 1002 + 1003 031025 000000 000000 0 ;IF C(40) UNCHANGED SCE FAIL + 1004 031026 316 02 0 00 000040 MOD7: CAMN 2,40 ;CK IR UU0 INPUT TO SCE + 1005 STOP ^;ON S2 PRINT + 1006 + 1007 031027 254 04 0 00 031030 HALT .+1 + 1008 031030 320 00 0 00 031031 JUMP .+1 + 1009 + 1010 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0032 + + 1011 031031 MOD8: RETURN MOD9 ^;TEST SACINH FOR UU0 + 1012 + 1013 031031 200 02 0 00 036440 MOVE 2,[JSP 2,MOD9] + 1014 031032 202 02 0 00 000041 MOVEM 2,41 + 1015 031033 477 02 0 00 000040 SETOB 2,40 + 1016 + 1017 031034 474 00 0 00 000000 SETO ;IF FAIL WILL MODIFY AC + 1018 031035 000000 000000 0 ;SACINH THE IR UU0 INPUT + 1019 031036 312 00 0 00 036441 MOD9: CAME [-1] ;ON S2 PRINT FAILED + 1020 STOP^ + 1021 031037 254 04 0 00 031040 HALT .+1 + 1022 031040 320 00 0 00 031041 JUMP .+1 + 1023 ^ + 1024 + 1025 031041 MOD10: RETURN MOD11 ^;TEST UU0 FACINH, IF THE + 1026 + 1027 031041 200 02 0 00 036442 MOVE 2,[JSP 2,MOD11] + 1028 031042 202 02 0 00 000041 MOVEM 2,41 + 1029 031043 477 02 0 00 000040 SETOB 2,40 + 1030 + 1031 031044 201 00 0 00 777777 MOVEI -1 ;UU0 FETCHES A AC THE + 1032 031045 000000 000000 0 ;AC WILL BE STORED + 1033 031046 316 00 0 00 000040 MOD11: CAMN 40 ;FAC INH THE IR UU0 INPUT + 1034 STOP ^;ON F2 PRINT FAIL + 1035 + 1036 031047 254 04 0 00 031050 HALT .+1 + 1037 031050 320 00 0 00 031051 JUMP .+1 + 1038 + 1039 + 1040 031051 MOD12: RETURN MOD13 ^;TEST UU0 IR TO ARLT + 1041 + 1042 031051 200 02 0 00 036443 MOVE 2,[JSP 2,MOD13] + 1043 031052 202 02 0 00 000041 MOVEM 2,41 + 1044 031053 477 02 0 00 000040 SETOB 2,40 + 1045 + 1046 031054 077740 000000 XWD 077740,0 ;THE AND OF (ET0,IR UU0) + 1047 031055 336 00 0 00 000040 MOD13: SKIPN 40 ;ON ARC-2 PRINT FAILED + 1048 STOP^ + 1049 031056 254 04 0 00 031057 HALT .+1 + 1050 031057 320 00 0 00 031060 JUMP .+1 + 1051 ^ + 1052 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 4 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0033 + + 1053 031060 MOD14: RETURN MOD15 ^;UU0 FAIL + 1054 + 1055 031060 200 02 0 00 036444 MOVE 2,[JSP 2,MOD15] + 1056 031061 202 02 0 00 000041 MOVEM 2,41 + 1057 031062 477 02 0 00 000040 SETOB 2,40 + 1058 + 1059 031063 000740 000000 XWD 000740,0 ;CHECK ARLT FM FLAGS (J) B + 1060 031064 336 00 0 00 000040 MOD15: SKIPN 40 ;THE PA ON ARC-2 PRINT + 1061 STOP^ + 1062 031065 254 04 0 00 031066 HALT .+1 + 1063 031066 320 00 0 00 031067 JUMP .+1 + 1064 ^ + 1065 + 1066 031067 MOD16: RETURN MOD17 ^;UU0 FAIL + 1067 + 1068 031067 200 02 0 00 036445 MOVE 2,[JSP 2,MOD17] + 1069 031070 202 02 0 00 000041 MOVEM 2,41 + 1070 031071 477 02 0 00 000040 SETOB 2,40 + 1071 + 1072 031072 077000 000000 XWD 077000,0 ;CHECK ARLT FM FLAGS (J) A + 1073 031073 336 00 0 00 000040 MOD17: SKIPN 40 ;THE PA ON ARC-2 PRINT + 1074 STOP^ + 1075 031074 254 04 0 00 031075 HALT .+1 + 1076 031075 320 00 0 00 031076 JUMP .+1 + 1077 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 5 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0034 + + 1078 + 1079 000040 ZZ=40 + 1080 MOD18: REPEAT ^D10, + 1081 < RETURN .+4 ;TEST IRLT TO AR + 1082 XWD ZZ,0 + 1083 SKIPN 40 + 1084 STOP + 1085 ZZ=ZZ+ZZ + 1086 > + 1087 RETURN .+4 ^ + 1088 031076 200 02 0 00 036446 MOVE 2,[JSP 2,.+4] + 1089 031077 202 02 0 00 000041 MOVEM 2,41 + 1090 031100 477 02 0 00 000040 SETOB 2,40 + 1091 ^;TEST IRLT TO AR + 1092 031101 000040 000000 XWD ZZ,0 + 1093 031102 336 00 0 00 000040 SKIPN 40 + 1094 STOP^ + 1095 031103 254 04 0 00 031104 HALT .+1 + 1096 031104 320 00 0 00 031105 JUMP .+1 + 1097 ^ + 1098 000100 ZZ=ZZ+ZZ + 1099 + 1100 RETURN .+4 ^ + 1101 031105 200 02 0 00 036447 MOVE 2,[JSP 2,.+4] + 1102 031106 202 02 0 00 000041 MOVEM 2,41 + 1103 031107 477 02 0 00 000040 SETOB 2,40 + 1104 ^;TEST IRLT TO AR + 1105 031110 000100 000000 XWD ZZ,0 + 1106 031111 336 00 0 00 000040 SKIPN 40 + 1107 STOP^ + 1108 031112 254 04 0 00 031113 HALT .+1 + 1109 031113 320 00 0 00 031114 JUMP .+1 + 1110 ^ + 1111 000200 ZZ=ZZ+ZZ + 1112 + 1113 RETURN .+4 ^ + 1114 031114 200 02 0 00 036450 MOVE 2,[JSP 2,.+4] + 1115 031115 202 02 0 00 000041 MOVEM 2,41 + 1116 031116 477 02 0 00 000040 SETOB 2,40 + 1117 ^;TEST IRLT TO AR + 1118 031117 000200 000000 XWD ZZ,0 + 1119 031120 336 00 0 00 000040 SKIPN 40 + 1120 STOP^ + 1121 031121 254 04 0 00 031122 HALT .+1 + 1122 031122 320 00 0 00 031123 JUMP .+1 + 1123 ^ + 1124 000400 ZZ=ZZ+ZZ + 1125 + 1126 RETURN .+4 ^ + 1127 031123 200 02 0 00 036451 MOVE 2,[JSP 2,.+4] + 1128 031124 202 02 0 00 000041 MOVEM 2,41 + 1129 031125 477 02 0 00 000040 SETOB 2,40 + 1130 ^;TEST IRLT TO AR + 1131 031126 000400 000000 XWD ZZ,0 + 1132 031127 336 00 0 00 000040 SKIPN 40 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 5-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0035 + + 1133 STOP^ + 1134 031130 254 04 0 00 031131 HALT .+1 + 1135 031131 320 00 0 00 031132 JUMP .+1 + 1136 ^ + 1137 001000 ZZ=ZZ+ZZ + 1138 + 1139 RETURN .+4 ^ + 1140 031132 200 02 0 00 036452 MOVE 2,[JSP 2,.+4] + 1141 031133 202 02 0 00 000041 MOVEM 2,41 + 1142 031134 477 02 0 00 000040 SETOB 2,40 + 1143 ^;TEST IRLT TO AR + 1144 031135 001000 000000 XWD ZZ,0 + 1145 031136 336 00 0 00 000040 SKIPN 40 + 1146 STOP^ + 1147 031137 254 04 0 00 031140 HALT .+1 + 1148 031140 320 00 0 00 031141 JUMP .+1 + 1149 ^ + 1150 002000 ZZ=ZZ+ZZ + 1151 + 1152 RETURN .+4 ^ + 1153 031141 200 02 0 00 036453 MOVE 2,[JSP 2,.+4] + 1154 031142 202 02 0 00 000041 MOVEM 2,41 + 1155 031143 477 02 0 00 000040 SETOB 2,40 + 1156 ^;TEST IRLT TO AR + 1157 031144 002000 000000 XWD ZZ,0 + 1158 031145 336 00 0 00 000040 SKIPN 40 + 1159 STOP^ + 1160 031146 254 04 0 00 031147 HALT .+1 + 1161 031147 320 00 0 00 031150 JUMP .+1 + 1162 ^ + 1163 004000 ZZ=ZZ+ZZ + 1164 + 1165 RETURN .+4 ^ + 1166 031150 200 02 0 00 036454 MOVE 2,[JSP 2,.+4] + 1167 031151 202 02 0 00 000041 MOVEM 2,41 + 1168 031152 477 02 0 00 000040 SETOB 2,40 + 1169 ^;TEST IRLT TO AR + 1170 031153 004000 000000 XWD ZZ,0 + 1171 031154 336 00 0 00 000040 SKIPN 40 + 1172 STOP^ + 1173 031155 254 04 0 00 031156 HALT .+1 + 1174 031156 320 00 0 00 031157 JUMP .+1 + 1175 ^ + 1176 010000 ZZ=ZZ+ZZ + 1177 + 1178 RETURN .+4 ^ + 1179 031157 200 02 0 00 036455 MOVE 2,[JSP 2,.+4] + 1180 031160 202 02 0 00 000041 MOVEM 2,41 + 1181 031161 477 02 0 00 000040 SETOB 2,40 + 1182 ^;TEST IRLT TO AR + 1183 031162 010000 000000 XWD ZZ,0 + 1184 031163 336 00 0 00 000040 SKIPN 40 + 1185 STOP^ + 1186 031164 254 04 0 00 031165 HALT .+1 + 1187 031165 320 00 0 00 031166 JUMP .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 5-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0036 + + 1188 ^ + 1189 020000 ZZ=ZZ+ZZ + 1190 + 1191 RETURN .+4 ^ + 1192 031166 200 02 0 00 036456 MOVE 2,[JSP 2,.+4] + 1193 031167 202 02 0 00 000041 MOVEM 2,41 + 1194 031170 477 02 0 00 000040 SETOB 2,40 + 1195 ^;TEST IRLT TO AR + 1196 031171 020000 000000 XWD ZZ,0 + 1197 031172 336 00 0 00 000040 SKIPN 40 + 1198 STOP^ + 1199 031173 254 04 0 00 031174 HALT .+1 + 1200 031174 320 00 0 00 031175 JUMP .+1 + 1201 ^ + 1202 040000 ZZ=ZZ+ZZ + 1203 + 1204 RETURN .+4 ^ + 1205 031175 200 02 0 00 036457 MOVE 2,[JSP 2,.+4] + 1206 031176 202 02 0 00 000041 MOVEM 2,41 + 1207 031177 477 02 0 00 000040 SETOB 2,40 + 1208 ^;TEST IRLT TO AR + 1209 031200 040000 000000 XWD ZZ,0 + 1210 031201 336 00 0 00 000040 SKIPN 40 + 1211 STOP^ + 1212 031202 254 04 0 00 031203 HALT .+1 + 1213 031203 320 00 0 00 031204 JUMP .+1 + 1214 ^ + 1215 100000 ZZ=ZZ+ZZ + 1216 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 6 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0037 + + 1217 031204 MOD19: RETURN MOD19A ^;TEST PROPER STORAGE + 1218 + 1219 031204 200 02 0 00 036460 MOVE 2,[JSP 2,MOD19A] + 1220 031205 202 02 0 00 000041 MOVEM 2,41 + 1221 031206 477 02 0 00 000040 SETOB 2,40 + 1222 + 1223 031207 000000 000000 0 ;OF UU0 + 1224 031210 332 00 0 00 000040 MOD19A: SKIPE 40 + 1225 STOP^ + 1226 031211 254 04 0 00 031212 HALT .+1 + 1227 031212 320 00 0 00 031213 JUMP .+1 + 1228 ^ + 1229 + 1230 031213 MOD20: RETURN MOD20A ^;CK FOR STORING OF E + 1231 + 1232 031213 200 02 0 00 036461 MOVE 2,[JSP 2,MOD20A] + 1233 031214 202 02 0 00 000041 MOVEM 2,41 + 1234 031215 477 02 0 00 000040 SETOB 2,40 + 1235 + 1236 031216 000000 777777 XWD 0,-1 ;ON A UU0 + 1237 031217 200 00 0 00 000040 MOD20A: MOVE 40 + 1238 031220 302 00 0 00 777777 CAIE -1 + 1239 STOP^ + 1240 031221 254 04 0 00 031222 HALT .+1 + 1241 031222 320 00 0 00 031223 JUMP .+1 + 1242 ^ + 1243 + 1244 031223 MOD21: RETURN MOD21A ^;CK FOR STORING OF E + 1245 + 1246 031223 200 02 0 00 036462 MOVE 2,[JSP 2,MOD21A] + 1247 031224 202 02 0 00 000041 MOVEM 2,41 + 1248 031225 477 02 0 00 000040 SETOB 2,40 + 1249 + 1250 031226 077740 000000 XWD 077740,0 ;ON A UU0 + 1251 031227 200 00 0 00 000040 MOD21A: MOVE 40 + 1252 031230 312 00 0 00 036463 CAME [XWD 077740,0] + 1253 STOP^ + 1254 031231 254 04 0 00 031232 HALT .+1 + 1255 031232 320 00 0 00 031233 JUMP .+1 + 1256 ^ + 1257 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 7 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0038 + + 1258 031233 MOD22: RETURN MOD22A ^;CK FOR STORING OF + 1259 + 1260 031233 200 02 0 00 036464 MOVE 2,[JSP 2,MOD22A] + 1261 031234 202 02 0 00 000041 MOVEM 2,41 + 1262 031235 477 02 0 00 000040 SETOB 2,40 + 1263 + 1264 031236 077740 777777 XWD 077740,-1 ;E AND IR ON UU0 + 1265 031237 200 00 0 00 000040 MOD22A: MOVE 40 + 1266 031240 312 00 0 00 036465 CAME [XWD 077740,-1] + 1267 STOP^ + 1268 031241 254 04 0 00 031242 HALT .+1 + 1269 031242 320 00 0 00 031243 JUMP .+1 + 1270 ^ + 1271 + 1272 031243 MOD23: RETURN MOD23A ^;UU0 TEST THE PC+1 + 1273 + 1274 031243 200 02 0 00 036466 MOVE 2,[JSP 2,MOD23A] + 1275 031244 202 02 0 00 000041 MOVEM 2,41 + 1276 031245 477 02 0 00 000040 SETOB 2,40 + 1277 + 1278 031246 000000 000000 0 ;INHIBIT FEATURE LOC 41 + 1279 031247 405 02 0 00 777777 MOD23A: ANDI 2,-1 ;CONTAINS TSP 2,X + 1280 031250 306 02 0 00 031250 CAIN 2,. ;PC+1 INH THE IR UU0 INPUT + 1281 STOP ^;FAILED. SEE PC1 PRINT + 1282 + 1283 031251 254 04 0 00 031252 HALT .+1 + 1284 031252 320 00 0 00 031253 JUMP .+1 + 1285 + 1286 + 1287 031253 MOD24: RETURN MOD24A ^;PC STORED IN CORRECTLY + 1288 + 1289 031253 200 02 0 00 036467 MOVE 2,[JSP 2,MOD24A] + 1290 031254 202 02 0 00 000041 MOVEM 2,41 + 1291 031255 477 02 0 00 000040 SETOB 2,40 + 1292 + 1293 031256 000000 777777 XWD 0,-1 ;FROM THE JSP AT 41 + 1294 031257 405 02 0 00 777777 MOD24A: ANDI 2,-1 ;ON A UUO INST + 1295 031260 302 02 0 00 031257 CAIE 2,.-1 + 1296 STOP^ + 1297 031261 254 04 0 00 031262 HALT .+1 + 1298 031262 320 00 0 00 031263 JUMP .+1 + 1299 ^ + 1300 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 8 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0039 + + 1301 031263 MOD25: ;SET PRIVILEGE TO FLAG + 1302 ;SET UU0 TRAP + 1303 ;TEST IOT INST FOR + 1304 ;NOT TRAPING. SEE IR-2 + 1305 ;PRINT IR UU0 CAME UP + 1306 031263 MOD26: ;CK AND OF IR IOTA, NOT ALLOW, ETC + 1307 + 1308 031263 MOD27: SFLAG 0 ^;MAKE SURE EX IOT USER=0 + 1309 + 1310 031263 205 01 0 00 000000 MOVSI 1,0 + 1311 031264 255 17 0 00 031265 JFCL 17,.+1 + 1312 031265 254 02 0 01 031266 JRST 2,.+1(1) + 1313 + 1314 RETURN MOD28 ^;CK FOR NOT TRAP ON IOT + 1315 + 1316 031266 200 02 0 00 036470 MOVE 2,[JSP 2,MOD28] + 1317 031267 202 02 0 00 000041 MOVEM 2,41 + 1318 031270 477 02 0 00 000040 SETOB 2,40 + 1319 + 1320 031271 7 000 24 0 00 000000 CONI ;IF IOTS TRAP NOW THE + 1321 031272 300 00 0 00 000000 CAI ;AND GATE EX USER (0), EX IOT USER + 1322 031273 334 00 0 00 000000 SKIPA ;DID NOT RESPOND TO EX USER (0) + 1323 031274 MOD28: STOP ^;SEE EX ALLOW IOTS ON EX PRINT + 1324 + 1325 031274 254 04 0 00 031275 HALT .+1 + 1326 031275 320 00 0 00 031276 JUMP .+1 + 1327 + 1328 + 1329 031276 474 01 0 00 000000 MOD29: SETO 1, ;THE IOTS FAIL TO STORE C(E) + 1330 031277 7 000 04 0 00 000001 DATAI 1 ;CHECK IR IOT ON IR2 PRINT + 1331 031300 7 000 24 0 00 000001 CONI 1 ;LOOKS LIKE IR DECODE FAILED + 1332 031301 316 01 0 00 036441 CAMN 1,[-1] + 1333 STOP^ + 1334 031302 254 04 0 00 031303 HALT .+1 + 1335 031303 320 00 0 00 031304 JUMP .+1 + 1336 ^ + 1337 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 9 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0040 + + 1338 031304 200 01 0 00 036471 MOD30: MOVE 1,[123456654321] ;CHECK SCE FOR DATAI + 1339 031305 7 000 04 0 00 000001 DATAI 1 ;THE CONTENTS OF LOC1 + 1340 031306 316 01 0 00 036471 CAMN 1,[123456654321] ;WERE NOT MODIFIED. SEE + 1341 STOP ^;S1 PRINT SCE AND DECODE ON IOT + 1342 + 1343 031307 254 04 0 00 031310 HALT .+1 + 1344 031310 320 00 0 00 031311 JUMP .+1 + 1345 + 1346 + 1347 031311 200 01 0 00 036471 MOD31: MOVE 1,[123456654321] ;CHECK SCE FOR CONI. THE + 1348 031312 7 000 24 0 00 000001 CONI 1 ;CONTENTS OF LOC1 WERE NOT + 1349 031313 316 01 0 00 036471 CAMN 1,[123456654321] ;MODIFIED. SEE S2 PRINT SCE + 1350 STOP ^;AND DECODE ON IOT PRINT + 1351 + 1352 031314 254 04 0 00 031315 HALT .+1 + 1353 031315 320 00 0 00 031316 JUMP .+1 + 1354 + 1355 + 1356 031316 474 00 0 00 000000 MOD32: SETO ;SACINH FAIL FOR INST + 1357 031317 7 000 24 0 00 000001 CONI 1 ;CONI FAILED. CHECK + 1358 031320 312 00 0 00 036441 CAME [-1] ;IR IOT INPUT TO SACINH + 1359 STOP ^;ON THE S2 PRINT + 1360 + 1361 031321 254 04 0 00 031322 HALT .+1 + 1362 031322 320 00 0 00 031323 JUMP .+1 + 1363 + 1364 + 1365 031323 7 774 20 0 00 000000 MOD33: CONO ME,0 ;CLEAR LAST DEVICE + 1366 031324 7 774 24 0 00 000002 CONI ME,2 ;AR CLEAR AT(ET0)FAILED + 1367 031325 306 02 0 00 000002 CAIN 2,2 ;ON INST CONT CK AR + 1368 STOP ^;CLEAR ETO, CONI ON ARC-2 PRINT + 1369 + 1370 031326 254 04 0 00 031327 HALT .+1 + 1371 031327 320 00 0 00 031330 JUMP .+1 + 1372 + 1373 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 10 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0041 + + 1374 031330 7 774 14 0 00 036425 MOD34: DATAO ME,[0] ;AR CLR ON A DATAI + 1375 031331 7 774 04 0 00 000003 DATAI ME,3 ;INST FAILED CHECK + 1376 031332 306 03 0 00 000003 CAIN 3,3 ;IOT DATAI INPUT ON THE + 1377 STOP ^;OR GATE TO AR CLR. SEE ARC-2 PRINT + 1378 + 1379 031333 254 04 0 00 031334 HALT .+1 + 1380 031334 320 00 0 00 031335 JUMP .+1 + 1381 + 1382 + 1383 031335 400 00 0 00 000000 SETZ ;CONSZ FAIL TO SKIP. CK + 1384 031336 7 000 30 0 00 000000 CONSZ ;PC+1 AT AND OF AD=0, IOT CONSZ, + 1385 STOP ^;IOT T5 ON PC1 PRINT + 1386 + 1387 031337 254 04 0 00 031340 HALT .+1 + 1388 031340 320 00 0 00 031341 JUMP .+1 + 1389 + 1390 + 1391 031341 7 774 20 0 00 000000 CONO ME,0 ;CONSZ FAIL TO SKIP CK + 1392 031342 7 774 30 0 00 700000 CONSZ ME,700000 ;FOR NO AR CLR AT (ETO). SEE ARC-2 + 1393 STOP ^;PRINT THE IOT CONSX INPUT + 1394 + 1395 031343 254 04 0 00 031344 HALT .+1 + 1396 031344 320 00 0 00 031345 JUMP .+1 + 1397 + 1398 + 1399 031345 7 774 20 0 00 000000 CONO ME,0 ;CONSO SKIPED. CHECK PC+1 + 1400 031346 7 774 34 0 00 000000 CONSO ME,0 ;(IOT T5,AD=0,IOT CONSO,IOT CONSZ + 1401 031347 334 00 0 00 000000 SKIPA ;AND GATES) ON PC1 PRINT + 1402 STOP^ + 1403 031350 254 04 0 00 031351 HALT .+1 + 1404 031351 320 00 0 00 031352 JUMP .+1 + 1405 ^ + 1406 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 11 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0042 + + 1407 031352 400 01 0 00 000000 MOD35: SETZ 1, ;CHECK POINTER INC ON IOT BLK + 1408 031353 7 774 10 0 00 000001 BLKO ME,1 ;IF C(1)=0 THEN AR FM AD(J) (ET0) + 1409 031354 300 00 0 00 000000 CAI ;ON ARC-3 PRINT, OR AD+1 BOTH (FT9) + 1410 031355 300 00 0 00 000000 CAI ;ON AD2 PRINT FAILED + 1411 031356 312 01 0 00 036415 CAME 1,[XWD 1,1] ;IF IR 12 FAIL TO SET, PROG + 1412 STOP ^;BLOWS UP + 1413 + 1414 031357 254 04 0 00 031360 HALT .+1 + 1415 031360 320 00 0 00 031361 JUMP .+1 + 1416 + 1417 031361 400 01 0 00 000000 MOD36: SETZ 1, ;PC+1 INH FOR BLK FAILED + 1418 031362 7 774 10 0 00 000001 BLKO ME,1 ;CHECK IOT BLK INPUT TO + 1419 031363 300 00 0 00 000000 CAI ;PC+1 INH ON THE PC1 PRINT + 1420 031364 334 00 0 00 000000 SKIPA + 1421 STOP^ + 1422 031365 254 04 0 00 031366 HALT .+1 + 1423 031366 320 00 0 00 031367 JUMP .+1 + 1424 ^ + 1425 031367 400 01 0 00 000000 MOD37: SETZ 1, ;BLKO PC+1 AT ET0 TIME + 1426 031370 7 774 10 0 00 000001 BLKO ME,1 ;FAILED. CHECK THE AND GATE + 1427 STOP ^;BLK, CYC(0) CRY(0) ON PC1 PRINT + 1428 + 1429 031371 254 04 0 00 031372 HALT .+1 + 1430 031372 320 00 0 00 031373 JUMP .+1 + 1431 + 1432 031373 474 01 0 00 000000 MOD38: SETO 1, ;BLKO PERFORMED A SKIP WHEN + 1433 031374 7 774 10 0 00 000001 BLKO ME,1 ;END CRY0 SHOULD=1 + 1434 031375 334 00 0 00 000000 SKIPA ;CK PC+1,SEE ABOVE ROUTINE + 1435 STOP^ + 1436 031376 254 04 0 00 031377 HALT .+1 + 1437 031377 320 00 0 00 031400 JUMP .+1 + 1438 ^ + 1439 031400 7 004 20 0 00 010000 MOD39: CONO PI,10000 ;JUST IN CASE + 1440 031401 7 000 20 0 00 435447 CONO 435447 ;SET SOME CPA FLAGS + 1441 031402 7 000 24 0 00 000000 CONI 0 ;(1) DID FLAGS SET? NO CONO FAIL + 1442 031403 336 00 0 00 000000 SKIPN 0 ;YES: CONI FAIL CK IOB TO AR + 1443 STOP ^;AND MANY OTHERS. IE SINGLE STEP + 1444 + 1445 031404 254 04 0 00 031405 HALT .+1 + 1446 031405 320 00 0 00 031406 JUMP .+1 + 1447 + 1448 031406 7 000 20 0 00 000000 MOD40: CONO ;PIA 35 FAIL TO SET (CPU) + 1449 031407 7 000 20 0 00 000001 CONO 1 ;OR READ SINGLE STEP + 1450 031410 7 000 24 0 00 000000 CONI ;SEE CPA PRINT + 1451 031411 606 00 0 00 000001 TRNN 1 + 1452 STOP^ + 1453 031412 254 04 0 00 031413 HALT .+1 + 1454 031413 320 00 0 00 031414 JUMP .+1 + 1455 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 12 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0043 + + 1456 + 1457 031414 7 000 20 0 00 000000 MOD41: CONO ;PIA 3+(CFU) FAIL TO SET + 1458 031415 7 000 20 0 00 000002 CONO 2 ;OR READ. SEE CPA PRINT + 1459 031416 7 000 24 0 00 000000 CONI ;SINGLE STEP + 1460 031417 606 00 0 00 000002 TRNN 2 + 1461 STOP^ + 1462 031420 254 04 0 00 031421 HALT .+1 + 1463 031421 320 00 0 00 031422 JUMP .+1 + 1464 ^ + 1465 + 1466 031422 7 000 20 0 00 000000 MOD42: CONO ;PIA 33 (CPU) FAIL TO SET + 1467 031423 7 000 20 0 00 000004 CONO 4 ;OR READ. SEE CPA PRINT + 1468 031424 7 000 24 0 00 000000 CONI ;SINGLE STEP + 1469 031425 606 00 0 00 000004 TRNN 4 + 1470 STOP^ + 1471 031426 254 04 0 00 031427 HALT .+1 + 1472 031427 320 00 0 00 031430 JUMP .+1 + 1473 ^ + 1474 + 1475 031430 7 000 20 0 00 000001 MOD43: CONO 1 ;PIA 35 (CPU) FAIL TO CLEAR + 1476 031431 7 000 20 0 00 000000 CONO ;OR READ INCORRECT + 1477 031432 7 000 24 0 00 000000 CONI ;SEE CPA PRINT + 1478 031433 602 00 0 00 000001 TRNE 1 ;SINGLE STEP + 1479 STOP^ + 1480 031434 254 04 0 00 031435 HALT .+1 + 1481 031435 320 00 0 00 031436 JUMP .+1 + 1482 ^ + 1483 + 1484 031436 7 000 20 0 00 000002 MOD44: CONO 2 ;PIA 34 (CPU) FAIL TO CLEAR + 1485 031437 7 000 20 0 00 000000 CONO ;OR READ INCORRECTLY + 1486 031440 7 000 24 0 00 000000 CONI ;SEE CPA PRINT + 1487 031441 602 00 0 00 000002 TRNE 2 ;SINGLE STEP + 1488 STOP^ + 1489 031442 254 04 0 00 031443 HALT .+1 + 1490 031443 320 00 0 00 031444 JUMP .+1 + 1491 ^ + 1492 + 1493 031444 7 000 20 0 00 000004 MOD45: CONO 4 ;PIA 33 (CPU) FAIL TO CLEAR + 1494 031445 7 000 20 0 00 000000 CONO ;OR READ INCORRECTLY + 1495 031446 7 000 24 0 00 000000 CONI ;SEE CPA PRINT + 1496 031447 602 00 0 00 000004 TRNE 4 ;SINGLE STEP + 1497 STOP^ + 1498 031450 254 04 0 00 031451 HALT .+1 + 1499 031451 320 00 0 00 031452 JUMP .+1 + 1500 ^ + 1501 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 13 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0044 + + 1502 031452 7 000 20 0 00 000007 MOD46: CONO 7 ;SET SOME CP FLAGS + 1503 031453 7 000 34 0 00 000000 CONSO ;CONSO FAILED CK + 1504 031454 334 00 0 00 000000 SKIPA + 1505 STOP^ + 1506 031455 254 04 0 00 031456 HALT .+1 + 1507 031456 320 00 0 00 031457 JUMP .+1 + 1508 ^ + 1509 031457 7 000 20 0 00 000007 MOD47: CONO 7 ;CONSO FAILED + 1510 031460 7 000 34 0 00 000007 CONSO 7 + 1511 STOP^ + 1512 031461 254 04 0 00 031462 HALT .+1 + 1513 031462 320 00 0 00 031463 JUMP .+1 + 1514 ^ + 1515 031463 7 000 20 0 00 000007 MOD48: CONO 7 ;CONSZ FAIL + 1516 031464 7 000 30 0 00 000007 CONSZ 7 ;CHECK PC+1 AT AND + 1517 031465 334 00 0 00 000000 SKIPA ;OF AD=0, CONSZ, IOT T5 + 1518 STOP ^;ON PC1 PRINT + 1519 + 1520 031466 254 04 0 00 031467 HALT .+1 + 1521 031467 320 00 0 00 031470 JUMP .+1 + 1522 + 1523 031470 7 000 20 0 00 000040 MOD50: CONO 40 ;CPU AROV ENABLE + 1524 031471 7 000 20 0 00 000020 CONO 20 ;TRY TO SET + 1525 031472 7 000 34 0 00 000020 CONSO 20 + 1526 STOP ^;IOB OR FLOP + 1527 + 1528 031473 254 04 0 00 031474 HALT .+1 + 1529 031474 320 00 0 00 031475 JUMP .+1 + 1530 + 1531 031475 7 000 20 0 00 000020 CONO 20 ;SET AROV EN + 1532 031476 7 000 20 0 00 000000 CONO ;CK FOR NOT CLEARING + 1533 031477 7 000 34 0 00 000020 CONSO 20 + 1534 STOP^ + 1535 031500 254 04 0 00 031501 HALT .+1 + 1536 031501 320 00 0 00 031502 JUMP .+1 + 1537 ^ + 1538 031502 7 000 20 0 00 000020 CONO 20 ;SET AROV EN + 1539 031503 7 000 20 0 00 000040 CONO 40 ;TRY TO CLEAR + 1540 031504 7 000 30 0 00 000020 CONSZ 20 + 1541 STOP^ + 1542 031505 254 04 0 00 031506 HALT .+1 + 1543 031506 320 00 0 00 031507 JUMP .+1 + 1544 ^ + 1545 031507 7 000 20 0 00 000040 CONO 40 ;CLEAR AROV EN + 1546 031510 7 000 20 0 00 000000 CONO ;CK FOR NOT SETTING + 1547 031511 7 000 30 0 00 000020 CONSZ 20 + 1548 STOP^ + 1549 031512 254 04 0 00 031513 HALT .+1 + 1550 031513 320 00 0 00 031514 JUMP .+1 + 1551 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 14 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0045 + + 1552 031514 7 000 20 0 00 000400 MOD51: CONO 400 ;FOV EN CLEAR + 1553 031515 7 000 20 0 00 000200 CONO 200 ;TRY TO SET + 1554 031516 7 000 34 0 00 000200 CONSO 200 + 1555 STOP^ + 1556 031517 254 04 0 00 031520 HALT .+1 + 1557 031520 320 00 0 00 031521 JUMP .+1 + 1558 ^ + 1559 + 1560 031521 7 000 20 0 00 000200 CONO 200 ;SET FOV EN + 1561 031522 7 000 20 0 00 000000 CONO ;CK FOR NOT CLEARING + 1562 031523 7 000 34 0 00 000200 CONSO 200 + 1563 STOP^ + 1564 031524 254 04 0 00 031525 HALT .+1 + 1565 031525 320 00 0 00 031526 JUMP .+1 + 1566 ^ + 1567 + 1568 031526 7 000 20 0 00 000200 CONO 200 ;SET FOV EN + 1569 031527 7 000 20 0 00 000400 CONO 400 ;TRY TO CLEAR + 1570 031530 7 000 30 0 00 000200 CONSZ 200 + 1571 STOP^ + 1572 031531 254 04 0 00 031532 HALT .+1 + 1573 031532 320 00 0 00 031533 JUMP .+1 + 1574 ^ + 1575 + 1576 031533 7 000 20 0 00 000400 CONO 400 ;CLEAR FOV EN + 1577 031534 7 000 20 0 00 000000 CONO ;CK FOR NOT SETTING + 1578 031535 7 000 30 0 00 000200 CONSZ 200 + 1579 STOP^ + 1580 031536 254 04 0 00 031537 HALT .+1 + 1581 031537 320 00 0 00 031540 JUMP .+1 + 1582 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 15 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0046 + + 1583 + 1584 031540 7 000 20 0 00 004000 MOD52: CONO 4000 ;CLEAR CLK EN + 1585 031541 7 000 20 0 00 002000 CONO 2000 ;TRY TO SET + 1586 031542 7 000 34 0 00 002000 CONSO 2000 + 1587 STOP^ + 1588 031543 254 04 0 00 031544 HALT .+1 + 1589 031544 320 00 0 00 031545 JUMP .+1 + 1590 ^ + 1591 + 1592 031545 7 000 20 0 00 002000 CONO 2000 ;SET CLK EN + 1593 031546 7 000 20 0 00 000000 CONO ;CK FOR NOT CLEARING + 1594 031547 7 000 34 0 00 002000 CONSO 2000 + 1595 STOP^ + 1596 031550 254 04 0 00 031551 HALT .+1 + 1597 031551 320 00 0 00 031552 JUMP .+1 + 1598 ^ + 1599 + 1600 031552 7 000 20 0 00 002000 CONO 2000 ;SET CLK EN + 1601 031553 7 000 20 0 00 004000 CONO 4000 ;TRY TO CLEAR + 1602 031554 7 000 30 0 00 002000 CONSZ 2000 + 1603 STOP^ + 1604 031555 254 04 0 00 031556 HALT .+1 + 1605 031556 320 00 0 00 031557 JUMP .+1 + 1606 ^ + 1607 + 1608 031557 7 000 20 0 00 004000 CONO 4000 ;CLEAR CLK EN + 1609 031560 7 000 20 0 00 000000 CONO ;TEST FOR NOT SETTING + 1610 031561 7 000 30 0 00 002000 CONSZ 2000 + 1611 STOP^ + 1612 031562 254 04 0 00 031563 HALT .+1 + 1613 031563 320 00 0 00 031564 JUMP .+1 + 1614 ^ + 1615 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 16 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0047 + + 1616 031564 310 00 0 00 777777 MOD53: CAM -1 ;SET NON-EX VIA F(CE) + 1617 031565 7 000 20 0 00 010000 CONO 10000 ;TRY TO CLEAR + 1618 031566 7 000 30 0 00 010000 CONSZ 10000 + 1619 STOP ^;FAIL TO CLEAR + 1620 + 1621 031567 254 04 0 00 031570 HALT .+1 + 1622 031570 320 00 0 00 031571 JUMP .+1 + 1623 + 1624 + 1625 031571 7 000 20 0 00 010000 CONO 10000 ;CLEAR NON-EX + 1626 031572 310 00 0 00 777777 CAM -1 ;TRY TO SET VIA F(CE) + 1627 031573 7 000 34 0 00 010000 CONSO 10000 ;FAIL TO SET + 1628 STOP ^;CK MEM CNTL, CPA + 1629 + 1630 031574 254 04 0 00 031575 HALT .+1 + 1631 031575 320 00 0 00 031576 JUMP .+1 + 1632 + 1633 + 1634 031576 7 000 20 0 00 010000 CONO 10000 ;CLEAR NON-EX + 1635 031577 202 00 0 00 777777 MOVEM -1 ;TRY TO SET VIA S(CE) + 1636 031600 7 000 34 0 00 010000 CONSO 10000 ;FAIL TO SET + 1637 STOP^ + 1638 031601 254 04 0 00 031602 HALT .+1 + 1639 031602 320 00 0 00 031603 JUMP .+1 + 1640 ^ + 1641 + 1642 031603 7 000 20 0 00 010000 CONO 10000 ;CLEAR NON-EX + 1643 031604 272 00 0 00 777777 ADDM -1 ;TRY TO SET VIA PSE + 1644 031605 7 000 34 0 00 010000 CONSO 10000 ;FAIL TO SET + 1645 STOP^ + 1646 031606 254 04 0 00 031607 HALT .+1 + 1647 031607 320 00 0 00 031610 JUMP .+1 + 1648 ^ + 1649 + 1650 031610 310 00 0 00 777777 CAM -1 ;SET NON EX + 1651 031611 7 000 20 0 00 000000 CONO ;TEST FOR NOT CLEARING + 1652 031612 7 000 34 0 00 010000 CONSO 10000 ;ON CONO 0 + 1653 STOP^ + 1654 031613 254 04 0 00 031614 HALT .+1 + 1655 031614 320 00 0 00 031615 JUMP .+1 + 1656 ^ + 1657 031615 7 000 20 0 00 010000 CONO 10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 17 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0048 + + 1658 + 1659 031616 7 000 20 0 00 400000 MOD54: CONO 400000 ;CLEAR PDL OV + 1660 031617 474 00 0 00 000000 SETO ;TRY TO SET + 1661 031620 261 00 0 00 000000 PUSH ;VIA PUSH + 1662 031621 7 000 34 0 00 200000 CONSO 200000 ;TEST FOR SET + 1663 STOP ^;CPA PRINT + 1664 + 1665 031622 254 04 0 00 031623 HALT .+1 + 1666 031623 320 00 0 00 031624 JUMP .+1 + 1667 + 1668 + 1669 031624 474 00 0 00 000000 SETO + 1670 031625 261 00 0 00 000000 PUSH ;SET PDL OV + 1671 031626 7 000 20 0 00 400000 CONO 400000 ;TRY TO CLEAR .CK + 1672 031627 7 000 30 0 00 200000 CONSZ 200000 ;CPA PDL OV SET (ET0) POP GATE + 1673 STOP ^;FLOP/IOB CPA PRINT + 1674 + 1675 031630 254 04 0 00 031631 HALT .+1 + 1676 031631 320 00 0 00 031632 JUMP .+1 + 1677 + 1678 + 1679 031632 474 00 0 00 000000 SETO + 1680 031633 261 00 0 00 000000 PUSH ;SET PDL OV + 1681 031634 7 000 20 0 00 000000 CONO ;CK FOR NOT CLEARING + 1682 031635 7 000 34 0 00 200000 CONSO 200000 + 1683 STOP^ + 1684 031636 254 04 0 00 031637 HALT .+1 + 1685 031637 320 00 0 00 031640 JUMP .+1 + 1686 ^ + 1687 + 1688 031640 7 000 20 0 00 400000 CONO 400000 ;TEST FOR NOT + 1689 031641 474 00 0 00 000000 SETO ;SETTING PDL-OV + 1690 031642 350 00 0 00 000000 AOS ;CPA PDL OV SET FAIL + 1691 031643 7 000 30 0 00 200000 CONSZ 200000 ;IR PUSH CRY(0) (1) AT ET0 + 1692 STOP ^;AND GATE. THE PUSH INPUT + 1693 + 1694 031644 254 04 0 00 031645 HALT .+1 + 1695 031645 320 00 0 00 031646 JUMP .+1 + 1696 + 1697 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 18 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0049 + + 1698 031646 7 000 20 0 00 400000 MOD55: CONO 400000 ;CK PDL FLAG + 1699 031647 400 00 0 00 000000 SETZ ;CPA PDL OV SET + 1700 031650 261 00 0 00 000000 PUSH ;CK AND GATE OK + 1701 031651 7 000 30 0 00 200000 CONSZ 200000 ;ET0 IR PUSH,ADCRY0 (1) + 1702 STOP ^;THE CRY FLAG SHOULD PREVENT + 1703 + 1704 031652 254 04 0 00 031653 HALT .+1 + 1705 031653 320 00 0 00 031654 JUMP .+1 + 1706 + 1707 + 1708 031654 7 000 20 0 00 400000 CONO 400000 ;TRY TO SET PDL-OV + 1709 031655 474 00 0 00 000000 SETO ;VIA PUSHJ + 1710 031656 260 00 0 00 031657 PUSHJ .+1 ;THE AND GATE OF + 1711 031657 7 000 34 0 00 200000 CONSO 200000 ;PUSH,PUSHJ TO FROM + 1712 STOP ^;CPA PDL OV SET FAILED. SEE CPA PRINT + 1713 + 1714 031660 254 04 0 00 031661 HALT .+1 + 1715 031661 320 00 0 00 031662 JUMP .+1 + 1716 + 1717 + 1718 031662 7 000 20 0 00 400000 CONO 400000 ;TRY TO SET VIA POPS + 1719 031663 201 00 0 00 000001 MOVEI 1 ;CHECK AND GATE OF + 1720 031664 262 00 0 00 000000 POP ;IR POPS, ET0, AD CRY 0(0) + 1721 031665 7 000 34 0 00 200000 CONSO 200000 ;TO CPA PDL OV SET + 1722 STOP^ + 1723 031666 254 04 0 00 031667 HALT .+1 + 1724 031667 320 00 0 00 031670 JUMP .+1 + 1725 ^ + 1726 + 1727 031670 7 000 20 0 00 400000 CONO 400000 ;CHECK POPS FOR NOT + 1728 031671 200 00 0 00 036415 MOVE [XWD 1,1] ;SETTING PDL-OV + 1729 031672 262 00 0 00 000000 POP ;AD CRY0(0) SHOULD PREVENT + 1730 031673 7 000 30 0 00 200000 CONSZ 200000 ;SEE ABOVE + 1731 STOP^ + 1732 031674 254 04 0 00 031675 HALT .+1 + 1733 031675 320 00 0 00 031676 JUMP .+1 + 1734 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 19 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0050 + + 1735 + 1736 031676 205 00 0 00 400000 MOD56: MOVSI 400000 ;SET AROV FLAG + 1737 031677 270 00 0 00 036472 ADD [XWD 400000,0] ;CK IOB INPUT IOB1 + 1738 031700 7 000 34 0 00 000010 CONSO 10 ;PRINT FOR MISSING + 1739 STOP ^;IOB BIT 32 + 1740 + 1741 031701 254 04 0 00 031702 HALT .+1 + 1742 031702 320 00 0 00 031703 JUMP .+1 + 1743 + 1744 + 1745 031703 255 17 0 00 031704 JFCL 17,.+1 ;CHECK AROV STATUS + 1746 031704 7 000 30 0 00 000010 CONSZ 10 ;BIT 32 ON IOB + 1747 STOP ^;SEE IOB1 PRINT + 1748 + 1749 031705 254 04 0 00 031706 HALT .+1 + 1750 031706 320 00 0 00 031707 JUMP .+1 + 1751 + 1752 + 1753 031707 7 000 30 0 00 404440 CONSZ 404440 ;STATUS BITS NOT USED + 1754 STOP ^;SHOULD BE 0 IOB1 PRINT + 1755 + 1756 031710 254 04 0 00 031711 HALT .+1 + 1757 031711 320 00 0 00 031712 JUMP .+1 + 1758 + 1759 + 1760 031712 7 000 20 0 00 200000 CONO 200000 ;CLEAR THE WORLD + 1761 031713 400 00 0 00 000000 SETZ ;ON IOT THE + 1762 031714 7 000 00 0 00 000000 BLKI ;AND GATE OF IOT BLKI + 1763 031715 300 00 0 00 000000 CAI ;BLKO WHICH MAKES IOT BLK + 1764 031716 312 00 0 00 036415 CAME [XWD 1,1] ;FAILED LOOK AT THE + 1765 STOP ^;BLKI INPUT + 1766 + 1767 031717 254 04 0 00 031720 HALT .+1 + 1768 031720 320 00 0 00 031721 JUMP .+1 + 1769 + 1770 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 20 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0051 + + 1771 031721 205 00 0 00 400000 MOD57: MOVSI 400000 ;SET AROV FLAG + 1772 031722 270 00 0 00 036472 ADD [XWD 400000,0] ;A CONO WITH OUT + 1773 031723 7 000 20 0 00 000000 CONO ;BIT 32 CLEARED IT + 1774 031724 255 10 0 00 031726 JFCL 10,.+2 ;SEE ARF PRINT CPA CONO + 1775 STOP ^;AND BIT 32 + 1776 + 1777 031725 254 04 0 00 031726 HALT .+1 + 1778 031726 320 00 0 00 031727 JUMP .+1 + 1779 + 1780 + 1781 031727 205 00 0 00 400000 MOVSI 400000 ;SET AROV FLAG + 1782 031730 270 00 0 00 036472 ADD [XWD 400000,0] ;TRY TO CLEAR WITH + 1783 031731 7 000 20 0 00 000010 CONO 10 ;A CONO + 1784 031732 255 10 0 00 031734 JFCL 10,.+2 ;IT FAILED TO CLEAR + 1785 031733 334 00 0 00 000000 SKIPA ;CHECK ARF PRINT + 1786 STOP ^;CPA CONO AND BIT 32 + 1787 + 1788 031734 254 04 0 00 031735 HALT .+1 + 1789 031735 320 00 0 00 031736 JUMP .+1 + 1790 + 1791 + 1792 031736 205 01 0 00 040000 MOVSI 1,40000 + 1793 031737 255 17 0 00 031740 JFCL 17,.+1 ;SET FOV FLAG + 1794 031740 254 02 0 01 031741 JRST 2,.+1(1) ;VIA RESET FLAGS + 1795 031741 7 000 20 0 00 000000 CONO ;CONO WITHOUT BIT29 + 1796 031742 255 01 0 00 031744 JFCL 1,.+2 ;CLEARED IT. SEE ARF PRINT + 1797 STOP ^;CPA CONO SET AND IOB 29 + 1798 + 1799 031743 254 04 0 00 031744 HALT .+1 + 1800 031744 320 00 0 00 031745 JUMP .+1 + 1801 + 1802 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 21 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0052 + + 1803 031745 205 01 0 00 040000 MOD58: MOVSI 1,40000 + 1804 031746 255 17 0 00 031747 JFCL 17,.+1 ;SET FOV FLAG + 1805 031747 254 02 0 01 031750 JRST 2,.+1(1) ;VIA RESET FLAGS + 1806 031750 7 000 20 0 00 000100 CONO 100 ;CONO FAIL TO CLEAR FOV + 1807 031751 255 01 0 00 031753 JFCL 1,.+2 ;SEE ARF PRINT + 1808 031752 334 00 0 00 000000 SKIPA ;CONO CPU AND IOB + 1809 STOP ^;BIT 29 + 1810 + 1811 031753 254 04 0 00 031754 HALT .+1 + 1812 031754 320 00 0 00 031755 JUMP .+1 + 1813 + 1814 + 1815 031755 255 01 0 00 031756 JFCL 1,.+1 ;AR FOV FLAG TO IOB + 1816 031756 7 000 30 0 00 000100 CONSZ 100 ;FAIL SEE IOB1 PRINT + 1817 STOP ^;AND CPA STATUS, AR FOV (1) + 1818 + 1819 031757 254 04 0 00 031760 HALT .+1 + 1820 031760 320 00 0 00 031761 JUMP .+1 + 1821 + 1822 + 1823 031761 205 01 0 00 040000 MOVSI 1,40000 + 1824 031762 255 17 0 00 031763 JFCL 17,.+1 ;SET FOV VIA + 1825 031763 254 02 0 01 031764 JRST 2,.+1(1) ;RESTOR FLAGS + 1826 031764 7 000 34 0 00 000100 CONSO 100 ;FOV TO IOB FAIL + 1827 STOP ^;SEE IOB1 PRINT + 1828 + 1829 031765 254 04 0 00 031766 HALT .+1 + 1830 031766 320 00 0 00 031767 JUMP .+1 + 1831 + 1832 + 1833 031767 7 000 20 0 00 040000 CONO 40000 ;CPA ADDR BREAK + 1834 031770 7 000 30 0 00 040000 CONSZ 40000 ;STATUS FAIL + 1835 STOP ^;SEE CPA OR IOB1 PRINT + 1836 + 1837 031771 254 04 0 00 031772 HALT .+1 + 1838 031772 320 00 0 00 031773 JUMP .+1 + 1839 + 1840 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 22 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0053 + + 1841 031773 7 000 20 0 00 000007 MOD59: CONO 7 ;A CONO TO P1 MODIFIED + 1842 031774 7 004 20 0 00 000000 CONO PI,0 ;CPU AS A DEVICE. BIO + 1843 031775 7 000 34 0 00 000007 CONSO 7 ;CPA SEL IS CONFUSED + 1844 STOP^ + 1845 031776 254 04 0 00 031777 HALT .+1 + 1846 031777 320 00 0 00 032000 JUMP .+1 + 1847 ^ + 1848 + 1849 032000 7 000 20 0 00 010000 CONO 10000 ;JUST CHECKING FOR + 1850 032001 310 00 0 00 032001 CAM . ;NOT NONEX AGAIN + 1851 032002 7 000 30 0 00 010000 CONSZ 10000 + 1852 STOP^ + 1853 032003 254 04 0 00 032004 HALT .+1 + 1854 032004 320 00 0 00 032005 JUMP .+1 + 1855 ^ + 1856 + 1857 032005 7 004 20 0 00 200000 CONO PI,200000 ;SEE IF PAR ERR + 1858 032006 7 004 30 0 00 200000 CONSZ PI,200000 ;IS A ZERO + 1859 STOP^ + 1860 032007 254 04 0 00 032010 HALT .+1 + 1861 032010 320 00 0 00 032011 JUMP .+1 + 1862 ^ + 1863 + 1864 032011 7 004 20 0 00 400000 CONO PI,400000 ;SEE IF POWER FAIL + 1865 032012 7 004 30 0 00 400000 CONSZ PI,400000 ;IS A ZERO + 1866 STOP^ + 1867 032013 254 04 0 00 032014 HALT .+1 + 1868 032014 320 00 0 00 032015 JUMP .+1 + 1869 ^ + 1870 + 1871 032015 201 00 0 00 777777 MOVEI -1 ;WAIT FOR CLOCK + 1872 032016 7 000 30 0 00 001000 CONSZ 1000 ;FLAG TO SET + 1873 032017 254 00 0 00 032022 JRST .+3 + 1874 032020 367 00 0 00 032016 SOJG .-2 + 1875 STOP ^;NO CLOCK FLAG + 1876 + 1877 032021 254 04 0 00 032022 HALT .+1 + 1878 032022 320 00 0 00 032023 JUMP .+1 + 1879 + 1880 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 23 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0054 + + 1881 032023 7 004 20 0 00 100000 MOD60: CONO PI,100000 ;CLEAR CPA PARITY ENB + 1882 032024 7 004 20 0 00 040000 CONO PI,40000 ;TRY TO SET IT + 1883 032025 7 004 34 0 00 100000 CONSO PI,100000 ;ALSO PI AS DEVICE + 1884 STOP^ + 1885 032026 254 04 0 00 032027 HALT .+1 + 1886 032027 320 00 0 00 032030 JUMP .+1 + 1887 ^ + 1888 + 1889 032030 7 004 20 0 00 040000 CONO PI,40000 ;SET CPA PAR ENB + 1890 032031 7 004 20 0 00 000000 CONO PI, ;CK FOR NOT CLEAR + 1891 032032 7 004 34 0 00 100000 CONSO PI,100000 + 1892 STOP^ + 1893 032033 254 04 0 00 032034 HALT .+1 + 1894 032034 320 00 0 00 032035 JUMP .+1 + 1895 ^ + 1896 + 1897 032035 7 004 20 0 00 040000 CONO PI,40000 ;SET CPA PAR ENB + 1898 032036 7 004 20 0 00 100000 CONO PI,100000 ;TRY TO CLEAR + 1899 032037 7 004 30 0 00 100000 CONSZ PI,100000 + 1900 STOP^ + 1901 032040 254 04 0 00 032041 HALT .+1 + 1902 032041 320 00 0 00 032042 JUMP .+1 + 1903 ^ + 1904 + 1905 032042 7 004 20 0 00 100000 CONO PI,100000 ;CLEAR CPA PAR ENB + 1906 032043 7 004 20 0 00 000000 CONO PI, ;CK FOR NOT SET + 1907 + 1908 032044 7 004 30 0 00 100000 CONSZ PI,100000 ;ON CONO + 1909 STOP^ + 1910 032045 254 04 0 00 032046 HALT .+1 + 1911 032046 320 00 0 00 032047 JUMP .+1 + 1912 ^ + 1913 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 24 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0055 + + 1914 032047 MOD70: CLEAN ^;SEE IOB1 + 1915 + 1916 032047 7 000 20 0 00 634440 CONO 634440 + 1917 032050 7 004 20 0 00 010000 CONO PI,10000 + 1918 + 1919 032051 7 004 24 0 00 000000 CONI PI,0 ;READ PI STATUS + 1920 032052 602 00 0 00 077400 TRNE 77400 ;A PI HOLD FLOP FAIL TO + 1921 STOP ^;CLEAR OR IOB PI INPUT + 1922 + 1923 032053 254 04 0 00 032054 HALT .+1 + 1924 032054 320 00 0 00 032055 JUMP .+1 + 1925 + 1926 032055 200 01 0 00 036473 MOVE 1,[MOVEI 40] ;STORE A MOVIT IN + 1927 032056 202 01 0 01 000000 MOVEM 1,(1) ;LOCATIONS 40 TO 60 + 1928 032057 312 01 0 00 036474 CAME 1,[MOVEI 57] + 1929 032060 344 01 0 00 032056 AOJA 1,.-2 + 1930 + 1931 DEFINE BLURB< + 1932 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 1933 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 1934 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 1935 ;INSTRUCTION + 1936 > + 1937 DEFINE PIO (A) + 1938 < CLEAN + 1939 CONO PI,PIOSET+A ;PIO FAIL TO SET IF LIGHT OUT + 1940 CONSO PI,A ;OTHERWISE FAIL TO READ + 1941 STOP ;STATUS SE P12-IOB1 PRINT + 1942 + 1943 CLEAN ;CHECK PIO CLEAR + 1944 CONO PI,PIOSET+A ;SET PIO + 1945 CONO PI,PIOCLR+A ;TRY TO CLEAR + 1946 CONSZ PI,A ;LIGHT=FAIL TO CLEAR PI2 PRINT + 1947 STOP ;NO LIGHT=STATUS FAIL IOB1 PRINT + 1948 + 1949 CLEAN ;CHECK FOR PI RESET + 1950 CONO PI,PIOSET+A ;ABILITY TO CLEAR PIO FLAG + 1951 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 1952 CONSZ PI,A ;TO PIO FLAGS + 1953 STOP + 1954 + 1955 CLEAN ;TEST PIO SET + 1956 CONO PI,PIOSET ;SEE PI2 PRINT + 1957 CONSZ PI,A ;IT SET FLOP WITHOUT + 1958 STOP ;A IOB BIT + 1959 + 1960 CLEAN ;TEST PIO CLR + 1961 CONO PI,PIOSET+A ;PERHAPS PI RESET OCCURED (NO IOB-23) + 1962 CONO PI,PIOCLR ;THE FLOP CLEARED + 1963 CONSO PI,A ;WITH OUT A IOB BIT + 1964 STOP ;SEE PI2 PRINT + 1965 > +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0056 + + 1966 + 1967 032061 MOD71: CLEAN ^;CHECK PIO SET + 1968 + 1969 032061 7 000 20 0 00 634440 CONO 634440 + 1970 032062 7 004 20 0 00 010000 CONO PI,10000 + 1971 + 1972 032063 7 004 20 0 00 002177 CONO PI,PIOSET+177 ;THE PI CHANNEL FLOPS + 1973 032064 7 004 34 0 00 000177 CONSO PI,177 ;FAILED TO SET + 1974 STOP ^;CHECK PI1 PRINT + 1975 + 1976 032065 254 04 0 00 032066 HALT .+1 + 1977 032066 320 00 0 00 032067 JUMP .+1 + 1978 + 1979 + 1980 032067 MOD72: PIO 100^ CLEAN^ + 1981 032067 7 000 20 0 00 634440 CONO 634440 + 1982 032070 7 004 20 0 00 010000 CONO PI,10000 + 1983 ^ + 1984 032071 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;PIO FAIL TO SET IF LIGHT OUT + 1985 032072 7 004 34 0 00 000100 CONSO PI,100 ;OTHERWISE FAIL TO READ + 1986 STOP ^ + 1987 032073 254 04 0 00 032074 HALT .+1 + 1988 032074 320 00 0 00 032075 JUMP .+1 + 1989 ^;STATUS SE P12-IOB1 PRINT + 1990 + 1991 CLEAN ^ + 1992 032075 7 000 20 0 00 634440 CONO 634440 + 1993 032076 7 004 20 0 00 010000 CONO PI,10000 + 1994 ^;CHECK PIO CLEAR + 1995 032077 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;SET PIO + 1996 032100 7 004 20 0 00 001100 CONO PI,PIOCLR+100 ;TRY TO CLEAR + 1997 032101 7 004 30 0 00 000100 CONSZ PI,100 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 1998 STOP ^ + 1999 032102 254 04 0 00 032103 HALT .+1 + 2000 032103 320 00 0 00 032104 JUMP .+1 + 2001 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2002 + 2003 CLEAN ^ + 2004 032104 7 000 20 0 00 634440 CONO 634440 + 2005 032105 7 004 20 0 00 010000 CONO PI,10000 + 2006 ^;CHECK FOR PI RESET + 2007 032106 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;ABILITY TO CLEAR PIO FLAG + 2008 032107 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2009 032110 7 004 30 0 00 000100 CONSZ PI,100 ;TO PIO FLAGS + 2010 STOP^ + 2011 032111 254 04 0 00 032112 HALT .+1 + 2012 032112 320 00 0 00 032113 JUMP .+1 + 2013 ^ + 2014 + 2015 CLEAN ^ + 2016 032113 7 000 20 0 00 634440 CONO 634440 + 2017 032114 7 004 20 0 00 010000 CONO PI,10000 + 2018 ^;TEST PIO SET + 2019 032115 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2020 032116 7 004 30 0 00 000100 CONSZ PI,100 ;IT SET FLOP WITHOUT +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0057 + + 2021 STOP ^ + 2022 032117 254 04 0 00 032120 HALT .+1 + 2023 032120 320 00 0 00 032121 JUMP .+1 + 2024 ^;100 IOB BIT + 2025 + 2026 CLEAN ^ + 2027 032121 7 000 20 0 00 634440 CONO 634440 + 2028 032122 7 004 20 0 00 010000 CONO PI,10000 + 2029 ^;TEST PIO CLR + 2030 032123 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2031 032124 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2032 032125 7 004 34 0 00 000100 CONSO PI,100 ;WITH OUT 100 IOB BIT + 2033 STOP ^ + 2034 032126 254 04 0 00 032127 HALT .+1 + 2035 032127 320 00 0 00 032130 JUMP .+1 + 2036 ^;SEE PI2 PRINT + 2037 ^ + 2038 PIO 40^ CLEAN^ + 2039 032130 7 000 20 0 00 634440 CONO 634440 + 2040 032131 7 004 20 0 00 010000 CONO PI,10000 + 2041 ^ + 2042 032132 7 004 20 0 00 002040 CONO PI,PIOSET+40 ;PIO FAIL TO SET IF LIGHT OUT + 2043 032133 7 004 34 0 00 000040 CONSO PI,40 ;OTHERWISE FAIL TO READ + 2044 STOP ^ + 2045 032134 254 04 0 00 032135 HALT .+1 + 2046 032135 320 00 0 00 032136 JUMP .+1 + 2047 ^;STATUS SE P12-IOB1 PRINT + 2048 + 2049 CLEAN ^ + 2050 032136 7 000 20 0 00 634440 CONO 634440 + 2051 032137 7 004 20 0 00 010000 CONO PI,10000 + 2052 ^;CHECK PIO CLEAR + 2053 032140 7 004 20 0 00 002040 CONO PI,PIOSET+40 ;SET PIO + 2054 032141 7 004 20 0 00 001040 CONO PI,PIOCLR+40 ;TRY TO CLEAR + 2055 032142 7 004 30 0 00 000040 CONSZ PI,40 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2056 STOP ^ + 2057 032143 254 04 0 00 032144 HALT .+1 + 2058 032144 320 00 0 00 032145 JUMP .+1 + 2059 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2060 + 2061 CLEAN ^ + 2062 032145 7 000 20 0 00 634440 CONO 634440 + 2063 032146 7 004 20 0 00 010000 CONO PI,10000 + 2064 ^;CHECK FOR PI RESET + 2065 032147 7 004 20 0 00 002040 CONO PI,PIOSET+40 ;ABILITY TO CLEAR PIO FLAG + 2066 032150 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2067 032151 7 004 30 0 00 000040 CONSZ PI,40 ;TO PIO FLAGS + 2068 STOP^ + 2069 032152 254 04 0 00 032153 HALT .+1 + 2070 032153 320 00 0 00 032154 JUMP .+1 + 2071 ^ + 2072 + 2073 CLEAN ^ + 2074 032154 7 000 20 0 00 634440 CONO 634440 + 2075 032155 7 004 20 0 00 010000 CONO PI,10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0058 + + 2076 ^;TEST PIO SET + 2077 032156 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2078 032157 7 004 30 0 00 000040 CONSZ PI,40 ;IT SET FLOP WITHOUT + 2079 STOP ^ + 2080 032160 254 04 0 00 032161 HALT .+1 + 2081 032161 320 00 0 00 032162 JUMP .+1 + 2082 ^;40 IOB BIT + 2083 + 2084 CLEAN ^ + 2085 032162 7 000 20 0 00 634440 CONO 634440 + 2086 032163 7 004 20 0 00 010000 CONO PI,10000 + 2087 ^;TEST PIO CLR + 2088 032164 7 004 20 0 00 002040 CONO PI,PIOSET+40 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2089 032165 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2090 032166 7 004 34 0 00 000040 CONSO PI,40 ;WITH OUT 40 IOB BIT + 2091 STOP ^ + 2092 032167 254 04 0 00 032170 HALT .+1 + 2093 032170 320 00 0 00 032171 JUMP .+1 + 2094 ^;SEE PI2 PRINT + 2095 ^ + 2096 + 2097 032171 MOD73: CHANEL MOD75^ + 2098 032171 336 00 0 00 036672 SKIPN PI7SYS# + 2099 032172 254 00 0 00 032440 JRST MOD75 + 2100 ^ + 2101 PIO 20^ CLEAN^ + 2102 032173 7 000 20 0 00 634440 CONO 634440 + 2103 032174 7 004 20 0 00 010000 CONO PI,10000 + 2104 ^ + 2105 032175 7 004 20 0 00 002020 CONO PI,PIOSET+20 ;PIO FAIL TO SET IF LIGHT OUT + 2106 032176 7 004 34 0 00 000020 CONSO PI,20 ;OTHERWISE FAIL TO READ + 2107 STOP ^ + 2108 032177 254 04 0 00 032200 HALT .+1 + 2109 032200 320 00 0 00 032201 JUMP .+1 + 2110 ^;STATUS SE P12-IOB1 PRINT + 2111 + 2112 CLEAN ^ + 2113 032201 7 000 20 0 00 634440 CONO 634440 + 2114 032202 7 004 20 0 00 010000 CONO PI,10000 + 2115 ^;CHECK PIO CLEAR + 2116 032203 7 004 20 0 00 002020 CONO PI,PIOSET+20 ;SET PIO + 2117 032204 7 004 20 0 00 001020 CONO PI,PIOCLR+20 ;TRY TO CLEAR + 2118 032205 7 004 30 0 00 000020 CONSZ PI,20 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2119 STOP ^ + 2120 032206 254 04 0 00 032207 HALT .+1 + 2121 032207 320 00 0 00 032210 JUMP .+1 + 2122 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2123 + 2124 CLEAN ^ + 2125 032210 7 000 20 0 00 634440 CONO 634440 + 2126 032211 7 004 20 0 00 010000 CONO PI,10000 + 2127 ^;CHECK FOR PI RESET + 2128 032212 7 004 20 0 00 002020 CONO PI,PIOSET+20 ;ABILITY TO CLEAR PIO FLAG + 2129 032213 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2130 032214 7 004 30 0 00 000020 CONSZ PI,20 ;TO PIO FLAGS +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0059 + + 2131 STOP^ + 2132 032215 254 04 0 00 032216 HALT .+1 + 2133 032216 320 00 0 00 032217 JUMP .+1 + 2134 ^ + 2135 + 2136 CLEAN ^ + 2137 032217 7 000 20 0 00 634440 CONO 634440 + 2138 032220 7 004 20 0 00 010000 CONO PI,10000 + 2139 ^;TEST PIO SET + 2140 032221 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2141 032222 7 004 30 0 00 000020 CONSZ PI,20 ;IT SET FLOP WITHOUT + 2142 STOP ^ + 2143 032223 254 04 0 00 032224 HALT .+1 + 2144 032224 320 00 0 00 032225 JUMP .+1 + 2145 ^;20 IOB BIT + 2146 + 2147 CLEAN ^ + 2148 032225 7 000 20 0 00 634440 CONO 634440 + 2149 032226 7 004 20 0 00 010000 CONO PI,10000 + 2150 ^;TEST PIO CLR + 2151 032227 7 004 20 0 00 002020 CONO PI,PIOSET+20 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2152 032230 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2153 032231 7 004 34 0 00 000020 CONSO PI,20 ;WITH OUT 20 IOB BIT + 2154 STOP ^ + 2155 032232 254 04 0 00 032233 HALT .+1 + 2156 032233 320 00 0 00 032234 JUMP .+1 + 2157 ^;SEE PI2 PRINT + 2158 ^ + 2159 PIO 10^ CLEAN^ + 2160 032234 7 000 20 0 00 634440 CONO 634440 + 2161 032235 7 004 20 0 00 010000 CONO PI,10000 + 2162 ^ + 2163 032236 7 004 20 0 00 002010 CONO PI,PIOSET+10 ;PIO FAIL TO SET IF LIGHT OUT + 2164 032237 7 004 34 0 00 000010 CONSO PI,10 ;OTHERWISE FAIL TO READ + 2165 STOP ^ + 2166 032240 254 04 0 00 032241 HALT .+1 + 2167 032241 320 00 0 00 032242 JUMP .+1 + 2168 ^;STATUS SE P12-IOB1 PRINT + 2169 + 2170 CLEAN ^ + 2171 032242 7 000 20 0 00 634440 CONO 634440 + 2172 032243 7 004 20 0 00 010000 CONO PI,10000 + 2173 ^;CHECK PIO CLEAR + 2174 032244 7 004 20 0 00 002010 CONO PI,PIOSET+10 ;SET PIO + 2175 032245 7 004 20 0 00 001010 CONO PI,PIOCLR+10 ;TRY TO CLEAR + 2176 032246 7 004 30 0 00 000010 CONSZ PI,10 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2177 STOP ^ + 2178 032247 254 04 0 00 032250 HALT .+1 + 2179 032250 320 00 0 00 032251 JUMP .+1 + 2180 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2181 + 2182 CLEAN ^ + 2183 032251 7 000 20 0 00 634440 CONO 634440 + 2184 032252 7 004 20 0 00 010000 CONO PI,10000 + 2185 ^;CHECK FOR PI RESET +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-4 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0060 + + 2186 032253 7 004 20 0 00 002010 CONO PI,PIOSET+10 ;ABILITY TO CLEAR PIO FLAG + 2187 032254 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2188 032255 7 004 30 0 00 000010 CONSZ PI,10 ;TO PIO FLAGS + 2189 STOP^ + 2190 032256 254 04 0 00 032257 HALT .+1 + 2191 032257 320 00 0 00 032260 JUMP .+1 + 2192 ^ + 2193 + 2194 CLEAN ^ + 2195 032260 7 000 20 0 00 634440 CONO 634440 + 2196 032261 7 004 20 0 00 010000 CONO PI,10000 + 2197 ^;TEST PIO SET + 2198 032262 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2199 032263 7 004 30 0 00 000010 CONSZ PI,10 ;IT SET FLOP WITHOUT + 2200 STOP ^ + 2201 032264 254 04 0 00 032265 HALT .+1 + 2202 032265 320 00 0 00 032266 JUMP .+1 + 2203 ^;10 IOB BIT + 2204 + 2205 CLEAN ^ + 2206 032266 7 000 20 0 00 634440 CONO 634440 + 2207 032267 7 004 20 0 00 010000 CONO PI,10000 + 2208 ^;TEST PIO CLR + 2209 032270 7 004 20 0 00 002010 CONO PI,PIOSET+10 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2210 032271 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2211 032272 7 004 34 0 00 000010 CONSO PI,10 ;WITH OUT 10 IOB BIT + 2212 STOP ^ + 2213 032273 254 04 0 00 032274 HALT .+1 + 2214 032274 320 00 0 00 032275 JUMP .+1 + 2215 ^;SEE PI2 PRINT + 2216 ^ + 2217 + 2218 032275 MOD74: PIO 4^ CLEAN^ + 2219 032275 7 000 20 0 00 634440 CONO 634440 + 2220 032276 7 004 20 0 00 010000 CONO PI,10000 + 2221 ^ + 2222 032277 7 004 20 0 00 002004 CONO PI,PIOSET+4 ;PIO FAIL TO SET IF LIGHT OUT + 2223 032300 7 004 34 0 00 000004 CONSO PI,4 ;OTHERWISE FAIL TO READ + 2224 STOP ^ + 2225 032301 254 04 0 00 032302 HALT .+1 + 2226 032302 320 00 0 00 032303 JUMP .+1 + 2227 ^;STATUS SE P12-IOB1 PRINT + 2228 + 2229 CLEAN ^ + 2230 032303 7 000 20 0 00 634440 CONO 634440 + 2231 032304 7 004 20 0 00 010000 CONO PI,10000 + 2232 ^;CHECK PIO CLEAR + 2233 032305 7 004 20 0 00 002004 CONO PI,PIOSET+4 ;SET PIO + 2234 032306 7 004 20 0 00 001004 CONO PI,PIOCLR+4 ;TRY TO CLEAR + 2235 032307 7 004 30 0 00 000004 CONSZ PI,4 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2236 STOP ^ + 2237 032310 254 04 0 00 032311 HALT .+1 + 2238 032311 320 00 0 00 032312 JUMP .+1 + 2239 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2240 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-5 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0061 + + 2241 CLEAN ^ + 2242 032312 7 000 20 0 00 634440 CONO 634440 + 2243 032313 7 004 20 0 00 010000 CONO PI,10000 + 2244 ^;CHECK FOR PI RESET + 2245 032314 7 004 20 0 00 002004 CONO PI,PIOSET+4 ;ABILITY TO CLEAR PIO FLAG + 2246 032315 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2247 032316 7 004 30 0 00 000004 CONSZ PI,4 ;TO PIO FLAGS + 2248 STOP^ + 2249 032317 254 04 0 00 032320 HALT .+1 + 2250 032320 320 00 0 00 032321 JUMP .+1 + 2251 ^ + 2252 + 2253 CLEAN ^ + 2254 032321 7 000 20 0 00 634440 CONO 634440 + 2255 032322 7 004 20 0 00 010000 CONO PI,10000 + 2256 ^;TEST PIO SET + 2257 032323 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2258 032324 7 004 30 0 00 000004 CONSZ PI,4 ;IT SET FLOP WITHOUT + 2259 STOP ^ + 2260 032325 254 04 0 00 032326 HALT .+1 + 2261 032326 320 00 0 00 032327 JUMP .+1 + 2262 ^;4 IOB BIT + 2263 + 2264 CLEAN ^ + 2265 032327 7 000 20 0 00 634440 CONO 634440 + 2266 032330 7 004 20 0 00 010000 CONO PI,10000 + 2267 ^;TEST PIO CLR + 2268 032331 7 004 20 0 00 002004 CONO PI,PIOSET+4 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2269 032332 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2270 032333 7 004 34 0 00 000004 CONSO PI,4 ;WITH OUT 4 IOB BIT + 2271 STOP ^ + 2272 032334 254 04 0 00 032335 HALT .+1 + 2273 032335 320 00 0 00 032336 JUMP .+1 + 2274 ^;SEE PI2 PRINT + 2275 ^ + 2276 PIO 2^ CLEAN^ + 2277 032336 7 000 20 0 00 634440 CONO 634440 + 2278 032337 7 004 20 0 00 010000 CONO PI,10000 + 2279 ^ + 2280 032340 7 004 20 0 00 002002 CONO PI,PIOSET+2 ;PIO FAIL TO SET IF LIGHT OUT + 2281 032341 7 004 34 0 00 000002 CONSO PI,2 ;OTHERWISE FAIL TO READ + 2282 STOP ^ + 2283 032342 254 04 0 00 032343 HALT .+1 + 2284 032343 320 00 0 00 032344 JUMP .+1 + 2285 ^;STATUS SE P12-IOB1 PRINT + 2286 + 2287 CLEAN ^ + 2288 032344 7 000 20 0 00 634440 CONO 634440 + 2289 032345 7 004 20 0 00 010000 CONO PI,10000 + 2290 ^;CHECK PIO CLEAR + 2291 032346 7 004 20 0 00 002002 CONO PI,PIOSET+2 ;SET PIO + 2292 032347 7 004 20 0 00 001002 CONO PI,PIOCLR+2 ;TRY TO CLEAR + 2293 032350 7 004 30 0 00 000002 CONSZ PI,2 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2294 STOP ^ + 2295 032351 254 04 0 00 032352 HALT .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-6 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0062 + + 2296 032352 320 00 0 00 032353 JUMP .+1 + 2297 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2298 + 2299 CLEAN ^ + 2300 032353 7 000 20 0 00 634440 CONO 634440 + 2301 032354 7 004 20 0 00 010000 CONO PI,10000 + 2302 ^;CHECK FOR PI RESET + 2303 032355 7 004 20 0 00 002002 CONO PI,PIOSET+2 ;ABILITY TO CLEAR PIO FLAG + 2304 032356 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2305 032357 7 004 30 0 00 000002 CONSZ PI,2 ;TO PIO FLAGS + 2306 STOP^ + 2307 032360 254 04 0 00 032361 HALT .+1 + 2308 032361 320 00 0 00 032362 JUMP .+1 + 2309 ^ + 2310 + 2311 CLEAN ^ + 2312 032362 7 000 20 0 00 634440 CONO 634440 + 2313 032363 7 004 20 0 00 010000 CONO PI,10000 + 2314 ^;TEST PIO SET + 2315 032364 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2316 032365 7 004 30 0 00 000002 CONSZ PI,2 ;IT SET FLOP WITHOUT + 2317 STOP ^ + 2318 032366 254 04 0 00 032367 HALT .+1 + 2319 032367 320 00 0 00 032370 JUMP .+1 + 2320 ^;2 IOB BIT + 2321 + 2322 CLEAN ^ + 2323 032370 7 000 20 0 00 634440 CONO 634440 + 2324 032371 7 004 20 0 00 010000 CONO PI,10000 + 2325 ^;TEST PIO CLR + 2326 032372 7 004 20 0 00 002002 CONO PI,PIOSET+2 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2327 032373 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2328 032374 7 004 34 0 00 000002 CONSO PI,2 ;WITH OUT 2 IOB BIT + 2329 STOP ^ + 2330 032375 254 04 0 00 032376 HALT .+1 + 2331 032376 320 00 0 00 032377 JUMP .+1 + 2332 ^;SEE PI2 PRINT + 2333 ^ + 2334 PIO 1^ CLEAN^ + 2335 032377 7 000 20 0 00 634440 CONO 634440 + 2336 032400 7 004 20 0 00 010000 CONO PI,10000 + 2337 ^ + 2338 032401 7 004 20 0 00 002001 CONO PI,PIOSET+1 ;PIO FAIL TO SET IF LIGHT OUT + 2339 032402 7 004 34 0 00 000001 CONSO PI,1 ;OTHERWISE FAIL TO READ + 2340 STOP ^ + 2341 032403 254 04 0 00 032404 HALT .+1 + 2342 032404 320 00 0 00 032405 JUMP .+1 + 2343 ^;STATUS SE P12-IOB1 PRINT + 2344 + 2345 CLEAN ^ + 2346 032405 7 000 20 0 00 634440 CONO 634440 + 2347 032406 7 004 20 0 00 010000 CONO PI,10000 + 2348 ^;CHECK PIO CLEAR + 2349 032407 7 004 20 0 00 002001 CONO PI,PIOSET+1 ;SET PIO + 2350 032410 7 004 20 0 00 001001 CONO PI,PIOCLR+1 ;TRY TO CLEAR +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-7 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0063 + + 2351 032411 7 004 30 0 00 000001 CONSZ PI,1 ;LIGHT=FAIL TO CLEAR PI2 PRINT + 2352 STOP ^ + 2353 032412 254 04 0 00 032413 HALT .+1 + 2354 032413 320 00 0 00 032414 JUMP .+1 + 2355 ^;NO LIGHT=STATUS FAIL IOB1 PRINT + 2356 + 2357 CLEAN ^ + 2358 032414 7 000 20 0 00 634440 CONO 634440 + 2359 032415 7 004 20 0 00 010000 CONO PI,10000 + 2360 ^;CHECK FOR PI RESET + 2361 032416 7 004 20 0 00 002001 CONO PI,PIOSET+1 ;ABILITY TO CLEAR PIO FLAG + 2362 032417 7 004 20 0 00 010000 CONO PI,10000 ;SEE PI2 PRINT, PI RESET + 2363 032420 7 004 30 0 00 000001 CONSZ PI,1 ;TO PIO FLAGS + 2364 STOP^ + 2365 032421 254 04 0 00 032422 HALT .+1 + 2366 032422 320 00 0 00 032423 JUMP .+1 + 2367 ^ + 2368 + 2369 CLEAN ^ + 2370 032423 7 000 20 0 00 634440 CONO 634440 + 2371 032424 7 004 20 0 00 010000 CONO PI,10000 + 2372 ^;TEST PIO SET + 2373 032425 7 004 20 0 00 002000 CONO PI,PIOSET ;SEE PI2 PRINT + 2374 032426 7 004 30 0 00 000001 CONSZ PI,1 ;IT SET FLOP WITHOUT + 2375 STOP ^ + 2376 032427 254 04 0 00 032430 HALT .+1 + 2377 032430 320 00 0 00 032431 JUMP .+1 + 2378 ^;1 IOB BIT + 2379 + 2380 CLEAN ^ + 2381 032431 7 000 20 0 00 634440 CONO 634440 + 2382 032432 7 004 20 0 00 010000 CONO PI,10000 + 2383 ^;TEST PIO CLR + 2384 032433 7 004 20 0 00 002001 CONO PI,PIOSET+1 ;PERHAPS PI RESET OCCURED (NO IOB-23) + 2385 032434 7 004 20 0 00 001000 CONO PI,PIOCLR ;THE FLOP CLEARED + 2386 032435 7 004 34 0 00 000001 CONSO PI,1 ;WITH OUT 1 IOB BIT + 2387 STOP ^ + 2388 032436 254 04 0 00 032437 HALT .+1 + 2389 032437 320 00 0 00 032440 JUMP .+1 + 2390 ^;SEE PI2 PRINT + 2391 ^ + 2392 032440 MOD75: CLEAN^ + 2393 032440 7 000 20 0 00 634440 CONO 634440 + 2394 032441 7 004 20 0 00 010000 CONO PI,10000 + 2395 ^ + 2396 032442 MOD76: CLEAN^ + 2397 032442 7 000 20 0 00 634440 CONO 634440 + 2398 032443 7 004 20 0 00 010000 CONO PI,10000 + 2399 ^ + 2400 032444 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;PI RESET OCCURED + 2401 032445 7 004 20 0 00 000000 CONO PI,0 ;WITH OUT IOB-23 + 2402 032446 7 004 34 0 00 000100 CONSO PI,100 ;SEE PI1 PRINT + 2403 STOP^ + 2404 032447 254 04 0 00 032450 HALT .+1 + 2405 032450 320 00 0 00 032451 JUMP .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 25-8 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0064 + + 2406 ^ + 2407 + 2408 CLEAN ^;PI RESET OCCURED + 2409 + 2410 032451 7 000 20 0 00 634440 CONO 634440 + 2411 032452 7 004 20 0 00 010000 CONO PI,10000 + 2412 + 2413 032453 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;WITH OUT PI SEL + 2414 032454 7 774 20 0 00 001000 CONO ME,1000 ;SEE PI1 PRINT + 2415 032455 7 004 34 0 00 000100 CONSO PI,100 + 2416 STOP^ + 2417 032456 254 04 0 00 032457 HALT .+1 + 2418 032457 320 00 0 00 032460 JUMP .+1 + 2419 ^ + 2420 + 2421 CLEAN^ + 2422 032460 7 000 20 0 00 634440 CONO 634440 + 2423 032461 7 004 20 0 00 010000 CONO PI,10000 + 2424 ^ + 2425 032462 7 004 20 0 00 002100 CONO PI,PIOSET+100 ;CHECK SELECTION + 2426 032463 7 774 20 0 00 001100 CONO ME,PIOCLR+100 ;ON CONO SETL. SEE + 2427 032464 7 004 34 0 00 000100 CONSO PI,100 ;PI1 PRINT CONO ME + 2428 STOP ^;SHOULD NOT EFFECT PI + 2429 + 2430 032465 254 04 0 00 032466 HALT .+1 + 2431 032466 320 00 0 00 032467 JUMP .+1 + 2432 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 26 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0065 + + 2433 032467 MOD77: CLEAN^ + 2434 032467 7 000 20 0 00 634440 CONO 634440 + 2435 032470 7 004 20 0 00 010000 CONO PI,10000 + 2436 ^ + 2437 032471 7 004 20 0 00 000200 CONO PI,ACT ;SET ACTIVE THEN + 2438 032472 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR VIA PI RESET + 2439 032473 7 004 30 0 00 000200 CONSZ PI,200 ;FAIL TO CLEAR SEE P11 PRINT + 2440 STOP ^;THE PI ACT FLAG + 2441 + 2442 032474 254 04 0 00 032475 HALT .+1 + 2443 032475 320 00 0 00 032476 JUMP .+1 + 2444 + 2445 CLEAN^ + 2446 032476 7 000 20 0 00 634440 CONO 634440 + 2447 032477 7 004 20 0 00 010000 CONO PI,10000 + 2448 ^ + 2449 032500 7 004 20 0 00 000200 CONO PI,ACT ;SET ACTIVE THEN + 2450 032501 7 004 20 0 00 000400 CONO PI,400 ;TRY TO CLEAR VIA CONO + 2451 032502 7 004 30 0 00 000200 CONSZ PI,200 ;AND BIT27 SEE PI1 + 2452 STOP ^;PRINT ACTIVE FLAG + 2453 + 2454 032503 254 04 0 00 032504 HALT .+1 + 2455 032504 320 00 0 00 032505 JUMP .+1 + 2456 + 2457 CLEAN^ + 2458 032505 7 000 20 0 00 634440 CONO 634440 + 2459 032506 7 004 20 0 00 010000 CONO PI,10000 + 2460 ^ + 2461 032507 7 004 20 0 00 000200 CONO PI,ACT ;SEE ACT VIA CONO BIT 28 + 2462 032510 7 004 34 0 00 000200 CONSO PI,200 ;LIGHT=0 FAIL TO SET + 2463 STOP ^;LIGHT=(1) FAIL TO READ PI1-IOB1 + 2464 + 2465 032511 254 04 0 00 032512 HALT .+1 + 2466 032512 320 00 0 00 032513 JUMP .+1 + 2467 + 2468 CLEAN^ + 2469 032513 7 000 20 0 00 634440 CONO 634440 + 2470 032514 7 004 20 0 00 010000 CONO PI,10000 + 2471 ^ + 2472 032515 7 004 20 0 00 000200 CONO PI,ACT ;SEE ABOVE + 2473 032516 7 004 20 0 00 000200 CONO PI,ACT + 2474 032517 7 004 34 0 00 000200 CONSO PI,200 + 2475 STOP ^;PI ACT FAIL + 2476 + 2477 032520 254 04 0 00 032521 HALT .+1 + 2478 032521 320 00 0 00 032522 JUMP .+1 + 2479 + 2480 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 27 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0066 + + 2481 DEFINE NOTPIR (A)< + 2482 CLEAN ;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2483 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2484 CONSZ PI,A ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2485 STOP ;BOTTEM OF PAGE. ALSO PIR-FLOP + 2486 > + 2487 032522 MOD78: BLURB^ + 2488 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 2489 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 2490 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 2491 ;INSTRUCTION + 2492 ^ + 2493 ;CHECK CHANNEL 1, PIR1 FLOP OR RI REQ1 LEVEL + 2494 NOTPIR 40000^ + 2495 CLEAN ^ + 2496 032522 7 000 20 0 00 634440 CONO 634440 + 2497 032523 7 004 20 0 00 010000 CONO PI,10000 + 2498 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2499 032524 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2500 032525 7 004 30 0 00 040000 CONSZ PI,40000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2501 STOP ^ + 2502 032526 254 04 0 00 032527 HALT .+1 + 2503 032527 320 00 0 00 032530 JUMP .+1 + 2504 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2505 ^ + 2506 ;CHECK CHANNEL 2, PIR2 FLOP OR PI REQ2 LEVEL + 2507 NOTPIR 20000^ + 2508 CLEAN ^ + 2509 032530 7 000 20 0 00 634440 CONO 634440 + 2510 032531 7 004 20 0 00 010000 CONO PI,10000 + 2511 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2512 032532 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2513 032533 7 004 30 0 00 020000 CONSZ PI,20000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2514 STOP ^ + 2515 032534 254 04 0 00 032535 HALT .+1 + 2516 032535 320 00 0 00 032536 JUMP .+1 + 2517 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2518 ^ + 2519 ;CHECK CHANNEL 3, PIR3 FLOP OR PI REQ3 LEVEL + 2520 NOTPIR 10000^ + 2521 CLEAN ^ + 2522 032536 7 000 20 0 00 634440 CONO 634440 + 2523 032537 7 004 20 0 00 010000 CONO PI,10000 + 2524 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2525 032540 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2526 032541 7 004 30 0 00 010000 CONSZ PI,10000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2527 STOP ^ + 2528 032542 254 04 0 00 032543 HALT .+1 + 2529 032543 320 00 0 00 032544 JUMP .+1 + 2530 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2531 ^ + 2532 ;CHECK CHANNEL 4, PIR4 FLOP OR PI REQ4 LEVEL + 2533 NOTPIR 4000^ + 2534 CLEAN ^ + 2535 032544 7 000 20 0 00 634440 CONO 634440 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 27-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0067 + + 2536 032545 7 004 20 0 00 010000 CONO PI,10000 + 2537 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2538 032546 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2539 032547 7 004 30 0 00 004000 CONSZ PI,4000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2540 STOP ^ + 2541 032550 254 04 0 00 032551 HALT .+1 + 2542 032551 320 00 0 00 032552 JUMP .+1 + 2543 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2544 ^ + 2545 ;CHECK CHANNEL 5, PIR5 FLOP OR PI REQ5 LEVEL + 2546 NOTPIR 2000^ + 2547 CLEAN ^ + 2548 032552 7 000 20 0 00 634440 CONO 634440 + 2549 032553 7 004 20 0 00 010000 CONO PI,10000 + 2550 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2551 032554 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2552 032555 7 004 30 0 00 002000 CONSZ PI,2000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2553 STOP ^ + 2554 032556 254 04 0 00 032557 HALT .+1 + 2555 032557 320 00 0 00 032560 JUMP .+1 + 2556 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2557 ^ + 2558 ;CHECK CHANNEL 6, PIR6 FLOP OR PI REQ6 LEVEL + 2559 NOTPIR 1000^ + 2560 CLEAN ^ + 2561 032560 7 000 20 0 00 634440 CONO 634440 + 2562 032561 7 004 20 0 00 010000 CONO PI,10000 + 2563 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2564 032562 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2565 032563 7 004 30 0 00 001000 CONSZ PI,1000 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2566 STOP ^ + 2567 032564 254 04 0 00 032565 HALT .+1 + 2568 032565 320 00 0 00 032566 JUMP .+1 + 2569 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2570 ^ + 2571 ;CHECK CHANNEL 7, PIR 7 FLOP OR PI REQ7 LEVEL + 2572 NOTPIR 400^ + 2573 CLEAN ^ + 2574 032566 7 000 20 0 00 634440 CONO 634440 + 2575 032567 7 004 20 0 00 010000 CONO PI,10000 + 2576 ^;ENABLE PRIORITY, EXPECT NO INTERRUPTS + 2577 032570 7 004 20 0 00 000200 CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + 2578 032571 7 004 30 0 00 000400 CONSZ PI,400 ;PIR (1) INPUT TO AND GATE OF PIH (0) + 2579 STOP ^ + 2580 032572 254 04 0 00 032573 HALT .+1 + 2581 032573 320 00 0 00 032574 JUMP .+1 + 2582 ^;BOTTEM OF PAGE. ALSO PIR-FLOP + 2583 ^ + 2584 + 2585 DEFINE NOTREQ (A,B)< + 2586 CLEAN ;A TEST OF PI OK TO PREVENT INTERRUPT + 2587 CONO PI,PIREQ+A ;ACTIVE CLEARED, REQUEST FLAG SET + 2588 CONSZ PI,B ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2589 STOP ;REQ FAIL. SEE BOTTEM PI2 PRINT + 2590 > +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 27-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0068 + + 2591 + 2592 032574 MOD79: BLURB^ + 2593 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 2594 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 2595 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 2596 ;INSTRUCTION + 2597 ^ + 2598 ;TEST PI ACT ABILITY TO PREVENT PI REQ1, INTERRUPT VIA ACTIVE + 2599 NOTREQ 100,40000^ + 2600 CLEAN ^ + 2601 032574 7 000 20 0 00 634440 CONO 634440 + 2602 032575 7 004 20 0 00 010000 CONO PI,10000 + 2603 ^;100 TEST OF PI OK TO PREVENT INTERRUPT + 2604 032576 7 004 20 0 00 004100 CONO PI,PIREQ+100 ;ACTIVE CLEARED, REQUEST FLAG SET + 2605 032577 7 004 30 0 00 040000 CONSZ PI,40000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2606 STOP ^ + 2607 032600 254 04 0 00 032601 HALT .+1 + 2608 032601 320 00 0 00 032602 JUMP .+1 + 2609 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2610 ^ + 2611 ;TEST PIOK2 ABILITY TO PREVENT PI REQ2, INTERRUPT + 2612 NOTREQ 40,20000^ + 2613 CLEAN ^ + 2614 032602 7 000 20 0 00 634440 CONO 634440 + 2615 032603 7 004 20 0 00 010000 CONO PI,10000 + 2616 ^;40 TEST OF PI OK TO PREVENT INTERRUPT + 2617 032604 7 004 20 0 00 004040 CONO PI,PIREQ+40 ;ACTIVE CLEARED, REQUEST FLAG SET + 2618 032605 7 004 30 0 00 020000 CONSZ PI,20000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2619 STOP ^ + 2620 032606 254 04 0 00 032607 HALT .+1 + 2621 032607 320 00 0 00 032610 JUMP .+1 + 2622 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2623 ^ + 2624 ;TEST PIOK3 ABILITY TO PREVENT PI REQ3, INTERRUPT + 2625 NOTREQ 20,10000^ + 2626 CLEAN ^ + 2627 032610 7 000 20 0 00 634440 CONO 634440 + 2628 032611 7 004 20 0 00 010000 CONO PI,10000 + 2629 ^;20 TEST OF PI OK TO PREVENT INTERRUPT + 2630 032612 7 004 20 0 00 004020 CONO PI,PIREQ+20 ;ACTIVE CLEARED, REQUEST FLAG SET + 2631 032613 7 004 30 0 00 010000 CONSZ PI,10000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2632 STOP ^ + 2633 032614 254 04 0 00 032615 HALT .+1 + 2634 032615 320 00 0 00 032616 JUMP .+1 + 2635 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2636 ^ + 2637 ;TEST PIOK4 ABILITY TO PREVENT PI REQ4, INTERRUPT + 2638 NOTREQ 10,4000^ + 2639 CLEAN ^ + 2640 032616 7 000 20 0 00 634440 CONO 634440 + 2641 032617 7 004 20 0 00 010000 CONO PI,10000 + 2642 ^;10 TEST OF PI OK TO PREVENT INTERRUPT + 2643 032620 7 004 20 0 00 004010 CONO PI,PIREQ+10 ;ACTIVE CLEARED, REQUEST FLAG SET + 2644 032621 7 004 30 0 00 004000 CONSZ PI,4000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2645 STOP ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 27-3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0069 + + 2646 032622 254 04 0 00 032623 HALT .+1 + 2647 032623 320 00 0 00 032624 JUMP .+1 + 2648 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2649 ^ + 2650 ;TEST PIOK5 ABILITY TO PREVENT PI REQ5, INTERRUPT + 2651 NOTREQ 4,2000^ + 2652 CLEAN ^ + 2653 032624 7 000 20 0 00 634440 CONO 634440 + 2654 032625 7 004 20 0 00 010000 CONO PI,10000 + 2655 ^;4 TEST OF PI OK TO PREVENT INTERRUPT + 2656 032626 7 004 20 0 00 004004 CONO PI,PIREQ+4 ;ACTIVE CLEARED, REQUEST FLAG SET + 2657 032627 7 004 30 0 00 002000 CONSZ PI,2000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2658 STOP ^ + 2659 032630 254 04 0 00 032631 HALT .+1 + 2660 032631 320 00 0 00 032632 JUMP .+1 + 2661 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2662 ^ + 2663 ;TEST PIOK6 ABILITY TO PREVENT PI REQ6, INTERRUPT + 2664 NOTREQ 2,1000^ + 2665 CLEAN ^ + 2666 032632 7 000 20 0 00 634440 CONO 634440 + 2667 032633 7 004 20 0 00 010000 CONO PI,10000 + 2668 ^;2 TEST OF PI OK TO PREVENT INTERRUPT + 2669 032634 7 004 20 0 00 004002 CONO PI,PIREQ+2 ;ACTIVE CLEARED, REQUEST FLAG SET + 2670 032635 7 004 30 0 00 001000 CONSZ PI,1000 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2671 STOP ^ + 2672 032636 254 04 0 00 032637 HALT .+1 + 2673 032637 320 00 0 00 032640 JUMP .+1 + 2674 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2675 ^ + 2676 ;TEST PIOK7 ABILITY TO PREVENT PI REQ7, INTERRUPT + 2677 NOTREQ 1,400^ + 2678 CLEAN ^ + 2679 032640 7 000 20 0 00 634440 CONO 634440 + 2680 032641 7 004 20 0 00 010000 CONO PI,10000 + 2681 ^;1 TEST OF PI OK TO PREVENT INTERRUPT + 2682 032642 7 004 20 0 00 004001 CONO PI,PIREQ+1 ;ACTIVE CLEARED, REQUEST FLAG SET + 2683 032643 7 004 30 0 00 000400 CONSZ PI,400 ;INTR OCCURED PIOK INPUT, PIOK TO PI + 2684 STOP ^ + 2685 032644 254 04 0 00 032645 HALT .+1 + 2686 032645 320 00 0 00 032646 JUMP .+1 + 2687 ^;REQ FAIL. SEE BOTTEM PI2 PRINT + 2688 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 28 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0070 + + 2689 + 2690 DEFINE PIRCLR (A)< + 2691 CLEAN + 2692 CONO PI,PIREQ+A ;SET REQUEST FLOP BUT + 2693 SETZ ;NOT ACTIVE THEN CLEAR + 2694 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2695 SKIPE ;PI RESET FAILED TO CLEAR + 2696 STOP ;THE PIR FLAG.`SEE PI2 PRINT + 2697 > + 2698 + 2699 000100 ZZ=100 ;CHECK CLEAR TO PIR FLAGS + 2700 REPEAT 7,< + 2701 PIRCLR ZZ + 2702 ZZ=ZZ/2> + 2703 + 2704 PIRCLR ZZ^ + 2705 CLEAN^ + 2706 032646 7 000 20 0 00 634440 CONO 634440 + 2707 032647 7 004 20 0 00 010000 CONO PI,10000 + 2708 ^ + 2709 032650 7 004 20 0 00 004100 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2710 032651 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2711 032652 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2712 032653 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2713 STOP ^ + 2714 032654 254 04 0 00 032655 HALT .+1 + 2715 032655 320 00 0 00 032656 JUMP .+1 + 2716 ^;THE PIR FLAG.`SEE PI2 PRINT + 2717 ^ + 2718 000040 ZZ=ZZ/2 + 2719 + 2720 PIRCLR ZZ^ + 2721 CLEAN^ + 2722 032656 7 000 20 0 00 634440 CONO 634440 + 2723 032657 7 004 20 0 00 010000 CONO PI,10000 + 2724 ^ + 2725 032660 7 004 20 0 00 004040 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2726 032661 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2727 032662 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2728 032663 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2729 STOP ^ + 2730 032664 254 04 0 00 032665 HALT .+1 + 2731 032665 320 00 0 00 032666 JUMP .+1 + 2732 ^;THE PIR FLAG.`SEE PI2 PRINT + 2733 ^ + 2734 000020 ZZ=ZZ/2 + 2735 + 2736 PIRCLR ZZ^ + 2737 CLEAN^ + 2738 032666 7 000 20 0 00 634440 CONO 634440 + 2739 032667 7 004 20 0 00 010000 CONO PI,10000 + 2740 ^ + 2741 032670 7 004 20 0 00 004020 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2742 032671 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2743 032672 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 28-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0071 + + 2744 032673 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2745 STOP ^ + 2746 032674 254 04 0 00 032675 HALT .+1 + 2747 032675 320 00 0 00 032676 JUMP .+1 + 2748 ^;THE PIR FLAG.`SEE PI2 PRINT + 2749 ^ + 2750 000010 ZZ=ZZ/2 + 2751 + 2752 PIRCLR ZZ^ + 2753 CLEAN^ + 2754 032676 7 000 20 0 00 634440 CONO 634440 + 2755 032677 7 004 20 0 00 010000 CONO PI,10000 + 2756 ^ + 2757 032700 7 004 20 0 00 004010 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2758 032701 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2759 032702 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2760 032703 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2761 STOP ^ + 2762 032704 254 04 0 00 032705 HALT .+1 + 2763 032705 320 00 0 00 032706 JUMP .+1 + 2764 ^;THE PIR FLAG.`SEE PI2 PRINT + 2765 ^ + 2766 000004 ZZ=ZZ/2 + 2767 + 2768 PIRCLR ZZ^ + 2769 CLEAN^ + 2770 032706 7 000 20 0 00 634440 CONO 634440 + 2771 032707 7 004 20 0 00 010000 CONO PI,10000 + 2772 ^ + 2773 032710 7 004 20 0 00 004004 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2774 032711 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2775 032712 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2776 032713 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2777 STOP ^ + 2778 032714 254 04 0 00 032715 HALT .+1 + 2779 032715 320 00 0 00 032716 JUMP .+1 + 2780 ^;THE PIR FLAG.`SEE PI2 PRINT + 2781 ^ + 2782 000002 ZZ=ZZ/2 + 2783 + 2784 PIRCLR ZZ^ + 2785 CLEAN^ + 2786 032716 7 000 20 0 00 634440 CONO 634440 + 2787 032717 7 004 20 0 00 010000 CONO PI,10000 + 2788 ^ + 2789 032720 7 004 20 0 00 004002 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2790 032721 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2791 032722 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2792 032723 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2793 STOP ^ + 2794 032724 254 04 0 00 032725 HALT .+1 + 2795 032725 320 00 0 00 032726 JUMP .+1 + 2796 ^;THE PIR FLAG.`SEE PI2 PRINT + 2797 ^ + 2798 000001 ZZ=ZZ/2 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 28-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0072 + + 2799 + 2800 PIRCLR ZZ^ + 2801 CLEAN^ + 2802 032726 7 000 20 0 00 634440 CONO 634440 + 2803 032727 7 004 20 0 00 010000 CONO PI,10000 + 2804 ^ + 2805 032730 7 004 20 0 00 004001 CONO PI,PIREQ+ZZ ;SET REQUEST FLOP BUT + 2806 032731 400 00 0 00 000000 SETZ ;NOT ACTIVE THEN CLEAR + 2807 032732 7 004 20 0 00 010200 CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + 2808 032733 332 00 0 00 000000 SKIPE ;PI RESET FAILED TO CLEAR + 2809 STOP ^ + 2810 032734 254 04 0 00 032735 HALT .+1 + 2811 032735 320 00 0 00 032736 JUMP .+1 + 2812 ^;THE PIR FLAG.`SEE PI2 PRINT + 2813 ^ + 2814 000000 ZZ=ZZ/2 + 2815 + 2816 DEFINE FILAC< + 2817 MOVE 17,[MOVEI 17] ;FILL ACS WITH + 2818 MOVEM 17,(17) ;MOVEI TO AC 0 + 2819 CAME 17,[MOVEI 0] ;THE CURRENT LOC + 2820 SOJA 17,.-2 + 2821 MOVE 17,[MOVEI 17] + 2822 > + 2823 + 2824 FILAC^ + 2825 032736 200 17 0 00 036475 MOVE 17,[MOVEI 17] ;FILL ACS WITH + 2826 032737 202 17 0 17 000000 MOVEM 17,(17) ;MOVEI TO AC 0 + 2827 032740 312 17 0 00 036476 CAME 17,[MOVEI 0] ;THE CURRENT LOC + 2828 032741 364 17 0 00 032737 SOJA 17,.-2 + 2829 032742 200 17 0 00 036475 MOVE 17,[MOVEI 17] + 2830 ^ + 2831 + 2832 CLEAN ^;CHECK PC+1 INHIBIT ON INTERRUPT + 2833 + 2834 032743 7 000 20 0 00 634440 CONO 634440 + 2835 032744 7 004 20 0 00 010000 CONO PI,10000 + 2836 + 2837 032745 200 00 0 00 036476 MOVE [MOVEI] + 2838 032746 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + 2839 032747 334 00 0 00 000000 SKIPA ;PC+1 INH ON PC1 PRINT FAIL + 2840 STOP ^;SEE P1 CYC(1) INPUT + 2841 + 2842 032750 254 04 0 00 032751 HALT .+1 + 2843 032751 320 00 0 00 032752 JUMP .+1 + 2844 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 29 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0073 + + 2845 BLURB^ + 2846 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 2847 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 2848 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 2849 ;INSTRUCTION + 2850 ^ + 2851 032752 MOD80: CLEAN^ + 2852 032752 7 000 20 0 00 634440 CONO 634440 + 2853 032753 7 004 20 0 00 010000 CONO PI,10000 + 2854 ^ + 2855 032754 200 00 0 00 036476 MOVE [MOVEI] ;IF LOC 0 EXECUTED C(0)=0 + 2856 032755 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE AN INTERRUPT + 2857 032756 336 00 0 00 000000 SKIPN 0 ;MA FM PICH (1) PULSE FAIL + 2858 STOP ^;SEE MA1 PRINT + 2859 + 2860 032757 254 04 0 00 032760 HALT .+1 + 2861 032760 320 00 0 00 032761 JUMP .+1 + 2862 + 2863 CLEAN^ + 2864 032761 7 000 20 0 00 634440 CONO 634440 + 2865 032762 7 004 20 0 00 010000 CONO PI,10000 + 2866 ^ + 2867 032763 200 00 0 00 036476 MOVE [MOVEI] + 2868 032764 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT IF MA + 2869 032765 306 00 0 00 000040 CAIN 40 ;34 SET FAIL C(0)=40 + 2870 STOP ^;SEE MA1 PRINT + 2871 + 2872 032766 254 04 0 00 032767 HALT .+1 + 2873 032767 320 00 0 00 032770 JUMP .+1 + 2874 + 2875 CLEAN^ + 2876 032770 7 000 20 0 00 634440 CONO 634440 + 2877 032771 7 004 20 0 00 010000 CONO PI,10000 + 2878 ^ + 2879 032772 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + 2880 032773 306 00 0 00 000002 CAIN 2 ;MA 30 SET FAILED + 2881 STOP ^;SEE MA1 PRINT + 2882 + 2883 032774 254 04 0 00 032775 HALT .+1 + 2884 032775 320 00 0 00 032776 JUMP .+1 + 2885 + 2886 CLEAN^ + 2887 032776 7 000 20 0 00 634440 CONO 634440 + 2888 032777 7 004 20 0 00 010000 CONO PI,10000 + 2889 ^ + 2890 033000 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + 2891 033001 306 00 0 00 000046 CAIN 46 ;MA 33 SET OUCCRED ON CH1 + 2892 STOP ^;SEE MA1 PRINT + 2893 + 2894 033002 254 04 0 00 033003 HALT .+1 + 2895 033003 320 00 0 00 033004 JUMP .+1 + 2896 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 30 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0074 + + 2897 033004 MOD81: CLEAN^ + 2898 033004 7 000 20 0 00 634440 CONO 634440 + 2899 033005 7 004 20 0 00 010000 CONO PI,10000 + 2900 ^ + 2901 033006 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + 2902 033007 306 00 0 00 000052 CAIN 52 ;MA 32 SET OCCURED ON CH1 + 2903 STOP ^;SEE MA1 PRINT + 2904 + 2905 033010 254 04 0 00 033011 HALT .+1 + 2906 033011 320 00 0 00 033012 JUMP .+1 + 2907 + 2908 + 2909 CLEAN^ + 2910 033012 7 000 20 0 00 634440 CONO 634440 + 2911 033013 7 004 20 0 00 010000 CONO PI,10000 + 2912 ^ + 2913 033014 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + 2914 033015 306 00 0 00 000043 CAIN 43 ;MA 35 SET OUCCURED ON CH1 + 2915 STOP ^;SEE MA1 PRINT + 2916 + 2917 033016 254 04 0 00 033017 HALT .+1 + 2918 033017 320 00 0 00 033020 JUMP .+1 + 2919 + 2920 + 2921 CLEAN^ + 2922 033020 7 000 20 0 00 634440 CONO 634440 + 2923 033021 7 004 20 0 00 010000 CONO PI,10000 + 2924 ^ + 2925 033022 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + 2926 033023 306 00 0 00 000040 CAIN 40 ;MA 33 SET FAILED ON CH2 + 2927 STOP ^;SEE MA1 PRINT + 2928 + 2929 033024 254 04 0 00 033025 HALT .+1 + 2930 033025 320 00 0 00 033026 JUMP .+1 + 2931 + 2932 + 2933 CLEAN^ + 2934 033026 7 000 20 0 00 634440 CONO 634440 + 2935 033027 7 004 20 0 00 010000 CONO PI,10000 + 2936 ^ + 2937 033030 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;CAUSE INTERRUPT + 2938 033031 306 00 0 00 000040 CAIN 40 ;MA 32 SET FAILED ON CH4 + 2939 STOP ^;SEE MA1 PRINT + 2940 + 2941 033032 254 04 0 00 033033 HALT .+1 + 2942 033033 320 00 0 00 033034 JUMP .+1 + 2943 + 2944 + 2945 CLEAN^ + 2946 033034 7 000 20 0 00 634440 CONO 634440 + 2947 033035 7 004 20 0 00 010000 CONO PI,10000 + 2948 ^ + 2949 033036 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + 2950 033037 306 00 0 00 000046 CAIN 46 ;MA 34 SET OCCURED ON CH2 + 2951 STOP ^;SEE MA1 PRINT +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 30-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0075 + + 2952 + 2953 033040 254 04 0 00 033041 HALT .+1 + 2954 033041 320 00 0 00 033042 JUMP .+1 + 2955 + 2956 + 2957 BLURB^ + 2958 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 2959 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 2960 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 2961 ;INSTRUCTION + 2962 ^ + 2963 033042 MOD82: CLEAN ^;CHECK IF AN INTERRUPT OCCURES + 2964 + 2965 033042 7 000 20 0 00 634440 CONO 634440 + 2966 033043 7 004 20 0 00 010000 CONO PI,10000 + 2967 + 2968 033044 400 00 0 00 000000 SETZ 0 ;C(0) FILLED BY XCT OF MOVEI + 2969 033045 7 004 20 0 00 004377 CONO PI,ACT+PIREQ+177 ;ACTIVATE ALL INTERRUPTS + 2970 033046 336 00 0 00 000000 SKIPN 0 ;CK PIR FM IOB [1] PI1 PRINT + 2971 STOP ^;AND PIRQ LEVEL PI1 PRINT + 2972 + 2973 033047 254 04 0 00 033050 HALT .+1 + 2974 033050 320 00 0 00 033051 JUMP .+1 + 2975 + 2976 + 2977 CLEAN^ + 2978 033051 7 000 20 0 00 634440 CONO 634440 + 2979 033052 7 004 20 0 00 010000 CONO PI,10000 + 2980 ^ + 2981 033053 400 00 0 00 000000 SETZ 0 ;ON INTERRUPT NO PI HOLDS + 2982 033054 7 004 20 0 00 004377 CONO PI,ACT+PIREQ+177 ;WERE SET CHECK PIH + 2983 033055 7 004 34 0 00 077400 CONSO PI,77400 ;FM PICHRQ PULSE ON + 2984 STOP ^;PI1 PRINT + 2985 + 2986 033056 254 04 0 00 033057 HALT .+1 + 2987 033057 320 00 0 00 033060 JUMP .+1 + 2988 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 31 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0076 + + 2989 DEFINE PIHCLR (A,B)< + 2990 CLEAN + 2991 CONO PI,PIREQ+ACT+A ;CAUSE INTERRUPT TO SET HOLD + 2992 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 2993 CONSZ PI,B ;FAIL TO CLEAR SEE PI2 + 2994 STOP + 2995 > + 2996 + 2997 000100 ZZ=100 + 2998 040000 YY=40000 ;CHECK RESET TO PIH FLOPS + 2999 MOD83: REPEAT 7,< + 3000 PIHCLR ZZ,YY + 3001 ZZ=ZZ/2 + 3002 YY=YY/2 + 3003 > + 3004 + 3005 PIHCLR ZZ,YY^ + 3006 CLEAN^ + 3007 033060 7 000 20 0 00 634440 CONO 634440 + 3008 033061 7 004 20 0 00 010000 CONO PI,10000 + 3009 ^ + 3010 033062 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3011 033063 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3012 033064 7 004 30 0 00 040000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3013 STOP^ + 3014 033065 254 04 0 00 033066 HALT .+1 + 3015 033066 320 00 0 00 033067 JUMP .+1 + 3016 ^ + 3017 ^ + 3018 000040 ZZ=ZZ/2 + 3019 020000 YY=YY/2 + 3020 + 3021 + 3022 PIHCLR ZZ,YY^ + 3023 CLEAN^ + 3024 033067 7 000 20 0 00 634440 CONO 634440 + 3025 033070 7 004 20 0 00 010000 CONO PI,10000 + 3026 ^ + 3027 033071 7 004 20 0 00 004240 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3028 033072 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3029 033073 7 004 30 0 00 020000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3030 STOP^ + 3031 033074 254 04 0 00 033075 HALT .+1 + 3032 033075 320 00 0 00 033076 JUMP .+1 + 3033 ^ + 3034 ^ + 3035 000020 ZZ=ZZ/2 + 3036 010000 YY=YY/2 + 3037 + 3038 + 3039 PIHCLR ZZ,YY^ + 3040 CLEAN^ + 3041 033076 7 000 20 0 00 634440 CONO 634440 + 3042 033077 7 004 20 0 00 010000 CONO PI,10000 + 3043 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 31-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0077 + + 3044 033100 7 004 20 0 00 004220 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3045 033101 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3046 033102 7 004 30 0 00 010000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3047 STOP^ + 3048 033103 254 04 0 00 033104 HALT .+1 + 3049 033104 320 00 0 00 033105 JUMP .+1 + 3050 ^ + 3051 ^ + 3052 000010 ZZ=ZZ/2 + 3053 004000 YY=YY/2 + 3054 + 3055 + 3056 PIHCLR ZZ,YY^ + 3057 CLEAN^ + 3058 033105 7 000 20 0 00 634440 CONO 634440 + 3059 033106 7 004 20 0 00 010000 CONO PI,10000 + 3060 ^ + 3061 033107 7 004 20 0 00 004210 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3062 033110 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3063 033111 7 004 30 0 00 004000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3064 STOP^ + 3065 033112 254 04 0 00 033113 HALT .+1 + 3066 033113 320 00 0 00 033114 JUMP .+1 + 3067 ^ + 3068 ^ + 3069 000004 ZZ=ZZ/2 + 3070 002000 YY=YY/2 + 3071 + 3072 + 3073 PIHCLR ZZ,YY^ + 3074 CLEAN^ + 3075 033114 7 000 20 0 00 634440 CONO 634440 + 3076 033115 7 004 20 0 00 010000 CONO PI,10000 + 3077 ^ + 3078 033116 7 004 20 0 00 004204 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3079 033117 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3080 033120 7 004 30 0 00 002000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3081 STOP^ + 3082 033121 254 04 0 00 033122 HALT .+1 + 3083 033122 320 00 0 00 033123 JUMP .+1 + 3084 ^ + 3085 ^ + 3086 000002 ZZ=ZZ/2 + 3087 001000 YY=YY/2 + 3088 + 3089 + 3090 PIHCLR ZZ,YY^ + 3091 CLEAN^ + 3092 033123 7 000 20 0 00 634440 CONO 634440 + 3093 033124 7 004 20 0 00 010000 CONO PI,10000 + 3094 ^ + 3095 033125 7 004 20 0 00 004202 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3096 033126 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3097 033127 7 004 30 0 00 001000 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3098 STOP^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 31-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0078 + + 3099 033130 254 04 0 00 033131 HALT .+1 + 3100 033131 320 00 0 00 033132 JUMP .+1 + 3101 ^ + 3102 ^ + 3103 000001 ZZ=ZZ/2 + 3104 000400 YY=YY/2 + 3105 + 3106 + 3107 PIHCLR ZZ,YY^ + 3108 CLEAN^ + 3109 033132 7 000 20 0 00 634440 CONO 634440 + 3110 033133 7 004 20 0 00 010000 CONO PI,10000 + 3111 ^ + 3112 033134 7 004 20 0 00 004201 CONO PI,PIREQ+ACT+ZZ ;CAUSE INTERRUPT TO SET HOLD + 3113 033135 7 004 20 0 00 010000 CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + 3114 033136 7 004 30 0 00 000400 CONSZ PI,YY ;FAIL TO CLEAR SEE PI2 + 3115 STOP^ + 3116 033137 254 04 0 00 033140 HALT .+1 + 3117 033140 320 00 0 00 033141 JUMP .+1 + 3118 ^ + 3119 ^ + 3120 000000 ZZ=ZZ/2 + 3121 000200 YY=YY/2 + 3122 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 32 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0079 + + 3123 + 3124 + 3125 BLURB^ + 3126 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3127 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3128 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3129 ;INSTRUCTION + 3130 ^ + 3131 DEFINE OFFPIR (A,B)< + 3132 CLEAN + 3133 CONO PI,PIREQ+ACT+A ;SETS PIH. THEN CLR + 3134 JRST 10,.+1 ;PIR TURNED BACK ON + 3135 CONSZ PI,B ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3136 STOP + 3137 > + 3138 + 3139 000100 ZZ=100 + 3140 040000 YY=40000 ;TEST THE RESET TO PIR + 3141 MOD85: REPEAT 7,< + 3142 OFFPIR ZZ,YY + 3143 ZZ=ZZ/2 + 3144 YY=YY/2 + 3145 > + 3146 + 3147 OFFPIR ZZ,YY^ + 3148 CLEAN^ + 3149 033141 7 000 20 0 00 634440 CONO 634440 + 3150 033142 7 004 20 0 00 010000 CONO PI,10000 + 3151 ^ + 3152 033143 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3153 033144 254 10 0 00 033145 JRST 10,.+1 ;PIR TURNED BACK ON + 3154 033145 7 004 30 0 00 040000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3155 STOP^ + 3156 033146 254 04 0 00 033147 HALT .+1 + 3157 033147 320 00 0 00 033150 JUMP .+1 + 3158 ^ + 3159 ^ + 3160 000040 ZZ=ZZ/2 + 3161 020000 YY=YY/2 + 3162 + 3163 + 3164 OFFPIR ZZ,YY^ + 3165 CLEAN^ + 3166 033150 7 000 20 0 00 634440 CONO 634440 + 3167 033151 7 004 20 0 00 010000 CONO PI,10000 + 3168 ^ + 3169 033152 7 004 20 0 00 004240 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3170 033153 254 10 0 00 033154 JRST 10,.+1 ;PIR TURNED BACK ON + 3171 033154 7 004 30 0 00 020000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3172 STOP^ + 3173 033155 254 04 0 00 033156 HALT .+1 + 3174 033156 320 00 0 00 033157 JUMP .+1 + 3175 ^ + 3176 ^ + 3177 000020 ZZ=ZZ/2 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 32-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0080 + + 3178 010000 YY=YY/2 + 3179 + 3180 + 3181 OFFPIR ZZ,YY^ + 3182 CLEAN^ + 3183 033157 7 000 20 0 00 634440 CONO 634440 + 3184 033160 7 004 20 0 00 010000 CONO PI,10000 + 3185 ^ + 3186 033161 7 004 20 0 00 004220 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3187 033162 254 10 0 00 033163 JRST 10,.+1 ;PIR TURNED BACK ON + 3188 033163 7 004 30 0 00 010000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3189 STOP^ + 3190 033164 254 04 0 00 033165 HALT .+1 + 3191 033165 320 00 0 00 033166 JUMP .+1 + 3192 ^ + 3193 ^ + 3194 000010 ZZ=ZZ/2 + 3195 004000 YY=YY/2 + 3196 + 3197 + 3198 OFFPIR ZZ,YY^ + 3199 CLEAN^ + 3200 033166 7 000 20 0 00 634440 CONO 634440 + 3201 033167 7 004 20 0 00 010000 CONO PI,10000 + 3202 ^ + 3203 033170 7 004 20 0 00 004210 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3204 033171 254 10 0 00 033172 JRST 10,.+1 ;PIR TURNED BACK ON + 3205 033172 7 004 30 0 00 004000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3206 STOP^ + 3207 033173 254 04 0 00 033174 HALT .+1 + 3208 033174 320 00 0 00 033175 JUMP .+1 + 3209 ^ + 3210 ^ + 3211 000004 ZZ=ZZ/2 + 3212 002000 YY=YY/2 + 3213 + 3214 + 3215 OFFPIR ZZ,YY^ + 3216 CLEAN^ + 3217 033175 7 000 20 0 00 634440 CONO 634440 + 3218 033176 7 004 20 0 00 010000 CONO PI,10000 + 3219 ^ + 3220 033177 7 004 20 0 00 004204 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3221 033200 254 10 0 00 033201 JRST 10,.+1 ;PIR TURNED BACK ON + 3222 033201 7 004 30 0 00 002000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3223 STOP^ + 3224 033202 254 04 0 00 033203 HALT .+1 + 3225 033203 320 00 0 00 033204 JUMP .+1 + 3226 ^ + 3227 ^ + 3228 000002 ZZ=ZZ/2 + 3229 001000 YY=YY/2 + 3230 + 3231 + 3232 OFFPIR ZZ,YY^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 32-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0081 + + 3233 CLEAN^ + 3234 033204 7 000 20 0 00 634440 CONO 634440 + 3235 033205 7 004 20 0 00 010000 CONO PI,10000 + 3236 ^ + 3237 033206 7 004 20 0 00 004202 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3238 033207 254 10 0 00 033210 JRST 10,.+1 ;PIR TURNED BACK ON + 3239 033210 7 004 30 0 00 001000 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3240 STOP^ + 3241 033211 254 04 0 00 033212 HALT .+1 + 3242 033212 320 00 0 00 033213 JUMP .+1 + 3243 ^ + 3244 ^ + 3245 000001 ZZ=ZZ/2 + 3246 000400 YY=YY/2 + 3247 + 3248 + 3249 OFFPIR ZZ,YY^ + 3250 CLEAN^ + 3251 033213 7 000 20 0 00 634440 CONO 634440 + 3252 033214 7 004 20 0 00 010000 CONO PI,10000 + 3253 ^ + 3254 033215 7 004 20 0 00 004201 CONO PI,PIREQ+ACT+ZZ ;SETS PIH. THEN CLR + 3255 033216 254 10 0 00 033217 JRST 10,.+1 ;PIR TURNED BACK ON + 3256 033217 7 004 30 0 00 000400 CONSZ PI,YY ;PIR TURNED BACK ON.PIH(1) CLR PIR + 3257 STOP^ + 3258 033220 254 04 0 00 033221 HALT .+1 + 3259 033221 320 00 0 00 033222 JUMP .+1 + 3260 ^ + 3261 ^ + 3262 000000 ZZ=ZZ/2 + 3263 000200 YY=YY/2 + 3264 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 33 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0082 + + 3265 DEFINE TSTREQ (A)< + 3266 CLEAN ;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3267 CONO PI,ACT+PIREQ+A ;INTERRUPT SETS PIH IF SECOND + 3268 SETZ ;INTERRUPT OCCURED PIH (0) + 3269 CONO PI,ACT+PIREQ+A ;FAILED TO INHIBIT PIREQ + 3270 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3271 STOP + 3272 > + 3273 + 3274 BLURB^ + 3275 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3276 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3277 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3278 ;INSTRUCTION + 3279 ^ + 3280 000100 ZZ=100 + 3281 MOD86: REPEAT 7,< + 3282 TSTREQ ZZ + 3283 ZZ=ZZ/2 + 3284 > + 3285 + 3286 TSTREQ ZZ^ + 3287 CLEAN ^ + 3288 033222 7 000 20 0 00 634440 CONO 634440 + 3289 033223 7 004 20 0 00 010000 CONO PI,10000 + 3290 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3291 033224 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3292 033225 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3293 033226 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3294 033227 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3295 STOP^ + 3296 033230 254 04 0 00 033231 HALT .+1 + 3297 033231 320 00 0 00 033232 JUMP .+1 + 3298 ^ + 3299 ^ + 3300 000040 ZZ=ZZ/2 + 3301 + 3302 + 3303 TSTREQ ZZ^ + 3304 CLEAN ^ + 3305 033232 7 000 20 0 00 634440 CONO 634440 + 3306 033233 7 004 20 0 00 010000 CONO PI,10000 + 3307 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3308 033234 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3309 033235 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3310 033236 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3311 033237 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3312 STOP^ + 3313 033240 254 04 0 00 033241 HALT .+1 + 3314 033241 320 00 0 00 033242 JUMP .+1 + 3315 ^ + 3316 ^ + 3317 000020 ZZ=ZZ/2 + 3318 + 3319 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 33-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0083 + + 3320 TSTREQ ZZ^ + 3321 CLEAN ^ + 3322 033242 7 000 20 0 00 634440 CONO 634440 + 3323 033243 7 004 20 0 00 010000 CONO PI,10000 + 3324 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3325 033244 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3326 033245 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3327 033246 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3328 033247 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3329 STOP^ + 3330 033250 254 04 0 00 033251 HALT .+1 + 3331 033251 320 00 0 00 033252 JUMP .+1 + 3332 ^ + 3333 ^ + 3334 000010 ZZ=ZZ/2 + 3335 + 3336 + 3337 TSTREQ ZZ^ + 3338 CLEAN ^ + 3339 033252 7 000 20 0 00 634440 CONO 634440 + 3340 033253 7 004 20 0 00 010000 CONO PI,10000 + 3341 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3342 033254 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3343 033255 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3344 033256 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3345 033257 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3346 STOP^ + 3347 033260 254 04 0 00 033261 HALT .+1 + 3348 033261 320 00 0 00 033262 JUMP .+1 + 3349 ^ + 3350 ^ + 3351 000004 ZZ=ZZ/2 + 3352 + 3353 + 3354 TSTREQ ZZ^ + 3355 CLEAN ^ + 3356 033262 7 000 20 0 00 634440 CONO 634440 + 3357 033263 7 004 20 0 00 010000 CONO PI,10000 + 3358 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3359 033264 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3360 033265 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3361 033266 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3362 033267 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3363 STOP^ + 3364 033270 254 04 0 00 033271 HALT .+1 + 3365 033271 320 00 0 00 033272 JUMP .+1 + 3366 ^ + 3367 ^ + 3368 000002 ZZ=ZZ/2 + 3369 + 3370 + 3371 TSTREQ ZZ^ + 3372 CLEAN ^ + 3373 033272 7 000 20 0 00 634440 CONO 634440 + 3374 033273 7 004 20 0 00 010000 CONO PI,10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 33-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0084 + + 3375 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3376 033274 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3377 033275 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3378 033276 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3379 033277 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3380 STOP^ + 3381 033300 254 04 0 00 033301 HALT .+1 + 3382 033301 320 00 0 00 033302 JUMP .+1 + 3383 ^ + 3384 ^ + 3385 000001 ZZ=ZZ/2 + 3386 + 3387 + 3388 TSTREQ ZZ^ + 3389 CLEAN ^ + 3390 033302 7 000 20 0 00 634440 CONO 634440 + 3391 033303 7 004 20 0 00 010000 CONO PI,10000 + 3392 ^;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + 3393 033304 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SETS PIH IF SECOND + 3394 033305 400 00 0 00 000000 SETZ ;INTERRUPT OCCURED PIH (0) + 3395 033306 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+ZZ ;FAILED TO INHIBIT PIREQ + 3396 033307 332 00 0 00 000000 SKIPE ;SEE BOTTOM OF PI2 PRINT + 3397 STOP^ + 3398 033310 254 04 0 00 033311 HALT .+1 + 3399 033311 320 00 0 00 033312 JUMP .+1 + 3400 ^ + 3401 ^ + 3402 000000 ZZ=ZZ/2 + 3403 + 3404 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 34 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0085 + + 3405 DEFINE PIHOK (A,B)< + 3406 CLEAN + 3407 CONO PI,ACT+PIREQ+A ;INTERRUPT SHOULD SET HOLD(PIH) + 3408 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3409 CONO PI,ACT+PIREQ+B ;FAILED TO PREVENT PIOK THUS + 3410 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3411 STOP ;OF PI2 PRINT + 3412 > + 3413 BLURB^ + 3414 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3415 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3416 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3417 ;INSTRUCTION + 3418 ^ + 3419 + 3420 000100 ZZ=100 + 3421 000040 YY=40 ;TEST PRIORITY CHAIN + 3422 MOD87: REPEAT 6,< + 3423 PIHOK ZZ,YY + 3424 ZZ=ZZ/2 + 3425 YY=YY/2 + 3426 > + 3427 + 3428 PIHOK ZZ,YY^ + 3429 CLEAN^ + 3430 033312 7 000 20 0 00 634440 CONO 634440 + 3431 033313 7 004 20 0 00 010000 CONO PI,10000 + 3432 ^ + 3433 033314 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3434 033315 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3435 033316 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3436 033317 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3437 STOP ^ + 3438 033320 254 04 0 00 033321 HALT .+1 + 3439 033321 320 00 0 00 033322 JUMP .+1 + 3440 ^;OF PI2 PRINT + 3441 ^ + 3442 000040 ZZ=ZZ/2 + 3443 000020 YY=YY/2 + 3444 + 3445 + 3446 PIHOK ZZ,YY^ + 3447 CLEAN^ + 3448 033322 7 000 20 0 00 634440 CONO 634440 + 3449 033323 7 004 20 0 00 010000 CONO PI,10000 + 3450 ^ + 3451 033324 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3452 033325 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3453 033326 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3454 033327 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3455 STOP ^ + 3456 033330 254 04 0 00 033331 HALT .+1 + 3457 033331 320 00 0 00 033332 JUMP .+1 + 3458 ^;OF PI2 PRINT + 3459 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 34-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0086 + + 3460 000020 ZZ=ZZ/2 + 3461 000010 YY=YY/2 + 3462 + 3463 + 3464 PIHOK ZZ,YY^ + 3465 CLEAN^ + 3466 033332 7 000 20 0 00 634440 CONO 634440 + 3467 033333 7 004 20 0 00 010000 CONO PI,10000 + 3468 ^ + 3469 033334 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3470 033335 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3471 033336 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3472 033337 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3473 STOP ^ + 3474 033340 254 04 0 00 033341 HALT .+1 + 3475 033341 320 00 0 00 033342 JUMP .+1 + 3476 ^;OF PI2 PRINT + 3477 ^ + 3478 000010 ZZ=ZZ/2 + 3479 000004 YY=YY/2 + 3480 + 3481 + 3482 PIHOK ZZ,YY^ + 3483 CLEAN^ + 3484 033342 7 000 20 0 00 634440 CONO 634440 + 3485 033343 7 004 20 0 00 010000 CONO PI,10000 + 3486 ^ + 3487 033344 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3488 033345 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3489 033346 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3490 033347 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3491 STOP ^ + 3492 033350 254 04 0 00 033351 HALT .+1 + 3493 033351 320 00 0 00 033352 JUMP .+1 + 3494 ^;OF PI2 PRINT + 3495 ^ + 3496 000004 ZZ=ZZ/2 + 3497 000002 YY=YY/2 + 3498 + 3499 + 3500 PIHOK ZZ,YY^ + 3501 CLEAN^ + 3502 033352 7 000 20 0 00 634440 CONO 634440 + 3503 033353 7 004 20 0 00 010000 CONO PI,10000 + 3504 ^ + 3505 033354 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3506 033355 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3507 033356 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3508 033357 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3509 STOP ^ + 3510 033360 254 04 0 00 033361 HALT .+1 + 3511 033361 320 00 0 00 033362 JUMP .+1 + 3512 ^;OF PI2 PRINT + 3513 ^ + 3514 000002 ZZ=ZZ/2 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 34-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0087 + + 3515 000001 YY=YY/2 + 3516 + 3517 + 3518 PIHOK ZZ,YY^ + 3519 CLEAN^ + 3520 033362 7 000 20 0 00 634440 CONO 634440 + 3521 033363 7 004 20 0 00 010000 CONO PI,10000 + 3522 ^ + 3523 033364 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+ZZ ;INTERRUPT SHOULD SET HOLD(PIH) + 3524 033365 400 00 0 00 000000 SETZ ;IF SECOND INTERRUPT OCCURS PIH + 3525 033366 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+YY ;FAILED TO PREVENT PIOK THUS + 3526 033367 332 00 0 00 000000 SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + 3527 STOP ^ + 3528 033370 254 04 0 00 033371 HALT .+1 + 3529 033371 320 00 0 00 033372 JUMP .+1 + 3530 ^;OF PI2 PRINT + 3531 ^ + 3532 000001 ZZ=ZZ/2 + 3533 000000 YY=YY/2 + 3534 + 3535 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 35 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0088 + + 3536 DEFINE SETPIH (A,B)< + 3537 CLEAN ;CHECK REQ AND PIH FLOPS + 3538 CONO PI,ACT+PIREQ+A ;CAUSE INTERRUPT, SHOULD SET + 3539 CONSO PI,B ;HOLD (PIH) SEE PI2 PRINT + 3540 STOP ;BOTH PIR+PIH SHOULD BE SET + 3541 > + 3542 033372 MOD88: SETPIH 100,40000 ^;CH 1 + 3543 + 3544 CLEAN ^ + 3545 033372 7 000 20 0 00 634440 CONO 634440 + 3546 033373 7 004 20 0 00 010000 CONO PI,10000 + 3547 ^;CHECK REQ AND PIH FLOPS + 3548 033374 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT, SHOULD SET + 3549 033375 7 004 34 0 00 040000 CONSO PI,40000 ;HOLD (PIH) SEE PI2 PRINT + 3550 STOP ^ + 3551 033376 254 04 0 00 033377 HALT .+1 + 3552 033377 320 00 0 00 033400 JUMP .+1 + 3553 ^;BOTH PIR+PIH SHOULD BE SET + 3554 + 3555 SETPIH 40,20000 ^;CH 2 + 3556 + 3557 CLEAN ^ + 3558 033400 7 000 20 0 00 634440 CONO 634440 + 3559 033401 7 004 20 0 00 010000 CONO PI,10000 + 3560 ^;CHECK REQ AND PIH FLOPS + 3561 033402 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT, SHOULD SET + 3562 033403 7 004 34 0 00 020000 CONSO PI,20000 ;HOLD (PIH) SEE PI2 PRINT + 3563 STOP ^ + 3564 033404 254 04 0 00 033405 HALT .+1 + 3565 033405 320 00 0 00 033406 JUMP .+1 + 3566 ^;BOTH PIR+PIH SHOULD BE SET + 3567 + 3568 CHANEL MOD90^ + 3569 033406 336 00 0 00 036672 SKIPN PI7SYS# + 3570 033407 254 00 0 00 033446 JRST MOD90 + 3571 ^ + 3572 033410 MOD89: SETPIH 20,10000 ^;CH 3 + 3573 + 3574 CLEAN ^ + 3575 033410 7 000 20 0 00 634440 CONO 634440 + 3576 033411 7 004 20 0 00 010000 CONO PI,10000 + 3577 ^;CHECK REQ AND PIH FLOPS + 3578 033412 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;CAUSE INTERRUPT, SHOULD SET + 3579 033413 7 004 34 0 00 010000 CONSO PI,10000 ;HOLD (PIH) SEE PI2 PRINT + 3580 STOP ^ + 3581 033414 254 04 0 00 033415 HALT .+1 + 3582 033415 320 00 0 00 033416 JUMP .+1 + 3583 ^;BOTH PIR+PIH SHOULD BE SET + 3584 + 3585 SETPIH 10,4000 ^;CH 4 + 3586 + 3587 CLEAN ^ + 3588 033416 7 000 20 0 00 634440 CONO 634440 + 3589 033417 7 004 20 0 00 010000 CONO PI,10000 + 3590 ^;CHECK REQ AND PIH FLOPS +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 35-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0089 + + 3591 033420 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;CAUSE INTERRUPT, SHOULD SET + 3592 033421 7 004 34 0 00 004000 CONSO PI,4000 ;HOLD (PIH) SEE PI2 PRINT + 3593 STOP ^ + 3594 033422 254 04 0 00 033423 HALT .+1 + 3595 033423 320 00 0 00 033424 JUMP .+1 + 3596 ^;BOTH PIR+PIH SHOULD BE SET + 3597 + 3598 SETPIH 4,2000 ^;CH 5 + 3599 + 3600 CLEAN ^ + 3601 033424 7 000 20 0 00 634440 CONO 634440 + 3602 033425 7 004 20 0 00 010000 CONO PI,10000 + 3603 ^;CHECK REQ AND PIH FLOPS + 3604 033426 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;CAUSE INTERRUPT, SHOULD SET + 3605 033427 7 004 34 0 00 002000 CONSO PI,2000 ;HOLD (PIH) SEE PI2 PRINT + 3606 STOP ^ + 3607 033430 254 04 0 00 033431 HALT .+1 + 3608 033431 320 00 0 00 033432 JUMP .+1 + 3609 ^;BOTH PIR+PIH SHOULD BE SET + 3610 + 3611 SETPIH 2,1000 ^;CH 6 + 3612 + 3613 CLEAN ^ + 3614 033432 7 000 20 0 00 634440 CONO 634440 + 3615 033433 7 004 20 0 00 010000 CONO PI,10000 + 3616 ^;CHECK REQ AND PIH FLOPS + 3617 033434 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;CAUSE INTERRUPT, SHOULD SET + 3618 033435 7 004 34 0 00 001000 CONSO PI,1000 ;HOLD (PIH) SEE PI2 PRINT + 3619 STOP ^ + 3620 033436 254 04 0 00 033437 HALT .+1 + 3621 033437 320 00 0 00 033440 JUMP .+1 + 3622 ^;BOTH PIR+PIH SHOULD BE SET + 3623 + 3624 SETPIH 1,400 ^;CH 7 + 3625 + 3626 CLEAN ^ + 3627 033440 7 000 20 0 00 634440 CONO 634440 + 3628 033441 7 004 20 0 00 010000 CONO PI,10000 + 3629 ^;CHECK REQ AND PIH FLOPS + 3630 033442 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+1 ;CAUSE INTERRUPT, SHOULD SET + 3631 033443 7 004 34 0 00 000400 CONSO PI,400 ;HOLD (PIH) SEE PI2 PRINT + 3632 STOP ^ + 3633 033444 254 04 0 00 033445 HALT .+1 + 3634 033445 320 00 0 00 033446 JUMP .+1 + 3635 ^;BOTH PIR+PIH SHOULD BE SET + 3636 + 3637 033446 MOD90: CLEAN^ + 3638 033446 7 000 20 0 00 634440 CONO 634440 + 3639 033447 7 004 20 0 00 010000 CONO PI,10000 + 3640 ^ + 3641 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 36 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0090 + + 3642 DEFINE PIADDR (A,B)< + 3643 CLEAN ;CHECK ABILITY TO INTERRUPT TO + 3644 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3645 CONO PI,ACT+PIREQ+A ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3646 CAIE B ;NO INTERRUPT OCCURED, C(0)=ADDR + 3647 STOP ;OF INTERRUPT EXECUTED + 3648 > + 3649 + 3650 BLURB^ + 3651 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3652 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3653 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3654 ;INSTRUCTION + 3655 ^ + 3656 033450 MOD91: PIADDR 100,42 ^;CH 1 TO LOC 42 + 3657 + 3658 CLEAN ^ + 3659 033450 7 000 20 0 00 634440 CONO 634440 + 3660 033451 7 004 20 0 00 010000 CONO PI,10000 + 3661 ^;CHECK ABILITY TO INTERRUPT TO + 3662 033452 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3663 033453 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3664 033454 302 00 0 00 000042 CAIE 42 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3665 STOP ^ + 3666 033455 254 04 0 00 033456 HALT .+1 + 3667 033456 320 00 0 00 033457 JUMP .+1 + 3668 ^;OF INTERRUPT EXECUTED + 3669 + 3670 PIADDR 40,44 ^;CH 2 TO LOC 44 + 3671 + 3672 CLEAN ^ + 3673 033457 7 000 20 0 00 634440 CONO 634440 + 3674 033460 7 004 20 0 00 010000 CONO PI,10000 + 3675 ^;CHECK ABILITY TO INTERRUPT TO + 3676 033461 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3677 033462 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3678 033463 302 00 0 00 000044 CAIE 44 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3679 STOP ^ + 3680 033464 254 04 0 00 033465 HALT .+1 + 3681 033465 320 00 0 00 033466 JUMP .+1 + 3682 ^;OF INTERRUPT EXECUTED + 3683 + 3684 CHANEL MOD93^ + 3685 033466 336 00 0 00 036672 SKIPN PI7SYS# + 3686 033467 254 00 0 00 033533 JRST MOD93 + 3687 ^ + 3688 033470 MOD92: PIADDR 20,46 ^;CH 3 TO LOC 46 + 3689 + 3690 CLEAN ^ + 3691 033470 7 000 20 0 00 634440 CONO 634440 + 3692 033471 7 004 20 0 00 010000 CONO PI,10000 + 3693 ^;CHECK ABILITY TO INTERRUPT TO + 3694 033472 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3695 033473 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3696 033474 302 00 0 00 000046 CAIE 46 ;NO INTERRUPT OCCURED, C(0)=ADDR +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 36-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0091 + + 3697 STOP ^ + 3698 033475 254 04 0 00 033476 HALT .+1 + 3699 033476 320 00 0 00 033477 JUMP .+1 + 3700 ^;OF INTERRUPT EXECUTED + 3701 + 3702 PIADDR 10,50 ^;CH 4 TO LOC 50 + 3703 + 3704 CLEAN ^ + 3705 033477 7 000 20 0 00 634440 CONO 634440 + 3706 033500 7 004 20 0 00 010000 CONO PI,10000 + 3707 ^;CHECK ABILITY TO INTERRUPT TO + 3708 033501 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3709 033502 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3710 033503 302 00 0 00 000050 CAIE 50 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3711 STOP ^ + 3712 033504 254 04 0 00 033505 HALT .+1 + 3713 033505 320 00 0 00 033506 JUMP .+1 + 3714 ^;OF INTERRUPT EXECUTED + 3715 + 3716 PIADDR 4,52 ^;CH 5 TO LOC 52 + 3717 + 3718 CLEAN ^ + 3719 033506 7 000 20 0 00 634440 CONO 634440 + 3720 033507 7 004 20 0 00 010000 CONO PI,10000 + 3721 ^;CHECK ABILITY TO INTERRUPT TO + 3722 033510 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3723 033511 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3724 033512 302 00 0 00 000052 CAIE 52 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3725 STOP ^ + 3726 033513 254 04 0 00 033514 HALT .+1 + 3727 033514 320 00 0 00 033515 JUMP .+1 + 3728 ^;OF INTERRUPT EXECUTED + 3729 + 3730 PIADDR 2,54 ^;CH 6 TO LOC 54 + 3731 + 3732 CLEAN ^ + 3733 033515 7 000 20 0 00 634440 CONO 634440 + 3734 033516 7 004 20 0 00 010000 CONO PI,10000 + 3735 ^;CHECK ABILITY TO INTERRUPT TO + 3736 033517 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3737 033520 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;ACTIVATE AN INTERRUPT. IF C(0)=0 + 3738 033521 302 00 0 00 000054 CAIE 54 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3739 STOP ^ + 3740 033522 254 04 0 00 033523 HALT .+1 + 3741 033523 320 00 0 00 033524 JUMP .+1 + 3742 ^;OF INTERRUPT EXECUTED + 3743 + 3744 PIADDR 1,56 ^;CH 7 TO LOC 56 + 3745 + 3746 CLEAN ^ + 3747 033524 7 000 20 0 00 634440 CONO 634440 + 3748 033525 7 004 20 0 00 010000 CONO PI,10000 + 3749 ^;CHECK ABILITY TO INTERRUPT TO + 3750 033526 400 00 0 00 000000 SETZ ;LOC 40-60 SHOULD SEE MOVEI + 3751 033527 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+1 ;ACTIVATE AN INTERRUPT. IF C(0)=0 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 36-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0092 + + 3752 033530 302 00 0 00 000056 CAIE 56 ;NO INTERRUPT OCCURED, C(0)=ADDR + 3753 STOP ^ + 3754 033531 254 04 0 00 033532 HALT .+1 + 3755 033532 320 00 0 00 033533 JUMP .+1 + 3756 ^;OF INTERRUPT EXECUTED + 3757 + 3758 + 3759 033533 MOD93: CLEAN^ + 3760 033533 7 000 20 0 00 634440 CONO 634440 + 3761 033534 7 004 20 0 00 010000 CONO PI,10000 + 3762 ^ + 3763 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 37 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0093 + + 3764 DEFINE TWOPIR (A,B)< + 3765 CLEAN ;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3766 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3767 CONO PI,ACT+PIREQ+A ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3768 CAIN B ;PIR (0) INPUT TO PIOK + 3769 STOP + 3770 > + 3771 BLURB^ + 3772 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3773 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3774 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3775 ;INSTRUCTION + 3776 ^ + 3777 033535 MOD94: TWOPIR 100,46 ^;CH 1+2 + 3778 + 3779 CLEAN ^ + 3780 033535 7 000 20 0 00 634440 CONO 634440 + 3781 033536 7 004 20 0 00 010000 CONO PI,10000 + 3782 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3783 033537 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3784 033540 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3785 033541 306 00 0 00 000046 CAIN 46 ;PIR (0) INPUT TO PIOK + 3786 STOP^ + 3787 033542 254 04 0 00 033543 HALT .+1 + 3788 033543 320 00 0 00 033544 JUMP .+1 + 3789 ^ + 3790 + 3791 TWOPIR 40,46 ^;CH 2+3 + 3792 + 3793 CLEAN ^ + 3794 033544 7 000 20 0 00 634440 CONO 634440 + 3795 033545 7 004 20 0 00 010000 CONO PI,10000 + 3796 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3797 033546 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3798 033547 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3799 033550 306 00 0 00 000046 CAIN 46 ;PIR (0) INPUT TO PIOK + 3800 STOP^ + 3801 033551 254 04 0 00 033552 HALT .+1 + 3802 033552 320 00 0 00 033553 JUMP .+1 + 3803 ^ + 3804 + 3805 CHANEL MOD96^ + 3806 033553 336 00 0 00 036672 SKIPN PI7SYS# + 3807 033554 254 00 0 00 033611 JRST MOD96 + 3808 ^ + 3809 033555 MOD95: TWOPIR 20,56 ^;CH 3+4 + 3810 + 3811 CLEAN ^ + 3812 033555 7 000 20 0 00 634440 CONO 634440 + 3813 033556 7 004 20 0 00 010000 CONO PI,10000 + 3814 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3815 033557 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3816 033560 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3817 033561 306 00 0 00 000056 CAIN 56 ;PIR (0) INPUT TO PIOK + 3818 STOP^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 37-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0094 + + 3819 033562 254 04 0 00 033563 HALT .+1 + 3820 033563 320 00 0 00 033564 JUMP .+1 + 3821 ^ + 3822 + 3823 TWOPIR 10,52 ^;CH 4+5 + 3824 + 3825 CLEAN ^ + 3826 033564 7 000 20 0 00 634440 CONO 634440 + 3827 033565 7 004 20 0 00 010000 CONO PI,10000 + 3828 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3829 033566 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3830 033567 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3831 033570 306 00 0 00 000052 CAIN 52 ;PIR (0) INPUT TO PIOK + 3832 STOP^ + 3833 033571 254 04 0 00 033572 HALT .+1 + 3834 033572 320 00 0 00 033573 JUMP .+1 + 3835 ^ + 3836 + 3837 TWOPIR 4,56 ^;CH 5+6 + 3838 + 3839 CLEAN ^ + 3840 033573 7 000 20 0 00 634440 CONO 634440 + 3841 033574 7 004 20 0 00 010000 CONO PI,10000 + 3842 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3843 033575 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3844 033576 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3845 033577 306 00 0 00 000056 CAIN 56 ;PIR (0) INPUT TO PIOK + 3846 STOP^ + 3847 033600 254 04 0 00 033601 HALT .+1 + 3848 033601 320 00 0 00 033602 JUMP .+1 + 3849 ^ + 3850 + 3851 TWOPIR 2,56 ^;CH 6+7 + 3852 + 3853 CLEAN ^ + 3854 033602 7 000 20 0 00 634440 CONO 634440 + 3855 033603 7 004 20 0 00 010000 CONO PI,10000 + 3856 ^;CK PIR(0) ABILITY TO PREVENT INTERRUPT + 3857 033604 400 00 0 00 000000 SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + 3858 033605 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;TURN ON 2 PIR FLOPS. CHECK INT LOC + 3859 033606 306 00 0 00 000056 CAIN 56 ;PIR (0) INPUT TO PIOK + 3860 STOP^ + 3861 033607 254 04 0 00 033610 HALT .+1 + 3862 033610 320 00 0 00 033611 JUMP .+1 + 3863 ^ + 3864 + 3865 033611 MOD96: CLEAN^ + 3866 033611 7 000 20 0 00 634440 CONO 634440 + 3867 033612 7 004 20 0 00 010000 CONO PI,10000 + 3868 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 38 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0095 + + 3869 DEFINE MULPIR (A,B)< + 3870 CLEAN + 3871 SETZ ;TEST MULTI REQUEST BREAK ON + 3872 CONO PI,ACT+PIREQ+A ;CORRECT CHANNEL TO CORRECT + 3873 CAIE B ;LOC C(0)=INTERRUPTED ADDR + 3874 STOP + 3875 > + 3876 + 3877 BLURB^ + 3878 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 3879 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 3880 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 3881 ;INSTRUCTION + 3882 ^ + 3883 033613 MOD97: MULPIR 100,42^ + 3884 CLEAN^ + 3885 033613 7 000 20 0 00 634440 CONO 634440 + 3886 033614 7 004 20 0 00 010000 CONO PI,10000 + 3887 ^ + 3888 033615 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3889 033616 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CORRECT CHANNEL TO CORRECT + 3890 033617 302 00 0 00 000042 CAIE 42 ;LOC C(0)=INTERRUPTED ADDR + 3891 STOP^ + 3892 033620 254 04 0 00 033621 HALT .+1 + 3893 033621 320 00 0 00 033622 JUMP .+1 + 3894 ^ + 3895 ^ + 3896 MULPIR 40,44^ + 3897 CLEAN^ + 3898 033622 7 000 20 0 00 634440 CONO 634440 + 3899 033623 7 004 20 0 00 010000 CONO PI,10000 + 3900 ^ + 3901 033624 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3902 033625 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;CORRECT CHANNEL TO CORRECT + 3903 033626 302 00 0 00 000044 CAIE 44 ;LOC C(0)=INTERRUPTED ADDR + 3904 STOP^ + 3905 033627 254 04 0 00 033630 HALT .+1 + 3906 033630 320 00 0 00 033631 JUMP .+1 + 3907 ^ + 3908 ^ + 3909 CHANEL MOD99^ + 3910 033631 336 00 0 00 036672 SKIPN PI7SYS# + 3911 033632 254 00 0 00 033676 JRST MOD99 + 3912 ^ + 3913 033633 MOD98: MULPIR 20,46^ + 3914 CLEAN^ + 3915 033633 7 000 20 0 00 634440 CONO 634440 + 3916 033634 7 004 20 0 00 010000 CONO PI,10000 + 3917 ^ + 3918 033635 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3919 033636 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;CORRECT CHANNEL TO CORRECT + 3920 033637 302 00 0 00 000046 CAIE 46 ;LOC C(0)=INTERRUPTED ADDR + 3921 STOP^ + 3922 033640 254 04 0 00 033641 HALT .+1 + 3923 033641 320 00 0 00 033642 JUMP .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 38-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0096 + + 3924 ^ + 3925 ^ + 3926 MULPIR 10,50^ + 3927 CLEAN^ + 3928 033642 7 000 20 0 00 634440 CONO 634440 + 3929 033643 7 004 20 0 00 010000 CONO PI,10000 + 3930 ^ + 3931 033644 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3932 033645 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;CORRECT CHANNEL TO CORRECT + 3933 033646 302 00 0 00 000050 CAIE 50 ;LOC C(0)=INTERRUPTED ADDR + 3934 STOP^ + 3935 033647 254 04 0 00 033650 HALT .+1 + 3936 033650 320 00 0 00 033651 JUMP .+1 + 3937 ^ + 3938 ^ + 3939 MULPIR 4,52^ + 3940 CLEAN^ + 3941 033651 7 000 20 0 00 634440 CONO 634440 + 3942 033652 7 004 20 0 00 010000 CONO PI,10000 + 3943 ^ + 3944 033653 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3945 033654 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;CORRECT CHANNEL TO CORRECT + 3946 033655 302 00 0 00 000052 CAIE 52 ;LOC C(0)=INTERRUPTED ADDR + 3947 STOP^ + 3948 033656 254 04 0 00 033657 HALT .+1 + 3949 033657 320 00 0 00 033660 JUMP .+1 + 3950 ^ + 3951 ^ + 3952 MULPIR 2,54^ + 3953 CLEAN^ + 3954 033660 7 000 20 0 00 634440 CONO 634440 + 3955 033661 7 004 20 0 00 010000 CONO PI,10000 + 3956 ^ + 3957 033662 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3958 033663 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;CORRECT CHANNEL TO CORRECT + 3959 033664 302 00 0 00 000054 CAIE 54 ;LOC C(0)=INTERRUPTED ADDR + 3960 STOP^ + 3961 033665 254 04 0 00 033666 HALT .+1 + 3962 033666 320 00 0 00 033667 JUMP .+1 + 3963 ^ + 3964 ^ + 3965 MULPIR 1,56^ + 3966 CLEAN^ + 3967 033667 7 000 20 0 00 634440 CONO 634440 + 3968 033670 7 004 20 0 00 010000 CONO PI,10000 + 3969 ^ + 3970 033671 400 00 0 00 000000 SETZ ;TEST MULTI REQUEST BREAK ON + 3971 033672 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+1 ;CORRECT CHANNEL TO CORRECT + 3972 033673 302 00 0 00 000056 CAIE 56 ;LOC C(0)=INTERRUPTED ADDR + 3973 STOP^ + 3974 033674 254 04 0 00 033675 HALT .+1 + 3975 033675 320 00 0 00 033676 JUMP .+1 + 3976 ^ + 3977 ^ + 3978 033676 MOD99: CLEAN^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 38-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0097 + + 3979 033676 7 000 20 0 00 634440 CONO 634440 + 3980 033677 7 004 20 0 00 010000 CONO PI,10000 + 3981 ^ + 3982 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 39 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0098 + + 3983 DEFINE JENOK (A,B)< + 3984 CLEAN + 3985 CONO PI,ACT+PIREQ+A ;SET THE PIH FLOP THEN REMOVE + 3986 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 3987 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 3988 CONSO PI,B ;EFFECT PIH FLOP UNLESS AND + 3989 STOP + 3990 > + 3991 + 3992 033700 MOD100: JENOK 100,40000 ^;PIH 1 + 3993 + 3994 CLEAN^ + 3995 033700 7 000 20 0 00 634440 CONO 634440 + 3996 033701 7 004 20 0 00 010000 CONO PI,10000 + 3997 ^ + 3998 033702 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;SET THE PIH FLOP THEN REMOVE + 3999 033703 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4000 033704 254 10 0 00 033705 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4001 033705 7 004 34 0 00 040000 CONSO PI,40000 ;EFFECT PIH FLOP UNLESS AND + 4002 STOP^ + 4003 033706 254 04 0 00 033707 HALT .+1 + 4004 033707 320 00 0 00 033710 JUMP .+1 + 4005 ^ + 4006 + 4007 JENOK 40,20000 ^;PIH 2 + 4008 + 4009 CLEAN^ + 4010 033710 7 000 20 0 00 634440 CONO 634440 + 4011 033711 7 004 20 0 00 010000 CONO PI,10000 + 4012 ^ + 4013 033712 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;SET THE PIH FLOP THEN REMOVE + 4014 033713 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4015 033714 254 10 0 00 033715 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4016 033715 7 004 34 0 00 020000 CONSO PI,20000 ;EFFECT PIH FLOP UNLESS AND + 4017 STOP^ + 4018 033716 254 04 0 00 033717 HALT .+1 + 4019 033717 320 00 0 00 033720 JUMP .+1 + 4020 ^ + 4021 + 4022 CHANEL MOD102^ + 4023 033720 336 00 0 00 036672 SKIPN PI7SYS# + 4024 033721 254 00 0 00 033772 JRST MOD102 + 4025 ^ + 4026 033722 MOD101: JENOK 20,10000 ^;PIH 3 + 4027 + 4028 CLEAN^ + 4029 033722 7 000 20 0 00 634440 CONO 634440 + 4030 033723 7 004 20 0 00 010000 CONO PI,10000 + 4031 ^ + 4032 033724 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;SET THE PIH FLOP THEN REMOVE + 4033 033725 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4034 033726 254 10 0 00 033727 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4035 033727 7 004 34 0 00 010000 CONSO PI,10000 ;EFFECT PIH FLOP UNLESS AND + 4036 STOP^ + 4037 033730 254 04 0 00 033731 HALT .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 39-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0099 + + 4038 033731 320 00 0 00 033732 JUMP .+1 + 4039 ^ + 4040 + 4041 JENOK 10,4000 ^;PIH 4 + 4042 + 4043 CLEAN^ + 4044 033732 7 000 20 0 00 634440 CONO 634440 + 4045 033733 7 004 20 0 00 010000 CONO PI,10000 + 4046 ^ + 4047 033734 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;SET THE PIH FLOP THEN REMOVE + 4048 033735 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4049 033736 254 10 0 00 033737 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4050 033737 7 004 34 0 00 004000 CONSO PI,4000 ;EFFECT PIH FLOP UNLESS AND + 4051 STOP^ + 4052 033740 254 04 0 00 033741 HALT .+1 + 4053 033741 320 00 0 00 033742 JUMP .+1 + 4054 ^ + 4055 + 4056 JENOK 4,2000 ^;PIH 5 + 4057 + 4058 CLEAN^ + 4059 033742 7 000 20 0 00 634440 CONO 634440 + 4060 033743 7 004 20 0 00 010000 CONO PI,10000 + 4061 ^ + 4062 033744 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;SET THE PIH FLOP THEN REMOVE + 4063 033745 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4064 033746 254 10 0 00 033747 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4065 033747 7 004 34 0 00 002000 CONSO PI,2000 ;EFFECT PIH FLOP UNLESS AND + 4066 STOP^ + 4067 033750 254 04 0 00 033751 HALT .+1 + 4068 033751 320 00 0 00 033752 JUMP .+1 + 4069 ^ + 4070 + 4071 JENOK 2,1000 ^;PIH 6 + 4072 + 4073 CLEAN^ + 4074 033752 7 000 20 0 00 634440 CONO 634440 + 4075 033753 7 004 20 0 00 010000 CONO PI,10000 + 4076 ^ + 4077 033754 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;SET THE PIH FLOP THEN REMOVE + 4078 033755 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4079 033756 254 10 0 00 033757 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4080 033757 7 004 34 0 00 001000 CONSO PI,1000 ;EFFECT PIH FLOP UNLESS AND + 4081 STOP^ + 4082 033760 254 04 0 00 033761 HALT .+1 + 4083 033761 320 00 0 00 033762 JUMP .+1 + 4084 ^ + 4085 + 4086 JENOK 1,400 ^;PIH 7 + 4087 + 4088 CLEAN^ + 4089 033762 7 000 20 0 00 634440 CONO 634440 + 4090 033763 7 004 20 0 00 010000 CONO PI,10000 + 4091 ^ + 4092 033764 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+1 ;SET THE PIH FLOP THEN REMOVE +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 39-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0100 + + 4093 033765 7 004 20 0 00 000400 CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + 4094 033766 254 10 0 00 033767 JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + 4095 033767 7 004 34 0 00 000400 CONSO PI,400 ;EFFECT PIH FLOP UNLESS AND + 4096 STOP^ + 4097 033770 254 04 0 00 033771 HALT .+1 + 4098 033771 320 00 0 00 033772 JUMP .+1 + 4099 ^ + 4100 + 4101 033772 MOD102: CLEAN^ + 4102 033772 7 000 20 0 00 634440 CONO 634440 + 4103 033773 7 004 20 0 00 010000 CONO PI,10000 + 4104 ^ + 4105 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 40 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0101 + + 4106 DEFINE ONEPIH (A,B)< + 4107 CLEAN + 4108 CONO PI,ACT+PIREQ+A ;CHECK FOR REDUNDANT + 4109 CONSZ PI,B ;PIH FLAGS.SEE TOP PI2 PRINT + 4110 STOP + 4111 > + 4112 + 4113 020000 WW=20000 + 4114 000100 ZZ=100 + 4115 037400 YY=37400 + 4116 MOD103: REPEAT 7,< + 4117 ONEPIH ZZ,YY + 4118 YY=YY+WW + 4119 WW=WW/2 + 4120 ZZ=ZZ/2 + 4121 > + 4122 + 4123 ONEPIH ZZ,YY^ + 4124 CLEAN^ + 4125 033774 7 000 20 0 00 634440 CONO 634440 + 4126 033775 7 004 20 0 00 010000 CONO PI,10000 + 4127 ^ + 4128 033776 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4129 033777 7 004 30 0 00 037400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4130 STOP^ + 4131 034000 254 04 0 00 034001 HALT .+1 + 4132 034001 320 00 0 00 034002 JUMP .+1 + 4133 ^ + 4134 ^ + 4135 057400 YY=YY+WW + 4136 010000 WW=WW/2 + 4137 000040 ZZ=ZZ/2 + 4138 + 4139 + 4140 ONEPIH ZZ,YY^ + 4141 CLEAN^ + 4142 034002 7 000 20 0 00 634440 CONO 634440 + 4143 034003 7 004 20 0 00 010000 CONO PI,10000 + 4144 ^ + 4145 034004 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4146 034005 7 004 30 0 00 057400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4147 STOP^ + 4148 034006 254 04 0 00 034007 HALT .+1 + 4149 034007 320 00 0 00 034010 JUMP .+1 + 4150 ^ + 4151 ^ + 4152 067400 YY=YY+WW + 4153 004000 WW=WW/2 + 4154 000020 ZZ=ZZ/2 + 4155 + 4156 + 4157 ONEPIH ZZ,YY^ + 4158 CLEAN^ + 4159 034010 7 000 20 0 00 634440 CONO 634440 + 4160 034011 7 004 20 0 00 010000 CONO PI,10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 40-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0102 + + 4161 ^ + 4162 034012 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4163 034013 7 004 30 0 00 067400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4164 STOP^ + 4165 034014 254 04 0 00 034015 HALT .+1 + 4166 034015 320 00 0 00 034016 JUMP .+1 + 4167 ^ + 4168 ^ + 4169 073400 YY=YY+WW + 4170 002000 WW=WW/2 + 4171 000010 ZZ=ZZ/2 + 4172 + 4173 + 4174 ONEPIH ZZ,YY^ + 4175 CLEAN^ + 4176 034016 7 000 20 0 00 634440 CONO 634440 + 4177 034017 7 004 20 0 00 010000 CONO PI,10000 + 4178 ^ + 4179 034020 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4180 034021 7 004 30 0 00 073400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4181 STOP^ + 4182 034022 254 04 0 00 034023 HALT .+1 + 4183 034023 320 00 0 00 034024 JUMP .+1 + 4184 ^ + 4185 ^ + 4186 075400 YY=YY+WW + 4187 001000 WW=WW/2 + 4188 000004 ZZ=ZZ/2 + 4189 + 4190 + 4191 ONEPIH ZZ,YY^ + 4192 CLEAN^ + 4193 034024 7 000 20 0 00 634440 CONO 634440 + 4194 034025 7 004 20 0 00 010000 CONO PI,10000 + 4195 ^ + 4196 034026 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4197 034027 7 004 30 0 00 075400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4198 STOP^ + 4199 034030 254 04 0 00 034031 HALT .+1 + 4200 034031 320 00 0 00 034032 JUMP .+1 + 4201 ^ + 4202 ^ + 4203 076400 YY=YY+WW + 4204 000400 WW=WW/2 + 4205 000002 ZZ=ZZ/2 + 4206 + 4207 + 4208 ONEPIH ZZ,YY^ + 4209 CLEAN^ + 4210 034032 7 000 20 0 00 634440 CONO 634440 + 4211 034033 7 004 20 0 00 010000 CONO PI,10000 + 4212 ^ + 4213 034034 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4214 034035 7 004 30 0 00 076400 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4215 STOP^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 40-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0103 + + 4216 034036 254 04 0 00 034037 HALT .+1 + 4217 034037 320 00 0 00 034040 JUMP .+1 + 4218 ^ + 4219 ^ + 4220 077000 YY=YY+WW + 4221 000200 WW=WW/2 + 4222 000001 ZZ=ZZ/2 + 4223 + 4224 + 4225 ONEPIH ZZ,YY^ + 4226 CLEAN^ + 4227 034040 7 000 20 0 00 634440 CONO 634440 + 4228 034041 7 004 20 0 00 010000 CONO PI,10000 + 4229 ^ + 4230 034042 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+ZZ ;CHECK FOR REDUNDANT + 4231 034043 7 004 30 0 00 077000 CONSZ PI,YY ;PIH FLAGS.SEE TOP PI2 PRINT + 4232 STOP^ + 4233 034044 254 04 0 00 034045 HALT .+1 + 4234 034045 320 00 0 00 034046 JUMP .+1 + 4235 ^ + 4236 ^ + 4237 077200 YY=YY+WW + 4238 000100 WW=WW/2 + 4239 000000 ZZ=ZZ/2 + 4240 + 4241 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 41 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0104 + + 4242 DEFINE FASTPIH (A,B,C)< + 4243 CLEAN + 4244 CONO PI,ACT+PIREQ+B ;SET PIH AND PIH ON + 4245 CONO PI,ACT+PIREQ+A ;NEXT HIGHER CHANNEL + 4246 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4247 CONSO PI,C ;CHECK FOR FAST TURN OFF (PIH) + 4248 STOP + 4249 > + 4250 + 4251 034046 MOD104: FASTPIH 100,40,20000^ + 4252 CLEAN^ + 4253 034046 7 000 20 0 00 634440 CONO 634440 + 4254 034047 7 004 20 0 00 010000 CONO PI,10000 + 4255 ^ + 4256 034050 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;SET PIH AND PIH ON + 4257 034051 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;NEXT HIGHER CHANNEL + 4258 034052 254 10 0 00 034053 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4259 034053 7 004 34 0 00 020000 CONSO PI,20000 ;CHECK FOR FAST TURN OFF (PIH) + 4260 STOP^ + 4261 034054 254 04 0 00 034055 HALT .+1 + 4262 034055 320 00 0 00 034056 JUMP .+1 + 4263 ^ + 4264 ^ + 4265 CHANEL MOD106^ + 4266 034056 336 00 0 00 036672 SKIPN PI7SYS# + 4267 034057 254 00 0 00 034130 JRST MOD106 + 4268 ^ + 4269 034060 MOD105: FASTPIH 40,20,10000^ + 4270 CLEAN^ + 4271 034060 7 000 20 0 00 634440 CONO 634440 + 4272 034061 7 004 20 0 00 010000 CONO PI,10000 + 4273 ^ + 4274 034062 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;SET PIH AND PIH ON + 4275 034063 7 004 20 0 00 004240 CONO PI,ACT+PIREQ+40 ;NEXT HIGHER CHANNEL + 4276 034064 254 10 0 00 034065 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4277 034065 7 004 34 0 00 010000 CONSO PI,10000 ;CHECK FOR FAST TURN OFF (PIH) + 4278 STOP^ + 4279 034066 254 04 0 00 034067 HALT .+1 + 4280 034067 320 00 0 00 034070 JUMP .+1 + 4281 ^ + 4282 ^ + 4283 FASTPIH 20,10,4000^ + 4284 CLEAN^ + 4285 034070 7 000 20 0 00 634440 CONO 634440 + 4286 034071 7 004 20 0 00 010000 CONO PI,10000 + 4287 ^ + 4288 034072 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;SET PIH AND PIH ON + 4289 034073 7 004 20 0 00 004220 CONO PI,ACT+PIREQ+20 ;NEXT HIGHER CHANNEL + 4290 034074 254 10 0 00 034075 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4291 034075 7 004 34 0 00 004000 CONSO PI,4000 ;CHECK FOR FAST TURN OFF (PIH) + 4292 STOP^ + 4293 034076 254 04 0 00 034077 HALT .+1 + 4294 034077 320 00 0 00 034100 JUMP .+1 + 4295 ^ + 4296 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 41-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0105 + + 4297 FASTPIH 10,4,2000^ + 4298 CLEAN^ + 4299 034100 7 000 20 0 00 634440 CONO 634440 + 4300 034101 7 004 20 0 00 010000 CONO PI,10000 + 4301 ^ + 4302 034102 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;SET PIH AND PIH ON + 4303 034103 7 004 20 0 00 004210 CONO PI,ACT+PIREQ+10 ;NEXT HIGHER CHANNEL + 4304 034104 254 10 0 00 034105 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4305 034105 7 004 34 0 00 002000 CONSO PI,2000 ;CHECK FOR FAST TURN OFF (PIH) + 4306 STOP^ + 4307 034106 254 04 0 00 034107 HALT .+1 + 4308 034107 320 00 0 00 034110 JUMP .+1 + 4309 ^ + 4310 ^ + 4311 FASTPIH 4,2,1000^ + 4312 CLEAN^ + 4313 034110 7 000 20 0 00 634440 CONO 634440 + 4314 034111 7 004 20 0 00 010000 CONO PI,10000 + 4315 ^ + 4316 034112 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;SET PIH AND PIH ON + 4317 034113 7 004 20 0 00 004204 CONO PI,ACT+PIREQ+4 ;NEXT HIGHER CHANNEL + 4318 034114 254 10 0 00 034115 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4319 034115 7 004 34 0 00 001000 CONSO PI,1000 ;CHECK FOR FAST TURN OFF (PIH) + 4320 STOP^ + 4321 034116 254 04 0 00 034117 HALT .+1 + 4322 034117 320 00 0 00 034120 JUMP .+1 + 4323 ^ + 4324 ^ + 4325 FASTPIH 2,1,400^ + 4326 CLEAN^ + 4327 034120 7 000 20 0 00 634440 CONO 634440 + 4328 034121 7 004 20 0 00 010000 CONO PI,10000 + 4329 ^ + 4330 034122 7 004 20 0 00 004201 CONO PI,ACT+PIREQ+1 ;SET PIH AND PIH ON + 4331 034123 7 004 20 0 00 004202 CONO PI,ACT+PIREQ+2 ;NEXT HIGHER CHANNEL + 4332 034124 254 10 0 00 034125 JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + 4333 034125 7 004 34 0 00 000400 CONSO PI,400 ;CHECK FOR FAST TURN OFF (PIH) + 4334 STOP^ + 4335 034126 254 04 0 00 034127 HALT .+1 + 4336 034127 320 00 0 00 034130 JUMP .+1 + 4337 ^ + 4338 ^ + 4339 034130 MOD106: CLEAN^ + 4340 034130 7 000 20 0 00 634440 CONO 634440 + 4341 034131 7 004 20 0 00 010000 CONO PI,10000 + 4342 ^ + 4343 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 42 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0106 + + 4344 000100 ZZ=100 + 4345 040000 YY=40000 + 4346 MOD107: REPEAT 7,< + 4347 CLEAN + 4348 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4349 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4350 STOP ;OF PIR STB, IOB PIRQ, PIO + 4351 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4352 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT> + 4353 + 4354 CLEAN^ + 4355 034132 7 000 20 0 00 634440 CONO 634440 + 4356 034133 7 004 20 0 00 010000 CONO PI,10000 + 4357 ^ + 4358 034134 7 004 20 0 00 002300 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4359 034135 7 004 30 0 00 040000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4360 STOP ^ + 4361 034136 254 04 0 00 034137 HALT .+1 + 4362 034137 320 00 0 00 034140 JUMP .+1 + 4363 ^;OF PIR STB, IOB PIRQ, PIO + 4364 000040 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4365 020000 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4366 + 4367 CLEAN^ + 4368 034140 7 000 20 0 00 634440 CONO 634440 + 4369 034141 7 004 20 0 00 010000 CONO PI,10000 + 4370 ^ + 4371 034142 7 004 20 0 00 002240 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4372 034143 7 004 30 0 00 020000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4373 STOP ^ + 4374 034144 254 04 0 00 034145 HALT .+1 + 4375 034145 320 00 0 00 034146 JUMP .+1 + 4376 ^;OF PIR STB, IOB PIRQ, PIO + 4377 000020 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4378 010000 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4379 + 4380 CLEAN^ + 4381 034146 7 000 20 0 00 634440 CONO 634440 + 4382 034147 7 004 20 0 00 010000 CONO PI,10000 + 4383 ^ + 4384 034150 7 004 20 0 00 002220 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4385 034151 7 004 30 0 00 010000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4386 STOP ^ + 4387 034152 254 04 0 00 034153 HALT .+1 + 4388 034153 320 00 0 00 034154 JUMP .+1 + 4389 ^;OF PIR STB, IOB PIRQ, PIO + 4390 000010 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4391 004000 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4392 + 4393 CLEAN^ + 4394 034154 7 000 20 0 00 634440 CONO 634440 + 4395 034155 7 004 20 0 00 010000 CONO PI,10000 + 4396 ^ + 4397 034156 7 004 20 0 00 002210 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4398 034157 7 004 30 0 00 004000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 42-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0107 + + 4399 STOP ^ + 4400 034160 254 04 0 00 034161 HALT .+1 + 4401 034161 320 00 0 00 034162 JUMP .+1 + 4402 ^;OF PIR STB, IOB PIRQ, PIO + 4403 000004 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4404 002000 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4405 + 4406 CLEAN^ + 4407 034162 7 000 20 0 00 634440 CONO 634440 + 4408 034163 7 004 20 0 00 010000 CONO PI,10000 + 4409 ^ + 4410 034164 7 004 20 0 00 002204 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4411 034165 7 004 30 0 00 002000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4412 STOP ^ + 4413 034166 254 04 0 00 034167 HALT .+1 + 4414 034167 320 00 0 00 034170 JUMP .+1 + 4415 ^;OF PIR STB, IOB PIRQ, PIO + 4416 000002 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4417 001000 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4418 + 4419 CLEAN^ + 4420 034170 7 000 20 0 00 634440 CONO 634440 + 4421 034171 7 004 20 0 00 010000 CONO PI,10000 + 4422 ^ + 4423 034172 7 004 20 0 00 002202 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4424 034173 7 004 30 0 00 001000 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4425 STOP ^ + 4426 034174 254 04 0 00 034175 HALT .+1 + 4427 034175 320 00 0 00 034176 JUMP .+1 + 4428 ^;OF PIR STB, IOB PIRQ, PIO + 4429 000001 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4430 000400 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT + 4431 + 4432 CLEAN^ + 4433 034176 7 000 20 0 00 634440 CONO 634440 + 4434 034177 7 004 20 0 00 010000 CONO PI,10000 + 4435 ^ + 4436 034200 7 004 20 0 00 002201 CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + 4437 034201 7 004 30 0 00 000400 CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + 4438 STOP ^ + 4439 034202 254 04 0 00 034203 HALT .+1 + 4440 034203 320 00 0 00 034204 JUMP .+1 + 4441 ^;OF PIR STB, IOB PIRQ, PIO + 4442 000000 ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + 4443 000200 YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 43 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0108 + + 4444 + 4445 DEFINE CPINTR (A)< ;PROVIDE AN INTERRUPT TO PI + 4446 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4447 ADD ;AND OTHER SOURCES + 4448 CONO 42220+A> + 4449 + 4450 DEFINE IOBRQ (A,B,C)< + 4451 CLEAN ;CLEAR THE WORLD EXCEPT CP + 4452 CPINTR A + 4453 CONO PI,PIOSET+ACT+B ;TURN ON CK FLOP TO ALLOW + 4454 CONSO PI,C ;INTERRUPT. CK INPUT TO PIR FLOP + 4455 STOP + 4456 > + 4457 + 4458 000001 ZZ=1 + 4459 040000 YY=40000 + 4460 MOD108: REPEAT 7,< ;TEST FOR NO INTERRUPT FROM BUSS + 4461 CLEAN ;CLEAR WORLD + 4462 CPINTR ZZ ;INTERRUPT TO BUSS INPUT TO PIR + 4463 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4464 STOP + 4465 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4466 YY=YY/2 + 4467 > + 4468 ;TEST FOR NO INTERRUPT FROM BUSS + 4469 CLEAN ^ + 4470 034204 7 000 20 0 00 634440 CONO 634440 + 4471 034205 7 004 20 0 00 010000 CONO PI,10000 + 4472 ^;CLEAR WORLD + 4473 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4474 034206 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4475 034207 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4476 034210 7 000 20 0 00 042221 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4477 034211 7 004 30 0 00 040000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4478 STOP^ + 4479 034212 254 04 0 00 034213 HALT .+1 + 4480 034213 320 00 0 00 034214 JUMP .+1 + 4481 ^ + 4482 000002 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4483 020000 YY=YY/2 + 4484 + 4485 ;TEST FOR NO INTERRUPT FROM BUSS + 4486 CLEAN ^ + 4487 034214 7 000 20 0 00 634440 CONO 634440 + 4488 034215 7 004 20 0 00 010000 CONO PI,10000 + 4489 ^;CLEAR WORLD + 4490 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4491 034216 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4492 034217 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4493 034220 7 000 20 0 00 042222 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4494 034221 7 004 30 0 00 020000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4495 STOP^ + 4496 034222 254 04 0 00 034223 HALT .+1 + 4497 034223 320 00 0 00 034224 JUMP .+1 + 4498 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 43-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0109 + + 4499 000003 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4500 010000 YY=YY/2 + 4501 + 4502 ;TEST FOR NO INTERRUPT FROM BUSS + 4503 CLEAN ^ + 4504 034224 7 000 20 0 00 634440 CONO 634440 + 4505 034225 7 004 20 0 00 010000 CONO PI,10000 + 4506 ^;CLEAR WORLD + 4507 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4508 034226 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4509 034227 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4510 034230 7 000 20 0 00 042223 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4511 034231 7 004 30 0 00 010000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4512 STOP^ + 4513 034232 254 04 0 00 034233 HALT .+1 + 4514 034233 320 00 0 00 034234 JUMP .+1 + 4515 ^ + 4516 000004 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4517 004000 YY=YY/2 + 4518 + 4519 ;TEST FOR NO INTERRUPT FROM BUSS + 4520 CLEAN ^ + 4521 034234 7 000 20 0 00 634440 CONO 634440 + 4522 034235 7 004 20 0 00 010000 CONO PI,10000 + 4523 ^;CLEAR WORLD + 4524 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4525 034236 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4526 034237 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4527 034240 7 000 20 0 00 042224 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4528 034241 7 004 30 0 00 004000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4529 STOP^ + 4530 034242 254 04 0 00 034243 HALT .+1 + 4531 034243 320 00 0 00 034244 JUMP .+1 + 4532 ^ + 4533 000005 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4534 002000 YY=YY/2 + 4535 + 4536 ;TEST FOR NO INTERRUPT FROM BUSS + 4537 CLEAN ^ + 4538 034244 7 000 20 0 00 634440 CONO 634440 + 4539 034245 7 004 20 0 00 010000 CONO PI,10000 + 4540 ^;CLEAR WORLD + 4541 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4542 034246 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4543 034247 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4544 034250 7 000 20 0 00 042225 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4545 034251 7 004 30 0 00 002000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4546 STOP^ + 4547 034252 254 04 0 00 034253 HALT .+1 + 4548 034253 320 00 0 00 034254 JUMP .+1 + 4549 ^ + 4550 000006 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4551 001000 YY=YY/2 + 4552 + 4553 ;TEST FOR NO INTERRUPT FROM BUSS +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 43-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0110 + + 4554 CLEAN ^ + 4555 034254 7 000 20 0 00 634440 CONO 634440 + 4556 034255 7 004 20 0 00 010000 CONO PI,10000 + 4557 ^;CLEAR WORLD + 4558 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4559 034256 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4560 034257 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4561 034260 7 000 20 0 00 042226 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4562 034261 7 004 30 0 00 001000 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4563 STOP^ + 4564 034262 254 04 0 00 034263 HALT .+1 + 4565 034263 320 00 0 00 034264 JUMP .+1 + 4566 ^ + 4567 000007 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4568 000400 YY=YY/2 + 4569 + 4570 ;TEST FOR NO INTERRUPT FROM BUSS + 4571 CLEAN ^ + 4572 034264 7 000 20 0 00 634440 CONO 634440 + 4573 034265 7 004 20 0 00 010000 CONO PI,10000 + 4574 ^;CLEAR WORLD + 4575 CPINTR ZZ ^ ;PROVIDE AN INTERRUPT TO PI + 4576 034266 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4577 034267 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4578 034270 7 000 20 0 00 042227 CONO 42220+ZZ^;INTERRUPT TO BUSS INPUT TO PIR + 4579 034271 7 004 30 0 00 000400 CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + 4580 STOP^ + 4581 034272 254 04 0 00 034273 HALT .+1 + 4582 034273 320 00 0 00 034274 JUMP .+1 + 4583 ^ + 4584 000010 ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + 4585 000200 YY=YY/2 + 4586 + 4587 + 4588 034274 MOD109: IOBRQ 1,100,77400^ + 4589 CLEAN ^ + 4590 034274 7 000 20 0 00 634440 CONO 634440 + 4591 034275 7 004 20 0 00 010000 CONO PI,10000 + 4592 ^;CLEAR THE WORLD EXCEPT CP + 4593 CPINTR 1^ ;PROVIDE AN INTERRUPT TO PI + 4594 034276 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4595 034277 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4596 034300 7 000 20 0 00 042221 CONO 42220+1^ + 4597 034301 7 004 20 0 00 002300 CONO PI,PIOSET+ACT+100 ;TURN ON CK FLOP TO ALLOW + 4598 034302 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4599 STOP^ + 4600 034303 254 04 0 00 034304 HALT .+1 + 4601 034304 320 00 0 00 034305 JUMP .+1 + 4602 ^ + 4603 ^ + 4604 IOBRQ 2,40,77400^ + 4605 CLEAN ^ + 4606 034305 7 000 20 0 00 634440 CONO 634440 + 4607 034306 7 004 20 0 00 010000 CONO PI,10000 + 4608 ^;CLEAR THE WORLD EXCEPT CP +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 43-3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0111 + + 4609 CPINTR 2^ ;PROVIDE AN INTERRUPT TO PI + 4610 034307 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4611 034310 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4612 034311 7 000 20 0 00 042222 CONO 42220+2^ + 4613 034312 7 004 20 0 00 002240 CONO PI,PIOSET+ACT+40 ;TURN ON CK FLOP TO ALLOW + 4614 034313 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4615 STOP^ + 4616 034314 254 04 0 00 034315 HALT .+1 + 4617 034315 320 00 0 00 034316 JUMP .+1 + 4618 ^ + 4619 ^ + 4620 CHANEL MOD111^ + 4621 034316 336 00 0 00 036672 SKIPN PI7SYS# + 4622 034317 254 00 0 00 034375 JRST MOD111 + 4623 ^ + 4624 034320 MOD110: IOBRQ 3,20,77400^ + 4625 CLEAN ^ + 4626 034320 7 000 20 0 00 634440 CONO 634440 + 4627 034321 7 004 20 0 00 010000 CONO PI,10000 + 4628 ^;CLEAR THE WORLD EXCEPT CP + 4629 CPINTR 3^ ;PROVIDE AN INTERRUPT TO PI + 4630 034322 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4631 034323 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4632 034324 7 000 20 0 00 042223 CONO 42220+3^ + 4633 034325 7 004 20 0 00 002220 CONO PI,PIOSET+ACT+20 ;TURN ON CK FLOP TO ALLOW + 4634 034326 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4635 STOP^ + 4636 034327 254 04 0 00 034330 HALT .+1 + 4637 034330 320 00 0 00 034331 JUMP .+1 + 4638 ^ + 4639 ^ + 4640 IOBRQ 4,10,77400^ + 4641 CLEAN ^ + 4642 034331 7 000 20 0 00 634440 CONO 634440 + 4643 034332 7 004 20 0 00 010000 CONO PI,10000 + 4644 ^;CLEAR THE WORLD EXCEPT CP + 4645 CPINTR 4^ ;PROVIDE AN INTERRUPT TO PI + 4646 034333 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4647 034334 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4648 034335 7 000 20 0 00 042224 CONO 42220+4^ + 4649 034336 7 004 20 0 00 002210 CONO PI,PIOSET+ACT+10 ;TURN ON CK FLOP TO ALLOW + 4650 034337 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4651 STOP^ + 4652 034340 254 04 0 00 034341 HALT .+1 + 4653 034341 320 00 0 00 034342 JUMP .+1 + 4654 ^ + 4655 ^ + 4656 IOBRQ 5,4,77400^ + 4657 CLEAN ^ + 4658 034342 7 000 20 0 00 634440 CONO 634440 + 4659 034343 7 004 20 0 00 010000 CONO PI,10000 + 4660 ^;CLEAR THE WORLD EXCEPT CP + 4661 CPINTR 5^ ;PROVIDE AN INTERRUPT TO PI + 4662 034344 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4663 034345 270 00 0 00 000000 ADD ;AND OTHER SOURCES +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 43-4 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0112 + + 4664 034346 7 000 20 0 00 042225 CONO 42220+5^ + 4665 034347 7 004 20 0 00 002204 CONO PI,PIOSET+ACT+4 ;TURN ON CK FLOP TO ALLOW + 4666 034350 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4667 STOP^ + 4668 034351 254 04 0 00 034352 HALT .+1 + 4669 034352 320 00 0 00 034353 JUMP .+1 + 4670 ^ + 4671 ^ + 4672 IOBRQ 6,2,77400^ + 4673 CLEAN ^ + 4674 034353 7 000 20 0 00 634440 CONO 634440 + 4675 034354 7 004 20 0 00 010000 CONO PI,10000 + 4676 ^;CLEAR THE WORLD EXCEPT CP + 4677 CPINTR 6^ ;PROVIDE AN INTERRUPT TO PI + 4678 034355 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4679 034356 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4680 034357 7 000 20 0 00 042226 CONO 42220+6^ + 4681 034360 7 004 20 0 00 002202 CONO PI,PIOSET+ACT+2 ;TURN ON CK FLOP TO ALLOW + 4682 034361 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4683 STOP^ + 4684 034362 254 04 0 00 034363 HALT .+1 + 4685 034363 320 00 0 00 034364 JUMP .+1 + 4686 ^ + 4687 ^ + 4688 IOBRQ 7,1,77400^ + 4689 CLEAN ^ + 4690 034364 7 000 20 0 00 634440 CONO 634440 + 4691 034365 7 004 20 0 00 010000 CONO PI,10000 + 4692 ^;CLEAR THE WORLD EXCEPT CP + 4693 CPINTR 7^ ;PROVIDE AN INTERRUPT TO PI + 4694 034366 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4695 034367 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4696 034370 7 000 20 0 00 042227 CONO 42220+7^ + 4697 034371 7 004 20 0 00 002201 CONO PI,PIOSET+ACT+1 ;TURN ON CK FLOP TO ALLOW + 4698 034372 7 004 34 0 00 077400 CONSO PI,77400 ;INTERRUPT. CK INPUT TO PIR FLOP + 4699 STOP^ + 4700 034373 254 04 0 00 034374 HALT .+1 + 4701 034374 320 00 0 00 034375 JUMP .+1 + 4702 ^ + 4703 ^ + 4704 034375 MOD111: CLEAN^ + 4705 034375 7 000 20 0 00 634440 CONO 634440 + 4706 034376 7 004 20 0 00 010000 CONO PI,10000 + 4707 ^ + 4708 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 44 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0113 + + 4709 034377 MOD115: CLEAN ^;TEST CP FOR NO INTERRUPT + 4710 + 4711 034377 7 000 20 0 00 634440 CONO 634440 + 4712 034400 7 004 20 0 00 010000 CONO PI,10000 + 4713 + 4714 034401 7 000 20 0 00 000001 CONO 1 ;ASSIGN A CHANNEL TO + 4715 034402 7 004 20 0 00 002377 CONO PI,PIG0 ;PROCESSOR, ENABLE PI. IF + 4716 034403 7 004 30 0 00 077400 CONSZ PI,77400 ;INTERRUPT PROCESS PUT BIT ON PI BUSS + 4717 STOP ^;CHECK TOB IPRQ ON CPA PRINT + 4718 + 4719 034404 254 04 0 00 034405 HALT .+1 + 4720 034405 320 00 0 00 034406 JUMP .+1 + 4721 + 4722 + 4723 BLURB^ + 4724 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 4725 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 4726 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 4727 ;INSTRUCTION + 4728 ^ + 4729 + 4730 034406 MOD116: CLEAN^ + 4731 034406 7 000 20 0 00 634440 CONO 634440 + 4732 034407 7 004 20 0 00 010000 CONO PI,10000 + 4733 ^ + 4734 CPINTR 1 ^;ENABLE PROCESSOR INTERRUPT + 4735 ;PROVIDE AN INTERRUPT TO PI + 4736 034410 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4737 034411 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4738 034412 7 000 20 0 00 042221 CONO 42220+1 + 4739 034413 400 00 0 00 000000 SETZ + 4740 034414 7 004 20 0 00 002377 CONO PI,PIG0 ;PROCESSOR DECODE TO PI BUSS + 4741 034415 302 00 0 00 000042 CAIE 42 ;FAIL, SEE TOP RIGHT OF CPU + 4742 STOP ^;PRINT C(0)=ADDR OF XCT INST + 4743 + 4744 034416 254 04 0 00 034417 HALT .+1 + 4745 034417 320 00 0 00 034420 JUMP .+1 + 4746 + 4747 + 4748 034420 MOD117: CLEAN^ + 4749 034420 7 000 20 0 00 634440 CONO 634440 + 4750 034421 7 004 20 0 00 010000 CONO PI,10000 + 4751 ^ + 4752 CPINTR 2 ^;ENABLE PROCESSOR INTERRUPT + 4753 ;PROVIDE AN INTERRUPT TO PI + 4754 034422 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4755 034423 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4756 034424 7 000 20 0 00 042222 CONO 42220+2 + 4757 034425 400 00 0 00 000000 SETZ ;WILL BE FILLED BY ADDR OF XCT INST + 4758 034426 7 004 20 0 00 002377 CONO PI,PIG0 ;ACTIVATE PI SYS + 4759 034427 302 00 0 00 000044 CAIE 44 ;EXPECT CHANNEL 2 + 4760 STOP ^;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + 4761 + 4762 034430 254 04 0 00 034431 HALT .+1 + 4763 034431 320 00 0 00 034432 JUMP .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 44-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0114 + + 4764 + 4765 CHANEL MOD120^ + 4766 034432 336 00 0 00 036672 SKIPN PI7SYS# + 4767 034433 254 00 0 00 034507 JRST MOD120 + 4768 ^ + 4769 034434 MOD118: CLEAN^ + 4770 034434 7 000 20 0 00 634440 CONO 634440 + 4771 034435 7 004 20 0 00 010000 CONO PI,10000 + 4772 ^ + 4773 CPINTR 4 ^;ENABLE PROCESSOR INTERRUPT + 4774 ;PROVIDE AN INTERRUPT TO PI + 4775 034436 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4776 034437 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4777 034440 7 000 20 0 00 042224 CONO 42220+4 + 4778 034441 400 00 0 00 000000 SETZ ;WILL BE FILL BY ADDR OF XCT INST + 4779 034442 7 004 20 0 00 002377 CONO PI,PIG0 ;ACT PI SYS + 4780 034443 302 00 0 00 000050 CAIE 50 ;EXPECT CHANNEL 4 + 4781 STOP ^;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + 4782 + 4783 034444 254 04 0 00 034445 HALT .+1 + 4784 034445 320 00 0 00 034446 JUMP .+1 + 4785 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 45 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0115 + + 4786 + 4787 BLURB^ + 4788 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 4789 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 4790 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 4791 ;INSTRUCTION + 4792 ^ + 4793 034446 MOD119: CLEAN ^;ENABLE AN INTERRUPT ON CHANNEL 1-7 + 4794 + 4795 034446 7 000 20 0 00 634440 CONO 634440 + 4796 034447 7 004 20 0 00 010000 CONO PI,10000 + 4797 + 4798 CPINTR 7 ^;CHECK PROCESSOR INTERRUPT + 4799 ;PROVIDE AN INTERRUPT TO PI + 4800 034450 205 00 0 00 400000 MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + 4801 034451 270 00 0 00 000000 ADD ;AND OTHER SOURCES + 4802 034452 7 000 20 0 00 042227 CONO 42220+7 + 4803 034453 7 004 20 0 00 002377 CONO PI,PIG0 + 4804 034454 302 00 0 00 000056 CAIE 56 + 4805 STOP ^;CH 7 FAIL TO INTERRUPT + 4806 + 4807 034455 254 04 0 00 034456 HALT .+1 + 4808 034456 320 00 0 00 034457 JUMP .+1 + 4809 + 4810 034457 7 000 20 0 00 000006 CONO 6 + 4811 034460 302 00 0 00 000054 CAIE 54 + 4812 STOP ^;CH 6 FAIL TO INTERRUPT + 4813 + 4814 034461 254 04 0 00 034462 HALT .+1 + 4815 034462 320 00 0 00 034463 JUMP .+1 + 4816 + 4817 034463 7 000 20 0 00 000005 CONO 5 + 4818 034464 302 00 0 00 000052 CAIE 52 + 4819 STOP ^;CH 5 FAIL TO INTERRUPT + 4820 + 4821 034465 254 04 0 00 034466 HALT .+1 + 4822 034466 320 00 0 00 034467 JUMP .+1 + 4823 + 4824 034467 7 000 20 0 00 000004 CONO 4 + 4825 034470 302 00 0 00 000050 CAIE 50 + 4826 STOP ^;CH 4 FAIL TO INTERRUPT + 4827 + 4828 034471 254 04 0 00 034472 HALT .+1 + 4829 034472 320 00 0 00 034473 JUMP .+1 + 4830 + 4831 034473 7 000 20 0 00 000003 CONO 3 + 4832 034474 302 00 0 00 000046 CAIE 46 + 4833 STOP ^;CH 3 FAIL TO INTERRUPT + 4834 + 4835 034475 254 04 0 00 034476 HALT .+1 + 4836 034476 320 00 0 00 034477 JUMP .+1 + 4837 + 4838 034477 7 000 20 0 00 000002 CONO 2 + 4839 034500 302 00 0 00 000044 CAIE 44 + 4840 STOP ^;CH 2 FAIL TO INTERRUPT +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 45-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0116 + + 4841 + 4842 034501 254 04 0 00 034502 HALT .+1 + 4843 034502 320 00 0 00 034503 JUMP .+1 + 4844 + 4845 034503 7 000 20 0 00 000001 CONO 1 + 4846 034504 302 00 0 00 000042 CAIE 42 + 4847 STOP ^;CH 1 FAIL TO INTERRUPT + 4848 + 4849 034505 254 04 0 00 034506 HALT .+1 + 4850 034506 320 00 0 00 034507 JUMP .+1 + 4851 + 4852 034507 MOD120: CLEAN^ + 4853 034507 7 000 20 0 00 634440 CONO 634440 + 4854 034510 7 004 20 0 00 010000 CONO PI,10000 + 4855 ^ + 4856 + 4857 BLURB^ + 4858 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 4859 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 4860 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 4861 ;INSTRUCTION + 4862 ^ + 4863 034511 MOD121: CLEAN^ + 4864 034511 7 000 20 0 00 634440 CONO 634440 + 4865 034512 7 004 20 0 00 010000 CONO PI,10000 + 4866 ^ + 4867 034513 400 00 0 00 000000 SETZ ;C(0) MODIFIED IF INTERRUPT + 4868 034514 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4869 034515 255 10 0 00 034516 JFCL 10,.+1 ;CLEAR AROV + 4870 034516 7 000 20 0 00 000021 CONO 20+1 ;ENABLE AROV CH1 + 4871 034517 332 00 0 00 000000 SKIPE ;INTERRUPT OCCURED SEE CPA PRINT + 4872 STOP ^;CPA AROV EN(1) AND GATE TO PIRQ + 4873 + 4874 034520 254 04 0 00 034521 HALT .+1 + 4875 034521 320 00 0 00 034522 JUMP .+1 + 4876 + 4877 + 4878 034522 MOD122: CLEAN^ + 4879 034522 7 000 20 0 00 634440 CONO 634440 + 4880 034523 7 004 20 0 00 010000 CONO PI,10000 + 4881 ^ + 4882 034524 400 00 0 00 000000 SETZ + 4883 034525 7 004 20 0 00 002377 CONO PI,PIG0 + 4884 034526 205 00 0 00 400000 MOVSI 400000 + 4885 034527 270 00 0 00 000000 ADD ;SET AROV + 4886 034530 7 000 20 0 00 000001 CONO 1 ;AROV CNT NO ENABLE + 4887 034531 332 00 0 00 000000 SKIPE ;INT OCCURED SEE CPU PRINT + 4888 STOP^ + 4889 034532 254 04 0 00 034533 HALT .+1 + 4890 034533 320 00 0 00 034534 JUMP .+1 + 4891 ^ + 4892 + 4893 034534 MOD123: CLEAN^ + 4894 034534 7 000 20 0 00 634440 CONO 634440 + 4895 034535 7 004 20 0 00 010000 CONO PI,10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 45-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0117 + + 4896 ^ + 4897 034536 400 00 0 00 000000 SETZ + 4898 034537 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4899 034540 205 00 0 00 400000 MOVSI 400000 ;SET AROV + 4900 034541 270 00 0 00 000000 ADD ;FLOP + 4901 034542 7 000 20 0 00 000021 CONO 21 ;FLOP AND AROV (EN) + 4902 034543 302 00 0 00 000042 CAIE 42 ;NO INTERRUPT CHECK AND GATE + 4903 STOP ^;TO PIRQ ON CPU PRINT + 4904 + 4905 034544 254 04 0 00 034545 HALT .+1 + 4906 034545 320 00 0 00 034546 JUMP .+1 + 4907 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 46 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0118 + + 4908 + 4909 034546 MOD124: CLEAN^ + 4910 034546 7 000 20 0 00 634440 CONO 634440 + 4911 034547 7 004 20 0 00 010000 CONO PI,10000 + 4912 ^ + 4913 034550 400 00 0 00 000000 SETZ + 4914 034551 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4915 034552 7 000 34 0 00 001000 CONSO 1000 + 4916 034553 254 00 0 00 034552 JRST .-1 ;WAIT IF CLK=0 + 4917 034554 7 000 20 0 00 002001 CONO 2001 ;SET CLOCK ENABLE + 4918 034555 302 00 0 00 000042 CAIE 42 ;SHOULD INTERRUPT TO LOC 42 + 4919 STOP ^;SEE CPU PRINT AND CLK ENABLE + 4920 + 4921 034556 254 04 0 00 034557 HALT .+1 + 4922 034557 320 00 0 00 034560 JUMP .+1 + 4923 + 4924 + 4925 BLURB^ + 4926 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 4927 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 4928 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 4929 ;INSTRUCTION + 4930 ^ + 4931 034560 MOD125: CLEAN^ + 4932 034560 7 000 20 0 00 634440 CONO 634440 + 4933 034561 7 004 20 0 00 010000 CONO PI,10000 + 4934 ^ + 4935 034562 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PISYS + 4936 034563 7 000 20 0 00 000001 CONO 1 ;TRY TO SET NONEX MEM + 4937 034564 400 00 0 00 000000 SETZ ;NO INTERRUPT SET + 4938 034565 310 00 0 00 777777 CAM -1 ;NONEX INPUT TO + 4939 034566 302 00 0 00 000042 CAIE 42 ;PIRQ ON CPA + 4940 STOP ^;PRINT + 4941 + 4942 034567 254 04 0 00 034570 HALT .+1 + 4943 034570 320 00 0 00 034571 JUMP .+1 + 4944 + 4945 + 4946 034571 MOD127: CLEAN^ + 4947 034571 7 000 20 0 00 634440 CONO 634440 + 4948 034572 7 004 20 0 00 010000 CONO PI,10000 + 4949 ^ + 4950 034573 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4951 034574 7 000 20 0 00 000001 CONO 1 ;CPU TO CHANNEL 1 + 4952 034575 474 00 0 00 000000 SETO ;SET THE + 4953 034576 260 00 0 00 034577 PUSHJ .+1 ;PDL FLAG + 4954 034577 302 00 0 00 000042 CAIE 42 ;IT FAILED TO INTERRUPT + 4955 STOP ^;SEE ITS INPUT TO PIRQ ON CPA PRINT + 4956 + 4957 034600 254 04 0 00 034601 HALT .+1 + 4958 034601 320 00 0 00 034602 JUMP .+1 + 4959 + 4960 + 4961 034602 MOD128: CLEAN^ + 4962 034602 7 000 20 0 00 634440 CONO 634440 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 46-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0119 + + 4963 034603 7 004 20 0 00 010000 CONO PI,10000 + 4964 ^ + 4965 034604 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4966 034605 7 000 20 0 00 000001 CONO 1 + 4967 034606 400 00 0 00 000000 SETZ + 4968 034607 7 004 20 0 00 040000 CONO PI,40000 ;ENABLE PAR + 4969 034610 332 00 0 00 000000 SKIPE ;INTERRUPT OCCURED + 4970 STOP ^;CHECK CPU PIRQ INPUT + 4971 + 4972 034611 254 04 0 00 034612 HALT .+1 + 4973 034612 320 00 0 00 034613 JUMP .+1 + 4974 + 4975 + 4976 034613 MOD129: CLEAN^ + 4977 034613 7 000 20 0 00 634440 CONO 634440 + 4978 034614 7 004 20 0 00 010000 CONO PI,10000 + 4979 ^ + 4980 034615 255 01 0 00 034616 JFCL 1,.+1 ;CLEAR FOV + 4981 034616 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 4982 034617 400 00 0 00 000000 SETZ + 4983 034620 7 004 20 0 00 000201 CONO PI,201 ;FOV ENABLE. INTERRUPT + 4984 034621 332 00 0 00 000000 SKIPE ;OCCURED CK PIRQ INPUTS + 4985 STOP ^;ON CPU PRINT + 4986 + 4987 034622 254 04 0 00 034623 HALT .+1 + 4988 034623 320 00 0 00 034624 JUMP .+1 + 4989 + 4990 + 4991 034624 MOD130: CLEAN^ + 4992 034624 7 000 20 0 00 634440 CONO 634440 + 4993 034625 7 004 20 0 00 010000 CONO PI,10000 + 4994 ^ + 4995 SFLAG 40000 ^;SET FOV FLAG + 4996 + 4997 034626 205 01 0 00 040000 MOVSI 1,40000 + 4998 034627 255 17 0 00 034630 JFCL 17,.+1 + 4999 034630 254 02 0 01 034631 JRST 2,.+1(1) + 5000 + 5001 034631 400 00 0 00 000000 SETZ + 5002 034632 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 5003 034633 7 000 20 0 00 000001 CONO 1 ;CH1 TO PROCESSOR + 5004 034634 332 00 0 00 000000 SKIPE ;FOV ENABLE FAIL TO PREVENT + 5005 STOP ^;INTERRUPT SEE CPU PRINT + 5006 + 5007 034635 254 04 0 00 034636 HALT .+1 + 5008 034636 320 00 0 00 034637 JUMP .+1 + 5009 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 47 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0120 + + 5010 BLURB^ + 5011 ;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" + 5012 ;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL + 5013 ;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED + 5014 ;INSTRUCTION + 5015 ^ + 5016 034637 MOD131: CLEAN^ + 5017 034637 7 000 20 0 00 634440 CONO 634440 + 5018 034640 7 004 20 0 00 010000 CONO PI,10000 + 5019 ^ + 5020 SFLAG 40000 ^;SET FOV FLAG + 5021 + 5022 034641 205 01 0 00 040000 MOVSI 1,40000 + 5023 034642 255 17 0 00 034643 JFCL 17,.+1 + 5024 034643 254 02 0 01 034644 JRST 2,.+1(1) + 5025 + 5026 034644 7 004 20 0 00 002377 CONO PI,PIG0 ;ENABLE PI + 5027 034645 400 00 0 00 000000 SETZ + 5028 034646 7 000 20 0 00 000201 CONO 201 ;ENABLE FOV+CH1 + 5029 034647 302 00 0 00 000042 CAIE 42 ;FAIL TO INTERRUPT SEE + 5030 STOP ^;PIRQ INPUTS ON CPA PRINT + 5031 + 5032 034650 254 04 0 00 034651 HALT .+1 + 5033 034651 320 00 0 00 034652 JUMP .+1 + 5034 + 5035 034652 MOD132: CLEAN^ + 5036 034652 7 000 20 0 00 634440 CONO 634440 + 5037 034653 7 004 20 0 00 010000 CONO PI,10000 + 5038 ^ + 5039 034654 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;INTERRUPT + 5040 REPEAT ^D10, + 5041 < JRST .+1> + 5042 034655 254 00 0 00 034656 JRST .+1 + 5043 034656 254 00 0 00 034657 JRST .+1 + 5044 034657 254 00 0 00 034660 JRST .+1 + 5045 034660 254 00 0 00 034661 JRST .+1 + 5046 034661 254 00 0 00 034662 JRST .+1 + 5047 034662 254 00 0 00 034663 JRST .+1 + 5048 034663 254 00 0 00 034664 JRST .+1 + 5049 034664 254 00 0 00 034665 JRST .+1 + 5050 034665 254 00 0 00 034666 JRST .+1 + 5051 034666 254 00 0 00 034667 JRST .+1 + 5052 034667 7 004 34 0 00 040000 CONSO PI,40000 ;PIH WAS RESET BY JRST (NO BIT 9) + 5053 STOP ^;SEE PI RESTORE LOGIC ON PI1 PRINT + 5054 + 5055 034670 254 04 0 00 034671 HALT .+1 + 5056 034671 320 00 0 00 034672 JUMP .+1 + 5057 + 5058 034672 MOD133: CLEAN^ + 5059 034672 7 000 20 0 00 634440 CONO 634440 + 5060 034673 7 004 20 0 00 010000 CONO PI,10000 + 5061 ^ + 5062 034674 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;INTERRUPT + 5063 REPEAT ^D10, + 5064 < CAI 10,0> +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 47-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0121 + + 5065 034675 300 10 0 00 000000 CAI 10,0 + 5066 034676 300 10 0 00 000000 CAI 10,0 + 5067 034677 300 10 0 00 000000 CAI 10,0 + 5068 034700 300 10 0 00 000000 CAI 10,0 + 5069 034701 300 10 0 00 000000 CAI 10,0 + 5070 034702 300 10 0 00 000000 CAI 10,0 + 5071 034703 300 10 0 00 000000 CAI 10,0 + 5072 034704 300 10 0 00 000000 CAI 10,0 + 5073 034705 300 10 0 00 000000 CAI 10,0 + 5074 034706 300 10 0 00 000000 CAI 10,0 + 5075 034707 7 004 34 0 00 040000 CONSO PI,40000 ;PIH WAS RESET BY BIT9(NO JRST) + 5076 STOP ^;SEE PI RESTORE LOGIC ON PI1 PRINT + 5077 + 5078 034710 254 04 0 00 034711 HALT .+1 + 5079 034711 320 00 0 00 034712 JUMP .+1 + 5080 + 5081 034712 MOD134: CLEAN ^;TEST PI CYC(1) INPUT TO PI OV + 5082 + 5083 034712 7 000 20 0 00 634440 CONO 634440 + 5084 034713 7 004 20 0 00 010000 CONO PI,10000 + 5085 + 5086 034714 474 00 0 00 000000 SETO ;PROVIDE ALL CONDITIONS TO SET + 5087 034715 7 000 00 0 00 000000 BLKI ;PI OV EXCEPT PI CYC(1) + 5088 034716 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;IF C(0)=43 REPLACE THE B137 + 5089 034717 302 00 0 00 000042 CAIE 42 ;AND GATE TO PI OV SEE + 5090 STOP ^;PI1 PRINT + 5091 + 5092 034720 254 04 0 00 034721 HALT .+1 + 5093 034721 320 00 0 00 034722 JUMP .+1 + 5094 + 5095 034722 MOD135: CLEAN^ + 5096 034722 7 000 20 0 00 634440 CONO 634440 + 5097 034723 7 004 20 0 00 010000 CONO PI,10000 + 5098 ^ + 5099 034724 200 00 0 00 036477 MOVE [BLKO ME,0] ;PUT A BLKI IN + 5100 034725 202 00 0 00 000042 MOVEM 42 ;LOC 42 + 5101 034726 400 00 0 00 000000 SETZ ;PROVIDE FOR NO OVERFLOW + 5102 034727 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;INTERRUPT. IF C(0)=43 + 5103 034730 306 00 0 00 000043 CAIN 43 ;AND GATE TO PIOU THE AD + 5104 STOP ^;CRY0(1) INPUT FAILED. SEE PI1 PRINT + 5105 + 5106 034731 254 04 0 00 034732 HALT .+1 + 5107 034732 320 00 0 00 034733 JUMP .+1 + 5108 + 5109 034733 254 00 0 00 034734 JRST MOD136 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 48 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0122 + + 5110 ;HOLE LEFT FOR RELOCATION TEST + 5111 + 5112 + 5113 034734 MOD136: CLEAN^ + 5114 034734 7 000 20 0 00 634440 CONO 634440 + 5115 034735 7 004 20 0 00 010000 CONO PI,10000 + 5116 ^ + 5117 034736 200 00 0 00 036500 MOVE [AOS] ;PUT AN AOS IN LOC 42 + 5118 034737 202 00 0 00 000042 MOVEM 42 ;PROVIDE ALL INPUTS TO + 5119 034740 474 00 0 00 000000 SETO ;PIOU EXCEPT IOT BLK + 5120 034741 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CANT TEST GATE + 5121 034742 332 00 0 00 000000 SKIPE ;THINK UNNECESSARY + 5122 STOP ^;BUT DO IT ANYWAY + 5123 + 5124 034743 254 04 0 00 034744 HALT .+1 + 5125 034744 320 00 0 00 034745 JUMP .+1 + 5126 + 5127 + 5128 034745 MOD137: CLEAN^ + 5129 034745 7 000 20 0 00 634440 CONO 634440 + 5130 034746 7 004 20 0 00 010000 CONO PI,10000 + 5131 ^ + 5132 034747 200 00 0 00 036477 MOVE [BLKO ME,0] ;SETUP A BLKO TO SET + 5133 034750 202 00 0 00 000042 MOVEM 42 ;THE PI OV FLOP + 5134 034751 474 00 0 00 000000 SETO + 5135 034752 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CAUSE FIRST INTERRUPT + 5136 034753 400 00 0 00 000000 SETZ ;PI SHOULD SET AT THIS + 5137 CLEAN ^;TIME, IF PI OV IS NOT + 5138 + 5139 034754 7 000 20 0 00 634440 CONO 634440 + 5140 034755 7 004 20 0 00 010000 CONO PI,10000 + 5141 + 5142 034756 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CLEARED AT ST1 NEXT INTERRUPT + 5143 034757 306 00 0 00 000043 CAIN 43 ;WILL OCCUR AT LOC 43 + 5144 STOP ^;SET PI 1 PRINT. + 5145 + 5146 034760 254 04 0 00 034761 HALT .+1 + 5147 034761 320 00 0 00 034762 JUMP .+1 + 5148 + 5149 + 5150 034762 MOD140: CLEAN^ + 5151 034762 7 000 20 0 00 634440 CONO 634440 + 5152 034763 7 004 20 0 00 010000 CONO PI,10000 + 5153 ^ + 5154 034764 200 00 0 00 036477 MOVE [BLKO ME,0] ;PUT A BLKO IN LOC 42 + 5155 034765 202 00 0 00 000042 MOVEM 42 ;WHEN EXECUTED THIS SHOULD + 5156 034766 474 00 0 00 000000 SETO ;SET PIOV. IF PI OV IS NOT + 5157 034767 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;CONNECTED TO MA REGISTER + 5158 034770 405 00 0 00 777777 ANDI -1 ;42 WILL BE EXECUTED TWICE + 5159 034771 306 00 0 00 000001 CAIN 1 ;SEE MA 35 SET AT IT0 + 5160 STOP ^;AND PI OV(1) ON MA1 PRINT + 5161 + 5162 034772 254 04 0 00 034773 HALT .+1 + 5163 034773 320 00 0 00 034774 JUMP .+1 + 5164 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 48-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0123 + + 5165 + 5166 034774 MOD141: CLEAN ^;CHECK BLKO NOT RESET PIH + 5167 + 5168 034774 7 000 20 0 00 634440 CONO 634440 + 5169 034775 7 004 20 0 00 010000 CONO PI,10000 + 5170 + 5171 034776 200 00 0 00 036501 MOVE [MOVEI 42] ;RESTORE LOC 42 + 5172 034777 202 00 0 00 000042 MOVEM 42 ;TO MOVEI + 5173 035000 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 ;SET PIH VIA INTERRUPT + 5174 035001 400 00 0 00 000000 SETZ ;IF PIH1(0) THEN PI CYC(1) + 5175 035002 7 774 10 0 00 000000 BLKO ME,0 ;INPUT TO PI RESTORE FAILED + 5176 + 5177 035003 300 00 0 00 000000 CAI + 5178 035004 7 004 34 0 00 040000 CONSO PI,40000 ;SET PI1 PRINT + 5179 STOP^ + 5180 035005 254 04 0 00 035006 HALT .+1 + 5181 035006 320 00 0 00 035007 JUMP .+1 + 5182 ^ + 5183 + 5184 035007 MOD142: CLEAN ^;CHECK PI RESTORE LOGIC + 5185 + 5186 035007 7 000 20 0 00 634440 CONO 634440 + 5187 035010 7 004 20 0 00 010000 CONO PI,10000 + 5188 + 5189 035011 200 00 0 00 036502 MOVE [DATAO ME,0] ;DATAO AND PIOV SHOULD PRODUCE + 5190 035012 202 00 0 00 000042 MOVEM 42 ;PI RESTORE. CHECK THIS INPUT + 5191 035013 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 ;TO PI RESTORE ON PI1 PRINT + 5192 035014 7 004 30 0 00 040000 CONSZ PI,40000 ;ALSO CHECK PI CYC(1) INPUT + 5193 STOP ^;ON SAME PAGE + 5194 + 5195 035015 254 04 0 00 035016 HALT .+1 + 5196 035016 320 00 0 00 035017 JUMP .+1 + 5197 + 5198 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 49 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0124 + + 5199 035017 MOD143: CLEAN^ + 5200 035017 7 000 20 0 00 634440 CONO 634440 + 5201 035020 7 004 20 0 00 010000 CONO PI,10000 + 5202 ^ + 5203 035021 200 00 0 00 036503 MOVE [DATAI ME,0] ;IF MACHINE HANGS OR + 5204 035022 202 00 0 00 000042 MOVEM 42 ;PIH(1) CHECK DATAO/DATAI + 5205 035023 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 ;INPUT TO PRIORITY SYSTEM + 5206 035024 7 004 30 0 00 040000 CONSZ PI,40000 ;SEE PI1 PRINT (LOWER LEFT) + 5207 STOP^ + 5208 035025 254 04 0 00 035026 HALT .+1 + 5209 035026 320 00 0 00 035027 JUMP .+1 + 5210 ^ + 5211 + 5212 035027 MOD144: CLEAN^ + 5213 035027 7 000 20 0 00 634440 CONO 634440 + 5214 035030 7 004 20 0 00 010000 CONO PI,10000 + 5215 ^ + 5216 035031 200 00 0 00 036477 MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + 5217 035032 202 00 0 00 000042 MOVEM 42 ;POINTER SHOULD SET PIOV. THE + 5218 035033 474 00 0 00 000000 SETO ;INST AT LOC 43 A (MOVEI 43) + 5219 035034 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + 5220 035035 7 004 34 0 00 040000 CONSO PI,40000 ;PI OV AND ASSOCIATED LOGIC + 5221 STOP ^;ON PI1 PRINT + 5222 + 5223 035036 254 04 0 00 035037 HALT .+1 + 5224 035037 320 00 0 00 035040 JUMP .+1 + 5225 + 5226 + 5227 035040 MOD145: CLEAN^ + 5228 035040 7 000 20 0 00 634440 CONO 634440 + 5229 035041 7 004 20 0 00 010000 CONO PI,10000 + 5230 ^ + 5231 035042 200 00 0 00 036477 MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + 5232 035043 202 00 0 00 000042 MOVEM 42 ;POINTER SHOULD SET PIOV. THE + 5233 035044 474 00 0 00 000000 SETO ;INST AT LOC 43 A (MOVEI 43) + 5234 035045 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + 5235 035046 302 00 0 00 000043 CAIE 43 ;CHECK PI OV INPUT TO MA35 + 5236 STOP ^;SET ON MA1 PRINT + 5237 + 5238 035047 254 04 0 00 035050 HALT .+1 + 5239 035050 320 00 0 00 035051 JUMP .+1 + 5240 + 5241 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 50 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0125 + + 5242 035051 MOD147: CLEAN ^;TEST PI CYC(0) GET TO PIR STB + 5243 + 5244 035051 7 000 20 0 00 634440 CONO 634440 + 5245 035052 7 004 20 0 00 010000 CONO PI,10000 + 5246 + 5247 035053 200 00 0 00 036477 MOVE [BLKO ME,0] ;PUT A BLKO WITH POINTER TO + 5248 035054 202 00 0 00 000044 MOVEM 44 ;SET PI OV IN CHANNEL 2 BLKO + 5249 035055 200 00 0 00 036504 MOVE [MOVEI 1,42] ;WILL SET NONEX MEM CAUSING + 5250 035056 202 00 0 00 000042 MOVEM 42 ;INTERRUPT ON CH1 THE INSTRUCTION + 5251 035057 561 00 0 00 777776 HRROI -2 ;AT LOC 45 MUST BE EXECUTED + 5252 035060 7 004 20 0 00 002100 CONO PI,PIOSET+100 + 5253 035061 7 000 20 0 00 000001 CONO 1 ;OR PI CYC(0) GATE TO PIR STB FAILED + 5254 035062 7 004 20 0 00 004240 CONO PI,PIREQ+ACT+40 + 5255 035063 302 00 0 00 000045 CAIE 45 ;AND OF MC RQ PULSE PICYC(0) + 5256 STOP^ + 5257 035064 254 04 0 00 035065 HALT .+1 + 5258 035065 320 00 0 00 035066 JUMP .+1 + 5259 ^ + 5260 035066 302 01 0 00 000042 CAIE 1,42 + 5261 STOP ^;NONEX FAIL TO INTERRUPT CH1 + 5262 + 5263 035067 254 04 0 00 035070 HALT .+1 + 5264 035070 320 00 0 00 035071 JUMP .+1 + 5265 + 5266 + 5267 035071 MOD148: CLEAN ^;PUT A SKIPA IN THE + 5268 + 5269 035071 7 000 20 0 00 634440 CONO 634440 + 5270 035072 7 004 20 0 00 010000 CONO PI,10000 + 5271 + 5272 035073 200 00 0 00 036505 MOVE [SKIPA] ;INTERRUPT SPOT + 5273 035074 202 00 0 00 000042 MOVEM 42 + 5274 035075 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 + 5275 STOP^ + 5276 035076 254 04 0 00 035077 HALT .+1 + 5277 035077 320 00 0 00 035100 JUMP .+1 + 5278 ^ + 5279 + 5280 035100 MOD149: CLEAN^ + 5281 035100 7 000 20 0 00 634440 CONO 634440 + 5282 035101 7 004 20 0 00 010000 CONO PI,10000 + 5283 ^ + 5284 035102 200 00 0 00 036506 MOVE [JSR .+4] + 5285 035103 202 00 0 00 000042 MOVEM 42 + 5286 035104 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 + 5287 STOP^ + 5288 035105 254 04 0 00 035106 HALT .+1 + 5289 035106 320 00 0 00 035107 JUMP .+1 + 5290 ^ + 5291 035107 000000 000000 0 + 5292 + 5293 035110 MOD150: CLEAN ^;INTERRUPT TO A PUSHJ + 5294 + 5295 035110 7 000 20 0 00 634440 CONO 634440 + 5296 035111 7 004 20 0 00 010000 CONO PI,10000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 50-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0126 + + 5297 + 5298 035112 200 00 0 00 036507 MOVE [PUSHJ .+4] + 5299 035113 202 00 0 00 000042 MOVEM 42 + 5300 035114 205 00 0 00 777777 MOVSI -1 + 5301 035115 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 + 5302 035116 405 01 0 00 777777 ANDI 1,-1 + 5303 035117 302 01 0 00 035116 CAIE 1,.-1 + 5304 STOP ^;PC STORED INCORRECTLY + 5305 + 5306 035120 254 04 0 00 035121 HALT .+1 + 5307 035121 320 00 0 00 035122 JUMP .+1 + 5308 + 5309 035122 302 00 0 00 000001 CAIE 1 ;THE PUSHJ + 5310 STOP ^;POINTER WORD IN ERROR + 5311 + 5312 035123 254 04 0 00 035124 HALT .+1 + 5313 035124 320 00 0 00 035125 JUMP .+1 + 5314 + 5315 CLEAN^ + 5316 035125 7 000 20 0 00 634440 CONO 634440 + 5317 035126 7 004 20 0 00 010000 CONO PI,10000 + 5318 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 51 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0127 + + 5319 035127 MOD151: CLEAN^ + 5320 035127 7 000 20 0 00 634440 CONO 634440 + 5321 035130 7 004 20 0 00 010000 CONO PI,10000 + 5322 ^ + 5323 035131 200 00 0 00 036510 MOVE [MOVEI 43] ;TEST CLEAR MA ON INTERRUPT + 5324 035132 202 00 0 00 000043 MOVEM 43 + 5325 035133 200 00 0 00 036511 MOVE [BLKO ME,4] + 5326 035134 202 00 0 00 000042 MOVEM 42 + 5327 035135 477 00 0 00 000004 SETOB 4 + 5328 035136 541 04 0 00 000004 HRRI 4,4 + 5329 035137 7 004 20 0 00 004300 CONO PI,PIREQ+ACT+100 + 5330 035140 302 00 0 00 000043 CAIE 43 + 5331 STOP^ + 5332 035141 254 04 0 00 035142 HALT .+1 + 5333 035142 320 00 0 00 035143 JUMP .+1 + 5334 ^ + 5335 + 5336 + 5337 035143 402 00 0 00 000060 MOD152: SETZM 60 ;TEST TRAP TO 60 + 5338 035144 200 00 0 00 036512 MOVE [JSP MOD153] ;GO HERE IF TRAP TO 40 + 5339 035145 202 00 0 00 000041 MOVEM 41 ;ERROR + 5340 035146 200 00 0 00 036513 MOVE [JSP MOD153+1] + 5341 035147 202 00 0 00 000061 MOVEM 61 ;OK TRAP + 5342 035150 100000 000000 XWD 100000,0 ;OP CODE 100-127 + 5343 STOP^ + 5344 035151 254 04 0 00 035152 HALT .+1 + 5345 035152 320 00 0 00 035153 JUMP .+1 + 5346 ^ + 5347 035153 MOD153: STOP^ + 5348 035153 254 04 0 00 035154 HALT .+1 + 5349 035154 320 00 0 00 035155 JUMP .+1 + 5350 ^ + 5351 035155 336 00 0 00 000060 SKIPN 60 ;NOTHING STORED IN C(60) + 5352 STOP^ + 5353 035156 254 04 0 00 035157 HALT .+1 + 5354 035157 320 00 0 00 035160 JUMP .+1 + 5355 ^ + 5356 + 5357 035160 336 00 0 00 036674 MOD154: SKIPN USMOD# ;TEST RELOC IF SPECIFIED + 5358 035161 254 00 0 00 036303 JRST MOD195 + 5359 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 52 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0128 + + 5360 DEFINE UMON< + 5361 CONO 634440 ;PREPARE TO TURN ON USER + 5362 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5363 DATAO [XWD -1,0]> + 5364 + 5365 DEFINE UMOFF< + 5366 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5367 MOVEM 41 ;UUO. PROG RETURNS TO END + 5368 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5369 > + 5370 + 5371 DEFINE HOLD< + 5372 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5373 JUMP .+1 ;SO WAITING FOR OPERATOR + 5374 > + 5375 + 5376 035162 254 02 1 00 036514 MOD160: JRST 2,@[XWD 0,.+1] ;CLEAR EX IOT USER, IF LIGHT + 5377 035163 265 00 0 00 035164 JSP .+1 ;OUT FLAG TRANSFER TO AR FAIL + 5378 + 5379 035164 603 00 0 00 004000 TLNE UMIOT ;BIT 6. OR FLOP FAIL TO CLEAR + 5380 STOP^ + 5381 035165 254 04 0 00 035166 HALT .+1 + 5382 035166 320 00 0 00 035167 JUMP .+1 + 5383 ^ + 5384 + 5385 035167 254 02 1 00 036515 JRST 2,@[XWD UMIOT,.+1] ;SET THEN CLEAR EX IOT USER + 5386 035170 254 02 1 00 036516 JRST 2,@[XWD 0,.+1] ;CK AND GATE ARF FLAGS FM BR (J), + 5387 035171 265 00 0 00 035172 JSP .+1 ;BR6(0) FAIL TO CLEAR + 5388 + 5389 035172 603 00 0 00 004000 TLNE UMIOT ;EX IOT USER ON EX PRINT + 5390 STOP^ + 5391 035173 254 04 0 00 035174 HALT .+1 + 5392 035174 320 00 0 00 035175 JUMP .+1 + 5393 ^ + 5394 + 5395 035175 254 02 1 00 036517 JRST 2,@[XWD 0,.+1] ;CLEAR THEN SET EX IOT USER + 5396 035176 254 02 1 00 036520 JRST 2,@[XWD UMIOT,.+1] ;IF LIGHT=1 FLAGS TO AR FAIL + 5397 035177 265 00 0 00 035200 JSP .+1 ;IF LIGHT=0 FLOP FAIL TO SET. CK + 5398 035200 607 00 0 00 004000 TLNN UMIOT ;BR6(1), EX USER(0), ARF FLAGS(J), EX PRINT + 5399 STOP^ + 5400 035201 254 04 0 00 035202 HALT .+1 + 5401 035202 320 00 0 00 035203 JUMP .+1 + 5402 ^ + 5403 + 5404 035203 254 02 1 00 036521 JRST 2,@[XWD 0,.+1] ;CLEAR USER. IOB1 PRINT + 5405 035204 7 000 30 0 00 100000 CONSZ 1B20 ;READ PROCESSOR STATUS + 5406 STOP^ + 5407 035205 254 04 0 00 035206 HALT .+1 + 5408 035206 320 00 0 00 035207 JUMP .+1 + 5409 ^ + 5410 + 5411 035207 254 02 1 00 036522 JRST 2,@[XWD UMIOT,.+1] ;SET USER IOB1 PRINT + 5412 035210 7 000 34 0 00 100000 CONSO 1B20 ;CPA STATUS FAIL + 5413 STOP^ + 5414 035211 254 04 0 00 035212 HALT .+1 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 52-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0129 + + 5415 035212 320 00 0 00 035213 JUMP .+1 + 5416 ^ + 5417 + 5418 035213 MOD161: UMOFF^ + 5419 035213 200 00 0 00 036523 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5420 035214 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5421 035215 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5422 ^ + 5423 035216 603 00 0 00 010000 TLNE USERF ;FLAGS TO AR BIT5 (USER MODE) FAIL + 5424 HOLD^ + 5425 035217 324 00 0 00 035217 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5426 035220 320 00 0 00 035221 JUMP .+1 ;SO WAITING FOR OPERATOR + 5427 ^ + 5428 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 53 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0130 + + 5429 ;TRY TO TURN ON USER MODE VIA RESTORE FLAGS THEN + 5430 ;TURN OFF VIA UU0. SEE EX PRINT + 5431 + 5432 035221 200 00 0 00 036524 MOD162: MOVE [JSP MD162A] + 5433 035222 202 00 0 00 000041 MOVEM 41 + 5434 UMON^ + 5435 035223 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5436 035224 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5437 035225 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5438 035226 254 02 1 00 036526 JRST 2,@[XWD USERF+UMIOT,MD162B] ;ALSO PRIVI IO + 5439 + 5440 035227 MD162A: HOLD ^ ;TRAP HERE, NO MEMORY ACCESS, USER MODE + 5441 + 5442 035227 324 00 0 00 035227 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5443 035230 320 00 0 00 035231 JUMP .+1 ;SO WAITING FOR OPERATOR + 5444 + 5445 + 5446 035231 MD162B: UMOFF^ + 5447 035231 200 00 0 00 036527 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5448 035232 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5449 035233 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5450 ^ + 5451 035234 607 00 0 00 010000 TLNN USERF ;JSP STORED FLAGS IN C(0) + 5452 HOLD^ + 5453 035235 324 00 0 00 035235 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5454 035236 320 00 0 00 035237 JUMP .+1 ;SO WAITING FOR OPERATOR + 5455 ^ + 5456 + 5457 ;TEST UUO TURN OFF OF USER MODE. PRIVI I/O ALLOWS + 5458 ;IOT TO OCCUR IN CASE USER STILL ON. SEE EX PRINT + 5459 + 5460 035237 MOD163: UMON^ + 5461 035237 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5462 035240 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5463 035241 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5464 035242 254 02 1 00 036530 JRST 2,@[XWD USERF+UMIOT,.+1] + 5465 UMOFF^ + 5466 035243 200 00 0 00 036531 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5467 035244 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5468 035245 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5469 ^ + 5470 UMOFF^ + 5471 035246 200 00 0 00 036532 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5472 035247 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5473 035250 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5474 ^ + 5475 035251 603 00 0 00 010000 TLNE USERF ;FLAGS STORED VIA JSP AT 41 + 5476 HOLD^ + 5477 035252 324 00 0 00 035252 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5478 035253 320 00 0 00 035254 JUMP .+1 ;SO WAITING FOR OPERATOR + 5479 ^ + 5480 + 5481 035254 MOD164: UMON^ + 5482 035254 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5483 035255 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 53-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0131 + + 5484 035256 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5485 035257 254 02 1 00 036533 JRST 2,@[XWD USERF+UMIOT,.+1] ;SET USER+PRIV I/O + 5486 035260 200 00 0 00 036534 MOVE [JUMPA .+3] ;SET RETURN FOR THE + 5487 035261 202 00 0 00 000041 MOVEM 41 ;UUO. EX ILL OP SHOULD + 5488 035262 040000 000000 XWD 40000,0 ;NOT TURN OFF USER FLAG + 5489 035263 265 00 0 00 035264 JSP .+1 ;BECAUSE AR FM PC(J)(ET0) + 5490 035264 607 00 0 00 010000 TLNN USERF ;PULSE IF NOT PRESENT. SEE EX + 5491 HOLD^ + 5492 035265 324 00 0 00 035265 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5493 035266 320 00 0 00 035267 JUMP .+1 ;SO WAITING FOR OPERATOR + 5494 ^ + 5495 UMOFF^ + 5496 035267 200 00 0 00 036535 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5497 035270 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5498 035271 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5499 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 54 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0132 + + 5500 + 5501 ;PERFORM A UUO. THE PURPOSE OF THIS IS TO SET THE + 5502 ;EX ILL OP FLOP. THE FLOP SHOULD BE CLEARED BY THE + 5503 ;JSP AT 41. IF HOWEVER THIS DID NOT OCCUR, ANY + 5504 ;STORE PC INSTRUCTION IN USER MODE WOULD CLEAR + 5505 ;USER MODE. THIS TEST THEREFORE TEST THE CLEAR + 5506 ;TO EX ILL OP VIA AR FM PC(J) (ET0) ON EX PRINT + 5507 + 5508 035272 MOD165: UMOFF^ + 5509 035272 200 00 0 00 036536 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5510 035273 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5511 035274 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5512 ^ + 5513 UMON^ + 5514 035275 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5515 035276 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5516 035277 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5517 035300 254 02 1 00 036537 JRST 2,@[XWD USERF+UMIOT,.+1] + 5518 035301 265 00 0 00 035302 JSP .+1 ;DONT FORGET FAIL TO CLEAR + 5519 035302 265 00 0 00 035303 JSP .+1 ;MAY BE PHONEY SET EX ILL OP + 5520 035303 607 00 0 00 010000 TLNN USERF ;OR PHONEY CLEAR EX-USER + 5521 HOLD^ + 5522 035304 324 00 0 00 035304 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5523 035305 320 00 0 00 035306 JUMP .+1 ;SO WAITING FOR OPERATOR + 5524 ^ + 5525 UMOFF^ + 5526 035306 200 00 0 00 036540 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5527 035307 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5528 035310 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5529 ^ + 5530 + 5531 035311 MOD166: UMOFF^ + 5532 035311 200 00 0 00 036541 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5533 035312 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5534 035313 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5535 ^ + 5536 UMON^ + 5537 035314 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5538 035315 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5539 035316 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5540 035317 254 01 0 00 035320 JRST 1,.+1 ;SET USER MODE VIA ET0 + 5541 035320 265 00 0 00 035321 JSP .+1 ;IR JRST, IR12(1). IT FAILED + 5542 035321 607 00 0 00 010000 TLNN USERF ;REPLACE B135 ON EX PRINT + 5543 HOLD^ + 5544 035322 324 00 0 00 035322 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5545 035323 320 00 0 00 035324 JUMP .+1 ;SO WAITING FOR OPERATOR + 5546 ^ + 5547 UMOFF^ + 5548 035324 200 00 0 00 036542 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5549 035325 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5550 035326 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5551 ^ + 5552 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 55 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0133 + + 5553 ;THIS TEST WILL TRY TO SET THE PRIV I/O BIT WHEN IN + 5554 ;USER MODE. IF THE EX IOT USER FLOP SETS EX USER (0) INPUT + 5555 ;TO THE FLAG FAILED SEE EX PRINT + 5556 + 5557 035327 MOD167: UMON^ + 5558 035327 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5559 035330 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5560 035331 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5561 035332 254 02 1 00 036543 JRST 2,@[XWD USERF,.+1] ;SET USER + 5562 035333 254 02 1 00 036544 JRST 2,@[XWD USERF+UMIOT,.+1] ;TRY TO SET PRIV I/O + 5563 035334 265 00 0 00 035335 JSP .+1 + 5564 035335 603 00 0 00 004000 TLNE UMIOT + 5565 HOLD^ + 5566 035336 324 00 0 00 035336 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5567 035337 320 00 0 00 035340 JUMP .+1 ;SO WAITING FOR OPERATOR + 5568 ^ + 5569 UMOFF^ + 5570 035340 200 00 0 00 036545 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5571 035341 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5572 035342 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5573 ^ + 5574 + 5575 035343 MOD170: UMON^ + 5576 035343 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5577 035344 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5578 035345 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5579 035346 254 02 1 00 036546 JRST 2,@[XWD USERF,.+1] ;SET USER MODE + 5580 035347 200 00 0 00 036547 MOVE [JSP .+4] ;SET TRAP RETURN + 5581 035350 202 00 0 00 000041 MOVEM 41 ;1 PAST THE IOT INST + 5582 035351 402 00 0 00 000040 SETZM 40 ;FAIL TO TRAP. EX ALLOW IOT + 5583 035352 700000 000000 XWD 700000,0 ;ALLOWED THE IOT IN USER + 5584 035353 336 00 0 00 000040 SKIPN 40 ;MODE. SEE EX PRINT + 5585 HOLD^ + 5586 035354 324 00 0 00 035354 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5587 035355 320 00 0 00 035356 JUMP .+1 ;SO WAITING FOR OPERATOR + 5588 ^ + 5589 UMOFF^ + 5590 035356 200 00 0 00 036550 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5591 035357 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5592 035360 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5593 ^ + 5594 + 5595 035361 MOD171: UMON^ + 5596 035361 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5597 035362 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5598 035363 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5599 035364 254 02 1 00 036551 JRST 2,@[XWD USERF+UMIOT,.+1] ;SET PRIVI+USER + 5600 035365 200 00 0 00 036552 MOVE [JSP .+4] ;SET TRAP RETURN 1 PAST + 5601 035366 202 00 0 00 000041 MOVEM 41 ;THE TRAP INST + 5602 035367 403 00 0 00 000040 SETZB 40 ;THE EX IOT USER FLOP + 5603 035370 700000 000000 XWD 700000,0 ;SHOULD ALLOW THE IOT + 5604 035371 300 00 0 00 000000 CAI + 5605 035372 332 00 0 00 000040 SKIPE 40 ;CHECK EX ALLOW IOT. EX PRINT + 5606 HOLD^ + 5607 035373 324 00 0 00 035373 JUMPA . ;MACH ERROR. HALT MAY TRAP +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 55-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0134 + + 5608 035374 320 00 0 00 035375 JUMP .+1 ;SO WAITING FOR OPERATOR + 5609 ^ + 5610 UMOFF^ + 5611 035375 200 00 0 00 036553 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5612 035376 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5613 035377 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5614 ^ + 5615 + 5616 035400 MOD172: UMON^ + 5617 035400 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5618 035401 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5619 035402 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5620 035403 254 02 1 00 036554 JRST 2,@[XWD USERF+UMIOT,.+1] ;USER AND PRIV I/O + 5621 035404 200 00 0 00 036555 MOVE [JSP .+3] ;THEN CAUSE A PI REQUEST + 5622 035405 202 00 0 00 000042 MOVEM 42 ;PI CYC(1) SHOULD SET EX PI SYNC + 5623 035406 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;WHICH SHOULD CLEAR EX USER + 5624 035407 265 00 0 00 035410 JSP .+1 ;AT ET1 OF JSP AT 42. IT + 5625 035410 603 00 0 00 010000 TLNE USERF ;FAILED. SEE EX PRINT + 5626 HOLD^ + 5627 035411 324 00 0 00 035411 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5628 035412 320 00 0 00 035413 JUMP .+1 ;SO WAITING FOR OPERATOR + 5629 ^ + 5630 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 56 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0135 + + 5631 ;THIS TEST WILL INSURE THAT EX ILL OP IS CLEARED + 5632 ;BY IOT BLK. THIS LOGIC IS NECESSARY FOR RETURNING TO + 5633 ;THE PROPER RELOCATION WHEN A UUO IS INTERRUPTED AND + 5634 ;MUST BE RE EXECUTED. + 5635 + 5636 + 5637 035413 200 00 0 00 036556 MOD173: MOVE [JUMPA .+3] + 5638 035414 202 00 0 00 000041 MOVEM 41 + 5639 035415 040000 000000 XWD 040000,0 ;PERHAPS TURN OFF USER MODE + 5640 035416 400 00 0 00 000000 SETZ ;PREVIOUS UUO SET EX ILL OP + 5641 035417 7 000 00 0 00 000000 BLKI ;THIS IOT SHOULD CLEAR IT + 5642 035420 300 00 0 00 000000 CAI + 5643 035421 254 02 1 00 036557 JRST 2,@[XWD USERF,.+1] ;NOW ENTER USER MODE IF + 5644 035422 265 00 0 00 035423 JSP .+1 ;EX ILL OP SET JSP WILL CLEAR + 5645 035423 265 00 0 00 035424 JSP .+1 ;EX USER FLAG. SEE EX PRINT + 5646 035424 607 00 0 00 010000 TLNN USERF + 5647 HOLD^ + 5648 035425 324 00 0 00 035425 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5649 035426 320 00 0 00 035427 JUMP .+1 ;SO WAITING FOR OPERATOR + 5650 ^ + 5651 UMOFF^ + 5652 035427 200 00 0 00 036560 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5653 035430 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5654 035431 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5655 ^ + 5656 + 5657 035432 MOD174: UMON^ + 5658 035432 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5659 035433 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5660 035434 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5661 035435 254 02 1 00 036561 JRST 2,@[XWD USERF,.+1] + 5662 035436 200 00 0 00 036562 MOVE [JSP .+4] ;SET RETURN + 5663 035437 202 00 0 00 000041 MOVEM 41 ;SEE IR2 PRINT + 5664 035440 402 00 0 00 000040 SETZM 40 ;IR JRST A IR10(1) + 5665 035441 254 04 0 00 035441 HALT . ;THIS HALT SHOULD TRAP + 5666 035442 336 00 0 00 000040 SKIPN 40 ;BUT DID NOT + 5667 HOLD^ + 5668 035443 324 00 0 00 035443 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5669 035444 320 00 0 00 035445 JUMP .+1 ;SO WAITING FOR OPERATOR + 5670 ^ + 5671 UMOFF^ + 5672 035445 200 00 0 00 036563 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5673 035446 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5674 035447 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5675 ^ + 5676 + 5677 035450 MOD175: UMON^ + 5678 035450 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5679 035451 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5680 035452 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5681 035453 254 02 1 00 036564 JRST 2,@[XWD USERF,.+1] + 5682 035454 200 00 0 00 036565 MOVE [JSP .+4] ;SET RETURN + 5683 035455 202 00 0 00 000041 MOVEM 41 ;SEE IR2 PRINT + 5684 035456 402 00 0 00 000040 SETZM 40 ;THE ENABLE PI SHOULD + 5685 035457 254 12 0 00 035460 JEN .+1 ;TRAP TO 40 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 56-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0136 + + 5686 035460 336 00 0 00 000040 SKIPN 40 ;BUT DID NOT + 5687 HOLD^ + 5688 035461 324 00 0 00 035461 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5689 035462 320 00 0 00 035463 JUMP .+1 ;SO WAITING FOR OPERATOR + 5690 ^ + 5691 UMOFF^ + 5692 035463 200 00 0 00 036566 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5693 035464 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5694 035465 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5695 ^ + 5696 + 5697 035466 MOD176: UMON^ + 5698 035466 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5699 035467 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5700 035470 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5701 035471 254 02 1 00 036567 JRST 2,@[XWD USERF+UMIOT,.+1] + 5702 035472 200 00 0 00 036570 MOVE [JSP .+4] ;SET PRIVI IO BIT + 5703 035473 202 00 0 00 000041 MOVEM 41 ;THIS SHOULD PREVENT JRST IO, + 5704 035474 402 00 0 00 000040 SETZM 40 ;FROM TRAPPING. SEE IR UUO + 5705 035475 254 10 0 00 035476 JRST 10,.+1 ;ON IR2 PRINT + 5706 035476 332 00 0 00 000040 SKIPE 40 + 5707 HOLD^ + 5708 035477 324 00 0 00 035477 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5709 035500 320 00 0 00 035501 JUMP .+1 ;SO WAITING FOR OPERATOR + 5710 ^ + 5711 UMOFF^ + 5712 035501 200 00 0 00 036571 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5713 035502 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5714 035503 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5715 ^ + 5716 + 5717 035504 MOD177: UMON^ + 5718 035504 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5719 035505 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5720 035506 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5721 035507 254 01 0 00 035510 JRST 1,.+1 ;SEE IF JUST A PLAIN + 5722 035510 200 00 0 00 036572 MOVE [JSP .+4] ;JRST WILL TRAP + 5723 035511 202 00 0 00 000041 MOVEM 41 ;SEE IR2 PRINT FOR + 5724 035512 402 00 0 00 000040 SETZM 40 ;DECODE IR-UUO + 5725 035513 254 00 0 00 035514 JRST .+1 + 5726 035514 332 00 0 00 000040 SKIPE 40 + 5727 HOLD^ + 5728 035515 324 00 0 00 035515 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5729 035516 320 00 0 00 035517 JUMP .+1 ;SO WAITING FOR OPERATOR + 5730 ^ + 5731 UMOFF^ + 5732 035517 200 00 0 00 036573 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5733 035520 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5734 035521 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5735 ^ + 5736 + 5737 035522 MOD178: UMON^ + 5738 035522 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5739 035523 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5740 035524 7 000 14 0 00 036525 DATAO [XWD -1,0]^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 56-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0137 + + 5741 035525 254 01 0 00 035526 JRST 1,.+1 ;SEE IF IR 9+10 WITH OUT + 5742 035526 200 00 0 00 036574 MOVE [JSP .+4] ;A JRST WILL TRAP + 5743 035527 202 00 0 00 000041 MOVEM 41 ;SEE IR UUO ON IR-2 PRINT + 5744 035530 402 00 0 00 000040 SETZM 40 + 5745 035531 255 14 0 00 035532 JFCL 14,.+1 + 5746 035532 332 00 0 00 000040 SKIPE 40 + 5747 HOLD^ + 5748 035533 324 00 0 00 035533 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5749 035534 320 00 0 00 035535 JUMP .+1 ;SO WAITING FOR OPERATOR + 5750 ^ + 5751 UMOFF^ + 5752 035535 200 00 0 00 036575 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5753 035536 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5754 035537 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5755 ^ + 5756 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 57 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0138 + + 5757 ;CHECK THAT AN IOT AT INTERRUPT LEVEL WILL NOT LOOK + 5758 ;LIKE A UUO SEE IR-2 PRINT + 5759 + 5760 035540 MOD179: UMON^ + 5761 035540 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5762 035541 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5763 035542 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5764 035543 7 000 20 0 00 000001 CONO 1 + 5765 035544 200 00 0 00 036576 MOVE [BLKI] + 5766 035545 202 00 0 00 000042 MOVEM 42 + 5767 035546 200 00 0 00 036577 MOVE [JSP M179+1] + 5768 035547 202 00 0 00 000041 MOVEM 41 + 5769 035550 403 00 0 00 000040 SETZB 40 + 5770 035551 200 00 0 00 036600 MOVE [JSP M179] + 5771 035552 202 00 0 00 000043 MOVEM 43 + 5772 035553 474 00 0 00 000000 SETO + 5773 035554 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 5774 035555 254 01 0 00 035556 JRST 1,.+1 + 5775 035556 310 00 0 00 777777 CAM -1 + 5776 035557 332 00 0 00 000040 M179: SKIPE 40 + 5777 HOLD^ + 5778 035560 324 00 0 00 035560 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5779 035561 320 00 0 00 035562 JUMP .+1 ;SO WAITING FOR OPERATOR + 5780 ^ + 5781 UMOFF^ + 5782 035562 200 00 0 00 036601 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 5783 035563 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 5784 035564 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 5785 ^ + 5786 + 5787 035565 MODXX1: UMON ^ ;TEST TRAP (60) TURN OFF OF + 5788 + 5789 035565 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5790 035566 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5791 035567 7 000 14 0 00 036525 DATAO [XWD -1,0] + 5792 035570 200 00 0 00 036602 MOVE [JSP .+5] ;USER MODE + 5793 035571 202 00 0 00 000061 MOVEM 61 + 5794 035572 254 01 0 00 035573 JRST 1,.+1 + 5795 035573 100000 000000 XWD 100000,0 ;OP CODE 100 + 5796 HOLD ^ ;IT FAILED TO TRAP + 5797 + 5798 035574 324 00 0 00 035574 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5799 035575 320 00 0 00 035576 JUMP .+1 ;SO WAITING FOR OPERATOR + 5800 + 5801 035576 265 00 0 00 035577 JSP .+1 ;IT SHOULD ALSO + 5802 035577 603 00 0 00 010000 TLNE USERF ;TURN OFF USER MODE + 5803 HOLD^ + 5804 035600 324 00 0 00 035600 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5805 035601 320 00 0 00 035602 JUMP .+1 ;SO WAITING FOR OPERATOR + 5806 ^ + 5807 + 5808 035602 MODXX2: UMON^ + 5809 035602 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5810 035603 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5811 035604 7 000 14 0 00 036525 DATAO [XWD -1,0]^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 57-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0139 + + 5812 035605 200 00 0 00 036603 MOVE [JSP .+4] ;TEST IR TO C(40) + 5813 035606 202 00 0 00 000041 MOVEM 41 ;FOR BITS 1,2,3 + 5814 035607 254 02 1 00 036604 JRST 2,@[XWD USERF,.+1] + 5815 035610 700000 000000 XWD 700000,0 ;AN IOT + 5816 035611 200 00 0 00 000040 MOVE 40 + 5817 035612 312 00 0 00 036576 CAME [XWD 700000,0] + 5818 HOLD^ + 5819 035613 324 00 0 00 035613 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5820 035614 320 00 0 00 035615 JUMP .+1 ;SO WAITING FOR OPERATOR + 5821 ^ + 5822 + 5823 035615 MOD180: UMON^ + 5824 035615 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5825 035616 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5826 035617 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5827 035620 7 000 14 0 00 036425 DATAO [0] ;GET RID OF PROTECT REG + 5828 + 5829 035621 7 000 20 0 00 000001 CONO 1 + 5830 035622 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 5831 035623 200 00 0 00 036605 MOVE [JSP M180] + 5832 035624 202 00 0 00 000042 MOVEM 42 + 5833 035625 200 00 0 00 036605 MOVE [JSP .+4] + 5834 035626 202 00 0 00 000041 MOVEM 41 + 5835 035627 254 02 1 00 036606 JRST 2,@[XWD USERF+UMIOT,.+1] ;ENABLE USER + 5836 035630 324 00 0 00 035630 JUMPA . ;THIS INST SHOULD SET PROT + 5837 035631 7 000 34 0 00 020000 M180: CONSO PROT ;HERE IF FLAG FAIL + 5838 HOLD^ + 5839 035632 324 00 0 00 035632 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5840 035633 320 00 0 00 035634 JUMP .+1 ;SO WAITING FOR OPERATOR + 5841 ^ + 5842 035634 7 000 30 0 00 010000 CONSZ NONEX ;NEVER NON EX WITH PROT + 5843 HOLD^ + 5844 035635 324 00 0 00 035635 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5845 035636 320 00 0 00 035637 JUMP .+1 ;SO WAITING FOR OPERATOR + 5846 ^ + 5847 035637 7 000 20 0 00 020000 CONO 1B22 ;FAIL TO CLEAR PROT + 5848 035640 7 000 30 0 00 020000 CONSZ PROT ;FLAG SEE CPA PRINT + 5849 HOLD^ + 5850 035641 324 00 0 00 035641 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5851 035642 320 00 0 00 035643 JUMP .+1 ;SO WAITING FOR OPERATOR + 5852 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 58 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0140 + + 5853 + 5854 DEFINE EXCT (A) < + 5855 MOVE [JSP .+3] ;EXECUTE A UUO + 5856 MOVEM 41 ;AND STORE FLAGS + 5857 XWD A,0 ;IN AC0. + 5858 > + 5859 ;CHECK UUO 0 TRAPING TO EXEC MODE AND UUO 1-37 + 5860 ;NOT TRAPING TO EXEC MODE...1P19 ON EX CONTROL PRINT. + 5861 + 5862 035643 MOD18A: UMON^ + 5863 035643 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5864 035644 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5865 035645 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5866 035646 254 02 1 00 036607 JRST 2,@[XWD USERF+UMIOT,.+1] + 5867 EXCT 0^ + 5868 035647 200 00 0 00 036610 MOVE [JSP .+3] ;EXECUTE 0 UUO + 5869 035650 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5870 035651 000000 000000 XWD 0,0 ;IN AC0. + 5871 ^ + 5872 EXCT 0^ + 5873 035652 200 00 0 00 036611 MOVE [JSP .+3] ;EXECUTE 0 UUO + 5874 035653 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5875 035654 000000 000000 XWD 0,0 ;IN AC0. + 5876 ^ + 5877 035655 603 00 0 00 010000 TLNE USERF ;USER MODE ON?..CK 1P19 EX CONT PNT. + 5878 HOLD^ + 5879 035656 324 00 0 00 035656 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5880 035657 320 00 0 00 035660 JUMP .+1 ;SO WAITING FOR OPERATOR + 5881 ^ + 5882 + 5883 UMON^ + 5884 035660 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5885 035661 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5886 035662 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5887 035663 254 02 1 00 036612 JRST 2,@[XWD USERF+UMIOT,.+1] + 5888 EXCT 1000^ + 5889 035664 200 00 0 00 036613 MOVE [JSP .+3] ;EXECUTE 1000 UUO + 5890 035665 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5891 035666 001000 000000 XWD 1000,0 ;IN AC0. + 5892 ^ + 5893 035667 607 00 0 00 010000 TLNN USERF ;CK BIT 8 INPUT TO 1P19 EX CONTROL PRINT. + 5894 HOLD^ + 5895 035670 324 00 0 00 035670 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5896 035671 320 00 0 00 035672 JUMP .+1 ;SO WAITING FOR OPERATOR + 5897 ^ + 5898 + 5899 + 5900 + 5901 UMON^ + 5902 035672 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5903 035673 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5904 035674 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5905 035675 254 02 1 00 036614 JRST 2,@[XWD USERF+UMIOT,.+1] + 5906 EXCT 2000^ + 5907 035676 200 00 0 00 036615 MOVE [JSP .+3] ;EXECUTE 2000 UUO +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 58-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0141 + + 5908 035677 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5909 035700 002000 000000 XWD 2000,0 ;IN AC0. + 5910 ^ + 5911 035701 607 00 0 00 010000 TLNN USERF ;CK BIT 7 INPUT TO 1P19 EX CONTROL PNT. + 5912 HOLD^ + 5913 035702 324 00 0 00 035702 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5914 035703 320 00 0 00 035704 JUMP .+1 ;SO WAITING FOR OPERATOR + 5915 ^ + 5916 + 5917 UMON^ + 5918 035704 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5919 035705 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5920 035706 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5921 035707 254 02 1 00 036616 JRST 2,@[XWD USERF+UMIOT,.+1] + 5922 EXCT 4000^ + 5923 035710 200 00 0 00 036617 MOVE [JSP .+3] ;EXECUTE 4000 UUO + 5924 035711 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5925 035712 004000 000000 XWD 4000,0 ;IN AC0. + 5926 ^ + 5927 035713 607 00 0 00 010000 TLNN USERF ;CK BIT 6 INPUT TO 1P19 EX CONTROL PNT. + 5928 HOLD^ + 5929 035714 324 00 0 00 035714 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5930 035715 320 00 0 00 035716 JUMP .+1 ;SO WAITING FOR OPERATOR + 5931 ^ + 5932 + 5933 UMON^ + 5934 035716 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5935 035717 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5936 035720 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5937 035721 254 02 1 00 036620 JRST 2,@[XWD USERF+UMIOT,.+1] + 5938 EXCT 10000^ + 5939 035722 200 00 0 00 036621 MOVE [JSP .+3] ;EXECUTE 10000 UUO + 5940 035723 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5941 035724 010000 000000 XWD 10000,0 ;IN AC0. + 5942 ^ + 5943 035725 607 00 0 00 010000 TLNN USERF ;CK BIT 5 INPUT TO 1P19 EX CONTROL PNT. + 5944 HOLD^ + 5945 035726 324 00 0 00 035726 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5946 035727 320 00 0 00 035730 JUMP .+1 ;SO WAITING FOR OPERATOR + 5947 ^ + 5948 + 5949 + 5950 UMON^ + 5951 035730 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5952 035731 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5953 035732 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5954 035733 254 02 1 00 036622 JRST 2,@[XWD USERF+UMIOT,.+1] + 5955 EXCT 20000^ + 5956 035734 200 00 0 00 036623 MOVE [JSP .+3] ;EXECUTE 20000 UUO + 5957 035735 202 00 0 00 000041 MOVEM 41 ;AND STORE FLAGS + 5958 035736 020000 000000 XWD 20000,0 ;IN AC0. + 5959 ^ + 5960 035737 607 00 0 00 010000 TLNN USERF ;CK BIT 4 INPUT TO 1P19 EX CONTROL PNT. + 5961 HOLD^ + 5962 035740 324 00 0 00 035740 JUMPA . ;MACH ERROR. HALT MAY TRAP +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 58-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0142 + + 5963 035741 320 00 0 00 035742 JUMP .+1 ;SO WAITING FOR OPERATOR + 5964 ^ + 5965 + 5966 UMON^ + 5967 035742 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 5968 035743 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 5969 035744 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 5970 035745 254 02 1 00 036624 JRST 2,@[XWD USERF,.+1] + 5971 035746 200 00 0 00 036625 MOVE 0,[JSP .+3] + 5972 035747 202 00 0 00 000041 MOVEM 0,41 + 5973 035750 700000 000000 XWD 700000,0 ;XCT AN IOT. + 5974 035751 265 00 0 00 035752 JSP .+1 ;GET FLAGS. + 5975 035752 603 00 0 00 010000 TLNE 0,USERF ;USER MODE STILL ON? + 5976 HOLD ^ ;YES. CK EX NON REL UUO + 5977 + 5978 035753 324 00 0 00 035753 JUMPA . ;MACH ERROR. HALT MAY TRAP + 5979 035754 320 00 0 00 035755 JUMP .+1 ;SO WAITING FOR OPERATOR + 5980 + 5981 ;EX PRINT. + 5982 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 59 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0143 + + 5983 035755 200 00 0 00 010040 MOD181: MOVE 10040 ;SAVE THESE LOC + 5984 035756 336 00 0 00 035772 SKIPN SAV40 + 5985 035757 202 00 0 00 035772 MOVEM SAV40 + 5986 035760 200 00 0 00 010041 MOVE 10041 + 5987 035761 336 00 0 00 035773 SKIPN SAV41 + 5988 035762 202 00 0 00 035773 MOVEM SAV41 + 5989 035763 200 00 0 00 010042 MOVE 10042 + 5990 035764 336 00 0 00 035774 SKIPN SAV42 + 5991 035765 202 00 0 00 035774 MOVEM SAV42 + 5992 035766 200 00 0 00 010043 MOVE 10043 + 5993 035767 336 00 0 00 035775 SKIPN SAV43 + 5994 035770 202 00 0 00 035775 MOVEM SAV43 + 5995 035771 254 00 0 00 035776 JRST .+5 + 5996 035772 000000 000000 SAV40: 0 + 5997 035773 000000 000000 SAV41: 0 + 5998 035774 000000 000000 SAV42: 0 + 5999 035775 000000 000000 SAV43: 0 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0144 + + 6000 + 6001 ;TEST THE SETTING OF PROTECT FLAG BY MOVING A + 6002 ;TWO INST PROG TO AC 1+2 PROG IS CAM X AND UU0 + 6003 ;WITH TRAP SET TO REAL WORLD THE CAM SHOULD TEST + 6004 ;THE PROT FLAG + 6005 + 6006 002000 X=2000 + 6007 + 6008 DEFINE LAC (A)< + 6009 UMON + 6010 DATAO [0] + 6011 MOVE 1,[CAM A] + 6012 MOVSI 2,40000 + 6013 + 6014 CONO PI,ACT+PIOSET+100 + 6015 CONO 1 + 6016 MOVE [JSP .+5] + 6017 MOVEM 42 + 6018 MOVE [JSP .+3] + 6019 MOVEM 41 ;SET TRAP RETURN + 6020 JRST 1,1 ;TURN ON USER MODE + 6021 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6022 HOLD + 6023 CONSZ NONEX + 6024 HOLD + 6025 > + 6026 MOD182: REPEAT 10,< + 6027 LAC X + 6028 X=X+X> + 6029 + 6030 LAC X^ + 6031 UMON^ + 6032 035776 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6033 035777 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6034 036000 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6035 036001 7 000 14 0 00 036425 DATAO [0] + 6036 036002 200 01 0 00 036626 MOVE 1,[CAM X] + 6037 036003 205 02 0 00 040000 MOVSI 2,40000 + 6038 + 6039 036004 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6040 036005 7 000 20 0 00 000001 CONO 1 + 6041 036006 200 00 0 00 036627 MOVE [JSP .+5] + 6042 036007 202 00 0 00 000042 MOVEM 42 + 6043 036010 200 00 0 00 036627 MOVE [JSP .+3] + 6044 036011 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6045 036012 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6046 036013 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6047 HOLD^ + 6048 036014 324 00 0 00 036014 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6049 036015 320 00 0 00 036016 JUMP .+1 ;SO WAITING FOR OPERATOR + 6050 ^ + 6051 036016 7 000 30 0 00 010000 CONSZ NONEX + 6052 HOLD^ + 6053 036017 324 00 0 00 036017 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6054 036020 320 00 0 00 036021 JUMP .+1 ;SO WAITING FOR OPERATOR +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0145 + + 6055 ^ + 6056 ^ + 6057 004000 X=X+X + 6058 + 6059 LAC X^ + 6060 UMON^ + 6061 036021 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6062 036022 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6063 036023 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6064 036024 7 000 14 0 00 036425 DATAO [0] + 6065 036025 200 01 0 00 036630 MOVE 1,[CAM X] + 6066 036026 205 02 0 00 040000 MOVSI 2,40000 + 6067 + 6068 036027 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6069 036030 7 000 20 0 00 000001 CONO 1 + 6070 036031 200 00 0 00 036631 MOVE [JSP .+5] + 6071 036032 202 00 0 00 000042 MOVEM 42 + 6072 036033 200 00 0 00 036631 MOVE [JSP .+3] + 6073 036034 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6074 036035 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6075 036036 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6076 HOLD^ + 6077 036037 324 00 0 00 036037 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6078 036040 320 00 0 00 036041 JUMP .+1 ;SO WAITING FOR OPERATOR + 6079 ^ + 6080 036041 7 000 30 0 00 010000 CONSZ NONEX + 6081 HOLD^ + 6082 036042 324 00 0 00 036042 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6083 036043 320 00 0 00 036044 JUMP .+1 ;SO WAITING FOR OPERATOR + 6084 ^ + 6085 ^ + 6086 010000 X=X+X + 6087 + 6088 LAC X^ + 6089 UMON^ + 6090 036044 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6091 036045 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6092 036046 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6093 036047 7 000 14 0 00 036425 DATAO [0] + 6094 036050 200 01 0 00 036632 MOVE 1,[CAM X] + 6095 036051 205 02 0 00 040000 MOVSI 2,40000 + 6096 + 6097 036052 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6098 036053 7 000 20 0 00 000001 CONO 1 + 6099 036054 200 00 0 00 036633 MOVE [JSP .+5] + 6100 036055 202 00 0 00 000042 MOVEM 42 + 6101 036056 200 00 0 00 036633 MOVE [JSP .+3] + 6102 036057 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6103 036060 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6104 036061 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6105 HOLD^ + 6106 036062 324 00 0 00 036062 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6107 036063 320 00 0 00 036064 JUMP .+1 ;SO WAITING FOR OPERATOR + 6108 ^ + 6109 036064 7 000 30 0 00 010000 CONSZ NONEX +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0146 + + 6110 HOLD^ + 6111 036065 324 00 0 00 036065 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6112 036066 320 00 0 00 036067 JUMP .+1 ;SO WAITING FOR OPERATOR + 6113 ^ + 6114 ^ + 6115 020000 X=X+X + 6116 + 6117 LAC X^ + 6118 UMON^ + 6119 036067 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6120 036070 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6121 036071 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6122 036072 7 000 14 0 00 036425 DATAO [0] + 6123 036073 200 01 0 00 036634 MOVE 1,[CAM X] + 6124 036074 205 02 0 00 040000 MOVSI 2,40000 + 6125 + 6126 036075 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6127 036076 7 000 20 0 00 000001 CONO 1 + 6128 036077 200 00 0 00 036635 MOVE [JSP .+5] + 6129 036100 202 00 0 00 000042 MOVEM 42 + 6130 036101 200 00 0 00 036635 MOVE [JSP .+3] + 6131 036102 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6132 036103 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6133 036104 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6134 HOLD^ + 6135 036105 324 00 0 00 036105 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6136 036106 320 00 0 00 036107 JUMP .+1 ;SO WAITING FOR OPERATOR + 6137 ^ + 6138 036107 7 000 30 0 00 010000 CONSZ NONEX + 6139 HOLD^ + 6140 036110 324 00 0 00 036110 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6141 036111 320 00 0 00 036112 JUMP .+1 ;SO WAITING FOR OPERATOR + 6142 ^ + 6143 ^ + 6144 040000 X=X+X + 6145 + 6146 LAC X^ + 6147 UMON^ + 6148 036112 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6149 036113 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6150 036114 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6151 036115 7 000 14 0 00 036425 DATAO [0] + 6152 036116 200 01 0 00 036636 MOVE 1,[CAM X] + 6153 036117 205 02 0 00 040000 MOVSI 2,40000 + 6154 + 6155 036120 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6156 036121 7 000 20 0 00 000001 CONO 1 + 6157 036122 200 00 0 00 036637 MOVE [JSP .+5] + 6158 036123 202 00 0 00 000042 MOVEM 42 + 6159 036124 200 00 0 00 036637 MOVE [JSP .+3] + 6160 036125 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6161 036126 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6162 036127 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6163 HOLD^ + 6164 036130 324 00 0 00 036130 JUMPA . ;MACH ERROR. HALT MAY TRAP +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60-3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0147 + + 6165 036131 320 00 0 00 036132 JUMP .+1 ;SO WAITING FOR OPERATOR + 6166 ^ + 6167 036132 7 000 30 0 00 010000 CONSZ NONEX + 6168 HOLD^ + 6169 036133 324 00 0 00 036133 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6170 036134 320 00 0 00 036135 JUMP .+1 ;SO WAITING FOR OPERATOR + 6171 ^ + 6172 ^ + 6173 100000 X=X+X + 6174 + 6175 LAC X^ + 6176 UMON^ + 6177 036135 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6178 036136 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6179 036137 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6180 036140 7 000 14 0 00 036425 DATAO [0] + 6181 036141 200 01 0 00 036640 MOVE 1,[CAM X] + 6182 036142 205 02 0 00 040000 MOVSI 2,40000 + 6183 + 6184 036143 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6185 036144 7 000 20 0 00 000001 CONO 1 + 6186 036145 200 00 0 00 036641 MOVE [JSP .+5] + 6187 036146 202 00 0 00 000042 MOVEM 42 + 6188 036147 200 00 0 00 036641 MOVE [JSP .+3] + 6189 036150 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6190 036151 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6191 036152 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6192 HOLD^ + 6193 036153 324 00 0 00 036153 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6194 036154 320 00 0 00 036155 JUMP .+1 ;SO WAITING FOR OPERATOR + 6195 ^ + 6196 036155 7 000 30 0 00 010000 CONSZ NONEX + 6197 HOLD^ + 6198 036156 324 00 0 00 036156 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6199 036157 320 00 0 00 036160 JUMP .+1 ;SO WAITING FOR OPERATOR + 6200 ^ + 6201 ^ + 6202 200000 X=X+X + 6203 + 6204 LAC X^ + 6205 UMON^ + 6206 036160 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6207 036161 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6208 036162 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6209 036163 7 000 14 0 00 036425 DATAO [0] + 6210 036164 200 01 0 00 036642 MOVE 1,[CAM X] + 6211 036165 205 02 0 00 040000 MOVSI 2,40000 + 6212 + 6213 036166 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6214 036167 7 000 20 0 00 000001 CONO 1 + 6215 036170 200 00 0 00 036643 MOVE [JSP .+5] + 6216 036171 202 00 0 00 000042 MOVEM 42 + 6217 036172 200 00 0 00 036643 MOVE [JSP .+3] + 6218 036173 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6219 036174 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60-4 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0148 + + 6220 036175 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6221 HOLD^ + 6222 036176 324 00 0 00 036176 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6223 036177 320 00 0 00 036200 JUMP .+1 ;SO WAITING FOR OPERATOR + 6224 ^ + 6225 036200 7 000 30 0 00 010000 CONSZ NONEX + 6226 HOLD^ + 6227 036201 324 00 0 00 036201 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6228 036202 320 00 0 00 036203 JUMP .+1 ;SO WAITING FOR OPERATOR + 6229 ^ + 6230 ^ + 6231 400000 X=X+X + 6232 + 6233 LAC X^ + 6234 UMON^ + 6235 036203 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6236 036204 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6237 036205 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6238 036206 7 000 14 0 00 036425 DATAO [0] + 6239 036207 200 01 0 00 036644 MOVE 1,[CAM X] + 6240 036210 205 02 0 00 040000 MOVSI 2,40000 + 6241 + 6242 036211 7 004 20 0 00 002300 CONO PI,ACT+PIOSET+100 + 6243 036212 7 000 20 0 00 000001 CONO 1 + 6244 036213 200 00 0 00 036645 MOVE [JSP .+5] + 6245 036214 202 00 0 00 000042 MOVEM 42 + 6246 036215 200 00 0 00 036645 MOVE [JSP .+3] + 6247 036216 202 00 0 00 000041 MOVEM 41 ;SET TRAP RETURN + 6248 036217 254 01 0 00 000001 JRST 1,1 ;TURN ON USER MODE + 6249 036220 7 000 34 0 00 020000 CONSO PROT ;THE PROT FLAG SHOULD BE SET + 6250 HOLD^ + 6251 036221 324 00 0 00 036221 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6252 036222 320 00 0 00 036223 JUMP .+1 ;SO WAITING FOR OPERATOR + 6253 ^ + 6254 036223 7 000 30 0 00 010000 CONSZ NONEX + 6255 HOLD^ + 6256 036224 324 00 0 00 036224 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6257 036225 320 00 0 00 036226 JUMP .+1 ;SO WAITING FOR OPERATOR + 6258 ^ + 6259 ^ + 6260 000001 000000 X=X+X + 6261 + 6262 036226 402 00 0 00 000040 MOD185: SETZM 40 ;TEST FOR TRAP TO REAL LOC 40 + 6263 036227 200 00 0 00 036646 MOVE [JSP MOD186-1] ;NOT RELOCATED 40 + 6264 036230 202 00 0 00 000041 MOVEM 41 ;SETUP TRAP FOR OK + 6265 036231 7 000 14 0 00 036647 DATAO [XWD -1,10000] + 6266 036232 200 00 0 00 036650 MOVE [JSP MOD186] ;SETUP TRAP FOR ERR + 6267 036233 202 00 0 00 010041 MOVEM 10041 + 6268 036234 254 01 0 00 026235 JRST 1,.+1-10000 ;IF THE UUO TRAPS TO + 6269 036235 040000 000000 XWD 40000,0 ;RELOCATED 40 PROG WILL HOLD + 6270 036236 336 00 0 00 000040 SKIPN 40 ;AT THIS POINT + 6271 + 6272 036237 MOD186: HOLD^ + 6273 036237 324 00 0 00 036237 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6274 036240 320 00 0 00 036241 JUMP .+1 ;SO WAITING FOR OPERATOR +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 60-5 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0149 + + 6275 ^ + 6276 036241 265 00 0 00 036242 JSP .+1 ;IF USER MODE STILL ON + 6277 036242 603 00 0 00 010000 TLNE USERF ;THEN WAIT HERE + 6278 HOLD^ + 6279 036243 324 00 0 00 036243 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6280 036244 320 00 0 00 036245 JUMP .+1 ;SO WAITING FOR OPERATOR + 6281 ^ + 6282 + 6283 ;TEST FOR INTERRUPT TO REAL PI (NOT RELOCATED) + 6284 036245 MOD190: UMON^ + 6285 036245 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6286 036246 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6287 036247 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6288 036250 200 00 0 00 036651 MOVE [JSP MOD191] ;SET ERROR PI RET + 6289 036251 202 00 0 00 010042 MOVEM 10042 + 6290 036252 200 00 0 00 036652 MOVE [JSP MOD191+1] ;SET OK PI + 6291 036253 202 00 0 00 000042 MOVEM 42 + 6292 036254 7 000 14 0 00 036647 DATAO [XWD -1,10000] + 6293 036255 254 02 1 00 036653 JRST 2,@[XWD USERF+UMIOT,.+1-10000] + 6294 036256 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100 ;SHOULD INTERRUPT + 6295 HOLD^ + 6296 036257 324 00 0 00 036257 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6297 036260 320 00 0 00 036261 JUMP .+1 ;SO WAITING FOR OPERATOR + 6298 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 61 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0150 + + 6299 036261 MOD191: HOLD^ + 6300 036261 324 00 0 00 036261 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6301 036262 320 00 0 00 036263 JUMP .+1 ;SO WAITING FOR OPERATOR + 6302 ^ + 6303 UMOFF^ + 6304 036263 200 00 0 00 036654 MOVE [JSP .+3] ;TURN OFF USER MODE VIA + 6305 036264 202 00 0 00 000041 MOVEM 41 ;UUO. PROG RETURNS TO END + 6306 036265 040000 000000 XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 + 6307 ^ + 6308 ;TEST FOR NOT RELOCATION OF AC'S + 6309 036266 402 00 0 00 000005 MOD192: SETZM 5 + 6310 UMON^ + 6311 036267 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6312 036270 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6313 036271 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6314 036272 200 00 0 00 036655 MOVE [JSP M192] + 6315 036273 202 00 0 00 000041 MOVEM 41 + 6316 036274 7 000 14 0 00 036647 DATAO [XWD -1,10000] + 6317 036275 254 01 0 00 026276 JRST 1,.+1-10000 + 6318 036276 201 05 0 00 012345 MOVEI 5,12345 + 6319 036277 040000 000000 XWD 040000,0 ;UUO TO TERM USER MODE + 6320 036300 302 05 0 00 012345 M192: CAIE 5,12345 + 6321 HOLD^ + 6322 036301 324 00 0 00 036301 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6323 036302 320 00 0 00 036303 JUMP .+1 ;SO WAITING FOR OPERATOR + 6324 ^ + 6325 036303 332 00 0 00 036670 MOD195: SKIPE FPTRAP ;SEE IF SWITCH SAYS FP + 6326 036304 254 00 0 00 036315 JRST MOD196 + 6327 036305 200 00 0 00 036656 MOVE [JSP .+3] ;TEST THE ABILITY TO + 6328 036306 202 00 0 00 000061 MOVEM 61 ;TRAP A FP INST + 6329 036307 145 00 0 00 777777 FADRI -1 ;THIS INST SHOULD TRAP + 6330 036310 200 02 0 00 036307 MOVE 2,.-1 ;FAIL TO TRAP PROPERLY + 6331 036311 312 02 0 00 000060 CAME 2,60 + 6332 STOP^ + 6333 036312 254 04 0 00 036313 HALT .+1 + 6334 036313 320 00 0 00 036314 JUMP .+1 + 6335 ^ + 6336 036314 254 00 0 00 036414 JRST MOD197 ;WHAT ABOUT SWITCHS + 6337 036315 200 00 0 00 036657 MOD196: MOVE [JSP .+4] ;TEST FOR FP NOT TRAP + 6338 036316 402 00 0 00 000060 SETZM 60 + 6339 036317 202 00 0 00 000061 MOVEM 61 ;SET RETURN + 6340 036320 145 00 0 00 777777 FADRI -1 + 6341 036321 332 00 0 00 000060 SKIPE 60 ;DOES MACH HAVE FP + 6342 STOP^ + 6343 036322 254 04 0 00 036323 HALT .+1 + 6344 036323 320 00 0 00 036324 JUMP .+1 + 6345 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 62 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0151 + + 6346 ;CHECK BYT7A SETING BYF6. + 6347 036324 7 000 20 0 00 635550 MOD19X: CONO 635550 ;CLR THE WORLD. + 6348 036325 200 00 0 00 036660 MOVE [JSP MOD19B] + 6349 036326 202 00 0 00 000042 MOVEM 42 ;SETUP FOR INT ON CH # 1. + 6350 036327 7 004 20 0 00 012300 CONO PI,12300 ;SETUP PI. + 6351 036330 200 01 0 00 036351 MOVE 1,POINTR ;PUT POINTER INTO AC1. + 6352 036331 7 000 20 0 00 001000 CONO 1000 ;CLR CLOCK FLAG. + 6353 036332 7 000 34 0 00 001000 CONSO 1000 ;WAIT FOR + 6354 036333 254 00 0 00 036332 JRST .-1 ;CLOCK FLAG. + 6355 036334 7 000 20 0 00 003001 CONO 3001 ;SET INT ENABLE AND PI 35 AND CLR CLK FLG. + 6356 036335 134 00 0 00 000001 ILDB 0,1 ;SHOULD STAY IN INDIRECT LOOP. + 6357 036336 7 000 34 0 00 001000 MOD19B: CONSO 1000 ;CLK FLG INT? + 6358 HOLD^ + 6359 036337 324 00 0 00 036337 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6360 036340 320 00 0 00 036341 JUMP .+1 ;SO WAITING FOR OPERATOR + 6361 ^ + 6362 036341 607 00 0 00 020000 TLNN 0,20000 ;BYF6 FLAG SET? NO..CK BYT7A ON BYTE PRINT. + 6363 HOLD^ + 6364 036342 324 00 0 00 036342 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6365 036343 320 00 0 00 036344 JUMP .+1 ;SO WAITING FOR OPERATOR + 6366 ^ + 6367 036344 265 00 0 00 036345 JSP .+1 ;CAUSE ARLT FM FLAGS(J)A. + 6368 036345 603 00 0 00 020000 TLNE 0,20000 ;CK BYTE PRINT. + 6369 HOLD^ + 6370 036346 324 00 0 00 036346 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6371 036347 320 00 0 00 036350 JUMP .+1 ;SO WAITING FOR OPERATOR + 6372 ^ + 6373 + 6374 036350 254 00 0 00 036414 JRST MOD197 + 6375 + 6376 036351 440720 000001 POINTR: XWD 440720,1 + 6377 ;CK TO SEE THAT UUO 0 TRAPS TO 141. + 6378 036352 MOD200: UMON^ + 6379 036352 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6380 036353 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6381 036354 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6382 036355 254 02 1 00 036661 JRST 2,@[XWD USERF+UMIOT,.+1] + 6383 036356 200 00 0 00 036662 MOVE [JSP .+5] + 6384 036357 202 00 0 00 000041 MOVEM 41 + 6385 036360 340 00 0 00 000000 AOJ + 6386 036361 202 00 0 00 000141 MOVEM 141 + 6387 036362 000000 000000 0 + 6388 HOLD ^ ;UUO 0 TRAPED TO 40. CK 2L44 ON MA CONTROL PRINT. + 6389 + 6390 036363 324 00 0 00 036363 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6391 036364 320 00 0 00 036365 JUMP .+1 ;SO WAITING FOR OPERATOR + 6392 + 6393 036365 607 00 0 00 010000 TLNN USERF ;USER MODE GET CLR?..CK 1P19 ON EX CONT PNT. + 6394 HOLD^ + 6395 036366 324 00 0 00 036366 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6396 036367 320 00 0 00 036370 JUMP .+1 ;SO WAITING FOR OPERATOR + 6397 ^ +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 63 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0152 + + 6398 ;CK TO SEE THAT UUO 37 TRAPS TO 41. + 6399 + 6400 UMON^ + 6401 036370 7 000 20 0 00 634440 CONO 634440 ;PREPARE TO TURN ON USER + 6402 036371 7 004 20 0 00 010000 CONO PI,10000 ;MODE. CL PI, IOB, RELOC + 6403 036372 7 000 14 0 00 036525 DATAO [XWD -1,0]^ + 6404 036373 254 02 1 00 036663 JRST 2,@[XWD USERF + UMIOT, .+1] + 6405 036374 200 00 0 00 036664 MOVE [JSP .+5] + 6406 036375 202 00 0 00 000141 MOVEM 141 + 6407 036376 340 00 0 00 000000 AOJ + 6408 036377 202 00 0 00 000041 MOVEM 41 + 6409 036400 037000 000000 037000000000 + 6410 HOLD ^ ;UUO 37 TRAPPED TO 141, CK 2L44 ON MA CONTROL PRINT + 6411 . + 6412 + 6413 036401 324 00 0 00 036401 JUMPA . ;MACH ERROR. HALT MAY TRAP + 6414 036402 320 00 0 00 036403 JUMP .+1 ;SO WAITING FOR OPERATOR + 6415 + 6416 + 6417 + 6418 ;CK TO SEE THAT AN INTERRUPT ON CH # 1 TRAPS TO 142. + 6419 + 6420 036403 200 00 0 00 036665 MOVE [MOVEI 142] + 6421 036404 202 00 0 00 000142 MOVEM 142 + 6422 036405 7 000 20 0 00 634440 CONO 634440 ;CLR THE WORLD. + 6423 036406 400 00 0 00 000000 SETZ 0, + 6424 036407 7 004 20 0 00 010000 CONO PI,10000 ;CLR PI. + 6425 036410 7 004 20 0 00 004300 CONO PI,ACT+PIREQ+100;CAUSE INT. + 6426 036411 302 00 0 00 000142 CAIE 0,142 ;CK 2K44 ON MA CONTROL PRINT. + 6427 036412 254 04 0 00 000000 HALT + 6428 + 6429 036413 476 00 0 00 036671 SETOM MATPOF ;SET FLG SO KNOW IN THIS ROUTINE. + 6430 + 6431 + 6432 036414 254 00 0 00 030057 MOD197: JRST BEGEND ;REPEAT DIAGNOSTIC + 6433 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 64 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0153 + + 6434 ;DIAGNOSTIC STORAGE + 6435 + 6436 036415 LIT + 6437 036415 000001 000001 + 6438 036416 254 00 0 00 030737 + 6439 036417 015 012 077 105 130 + 6440 036420 105 103 040 115 117 + 6441 036421 104 105 040 104 111 + 6442 036422 101 107 116 117 123 + 6443 036423 124 111 103 040 117 + 6444 036424 116 114 131 015 012 + 6445 036425 000 000 000 000 000 + 6446 036426 000000 000001 + 6447 036427 000000 000002 + 6448 036430 265 02 0 00 030776 + 6449 036431 254 00 0 00 030776 + 6450 036432 265 00 0 00 030777 + 6451 036433 265 02 0 00 031006 + 6452 036434 254 00 0 00 031007 + 6453 036435 265 02 0 00 031017 + 6454 036436 265 00 0 00 031020 + 6455 036437 265 02 0 00 031026 + 6456 036440 265 02 0 00 031036 + 6457 036441 777777 777777 + 6458 036442 265 02 0 00 031046 + 6459 036443 265 02 0 00 031055 + 6460 036444 265 02 0 00 031064 + 6461 036445 265 02 0 00 031073 + 6462 036446 265 02 0 00 031102 + 6463 036447 265 02 0 00 031111 + 6464 036450 265 02 0 00 031120 + 6465 036451 265 02 0 00 031127 + 6466 036452 265 02 0 00 031136 + 6467 036453 265 02 0 00 031145 + 6468 036454 265 02 0 00 031154 + 6469 036455 265 02 0 00 031163 + 6470 036456 265 02 0 00 031172 + 6471 036457 265 02 0 00 031201 + 6472 036460 265 02 0 00 031210 + 6473 036461 265 02 0 00 031217 + 6474 036462 265 02 0 00 031227 + 6475 036463 077740 000000 + 6476 036464 265 02 0 00 031237 + 6477 036465 077740 777777 + 6478 036466 265 02 0 00 031247 + 6479 036467 265 02 0 00 031257 + 6480 036470 265 02 0 00 031274 + 6481 036471 123456 654321 + 6482 036472 400000 000000 + 6483 036473 201 00 0 00 000040 + 6484 036474 201 00 0 00 000057 + 6485 036475 201 00 0 00 000017 + 6486 036476 201 00 0 00 000000 + 6487 036477 7 177 2 0 00 000000 + 6488 036500 350 00 0 00 000000 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 64-1 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0154 + + 6489 036501 201 00 0 00 000042 + 6490 036502 7 177 3 0 00 000000 + 6491 036503 7 177 1 0 00 000000 + 6492 036504 201 01 0 00 000042 + 6493 036505 334 00 0 00 000000 + 6494 036506 264 00 0 00 035106 + 6495 036507 260 00 0 00 035116 + 6496 036510 201 00 0 00 000043 + 6497 036511 7 177 2 0 00 000004 + 6498 036512 265 00 0 00 035153 + 6499 036513 265 00 0 00 035154 + 6500 036514 000000 035163 + 6501 036515 004000 035170 + 6502 036516 000000 035171 + 6503 036517 000000 035176 + 6504 036520 004000 035177 + 6505 036521 000000 035204 + 6506 036522 004000 035210 + 6507 036523 265 00 0 00 035216 + 6508 036524 265 00 0 00 035227 + 6509 036525 777777 000000 + 6510 036526 014000 035231 + 6511 036527 265 00 0 00 035234 + 6512 036530 014000 035243 + 6513 036531 265 00 0 00 035246 + 6514 036532 265 00 0 00 035251 + 6515 036533 014000 035260 + 6516 036534 324 00 0 00 035263 + 6517 036535 265 00 0 00 035272 + 6518 036536 265 00 0 00 035275 + 6519 036537 014000 035301 + 6520 036540 265 00 0 00 035311 + 6521 036541 265 00 0 00 035314 + 6522 036542 265 00 0 00 035327 + 6523 036543 010000 035333 + 6524 036544 014000 035334 + 6525 036545 265 00 0 00 035343 + 6526 036546 010000 035347 + 6527 036547 265 00 0 00 035353 + 6528 036550 265 00 0 00 035361 + 6529 036551 014000 035365 + 6530 036552 265 00 0 00 035371 + 6531 036553 265 00 0 00 035400 + 6532 036554 014000 035404 + 6533 036555 265 00 0 00 035407 + 6534 036556 324 00 0 00 035416 + 6535 036557 010000 035422 + 6536 036560 265 00 0 00 035432 + 6537 036561 010000 035436 + 6538 036562 265 00 0 00 035442 + 6539 036563 265 00 0 00 035450 + 6540 036564 010000 035454 + 6541 036565 265 00 0 00 035460 + 6542 036566 265 00 0 00 035466 + 6543 036567 014000 035472 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 64-2 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0155 + + 6544 036570 265 00 0 00 035476 + 6545 036571 265 00 0 00 035504 + 6546 036572 265 00 0 00 035514 + 6547 036573 265 00 0 00 035522 + 6548 036574 265 00 0 00 035532 + 6549 036575 265 00 0 00 035540 + 6550 036576 7 000 0 0 00 000000 + 6551 036577 265 00 0 00 035560 + 6552 036600 265 00 0 00 035557 + 6553 036601 265 00 0 00 035565 + 6554 036602 265 00 0 00 035575 + 6555 036603 265 00 0 00 035611 + 6556 036604 010000 035610 + 6557 036605 265 00 0 00 035631 + 6558 036606 014000 035630 + 6559 036607 014000 035647 + 6560 036610 265 00 0 00 035652 + 6561 036611 265 00 0 00 035655 + 6562 036612 014000 035664 + 6563 036613 265 00 0 00 035667 + 6564 036614 014000 035676 + 6565 036615 265 00 0 00 035701 + 6566 036616 014000 035710 + 6567 036617 265 00 0 00 035713 + 6568 036620 014000 035722 + 6569 036621 265 00 0 00 035725 + 6570 036622 014000 035734 + 6571 036623 265 00 0 00 035737 + 6572 036624 010000 035746 + 6573 036625 265 00 0 00 035751 + 6574 036626 310 00 0 00 002000 + 6575 036627 265 00 0 00 036013 + 6576 036630 310 00 0 00 004000 + 6577 036631 265 00 0 00 036036 + 6578 036632 310 00 0 00 010000 + 6579 036633 265 00 0 00 036061 + 6580 036634 310 00 0 00 020000 + 6581 036635 265 00 0 00 036104 + 6582 036636 310 00 0 00 040000 + 6583 036637 265 00 0 00 036127 + 6584 036640 310 00 0 00 100000 + 6585 036641 265 00 0 00 036152 + 6586 036642 310 00 0 00 200000 + 6587 036643 265 00 0 00 036175 + 6588 036644 310 00 0 00 400000 + 6589 036645 265 00 0 00 036220 + 6590 036646 265 00 0 00 036236 + 6591 036647 777777 010000 + 6592 036650 265 00 0 00 036237 + 6593 036651 265 00 0 00 036261 + 6594 036652 265 00 0 00 036262 + 6595 036653 014000 026256 + 6596 036654 265 00 0 00 036266 + 6597 036655 265 00 0 00 036300 + 6598 036656 265 00 0 00 036310 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 64-3 +DAKAHM MAC 19-JAN-77 17:39 DIAGNOSTIC SECTION SEQ 0156 + + 6599 036657 265 00 0 00 036321 + 6600 036660 265 00 0 00 036336 + 6601 036661 014000 036356 + 6602 036662 265 00 0 00 036363 + 6603 036663 014000 036374 + 6604 036664 265 00 0 00 036401 + 6605 036665 201 00 0 00 000142 + 6606 + 6607 036667 VAR + 6608 + 6609 036675 254 04 0 00 030000 LAST: JRST 4,BEGIN + 6610 +DAKAH PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (8) 0,2 MACRO %52(537) 17:47 19-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0157 + + 6611 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 6612 + 6613 ;PROGRAM LITERALS + 6614 + 6615 XLIST + 6616 IFNDEF $LPAPER, + 6617 036676 LIT + 6618 LIST + 6619 036676 000000 000000 ENDSLD: 0 + 6620 + 6621 IFDEF DEBUG,< + 6622 PATCH: BLOCK DEBUG ;PATCHING AREA + 6623 > + 6624 + 6625 ;PROGRAM VARIABLES + 6626 036677 VAR + 6627 + 6628 IFDEF PGMEND,< + 6629 036677 000000 000000 END: 0 + 6630 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 036700 +CPU TIME USED 00:22.958 + +12K CORE USED diff --git a/apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt b/apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt new file mode 100644 index 000000000..2099812dd --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt @@ -0,0 +1,1775 @@ +SUBTTL DIAGNOSTIC SECTION + + LALL + +PGMNAM: ASCIZ / +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC # 8 [DAKAH] +/ +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN USER + JRST STARTA + TTCALL 3,PGMNAM ;MENTION OUR NAME + OUTSTR [ASCIZ / +?EXEC MODE DIAGNOSTIC ONLY +/] ;TELL USER + HALT . ;AND DIE... + +STARTA: +ST: SETZM MATPOF# ;CLR MA TRAP OFFSET FLAG. +MOD: SKIPE 1,SAV40 ;RESTORE THESE LOC IF PROG + MOVEM 1,10040 ;IF PROG MODIFIED + SKIPE 1,SAV41 + MOVEM 1,10041 + SKIPE 1,SAV42 + MOVEM 1,10042 + SKIPE 1,SAV43 + MOVEM 1,10043 + CONI CPSAV# + CONI PI,PISAV# + + DATAI ;DO WE HAVE FP + SKIPGE MONCTL ;MONITR CONTROL ? + MOVE 0,MONCTL ;YES + ORCM [1B35] + SETCAM FPTRAP# + SETOM PI7SYS# + + DATAI ;IS THIS MACH WITH USER + SKIPGE MONCTL ;MONITR CONTROL ? + MOVE 0,MONCTL ;YES + ORCM [1B34] + SETCAM USMOD# + + SKIPE MATPOF# ;START AT 3776? + JRST MOD200 ;YES. GO CK MA 29 SET. + +;MACH/OPTION DEPENDENT +;TEST UU0 + + RETURN MOD1 ;TEST UUO FOR NOT GOING TO 60 + MOVE 1,[JRST .+4] ;IF THIS ROUT STOPS THE + MOVE 2,[JSP MOD1+1] ;TRAP WAS TO 60. IF UU0 HANG + MOVEM 2,61 ;THE MACH, CHECK XCTF0 AND + 0 ;UU0F0 FLAGS FOR NOT SETING +MOD1: SKIPA ;CHECK MA 31 SET + STOP ;IR 1XX GATE FAIL + +MOD2: RETURN MOD3 ;TEST 40 TO MA LOGIC (UU0) + MOVE 1,[JRST .+3] ;IF 40 WAS NOT (J) TO MA + 0 ;THIS UU0 WILL STORE IN LOC 0 +MOD3: SKIPA ;CHECK MA-30 SET + STOP ;ON THE MA1 PRINT + +MOD4: RETURN MOD5 ;IF THE MA FROM AR + MOVE 2,[JSP MOD5+1] ;INHIBIT (AT6) FAILED THE + MOVEM 61 ;UU0 WOULD STORE IN E ORED + 20 ;WITH 40 RATHER THAN C(40) +MOD5: SKIPA ;MA FM AR(J) CAME UP CHECK + STOP ;AND OF AT6-IR UU0 ON MA1 PRINT + +MOD6: RETURN MOD7 ;TEST UU0 ABILITY TO STORE + 0 ;IF C(40) UNCHANGED SCE FAIL +MOD7: CAMN 2,40 ;CK IR UU0 INPUT TO SCE + STOP ;ON S2 PRINT + +MOD8: RETURN MOD9 ;TEST SACINH FOR UU0 + SETO ;IF FAIL WILL MODIFY AC + 0 ;SACINH THE IR UU0 INPUT +MOD9: CAME [-1] ;ON S2 PRINT FAILED + STOP + +MOD10: RETURN MOD11 ;TEST UU0 FACINH, IF THE + MOVEI -1 ;UU0 FETCHES A AC THE + 0 ;AC WILL BE STORED +MOD11: CAMN 40 ;FAC INH THE IR UU0 INPUT + STOP ;ON F2 PRINT FAIL + +MOD12: RETURN MOD13 ;TEST UU0 IR TO ARLT + XWD 077740,0 ;THE AND OF (ET0,IR UU0) +MOD13: SKIPN 40 ;ON ARC-2 PRINT FAILED + STOP + +MOD14: RETURN MOD15 ;UU0 FAIL + XWD 000740,0 ;CHECK ARLT FM FLAGS (J) B +MOD15: SKIPN 40 ;THE PA ON ARC-2 PRINT + STOP + +MOD16: RETURN MOD17 ;UU0 FAIL + XWD 077000,0 ;CHECK ARLT FM FLAGS (J) A +MOD17: SKIPN 40 ;THE PA ON ARC-2 PRINT + STOP + + ZZ=40 +MOD18: REPEAT ^D10, +< RETURN .+4 ;TEST IRLT TO AR + XWD ZZ,0 + SKIPN 40 + STOP + ZZ=ZZ+ZZ +> +MOD19: RETURN MOD19A ;TEST PROPER STORAGE + 0 ;OF UU0 +MOD19A: SKIPE 40 + STOP + +MOD20: RETURN MOD20A ;CK FOR STORING OF E + XWD 0,-1 ;ON A UU0 +MOD20A: MOVE 40 + CAIE -1 + STOP + +MOD21: RETURN MOD21A ;CK FOR STORING OF E + XWD 077740,0 ;ON A UU0 +MOD21A: MOVE 40 + CAME [XWD 077740,0] + STOP + +MOD22: RETURN MOD22A ;CK FOR STORING OF + XWD 077740,-1 ;E AND IR ON UU0 +MOD22A: MOVE 40 + CAME [XWD 077740,-1] + STOP + +MOD23: RETURN MOD23A ;UU0 TEST THE PC+1 + 0 ;INHIBIT FEATURE LOC 41 +MOD23A: ANDI 2,-1 ;CONTAINS TSP 2,X + CAIN 2,. ;PC+1 INH THE IR UU0 INPUT + STOP ;FAILED. SEE PC1 PRINT + +MOD24: RETURN MOD24A ;PC STORED IN CORRECTLY + XWD 0,-1 ;FROM THE JSP AT 41 +MOD24A: ANDI 2,-1 ;ON A UUO INST + CAIE 2,.-1 + STOP + +MOD25: ;SET PRIVILEGE TO FLAG + ;SET UU0 TRAP + ;TEST IOT INST FOR + ;NOT TRAPING. SEE IR-2 + ;PRINT IR UU0 CAME UP +MOD26: ;CK AND OF IR IOTA, NOT ALLOW, ETC + +MOD27: SFLAG 0 ;MAKE SURE EX IOT USER=0 + RETURN MOD28 ;CK FOR NOT TRAP ON IOT + CONI ;IF IOTS TRAP NOW THE + CAI ;AND GATE EX USER (0), EX IOT USER + SKIPA ;DID NOT RESPOND TO EX USER (0) +MOD28: STOP ;SEE EX ALLOW IOTS ON EX PRINT + +MOD29: SETO 1, ;THE IOTS FAIL TO STORE C(E) + DATAI 1 ;CHECK IR IOT ON IR2 PRINT + CONI 1 ;LOOKS LIKE IR DECODE FAILED + CAMN 1,[-1] + STOP + +MOD30: MOVE 1,[123456654321] ;CHECK SCE FOR DATAI + DATAI 1 ;THE CONTENTS OF LOC1 + CAMN 1,[123456654321] ;WERE NOT MODIFIED. SEE + STOP ;S1 PRINT SCE AND DECODE ON IOT + +MOD31: MOVE 1,[123456654321] ;CHECK SCE FOR CONI. THE + CONI 1 ;CONTENTS OF LOC1 WERE NOT + CAMN 1,[123456654321] ;MODIFIED. SEE S2 PRINT SCE + STOP ;AND DECODE ON IOT PRINT + +MOD32: SETO ;SACINH FAIL FOR INST + CONI 1 ;CONI FAILED. CHECK + CAME [-1] ;IR IOT INPUT TO SACINH + STOP ;ON THE S2 PRINT + +MOD33: CONO ME,0 ;CLEAR LAST DEVICE + CONI ME,2 ;AR CLEAR AT(ET0)FAILED + CAIN 2,2 ;ON INST CONT CK AR + STOP ;CLEAR ETO, CONI ON ARC-2 PRINT + +MOD34: DATAO ME,[0] ;AR CLR ON A DATAI + DATAI ME,3 ;INST FAILED CHECK + CAIN 3,3 ;IOT DATAI INPUT ON THE + STOP ;OR GATE TO AR CLR. SEE ARC-2 PRINT + + SETZ ;CONSZ FAIL TO SKIP. CK + CONSZ ;PC+1 AT AND OF AD=0, IOT CONSZ, + STOP ;IOT T5 ON PC1 PRINT + + CONO ME,0 ;CONSZ FAIL TO SKIP CK + CONSZ ME,700000 ;FOR NO AR CLR AT (ETO). SEE ARC-2 + STOP ;PRINT THE IOT CONSX INPUT + + CONO ME,0 ;CONSO SKIPED. CHECK PC+1 + CONSO ME,0 ;(IOT T5,AD=0,IOT CONSO,IOT CONSZ + SKIPA ;AND GATES) ON PC1 PRINT + STOP + +MOD35: SETZ 1, ;CHECK POINTER INC ON IOT BLK + BLKO ME,1 ;IF C(1)=0 THEN AR FM AD(J) (ET0) + CAI ;ON ARC-3 PRINT, OR AD+1 BOTH (FT9) + CAI ;ON AD2 PRINT FAILED + CAME 1,[XWD 1,1] ;IF IR 12 FAIL TO SET, PROG + STOP ;BLOWS UP +MOD36: SETZ 1, ;PC+1 INH FOR BLK FAILED + BLKO ME,1 ;CHECK IOT BLK INPUT TO + CAI ;PC+1 INH ON THE PC1 PRINT + SKIPA + STOP +MOD37: SETZ 1, ;BLKO PC+1 AT ET0 TIME + BLKO ME,1 ;FAILED. CHECK THE AND GATE + STOP ;BLK, CYC(0) CRY(0) ON PC1 PRINT +MOD38: SETO 1, ;BLKO PERFORMED A SKIP WHEN + BLKO ME,1 ;END CRY0 SHOULD=1 + SKIPA ;CK PC+1,SEE ABOVE ROUTINE + STOP +MOD39: CONO PI,10000 ;JUST IN CASE + CONO 435447 ;SET SOME CPA FLAGS + CONI 0 ;(1) DID FLAGS SET? NO CONO FAIL + SKIPN 0 ;YES: CONI FAIL CK IOB TO AR + STOP ;AND MANY OTHERS. IE SINGLE STEP +MOD40: CONO ;PIA 35 FAIL TO SET (CPU) + CONO 1 ;OR READ SINGLE STEP + CONI ;SEE CPA PRINT + TRNN 1 + STOP + +MOD41: CONO ;PIA 3+(CFU) FAIL TO SET + CONO 2 ;OR READ. SEE CPA PRINT + CONI ;SINGLE STEP + TRNN 2 + STOP + +MOD42: CONO ;PIA 33 (CPU) FAIL TO SET + CONO 4 ;OR READ. SEE CPA PRINT + CONI ;SINGLE STEP + TRNN 4 + STOP + +MOD43: CONO 1 ;PIA 35 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECT + CONI ;SEE CPA PRINT + TRNE 1 ;SINGLE STEP + STOP + +MOD44: CONO 2 ;PIA 34 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECTLY + CONI ;SEE CPA PRINT + TRNE 2 ;SINGLE STEP + STOP + +MOD45: CONO 4 ;PIA 33 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECTLY + CONI ;SEE CPA PRINT + TRNE 4 ;SINGLE STEP + STOP + +MOD46: CONO 7 ;SET SOME CP FLAGS + CONSO ;CONSO FAILED CK + SKIPA + STOP +MOD47: CONO 7 ;CONSO FAILED + CONSO 7 + STOP +MOD48: CONO 7 ;CONSZ FAIL + CONSZ 7 ;CHECK PC+1 AT AND + SKIPA ;OF AD=0, CONSZ, IOT T5 + STOP ;ON PC1 PRINT +MOD50: CONO 40 ;CPU AROV ENABLE + CONO 20 ;TRY TO SET + CONSO 20 + STOP ;IOB OR FLOP + CONO 20 ;SET AROV EN + CONO ;CK FOR NOT CLEARING + CONSO 20 + STOP + CONO 20 ;SET AROV EN + CONO 40 ;TRY TO CLEAR + CONSZ 20 + STOP + CONO 40 ;CLEAR AROV EN + CONO ;CK FOR NOT SETTING + CONSZ 20 + STOP +MOD51: CONO 400 ;FOV EN CLEAR + CONO 200 ;TRY TO SET + CONSO 200 + STOP + + CONO 200 ;SET FOV EN + CONO ;CK FOR NOT CLEARING + CONSO 200 + STOP + + CONO 200 ;SET FOV EN + CONO 400 ;TRY TO CLEAR + CONSZ 200 + STOP + + CONO 400 ;CLEAR FOV EN + CONO ;CK FOR NOT SETTING + CONSZ 200 + STOP + +MOD52: CONO 4000 ;CLEAR CLK EN + CONO 2000 ;TRY TO SET + CONSO 2000 + STOP + + CONO 2000 ;SET CLK EN + CONO ;CK FOR NOT CLEARING + CONSO 2000 + STOP + + CONO 2000 ;SET CLK EN + CONO 4000 ;TRY TO CLEAR + CONSZ 2000 + STOP + + CONO 4000 ;CLEAR CLK EN + CONO ;TEST FOR NOT SETTING + CONSZ 2000 + STOP + +MOD53: CAM -1 ;SET NON-EX VIA F(CE) + CONO 10000 ;TRY TO CLEAR + CONSZ 10000 + STOP ;FAIL TO CLEAR + + CONO 10000 ;CLEAR NON-EX + CAM -1 ;TRY TO SET VIA F(CE) + CONSO 10000 ;FAIL TO SET + STOP ;CK MEM CNTL, CPA + + CONO 10000 ;CLEAR NON-EX + MOVEM -1 ;TRY TO SET VIA S(CE) + CONSO 10000 ;FAIL TO SET + STOP + + CONO 10000 ;CLEAR NON-EX + ADDM -1 ;TRY TO SET VIA PSE + CONSO 10000 ;FAIL TO SET + STOP + + CAM -1 ;SET NON EX + CONO ;TEST FOR NOT CLEARING + CONSO 10000 ;ON CONO 0 + STOP + CONO 10000 + +MOD54: CONO 400000 ;CLEAR PDL OV + SETO ;TRY TO SET + PUSH ;VIA PUSH + CONSO 200000 ;TEST FOR SET + STOP ;CPA PRINT + + SETO + PUSH ;SET PDL OV + CONO 400000 ;TRY TO CLEAR .CK + CONSZ 200000 ;CPA PDL OV SET (ET0) POP GATE + STOP ;FLOP/IOB CPA PRINT + + SETO + PUSH ;SET PDL OV + CONO ;CK FOR NOT CLEARING + CONSO 200000 + STOP + + CONO 400000 ;TEST FOR NOT + SETO ;SETTING PDL-OV + AOS ;CPA PDL OV SET FAIL + CONSZ 200000 ;IR PUSH CRY(0) (1) AT ET0 + STOP ;AND GATE. THE PUSH INPUT + +MOD55: CONO 400000 ;CK PDL FLAG + SETZ ;CPA PDL OV SET + PUSH ;CK AND GATE OK + CONSZ 200000 ;ET0 IR PUSH,ADCRY0 (1) + STOP ;THE CRY FLAG SHOULD PREVENT + + CONO 400000 ;TRY TO SET PDL-OV + SETO ;VIA PUSHJ + PUSHJ .+1 ;THE AND GATE OF + CONSO 200000 ;PUSH,PUSHJ TO FROM + STOP ;CPA PDL OV SET FAILED. SEE CPA PRINT + + CONO 400000 ;TRY TO SET VIA POPS + MOVEI 1 ;CHECK AND GATE OF + POP ;IR POPS, ET0, AD CRY 0(0) + CONSO 200000 ;TO CPA PDL OV SET + STOP + + CONO 400000 ;CHECK POPS FOR NOT + MOVE [XWD 1,1] ;SETTING PDL-OV + POP ;AD CRY0(0) SHOULD PREVENT + CONSZ 200000 ;SEE ABOVE + STOP + +MOD56: MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;CK IOB INPUT IOB1 + CONSO 10 ;PRINT FOR MISSING + STOP ;IOB BIT 32 + + JFCL 17,.+1 ;CHECK AROV STATUS + CONSZ 10 ;BIT 32 ON IOB + STOP ;SEE IOB1 PRINT + + CONSZ 404440 ;STATUS BITS NOT USED + STOP ;SHOULD BE 0 IOB1 PRINT + + CONO 200000 ;CLEAR THE WORLD + SETZ ;ON IOT THE + BLKI ;AND GATE OF IOT BLKI + CAI ;BLKO WHICH MAKES IOT BLK + CAME [XWD 1,1] ;FAILED LOOK AT THE + STOP ;BLKI INPUT + +MOD57: MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;A CONO WITH OUT + CONO ;BIT 32 CLEARED IT + JFCL 10,.+2 ;SEE ARF PRINT CPA CONO + STOP ;AND BIT 32 + + MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;TRY TO CLEAR WITH + CONO 10 ;A CONO + JFCL 10,.+2 ;IT FAILED TO CLEAR + SKIPA ;CHECK ARF PRINT + STOP ;CPA CONO AND BIT 32 + + MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV FLAG + JRST 2,.+1(1) ;VIA RESET FLAGS + CONO ;CONO WITHOUT BIT29 + JFCL 1,.+2 ;CLEARED IT. SEE ARF PRINT + STOP ;CPA CONO SET AND IOB 29 + +MOD58: MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV FLAG + JRST 2,.+1(1) ;VIA RESET FLAGS + CONO 100 ;CONO FAIL TO CLEAR FOV + JFCL 1,.+2 ;SEE ARF PRINT + SKIPA ;CONO CPU AND IOB + STOP ;BIT 29 + + JFCL 1,.+1 ;AR FOV FLAG TO IOB + CONSZ 100 ;FAIL SEE IOB1 PRINT + STOP ;AND CPA STATUS, AR FOV (1) + + MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV VIA + JRST 2,.+1(1) ;RESTOR FLAGS + CONSO 100 ;FOV TO IOB FAIL + STOP ;SEE IOB1 PRINT + + CONO 40000 ;CPA ADDR BREAK + CONSZ 40000 ;STATUS FAIL + STOP ;SEE CPA OR IOB1 PRINT + +MOD59: CONO 7 ;A CONO TO P1 MODIFIED + CONO PI,0 ;CPU AS A DEVICE. BIO + CONSO 7 ;CPA SEL IS CONFUSED + STOP + + CONO 10000 ;JUST CHECKING FOR + CAM . ;NOT NONEX AGAIN + CONSZ 10000 + STOP + + CONO PI,200000 ;SEE IF PAR ERR + CONSZ PI,200000 ;IS A ZERO + STOP + + CONO PI,400000 ;SEE IF POWER FAIL + CONSZ PI,400000 ;IS A ZERO + STOP + + MOVEI -1 ;WAIT FOR CLOCK + CONSZ 1000 ;FLAG TO SET + JRST .+3 + SOJG .-2 + STOP ;NO CLOCK FLAG + +MOD60: CONO PI,100000 ;CLEAR CPA PARITY ENB + CONO PI,40000 ;TRY TO SET IT + CONSO PI,100000 ;ALSO PI AS DEVICE + STOP + + CONO PI,40000 ;SET CPA PAR ENB + CONO PI, ;CK FOR NOT CLEAR + CONSO PI,100000 + STOP + + CONO PI,40000 ;SET CPA PAR ENB + CONO PI,100000 ;TRY TO CLEAR + CONSZ PI,100000 + STOP + + CONO PI,100000 ;CLEAR CPA PAR ENB + CONO PI, ;CK FOR NOT SET + CONSZ PI,100000 ;ON CONO + STOP + +MOD70: CLEAN ;SEE IOB1 + CONI PI,0 ;READ PI STATUS + TRNE 77400 ;A PI HOLD FLOP FAIL TO + STOP ;CLEAR OR IOB PI INPUT + MOVE 1,[MOVEI 40] ;STORE A MOVIT IN + MOVEM 1,(1) ;LOCATIONS 40 TO 60 + CAME 1,[MOVEI 57] + AOJA 1,.-2 + +DEFINE BLURB< +;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" +;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL +;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED +;INSTRUCTION +> +DEFINE PIO (A) +< CLEAN + CONO PI,PIOSET+A ;PIO FAIL TO SET IF LIGHT OUT + CONSO PI,A ;OTHERWISE FAIL TO READ + STOP ;STATUS SE P12-IOB1 PRINT + + CLEAN ;CHECK PIO CLEAR + CONO PI,PIOSET+A ;SET PIO + CONO PI,PIOCLR+A ;TRY TO CLEAR + CONSZ PI,A ;LIGHT=FAIL TO CLEAR PI2 PRINT + STOP ;NO LIGHT=STATUS FAIL IOB1 PRINT + + CLEAN ;CHECK FOR PI RESET + CONO PI,PIOSET+A ;ABILITY TO CLEAR PIO FLAG + CONO PI,10000 ;SEE PI2 PRINT, PI RESET + CONSZ PI,A ;TO PIO FLAGS + STOP + + CLEAN ;TEST PIO SET + CONO PI,PIOSET ;SEE PI2 PRINT + CONSZ PI,A ;IT SET FLOP WITHOUT + STOP ;A IOB BIT + + CLEAN ;TEST PIO CLR + CONO PI,PIOSET+A ;PERHAPS PI RESET OCCURED (NO IOB-23) + CONO PI,PIOCLR ;THE FLOP CLEARED + CONSO PI,A ;WITH OUT A IOB BIT + STOP ;SEE PI2 PRINT +> + +MOD71: CLEAN ;CHECK PIO SET + CONO PI,PIOSET+177 ;THE PI CHANNEL FLOPS + CONSO PI,177 ;FAILED TO SET + STOP ;CHECK PI1 PRINT + +MOD72: PIO 100 + PIO 40 + +MOD73: CHANEL MOD75 + PIO 20 + PIO 10 + +MOD74: PIO 4 + PIO 2 + PIO 1 +MOD75: CLEAN +MOD76: CLEAN + CONO PI,PIOSET+100 ;PI RESET OCCURED + CONO PI,0 ;WITH OUT IOB-23 + CONSO PI,100 ;SEE PI1 PRINT + STOP + + CLEAN ;PI RESET OCCURED + CONO PI,PIOSET+100 ;WITH OUT PI SEL + CONO ME,1000 ;SEE PI1 PRINT + CONSO PI,100 + STOP + + CLEAN + CONO PI,PIOSET+100 ;CHECK SELECTION + CONO ME,PIOCLR+100 ;ON CONO SETL. SEE + CONSO PI,100 ;PI1 PRINT CONO ME + STOP ;SHOULD NOT EFFECT PI +MOD77: CLEAN + CONO PI,ACT ;SET ACTIVE THEN + CONO PI,10000 ;TRY TO CLEAR VIA PI RESET + CONSZ PI,200 ;FAIL TO CLEAR SEE P11 PRINT + STOP ;THE PI ACT FLAG + CLEAN + CONO PI,ACT ;SET ACTIVE THEN + CONO PI,400 ;TRY TO CLEAR VIA CONO + CONSZ PI,200 ;AND BIT27 SEE PI1 + STOP ;PRINT ACTIVE FLAG + CLEAN + CONO PI,ACT ;SEE ACT VIA CONO BIT 28 + CONSO PI,200 ;LIGHT=0 FAIL TO SET + STOP ;LIGHT=(1) FAIL TO READ PI1-IOB1 + CLEAN + CONO PI,ACT ;SEE ABOVE + CONO PI,ACT + CONSO PI,200 + STOP ;PI ACT FAIL + +DEFINE NOTPIR (A)< + CLEAN ;ENABLE PRIORITY, EXPECT NO INTERRUPTS + CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + CONSZ PI,A ;PIR (1) INPUT TO AND GATE OF PIH (0) + STOP ;BOTTEM OF PAGE. ALSO PIR-FLOP +> +MOD78: BLURB +;CHECK CHANNEL 1, PIR1 FLOP OR RI REQ1 LEVEL + NOTPIR 40000 +;CHECK CHANNEL 2, PIR2 FLOP OR PI REQ2 LEVEL + NOTPIR 20000 +;CHECK CHANNEL 3, PIR3 FLOP OR PI REQ3 LEVEL + NOTPIR 10000 +;CHECK CHANNEL 4, PIR4 FLOP OR PI REQ4 LEVEL + NOTPIR 4000 +;CHECK CHANNEL 5, PIR5 FLOP OR PI REQ5 LEVEL + NOTPIR 2000 +;CHECK CHANNEL 6, PIR6 FLOP OR PI REQ6 LEVEL + NOTPIR 1000 +;CHECK CHANNEL 7, PIR 7 FLOP OR PI REQ7 LEVEL + NOTPIR 400 + +DEFINE NOTREQ (A,B)< + CLEAN ;A TEST OF PI OK TO PREVENT INTERRUPT + CONO PI,PIREQ+A ;ACTIVE CLEARED, REQUEST FLAG SET + CONSZ PI,B ;INTR OCCURED PIOK INPUT, PIOK TO PI + STOP ;REQ FAIL. SEE BOTTEM PI2 PRINT +> + +MOD79: BLURB +;TEST PI ACT ABILITY TO PREVENT PI REQ1, INTERRUPT VIA ACTIVE + NOTREQ 100,40000 +;TEST PIOK2 ABILITY TO PREVENT PI REQ2, INTERRUPT + NOTREQ 40,20000 +;TEST PIOK3 ABILITY TO PREVENT PI REQ3, INTERRUPT + NOTREQ 20,10000 +;TEST PIOK4 ABILITY TO PREVENT PI REQ4, INTERRUPT + NOTREQ 10,4000 +;TEST PIOK5 ABILITY TO PREVENT PI REQ5, INTERRUPT + NOTREQ 4,2000 +;TEST PIOK6 ABILITY TO PREVENT PI REQ6, INTERRUPT + NOTREQ 2,1000 +;TEST PIOK7 ABILITY TO PREVENT PI REQ7, INTERRUPT + NOTREQ 1,400 + +DEFINE PIRCLR (A)< + CLEAN + CONO PI,PIREQ+A ;SET REQUEST FLOP BUT + SETZ ;NOT ACTIVE THEN CLEAR + CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + SKIPE ;PI RESET FAILED TO CLEAR + STOP ;THE PIR FLAG.`SEE PI2 PRINT +> + +ZZ=100 ;CHECK CLEAR TO PIR FLAGS + REPEAT 7,< + PIRCLR ZZ + ZZ=ZZ/2> + +DEFINE FILAC< + MOVE 17,[MOVEI 17] ;FILL ACS WITH + MOVEM 17,(17) ;MOVEI TO AC 0 + CAME 17,[MOVEI 0] ;THE CURRENT LOC + SOJA 17,.-2 + MOVE 17,[MOVEI 17] +> + + FILAC + + CLEAN ;CHECK PC+1 INHIBIT ON INTERRUPT + MOVE [MOVEI] + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + SKIPA ;PC+1 INH ON PC1 PRINT FAIL + STOP ;SEE P1 CYC(1) INPUT + BLURB +MOD80: CLEAN + MOVE [MOVEI] ;IF LOC 0 EXECUTED C(0)=0 + CONO PI,ACT+PIREQ+100 ;CAUSE AN INTERRUPT + SKIPN 0 ;MA FM PICH (1) PULSE FAIL + STOP ;SEE MA1 PRINT + CLEAN + MOVE [MOVEI] + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT IF MA + CAIN 40 ;34 SET FAIL C(0)=40 + STOP ;SEE MA1 PRINT + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 2 ;MA 30 SET FAILED + STOP ;SEE MA1 PRINT + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 46 ;MA 33 SET OUCCRED ON CH1 + STOP ;SEE MA1 PRINT +MOD81: CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 52 ;MA 32 SET OCCURED ON CH1 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 43 ;MA 35 SET OUCCURED ON CH1 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + CAIN 40 ;MA 33 SET FAILED ON CH2 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+20 ;CAUSE INTERRUPT + CAIN 40 ;MA 32 SET FAILED ON CH4 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + CAIN 46 ;MA 34 SET OCCURED ON CH2 + STOP ;SEE MA1 PRINT + + BLURB +MOD82: CLEAN ;CHECK IF AN INTERRUPT OCCURES + SETZ 0 ;C(0) FILLED BY XCT OF MOVEI + CONO PI,ACT+PIREQ+177 ;ACTIVATE ALL INTERRUPTS + SKIPN 0 ;CK PIR FM IOB [1] PI1 PRINT + STOP ;AND PIRQ LEVEL PI1 PRINT + + CLEAN + SETZ 0 ;ON INTERRUPT NO PI HOLDS + CONO PI,ACT+PIREQ+177 ;WERE SET CHECK PIH + CONSO PI,77400 ;FM PICHRQ PULSE ON + STOP ;PI1 PRINT +DEFINE PIHCLR (A,B)< + CLEAN + CONO PI,PIREQ+ACT+A ;CAUSE INTERRUPT TO SET HOLD + CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + CONSZ PI,B ;FAIL TO CLEAR SEE PI2 + STOP +> + +ZZ=100 +YY=40000 ;CHECK RESET TO PIH FLOPS +MOD83: REPEAT 7,< + PIHCLR ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> + + + BLURB +DEFINE OFFPIR (A,B)< + CLEAN + CONO PI,PIREQ+ACT+A ;SETS PIH. THEN CLR + JRST 10,.+1 ;PIR TURNED BACK ON + CONSZ PI,B ;PIR TURNED BACK ON.PIH(1) CLR PIR + STOP +> + +ZZ=100 +YY=40000 ;TEST THE RESET TO PIR +MOD85: REPEAT 7,< + OFFPIR ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> +DEFINE TSTREQ (A)< + CLEAN ;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + CONO PI,ACT+PIREQ+A ;INTERRUPT SETS PIH IF SECOND + SETZ ;INTERRUPT OCCURED PIH (0) + CONO PI,ACT+PIREQ+A ;FAILED TO INHIBIT PIREQ + SKIPE ;SEE BOTTOM OF PI2 PRINT + STOP +> + + BLURB +ZZ=100 +MOD86: REPEAT 7,< + TSTREQ ZZ + ZZ=ZZ/2 +> + +DEFINE PIHOK (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;INTERRUPT SHOULD SET HOLD(PIH) + SETZ ;IF SECOND INTERRUPT OCCURS PIH + CONO PI,ACT+PIREQ+B ;FAILED TO PREVENT PIOK THUS + SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + STOP ;OF PI2 PRINT +> + BLURB + +ZZ=100 +YY=40 ;TEST PRIORITY CHAIN +MOD87: REPEAT 6,< + PIHOK ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> + +DEFINE SETPIH (A,B)< + CLEAN ;CHECK REQ AND PIH FLOPS + CONO PI,ACT+PIREQ+A ;CAUSE INTERRUPT, SHOULD SET + CONSO PI,B ;HOLD (PIH) SEE PI2 PRINT + STOP ;BOTH PIR+PIH SHOULD BE SET +> +MOD88: SETPIH 100,40000 ;CH 1 + SETPIH 40,20000 ;CH 2 + CHANEL MOD90 +MOD89: SETPIH 20,10000 ;CH 3 + SETPIH 10,4000 ;CH 4 + SETPIH 4,2000 ;CH 5 + SETPIH 2,1000 ;CH 6 + SETPIH 1,400 ;CH 7 +MOD90: CLEAN + +DEFINE PIADDR (A,B)< + CLEAN ;CHECK ABILITY TO INTERRUPT TO + SETZ ;LOC 40-60 SHOULD SEE MOVEI + CONO PI,ACT+PIREQ+A ;ACTIVATE AN INTERRUPT. IF C(0)=0 + CAIE B ;NO INTERRUPT OCCURED, C(0)=ADDR + STOP ;OF INTERRUPT EXECUTED +> + + BLURB +MOD91: PIADDR 100,42 ;CH 1 TO LOC 42 + PIADDR 40,44 ;CH 2 TO LOC 44 + CHANEL MOD93 +MOD92: PIADDR 20,46 ;CH 3 TO LOC 46 + PIADDR 10,50 ;CH 4 TO LOC 50 + PIADDR 4,52 ;CH 5 TO LOC 52 + PIADDR 2,54 ;CH 6 TO LOC 54 + PIADDR 1,56 ;CH 7 TO LOC 56 + +MOD93: CLEAN + +DEFINE TWOPIR (A,B)< + CLEAN ;CK PIR(0) ABILITY TO PREVENT INTERRUPT + SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + CONO PI,ACT+PIREQ+A ;TURN ON 2 PIR FLOPS. CHECK INT LOC + CAIN B ;PIR (0) INPUT TO PIOK + STOP +> + BLURB +MOD94: TWOPIR 100,46 ;CH 1+2 + TWOPIR 40,46 ;CH 2+3 + CHANEL MOD96 +MOD95: TWOPIR 20,56 ;CH 3+4 + TWOPIR 10,52 ;CH 4+5 + TWOPIR 4,56 ;CH 5+6 + TWOPIR 2,56 ;CH 6+7 +MOD96: CLEAN +DEFINE MULPIR (A,B)< + CLEAN + SETZ ;TEST MULTI REQUEST BREAK ON + CONO PI,ACT+PIREQ+A ;CORRECT CHANNEL TO CORRECT + CAIE B ;LOC C(0)=INTERRUPTED ADDR + STOP +> + + BLURB +MOD97: MULPIR 100,42 + MULPIR 40,44 + CHANEL MOD99 +MOD98: MULPIR 20,46 + MULPIR 10,50 + MULPIR 4,52 + MULPIR 2,54 + MULPIR 1,56 +MOD99: CLEAN + +DEFINE JENOK (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;SET THE PIH FLOP THEN REMOVE + CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + CONSO PI,B ;EFFECT PIH FLOP UNLESS AND + STOP +> + +MOD100: JENOK 100,40000 ;PIH 1 + JENOK 40,20000 ;PIH 2 + CHANEL MOD102 +MOD101: JENOK 20,10000 ;PIH 3 + JENOK 10,4000 ;PIH 4 + JENOK 4,2000 ;PIH 5 + JENOK 2,1000 ;PIH 6 + JENOK 1,400 ;PIH 7 +MOD102: CLEAN + +DEFINE ONEPIH (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;CHECK FOR REDUNDANT + CONSZ PI,B ;PIH FLAGS.SEE TOP PI2 PRINT + STOP +> + +WW=20000 +ZZ=100 +YY=37400 +MOD103: REPEAT 7,< + ONEPIH ZZ,YY + YY=YY+WW + WW=WW/2 + ZZ=ZZ/2 +> + +DEFINE FASTPIH (A,B,C)< + CLEAN + CONO PI,ACT+PIREQ+B ;SET PIH AND PIH ON + CONO PI,ACT+PIREQ+A ;NEXT HIGHER CHANNEL + JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + CONSO PI,C ;CHECK FOR FAST TURN OFF (PIH) + STOP +> + +MOD104: FASTPIH 100,40,20000 + CHANEL MOD106 +MOD105: FASTPIH 40,20,10000 + FASTPIH 20,10,4000 + FASTPIH 10,4,2000 + FASTPIH 4,2,1000 + FASTPIH 2,1,400 +MOD106: CLEAN + +ZZ=100 +YY=40000 +MOD107: REPEAT 7,< + CLEAN + CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + STOP ;OF PIR STB, IOB PIRQ, PIO + ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT> + +DEFINE CPINTR (A)< ;PROVIDE AN INTERRUPT TO PI + MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + ADD ;AND OTHER SOURCES + CONO 42220+A> + +DEFINE IOBRQ (A,B,C)< + CLEAN ;CLEAR THE WORLD EXCEPT CP + CPINTR A + CONO PI,PIOSET+ACT+B ;TURN ON CK FLOP TO ALLOW + CONSO PI,C ;INTERRUPT. CK INPUT TO PIR FLOP + STOP +> + +ZZ=1 +YY=40000 +MOD108: REPEAT 7,< ;TEST FOR NO INTERRUPT FROM BUSS + CLEAN ;CLEAR WORLD + CPINTR ZZ ;INTERRUPT TO BUSS INPUT TO PIR + CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + STOP + ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + YY=YY/2 +> + +MOD109: IOBRQ 1,100,77400 + IOBRQ 2,40,77400 + CHANEL MOD111 +MOD110: IOBRQ 3,20,77400 + IOBRQ 4,10,77400 + IOBRQ 5,4,77400 + IOBRQ 6,2,77400 + IOBRQ 7,1,77400 +MOD111: CLEAN + +MOD115: CLEAN ;TEST CP FOR NO INTERRUPT + CONO 1 ;ASSIGN A CHANNEL TO + CONO PI,PIG0 ;PROCESSOR, ENABLE PI. IF + CONSZ PI,77400 ;INTERRUPT PROCESS PUT BIT ON PI BUSS + STOP ;CHECK TOB IPRQ ON CPA PRINT + + BLURB + +MOD116: CLEAN + CPINTR 1 ;ENABLE PROCESSOR INTERRUPT + SETZ + CONO PI,PIG0 ;PROCESSOR DECODE TO PI BUSS + CAIE 42 ;FAIL, SEE TOP RIGHT OF CPU + STOP ;PRINT C(0)=ADDR OF XCT INST + +MOD117: CLEAN + CPINTR 2 ;ENABLE PROCESSOR INTERRUPT + SETZ ;WILL BE FILLED BY ADDR OF XCT INST + CONO PI,PIG0 ;ACTIVATE PI SYS + CAIE 44 ;EXPECT CHANNEL 2 + STOP ;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + CHANEL MOD120 +MOD118: CLEAN + CPINTR 4 ;ENABLE PROCESSOR INTERRUPT + SETZ ;WILL BE FILL BY ADDR OF XCT INST + CONO PI,PIG0 ;ACT PI SYS + CAIE 50 ;EXPECT CHANNEL 4 + STOP ;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + + BLURB +MOD119: CLEAN ;ENABLE AN INTERRUPT ON CHANNEL 1-7 + CPINTR 7 ;CHECK PROCESSOR INTERRUPT + CONO PI,PIG0 + CAIE 56 + STOP ;CH 7 FAIL TO INTERRUPT + CONO 6 + CAIE 54 + STOP ;CH 6 FAIL TO INTERRUPT + CONO 5 + CAIE 52 + STOP ;CH 5 FAIL TO INTERRUPT + CONO 4 + CAIE 50 + STOP ;CH 4 FAIL TO INTERRUPT + CONO 3 + CAIE 46 + STOP ;CH 3 FAIL TO INTERRUPT + CONO 2 + CAIE 44 + STOP ;CH 2 FAIL TO INTERRUPT + CONO 1 + CAIE 42 + STOP ;CH 1 FAIL TO INTERRUPT +MOD120: CLEAN + + BLURB +MOD121: CLEAN + SETZ ;C(0) MODIFIED IF INTERRUPT + CONO PI,PIG0 ;ENABLE PI + JFCL 10,.+1 ;CLEAR AROV + CONO 20+1 ;ENABLE AROV CH1 + SKIPE ;INTERRUPT OCCURED SEE CPA PRINT + STOP ;CPA AROV EN(1) AND GATE TO PIRQ + +MOD122: CLEAN + SETZ + CONO PI,PIG0 + MOVSI 400000 + ADD ;SET AROV + CONO 1 ;AROV CNT NO ENABLE + SKIPE ;INT OCCURED SEE CPU PRINT + STOP + +MOD123: CLEAN + SETZ + CONO PI,PIG0 ;ENABLE PI + MOVSI 400000 ;SET AROV + ADD ;FLOP + CONO 21 ;FLOP AND AROV (EN) + CAIE 42 ;NO INTERRUPT CHECK AND GATE + STOP ;TO PIRQ ON CPU PRINT + +MOD124: CLEAN + SETZ + CONO PI,PIG0 ;ENABLE PI + CONSO 1000 + JRST .-1 ;WAIT IF CLK=0 + CONO 2001 ;SET CLOCK ENABLE + CAIE 42 ;SHOULD INTERRUPT TO LOC 42 + STOP ;SEE CPU PRINT AND CLK ENABLE + + BLURB +MOD125: CLEAN + CONO PI,PIG0 ;ENABLE PISYS + CONO 1 ;TRY TO SET NONEX MEM + SETZ ;NO INTERRUPT SET + CAM -1 ;NONEX INPUT TO + CAIE 42 ;PIRQ ON CPA + STOP ;PRINT + +MOD127: CLEAN + CONO PI,PIG0 ;ENABLE PI + CONO 1 ;CPU TO CHANNEL 1 + SETO ;SET THE + PUSHJ .+1 ;PDL FLAG + CAIE 42 ;IT FAILED TO INTERRUPT + STOP ;SEE ITS INPUT TO PIRQ ON CPA PRINT + +MOD128: CLEAN + CONO PI,PIG0 ;ENABLE PI + CONO 1 + SETZ + CONO PI,40000 ;ENABLE PAR + SKIPE ;INTERRUPT OCCURED + STOP ;CHECK CPU PIRQ INPUT + +MOD129: CLEAN + JFCL 1,.+1 ;CLEAR FOV + CONO PI,PIG0 ;ENABLE PI + SETZ + CONO PI,201 ;FOV ENABLE. INTERRUPT + SKIPE ;OCCURED CK PIRQ INPUTS + STOP ;ON CPU PRINT + +MOD130: CLEAN + SFLAG 40000 ;SET FOV FLAG + SETZ + CONO PI,PIG0 ;ENABLE PI + CONO 1 ;CH1 TO PROCESSOR + SKIPE ;FOV ENABLE FAIL TO PREVENT + STOP ;INTERRUPT SEE CPU PRINT + BLURB +MOD131: CLEAN + SFLAG 40000 ;SET FOV FLAG + CONO PI,PIG0 ;ENABLE PI + SETZ + CONO 201 ;ENABLE FOV+CH1 + CAIE 42 ;FAIL TO INTERRUPT SEE + STOP ;PIRQ INPUTS ON CPA PRINT +MOD132: CLEAN + CONO PI,ACT+PIREQ+100 ;INTERRUPT + REPEAT ^D10, +< JRST .+1> + CONSO PI,40000 ;PIH WAS RESET BY JRST (NO BIT 9) + STOP ;SEE PI RESTORE LOGIC ON PI1 PRINT +MOD133: CLEAN + CONO PI,ACT+PIREQ+100 ;INTERRUPT + REPEAT ^D10, +< CAI 10,0> + CONSO PI,40000 ;PIH WAS RESET BY BIT9(NO JRST) + STOP ;SEE PI RESTORE LOGIC ON PI1 PRINT +MOD134: CLEAN ;TEST PI CYC(1) INPUT TO PI OV + SETO ;PROVIDE ALL CONDITIONS TO SET + BLKI ;PI OV EXCEPT PI CYC(1) + CONO PI,ACT+PIREQ+100 ;IF C(0)=43 REPLACE THE B137 + CAIE 42 ;AND GATE TO PI OV SEE + STOP ;PI1 PRINT +MOD135: CLEAN + MOVE [BLKO ME,0] ;PUT A BLKI IN + MOVEM 42 ;LOC 42 + SETZ ;PROVIDE FOR NO OVERFLOW + CONO PI,ACT+PIREQ+100 ;INTERRUPT. IF C(0)=43 + CAIN 43 ;AND GATE TO PIOU THE AD + STOP ;CRY0(1) INPUT FAILED. SEE PI1 PRINT + JRST MOD136 +;HOLE LEFT FOR RELOCATION TEST + + +MOD136: CLEAN + MOVE [AOS] ;PUT AN AOS IN LOC 42 + MOVEM 42 ;PROVIDE ALL INPUTS TO + SETO ;PIOU EXCEPT IOT BLK + CONO PI,ACT+PIREQ+100 ;CANT TEST GATE + SKIPE ;THINK UNNECESSARY + STOP ;BUT DO IT ANYWAY + +MOD137: CLEAN + MOVE [BLKO ME,0] ;SETUP A BLKO TO SET + MOVEM 42 ;THE PI OV FLOP + SETO + CONO PI,ACT+PIREQ+100 ;CAUSE FIRST INTERRUPT + SETZ ;PI SHOULD SET AT THIS + CLEAN ;TIME, IF PI OV IS NOT + CONO PI,ACT+PIREQ+100 ;CLEARED AT ST1 NEXT INTERRUPT + CAIN 43 ;WILL OCCUR AT LOC 43 + STOP ;SET PI 1 PRINT. + +MOD140: CLEAN + MOVE [BLKO ME,0] ;PUT A BLKO IN LOC 42 + MOVEM 42 ;WHEN EXECUTED THIS SHOULD + SETO ;SET PIOV. IF PI OV IS NOT + CONO PI,ACT+PIREQ+100 ;CONNECTED TO MA REGISTER + ANDI -1 ;42 WILL BE EXECUTED TWICE + CAIN 1 ;SEE MA 35 SET AT IT0 + STOP ;AND PI OV(1) ON MA1 PRINT + +MOD141: CLEAN ;CHECK BLKO NOT RESET PIH + MOVE [MOVEI 42] ;RESTORE LOC 42 + MOVEM 42 ;TO MOVEI + CONO PI,PIREQ+ACT+100 ;SET PIH VIA INTERRUPT + SETZ ;IF PIH1(0) THEN PI CYC(1) + BLKO ME,0 ;INPUT TO PI RESTORE FAILED + + CAI + CONSO PI,40000 ;SET PI1 PRINT + STOP + +MOD142: CLEAN ;CHECK PI RESTORE LOGIC + MOVE [DATAO ME,0] ;DATAO AND PIOV SHOULD PRODUCE + MOVEM 42 ;PI RESTORE. CHECK THIS INPUT + CONO PI,PIREQ+ACT+100 ;TO PI RESTORE ON PI1 PRINT + CONSZ PI,40000 ;ALSO CHECK PI CYC(1) INPUT + STOP ;ON SAME PAGE + +MOD143: CLEAN + MOVE [DATAI ME,0] ;IF MACHINE HANGS OR + MOVEM 42 ;PIH(1) CHECK DATAO/DATAI + CONO PI,PIREQ+ACT+100 ;INPUT TO PRIORITY SYSTEM + CONSZ PI,40000 ;SEE PI1 PRINT (LOWER LEFT) + STOP + +MOD144: CLEAN + MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + MOVEM 42 ;POINTER SHOULD SET PIOV. THE + SETO ;INST AT LOC 43 A (MOVEI 43) + CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + CONSO PI,40000 ;PI OV AND ASSOCIATED LOGIC + STOP ;ON PI1 PRINT + +MOD145: CLEAN + MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + MOVEM 42 ;POINTER SHOULD SET PIOV. THE + SETO ;INST AT LOC 43 A (MOVEI 43) + CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + CAIE 43 ;CHECK PI OV INPUT TO MA35 + STOP ;SET ON MA1 PRINT + +MOD147: CLEAN ;TEST PI CYC(0) GET TO PIR STB + MOVE [BLKO ME,0] ;PUT A BLKO WITH POINTER TO + MOVEM 44 ;SET PI OV IN CHANNEL 2 BLKO + MOVE [MOVEI 1,42] ;WILL SET NONEX MEM CAUSING + MOVEM 42 ;INTERRUPT ON CH1 THE INSTRUCTION + HRROI -2 ;AT LOC 45 MUST BE EXECUTED + CONO PI,PIOSET+100 + CONO 1 ;OR PI CYC(0) GATE TO PIR STB FAILED + CONO PI,PIREQ+ACT+40 + CAIE 45 ;AND OF MC RQ PULSE PICYC(0) + STOP + CAIE 1,42 + STOP ;NONEX FAIL TO INTERRUPT CH1 + +MOD148: CLEAN ;PUT A SKIPA IN THE + MOVE [SKIPA] ;INTERRUPT SPOT + MOVEM 42 + CONO PI,PIREQ+ACT+100 + STOP + +MOD149: CLEAN + MOVE [JSR .+4] + MOVEM 42 + CONO PI,PIREQ+ACT+100 + STOP + 0 + +MOD150: CLEAN ;INTERRUPT TO A PUSHJ + MOVE [PUSHJ .+4] + MOVEM 42 + MOVSI -1 + CONO PI,ACT+PIREQ+100 + ANDI 1,-1 + CAIE 1,.-1 + STOP ;PC STORED INCORRECTLY + CAIE 1 ;THE PUSHJ + STOP ;POINTER WORD IN ERROR + CLEAN +MOD151: CLEAN + MOVE [MOVEI 43] ;TEST CLEAR MA ON INTERRUPT + MOVEM 43 + MOVE [BLKO ME,4] + MOVEM 42 + SETOB 4 + HRRI 4,4 + CONO PI,PIREQ+ACT+100 + CAIE 43 + STOP + + +MOD152: SETZM 60 ;TEST TRAP TO 60 + MOVE [JSP MOD153] ;GO HERE IF TRAP TO 40 + MOVEM 41 ;ERROR + MOVE [JSP MOD153+1] + MOVEM 61 ;OK TRAP + XWD 100000,0 ;OP CODE 100-127 + STOP +MOD153: STOP + SKIPN 60 ;NOTHING STORED IN C(60) + STOP + +MOD154: SKIPN USMOD# ;TEST RELOC IF SPECIFIED + JRST MOD195 + +DEFINE UMON< + CONO 634440 ;PREPARE TO TURN ON USER + CONO PI,10000 ;MODE. CL PI, IOB, RELOC + DATAO [XWD -1,0]> + +DEFINE UMOFF< + MOVE [JSP .+3] ;TURN OFF USER MODE VIA + MOVEM 41 ;UUO. PROG RETURNS TO END + XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 +> + +DEFINE HOLD< + JUMPA . ;MACH ERROR. HALT MAY TRAP + JUMP .+1 ;SO WAITING FOR OPERATOR +> + +MOD160: JRST 2,@[XWD 0,.+1] ;CLEAR EX IOT USER, IF LIGHT + JSP .+1 ;OUT FLAG TRANSFER TO AR FAIL + + TLNE UMIOT ;BIT 6. OR FLOP FAIL TO CLEAR + STOP + + JRST 2,@[XWD UMIOT,.+1] ;SET THEN CLEAR EX IOT USER + JRST 2,@[XWD 0,.+1] ;CK AND GATE ARF FLAGS FM BR (J), + JSP .+1 ;BR6(0) FAIL TO CLEAR + + TLNE UMIOT ;EX IOT USER ON EX PRINT + STOP + + JRST 2,@[XWD 0,.+1] ;CLEAR THEN SET EX IOT USER + JRST 2,@[XWD UMIOT,.+1] ;IF LIGHT=1 FLAGS TO AR FAIL + JSP .+1 ;IF LIGHT=0 FLOP FAIL TO SET. CK + TLNN UMIOT ;BR6(1), EX USER(0), ARF FLAGS(J), EX PRINT + STOP + + JRST 2,@[XWD 0,.+1] ;CLEAR USER. IOB1 PRINT + CONSZ 1B20 ;READ PROCESSOR STATUS + STOP + + JRST 2,@[XWD UMIOT,.+1] ;SET USER IOB1 PRINT + CONSO 1B20 ;CPA STATUS FAIL + STOP + +MOD161: UMOFF + TLNE USERF ;FLAGS TO AR BIT5 (USER MODE) FAIL + HOLD + +;TRY TO TURN ON USER MODE VIA RESTORE FLAGS THEN +;TURN OFF VIA UU0. SEE EX PRINT + +MOD162: MOVE [JSP MD162A] + MOVEM 41 + UMON + JRST 2,@[XWD USERF+UMIOT,MD162B] ;ALSO PRIVI IO + +MD162A: HOLD ;TRAP HERE, NO MEMORY ACCESS, USER MODE + +MD162B: UMOFF + TLNN USERF ;JSP STORED FLAGS IN C(0) + HOLD + +;TEST UUO TURN OFF OF USER MODE. PRIVI I/O ALLOWS +;IOT TO OCCUR IN CASE USER STILL ON. SEE EX PRINT + +MOD163: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + UMOFF + UMOFF + TLNE USERF ;FLAGS STORED VIA JSP AT 41 + HOLD + +MOD164: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;SET USER+PRIV I/O + MOVE [JUMPA .+3] ;SET RETURN FOR THE + MOVEM 41 ;UUO. EX ILL OP SHOULD + XWD 40000,0 ;NOT TURN OFF USER FLAG + JSP .+1 ;BECAUSE AR FM PC(J)(ET0) + TLNN USERF ;PULSE IF NOT PRESENT. SEE EX + HOLD + UMOFF + +;PERFORM A UUO. THE PURPOSE OF THIS IS TO SET THE +;EX ILL OP FLOP. THE FLOP SHOULD BE CLEARED BY THE +;JSP AT 41. IF HOWEVER THIS DID NOT OCCUR, ANY +;STORE PC INSTRUCTION IN USER MODE WOULD CLEAR +;USER MODE. THIS TEST THEREFORE TEST THE CLEAR +;TO EX ILL OP VIA AR FM PC(J) (ET0) ON EX PRINT + +MOD165: UMOFF + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + JSP .+1 ;DONT FORGET FAIL TO CLEAR + JSP .+1 ;MAY BE PHONEY SET EX ILL OP + TLNN USERF ;OR PHONEY CLEAR EX-USER + HOLD + UMOFF + +MOD166: UMOFF + UMON + JRST 1,.+1 ;SET USER MODE VIA ET0 + JSP .+1 ;IR JRST, IR12(1). IT FAILED + TLNN USERF ;REPLACE B135 ON EX PRINT + HOLD + UMOFF + +;THIS TEST WILL TRY TO SET THE PRIV I/O BIT WHEN IN +;USER MODE. IF THE EX IOT USER FLOP SETS EX USER (0) INPUT +;TO THE FLAG FAILED SEE EX PRINT + +MOD167: UMON + JRST 2,@[XWD USERF,.+1] ;SET USER + JRST 2,@[XWD USERF+UMIOT,.+1] ;TRY TO SET PRIV I/O + JSP .+1 + TLNE UMIOT + HOLD + UMOFF + +MOD170: UMON + JRST 2,@[XWD USERF,.+1] ;SET USER MODE + MOVE [JSP .+4] ;SET TRAP RETURN + MOVEM 41 ;1 PAST THE IOT INST + SETZM 40 ;FAIL TO TRAP. EX ALLOW IOT + XWD 700000,0 ;ALLOWED THE IOT IN USER + SKIPN 40 ;MODE. SEE EX PRINT + HOLD + UMOFF + +MOD171: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;SET PRIVI+USER + MOVE [JSP .+4] ;SET TRAP RETURN 1 PAST + MOVEM 41 ;THE TRAP INST + SETZB 40 ;THE EX IOT USER FLOP + XWD 700000,0 ;SHOULD ALLOW THE IOT + CAI + SKIPE 40 ;CHECK EX ALLOW IOT. EX PRINT + HOLD + UMOFF + +MOD172: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;USER AND PRIV I/O + MOVE [JSP .+3] ;THEN CAUSE A PI REQUEST + MOVEM 42 ;PI CYC(1) SHOULD SET EX PI SYNC + CONO PI,ACT+PIREQ+100 ;WHICH SHOULD CLEAR EX USER + JSP .+1 ;AT ET1 OF JSP AT 42. IT + TLNE USERF ;FAILED. SEE EX PRINT + HOLD + +;THIS TEST WILL INSURE THAT EX ILL OP IS CLEARED +;BY IOT BLK. THIS LOGIC IS NECESSARY FOR RETURNING TO +;THE PROPER RELOCATION WHEN A UUO IS INTERRUPTED AND +;MUST BE RE EXECUTED. + + +MOD173: MOVE [JUMPA .+3] + MOVEM 41 + XWD 040000,0 ;PERHAPS TURN OFF USER MODE + SETZ ;PREVIOUS UUO SET EX ILL OP + BLKI ;THIS IOT SHOULD CLEAR IT + CAI + JRST 2,@[XWD USERF,.+1] ;NOW ENTER USER MODE IF + JSP .+1 ;EX ILL OP SET JSP WILL CLEAR + JSP .+1 ;EX USER FLAG. SEE EX PRINT + TLNN USERF + HOLD + UMOFF + +MOD174: UMON + JRST 2,@[XWD USERF,.+1] + MOVE [JSP .+4] ;SET RETURN + MOVEM 41 ;SEE IR2 PRINT + SETZM 40 ;IR JRST A IR10(1) + HALT . ;THIS HALT SHOULD TRAP + SKIPN 40 ;BUT DID NOT + HOLD + UMOFF + +MOD175: UMON + JRST 2,@[XWD USERF,.+1] + MOVE [JSP .+4] ;SET RETURN + MOVEM 41 ;SEE IR2 PRINT + SETZM 40 ;THE ENABLE PI SHOULD + JEN .+1 ;TRAP TO 40 + SKIPN 40 ;BUT DID NOT + HOLD + UMOFF + +MOD176: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + MOVE [JSP .+4] ;SET PRIVI IO BIT + MOVEM 41 ;THIS SHOULD PREVENT JRST IO, + SETZM 40 ;FROM TRAPPING. SEE IR UUO + JRST 10,.+1 ;ON IR2 PRINT + SKIPE 40 + HOLD + UMOFF + +MOD177: UMON + JRST 1,.+1 ;SEE IF JUST A PLAIN + MOVE [JSP .+4] ;JRST WILL TRAP + MOVEM 41 ;SEE IR2 PRINT FOR + SETZM 40 ;DECODE IR-UUO + JRST .+1 + SKIPE 40 + HOLD + UMOFF + +MOD178: UMON + JRST 1,.+1 ;SEE IF IR 9+10 WITH OUT + MOVE [JSP .+4] ;A JRST WILL TRAP + MOVEM 41 ;SEE IR UUO ON IR-2 PRINT + SETZM 40 + JFCL 14,.+1 + SKIPE 40 + HOLD + UMOFF + +;CHECK THAT AN IOT AT INTERRUPT LEVEL WILL NOT LOOK +;LIKE A UUO SEE IR-2 PRINT + +MOD179: UMON + CONO 1 + MOVE [BLKI] + MOVEM 42 + MOVE [JSP M179+1] + MOVEM 41 + SETZB 40 + MOVE [JSP M179] + MOVEM 43 + SETO + CONO PI,ACT+PIOSET+100 + JRST 1,.+1 + CAM -1 +M179: SKIPE 40 + HOLD + UMOFF + +MODXX1: UMON ;TEST TRAP (60) TURN OFF OF + MOVE [JSP .+5] ;USER MODE + MOVEM 61 + JRST 1,.+1 + XWD 100000,0 ;OP CODE 100 + HOLD ;IT FAILED TO TRAP + JSP .+1 ;IT SHOULD ALSO + TLNE USERF ;TURN OFF USER MODE + HOLD + +MODXX2: UMON + MOVE [JSP .+4] ;TEST IR TO C(40) + MOVEM 41 ;FOR BITS 1,2,3 + JRST 2,@[XWD USERF,.+1] + XWD 700000,0 ;AN IOT + MOVE 40 + CAME [XWD 700000,0] + HOLD + +MOD180: UMON + DATAO [0] ;GET RID OF PROTECT REG + + CONO 1 + CONO PI,ACT+PIOSET+100 + MOVE [JSP M180] + MOVEM 42 + MOVE [JSP .+4] + MOVEM 41 + JRST 2,@[XWD USERF+UMIOT,.+1] ;ENABLE USER + JUMPA . ;THIS INST SHOULD SET PROT +M180: CONSO PROT ;HERE IF FLAG FAIL + HOLD + CONSZ NONEX ;NEVER NON EX WITH PROT + HOLD + CONO 1B22 ;FAIL TO CLEAR PROT + CONSZ PROT ;FLAG SEE CPA PRINT + HOLD + +DEFINE EXCT (A) < + MOVE [JSP .+3] ;EXECUTE A UUO + MOVEM 41 ;AND STORE FLAGS + XWD A,0 ;IN AC0. +> +;CHECK UUO 0 TRAPING TO EXEC MODE AND UUO 1-37 +;NOT TRAPING TO EXEC MODE...1P19 ON EX CONTROL PRINT. + +MOD18A: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 0 + EXCT 0 + TLNE USERF ;USER MODE ON?..CK 1P19 EX CONT PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 1000 + TLNN USERF ;CK BIT 8 INPUT TO 1P19 EX CONTROL PRINT. + HOLD + + + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 2000 + TLNN USERF ;CK BIT 7 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 4000 + TLNN USERF ;CK BIT 6 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 10000 + TLNN USERF ;CK BIT 5 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 20000 + TLNN USERF ;CK BIT 4 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF,.+1] + MOVE 0,[JSP .+3] + MOVEM 0,41 + XWD 700000,0 ;XCT AN IOT. + JSP .+1 ;GET FLAGS. + TLNE 0,USERF ;USER MODE STILL ON? + HOLD ;YES. CK EX NON REL UUO + ;EX PRINT. + +MOD181: MOVE 10040 ;SAVE THESE LOC + SKIPN SAV40 + MOVEM SAV40 + MOVE 10041 + SKIPN SAV41 + MOVEM SAV41 + MOVE 10042 + SKIPN SAV42 + MOVEM SAV42 + MOVE 10043 + SKIPN SAV43 + MOVEM SAV43 + JRST .+5 +SAV40: 0 +SAV41: 0 +SAV42: 0 +SAV43: 0 + +;TEST THE SETTING OF PROTECT FLAG BY MOVING A +;TWO INST PROG TO AC 1+2 PROG IS CAM X AND UU0 +;WITH TRAP SET TO REAL WORLD THE CAM SHOULD TEST +;THE PROT FLAG + +X=2000 + +DEFINE LAC (A)< + UMON + DATAO [0] + MOVE 1,[CAM A] + MOVSI 2,40000 + + CONO PI,ACT+PIOSET+100 + CONO 1 + MOVE [JSP .+5] + MOVEM 42 + MOVE [JSP .+3] + MOVEM 41 ;SET TRAP RETURN + JRST 1,1 ;TURN ON USER MODE + CONSO PROT ;THE PROT FLAG SHOULD BE SET + HOLD + CONSZ NONEX + HOLD +> +MOD182: REPEAT 10,< + LAC X + X=X+X> + +MOD185: SETZM 40 ;TEST FOR TRAP TO REAL LOC 40 + MOVE [JSP MOD186-1] ;NOT RELOCATED 40 + MOVEM 41 ;SETUP TRAP FOR OK + DATAO [XWD -1,10000] + MOVE [JSP MOD186] ;SETUP TRAP FOR ERR + MOVEM 10041 + JRST 1,.+1-10000 ;IF THE UUO TRAPS TO + XWD 40000,0 ;RELOCATED 40 PROG WILL HOLD + SKIPN 40 ;AT THIS POINT + +MOD186: HOLD + JSP .+1 ;IF USER MODE STILL ON + TLNE USERF ;THEN WAIT HERE + HOLD + +;TEST FOR INTERRUPT TO REAL PI (NOT RELOCATED) +MOD190: UMON + MOVE [JSP MOD191] ;SET ERROR PI RET + MOVEM 10042 + MOVE [JSP MOD191+1] ;SET OK PI + MOVEM 42 + DATAO [XWD -1,10000] + JRST 2,@[XWD USERF+UMIOT,.+1-10000] + CONO PI,ACT+PIREQ+100 ;SHOULD INTERRUPT + HOLD +MOD191: HOLD + UMOFF +;TEST FOR NOT RELOCATION OF AC'S +MOD192: SETZM 5 + UMON + MOVE [JSP M192] + MOVEM 41 + DATAO [XWD -1,10000] + JRST 1,.+1-10000 + MOVEI 5,12345 + XWD 040000,0 ;UUO TO TERM USER MODE +M192: CAIE 5,12345 + HOLD +MOD195: SKIPE FPTRAP ;SEE IF SWITCH SAYS FP + JRST MOD196 + MOVE [JSP .+3] ;TEST THE ABILITY TO + MOVEM 61 ;TRAP A FP INST + FADRI -1 ;THIS INST SHOULD TRAP + MOVE 2,.-1 ;FAIL TO TRAP PROPERLY + CAME 2,60 + STOP + JRST MOD197 ;WHAT ABOUT SWITCHS +MOD196: MOVE [JSP .+4] ;TEST FOR FP NOT TRAP + SETZM 60 + MOVEM 61 ;SET RETURN + FADRI -1 + SKIPE 60 ;DOES MACH HAVE FP + STOP +;CHECK BYT7A SETING BYF6. +MOD19X: CONO 635550 ;CLR THE WORLD. + MOVE [JSP MOD19B] + MOVEM 42 ;SETUP FOR INT ON CH # 1. + CONO PI,12300 ;SETUP PI. + MOVE 1,POINTR ;PUT POINTER INTO AC1. + CONO 1000 ;CLR CLOCK FLAG. + CONSO 1000 ;WAIT FOR + JRST .-1 ;CLOCK FLAG. + CONO 3001 ;SET INT ENABLE AND PI 35 AND CLR CLK FLG. + ILDB 0,1 ;SHOULD STAY IN INDIRECT LOOP. +MOD19B: CONSO 1000 ;CLK FLG INT? + HOLD + TLNN 0,20000 ;BYF6 FLAG SET? NO..CK BYT7A ON BYTE PRINT. + HOLD + JSP .+1 ;CAUSE ARLT FM FLAGS(J)A. + TLNE 0,20000 ;CK BYTE PRINT. + HOLD + + JRST MOD197 + +POINTR: XWD 440720,1 +;CK TO SEE THAT UUO 0 TRAPS TO 141. +MOD200: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + MOVE [JSP .+5] + MOVEM 41 + AOJ + MOVEM 141 + 0 + HOLD ;UUO 0 TRAPED TO 40. CK 2L44 ON MA CONTROL PRINT. + TLNN USERF ;USER MODE GET CLR?..CK 1P19 ON EX CONT PNT. + HOLD +;CK TO SEE THAT UUO 37 TRAPS TO 41. + + UMON + JRST 2,@[XWD USERF + UMIOT, .+1] + MOVE [JSP .+5] + MOVEM 141 + AOJ + MOVEM 41 + 037000000000 + HOLD ;UUO 37 TRAPPED TO 141, CK 2L44 ON MA CONTROL PRINT. + + +;CK TO SEE THAT AN INTERRUPT ON CH # 1 TRAPS TO 142. + + MOVE [MOVEI 142] + MOVEM 142 + CONO 634440 ;CLR THE WORLD. + SETZ 0, + CONO PI,10000 ;CLR PI. + CONO PI,ACT+PIREQ+100;CAUSE INT. + CAIE 0,142 ;CK 2K44 ON MA CONTROL PRINT. + HALT + + SETOM MATPOF ;SET FLG SO KNOW IN THIS ROUTINE. + + +MOD197: JRST BEGEND ;REPEAT DIAGNOSTIC + +;DIAGNOSTIC STORAGE + + LIT + + VAR + +LAST: JRST 4,BEGIN diff --git a/apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt b/apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt new file mode 100644 index 000000000..2099812dd --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt @@ -0,0 +1,1775 @@ +SUBTTL DIAGNOSTIC SECTION + + LALL + +PGMNAM: ASCIZ / +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC # 8 [DAKAH] +/ +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN USER + JRST STARTA + TTCALL 3,PGMNAM ;MENTION OUR NAME + OUTSTR [ASCIZ / +?EXEC MODE DIAGNOSTIC ONLY +/] ;TELL USER + HALT . ;AND DIE... + +STARTA: +ST: SETZM MATPOF# ;CLR MA TRAP OFFSET FLAG. +MOD: SKIPE 1,SAV40 ;RESTORE THESE LOC IF PROG + MOVEM 1,10040 ;IF PROG MODIFIED + SKIPE 1,SAV41 + MOVEM 1,10041 + SKIPE 1,SAV42 + MOVEM 1,10042 + SKIPE 1,SAV43 + MOVEM 1,10043 + CONI CPSAV# + CONI PI,PISAV# + + DATAI ;DO WE HAVE FP + SKIPGE MONCTL ;MONITR CONTROL ? + MOVE 0,MONCTL ;YES + ORCM [1B35] + SETCAM FPTRAP# + SETOM PI7SYS# + + DATAI ;IS THIS MACH WITH USER + SKIPGE MONCTL ;MONITR CONTROL ? + MOVE 0,MONCTL ;YES + ORCM [1B34] + SETCAM USMOD# + + SKIPE MATPOF# ;START AT 3776? + JRST MOD200 ;YES. GO CK MA 29 SET. + +;MACH/OPTION DEPENDENT +;TEST UU0 + + RETURN MOD1 ;TEST UUO FOR NOT GOING TO 60 + MOVE 1,[JRST .+4] ;IF THIS ROUT STOPS THE + MOVE 2,[JSP MOD1+1] ;TRAP WAS TO 60. IF UU0 HANG + MOVEM 2,61 ;THE MACH, CHECK XCTF0 AND + 0 ;UU0F0 FLAGS FOR NOT SETING +MOD1: SKIPA ;CHECK MA 31 SET + STOP ;IR 1XX GATE FAIL + +MOD2: RETURN MOD3 ;TEST 40 TO MA LOGIC (UU0) + MOVE 1,[JRST .+3] ;IF 40 WAS NOT (J) TO MA + 0 ;THIS UU0 WILL STORE IN LOC 0 +MOD3: SKIPA ;CHECK MA-30 SET + STOP ;ON THE MA1 PRINT + +MOD4: RETURN MOD5 ;IF THE MA FROM AR + MOVE 2,[JSP MOD5+1] ;INHIBIT (AT6) FAILED THE + MOVEM 61 ;UU0 WOULD STORE IN E ORED + 20 ;WITH 40 RATHER THAN C(40) +MOD5: SKIPA ;MA FM AR(J) CAME UP CHECK + STOP ;AND OF AT6-IR UU0 ON MA1 PRINT + +MOD6: RETURN MOD7 ;TEST UU0 ABILITY TO STORE + 0 ;IF C(40) UNCHANGED SCE FAIL +MOD7: CAMN 2,40 ;CK IR UU0 INPUT TO SCE + STOP ;ON S2 PRINT + +MOD8: RETURN MOD9 ;TEST SACINH FOR UU0 + SETO ;IF FAIL WILL MODIFY AC + 0 ;SACINH THE IR UU0 INPUT +MOD9: CAME [-1] ;ON S2 PRINT FAILED + STOP + +MOD10: RETURN MOD11 ;TEST UU0 FACINH, IF THE + MOVEI -1 ;UU0 FETCHES A AC THE + 0 ;AC WILL BE STORED +MOD11: CAMN 40 ;FAC INH THE IR UU0 INPUT + STOP ;ON F2 PRINT FAIL + +MOD12: RETURN MOD13 ;TEST UU0 IR TO ARLT + XWD 077740,0 ;THE AND OF (ET0,IR UU0) +MOD13: SKIPN 40 ;ON ARC-2 PRINT FAILED + STOP + +MOD14: RETURN MOD15 ;UU0 FAIL + XWD 000740,0 ;CHECK ARLT FM FLAGS (J) B +MOD15: SKIPN 40 ;THE PA ON ARC-2 PRINT + STOP + +MOD16: RETURN MOD17 ;UU0 FAIL + XWD 077000,0 ;CHECK ARLT FM FLAGS (J) A +MOD17: SKIPN 40 ;THE PA ON ARC-2 PRINT + STOP + + ZZ=40 +MOD18: REPEAT ^D10, +< RETURN .+4 ;TEST IRLT TO AR + XWD ZZ,0 + SKIPN 40 + STOP + ZZ=ZZ+ZZ +> +MOD19: RETURN MOD19A ;TEST PROPER STORAGE + 0 ;OF UU0 +MOD19A: SKIPE 40 + STOP + +MOD20: RETURN MOD20A ;CK FOR STORING OF E + XWD 0,-1 ;ON A UU0 +MOD20A: MOVE 40 + CAIE -1 + STOP + +MOD21: RETURN MOD21A ;CK FOR STORING OF E + XWD 077740,0 ;ON A UU0 +MOD21A: MOVE 40 + CAME [XWD 077740,0] + STOP + +MOD22: RETURN MOD22A ;CK FOR STORING OF + XWD 077740,-1 ;E AND IR ON UU0 +MOD22A: MOVE 40 + CAME [XWD 077740,-1] + STOP + +MOD23: RETURN MOD23A ;UU0 TEST THE PC+1 + 0 ;INHIBIT FEATURE LOC 41 +MOD23A: ANDI 2,-1 ;CONTAINS TSP 2,X + CAIN 2,. ;PC+1 INH THE IR UU0 INPUT + STOP ;FAILED. SEE PC1 PRINT + +MOD24: RETURN MOD24A ;PC STORED IN CORRECTLY + XWD 0,-1 ;FROM THE JSP AT 41 +MOD24A: ANDI 2,-1 ;ON A UUO INST + CAIE 2,.-1 + STOP + +MOD25: ;SET PRIVILEGE TO FLAG + ;SET UU0 TRAP + ;TEST IOT INST FOR + ;NOT TRAPING. SEE IR-2 + ;PRINT IR UU0 CAME UP +MOD26: ;CK AND OF IR IOTA, NOT ALLOW, ETC + +MOD27: SFLAG 0 ;MAKE SURE EX IOT USER=0 + RETURN MOD28 ;CK FOR NOT TRAP ON IOT + CONI ;IF IOTS TRAP NOW THE + CAI ;AND GATE EX USER (0), EX IOT USER + SKIPA ;DID NOT RESPOND TO EX USER (0) +MOD28: STOP ;SEE EX ALLOW IOTS ON EX PRINT + +MOD29: SETO 1, ;THE IOTS FAIL TO STORE C(E) + DATAI 1 ;CHECK IR IOT ON IR2 PRINT + CONI 1 ;LOOKS LIKE IR DECODE FAILED + CAMN 1,[-1] + STOP + +MOD30: MOVE 1,[123456654321] ;CHECK SCE FOR DATAI + DATAI 1 ;THE CONTENTS OF LOC1 + CAMN 1,[123456654321] ;WERE NOT MODIFIED. SEE + STOP ;S1 PRINT SCE AND DECODE ON IOT + +MOD31: MOVE 1,[123456654321] ;CHECK SCE FOR CONI. THE + CONI 1 ;CONTENTS OF LOC1 WERE NOT + CAMN 1,[123456654321] ;MODIFIED. SEE S2 PRINT SCE + STOP ;AND DECODE ON IOT PRINT + +MOD32: SETO ;SACINH FAIL FOR INST + CONI 1 ;CONI FAILED. CHECK + CAME [-1] ;IR IOT INPUT TO SACINH + STOP ;ON THE S2 PRINT + +MOD33: CONO ME,0 ;CLEAR LAST DEVICE + CONI ME,2 ;AR CLEAR AT(ET0)FAILED + CAIN 2,2 ;ON INST CONT CK AR + STOP ;CLEAR ETO, CONI ON ARC-2 PRINT + +MOD34: DATAO ME,[0] ;AR CLR ON A DATAI + DATAI ME,3 ;INST FAILED CHECK + CAIN 3,3 ;IOT DATAI INPUT ON THE + STOP ;OR GATE TO AR CLR. SEE ARC-2 PRINT + + SETZ ;CONSZ FAIL TO SKIP. CK + CONSZ ;PC+1 AT AND OF AD=0, IOT CONSZ, + STOP ;IOT T5 ON PC1 PRINT + + CONO ME,0 ;CONSZ FAIL TO SKIP CK + CONSZ ME,700000 ;FOR NO AR CLR AT (ETO). SEE ARC-2 + STOP ;PRINT THE IOT CONSX INPUT + + CONO ME,0 ;CONSO SKIPED. CHECK PC+1 + CONSO ME,0 ;(IOT T5,AD=0,IOT CONSO,IOT CONSZ + SKIPA ;AND GATES) ON PC1 PRINT + STOP + +MOD35: SETZ 1, ;CHECK POINTER INC ON IOT BLK + BLKO ME,1 ;IF C(1)=0 THEN AR FM AD(J) (ET0) + CAI ;ON ARC-3 PRINT, OR AD+1 BOTH (FT9) + CAI ;ON AD2 PRINT FAILED + CAME 1,[XWD 1,1] ;IF IR 12 FAIL TO SET, PROG + STOP ;BLOWS UP +MOD36: SETZ 1, ;PC+1 INH FOR BLK FAILED + BLKO ME,1 ;CHECK IOT BLK INPUT TO + CAI ;PC+1 INH ON THE PC1 PRINT + SKIPA + STOP +MOD37: SETZ 1, ;BLKO PC+1 AT ET0 TIME + BLKO ME,1 ;FAILED. CHECK THE AND GATE + STOP ;BLK, CYC(0) CRY(0) ON PC1 PRINT +MOD38: SETO 1, ;BLKO PERFORMED A SKIP WHEN + BLKO ME,1 ;END CRY0 SHOULD=1 + SKIPA ;CK PC+1,SEE ABOVE ROUTINE + STOP +MOD39: CONO PI,10000 ;JUST IN CASE + CONO 435447 ;SET SOME CPA FLAGS + CONI 0 ;(1) DID FLAGS SET? NO CONO FAIL + SKIPN 0 ;YES: CONI FAIL CK IOB TO AR + STOP ;AND MANY OTHERS. IE SINGLE STEP +MOD40: CONO ;PIA 35 FAIL TO SET (CPU) + CONO 1 ;OR READ SINGLE STEP + CONI ;SEE CPA PRINT + TRNN 1 + STOP + +MOD41: CONO ;PIA 3+(CFU) FAIL TO SET + CONO 2 ;OR READ. SEE CPA PRINT + CONI ;SINGLE STEP + TRNN 2 + STOP + +MOD42: CONO ;PIA 33 (CPU) FAIL TO SET + CONO 4 ;OR READ. SEE CPA PRINT + CONI ;SINGLE STEP + TRNN 4 + STOP + +MOD43: CONO 1 ;PIA 35 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECT + CONI ;SEE CPA PRINT + TRNE 1 ;SINGLE STEP + STOP + +MOD44: CONO 2 ;PIA 34 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECTLY + CONI ;SEE CPA PRINT + TRNE 2 ;SINGLE STEP + STOP + +MOD45: CONO 4 ;PIA 33 (CPU) FAIL TO CLEAR + CONO ;OR READ INCORRECTLY + CONI ;SEE CPA PRINT + TRNE 4 ;SINGLE STEP + STOP + +MOD46: CONO 7 ;SET SOME CP FLAGS + CONSO ;CONSO FAILED CK + SKIPA + STOP +MOD47: CONO 7 ;CONSO FAILED + CONSO 7 + STOP +MOD48: CONO 7 ;CONSZ FAIL + CONSZ 7 ;CHECK PC+1 AT AND + SKIPA ;OF AD=0, CONSZ, IOT T5 + STOP ;ON PC1 PRINT +MOD50: CONO 40 ;CPU AROV ENABLE + CONO 20 ;TRY TO SET + CONSO 20 + STOP ;IOB OR FLOP + CONO 20 ;SET AROV EN + CONO ;CK FOR NOT CLEARING + CONSO 20 + STOP + CONO 20 ;SET AROV EN + CONO 40 ;TRY TO CLEAR + CONSZ 20 + STOP + CONO 40 ;CLEAR AROV EN + CONO ;CK FOR NOT SETTING + CONSZ 20 + STOP +MOD51: CONO 400 ;FOV EN CLEAR + CONO 200 ;TRY TO SET + CONSO 200 + STOP + + CONO 200 ;SET FOV EN + CONO ;CK FOR NOT CLEARING + CONSO 200 + STOP + + CONO 200 ;SET FOV EN + CONO 400 ;TRY TO CLEAR + CONSZ 200 + STOP + + CONO 400 ;CLEAR FOV EN + CONO ;CK FOR NOT SETTING + CONSZ 200 + STOP + +MOD52: CONO 4000 ;CLEAR CLK EN + CONO 2000 ;TRY TO SET + CONSO 2000 + STOP + + CONO 2000 ;SET CLK EN + CONO ;CK FOR NOT CLEARING + CONSO 2000 + STOP + + CONO 2000 ;SET CLK EN + CONO 4000 ;TRY TO CLEAR + CONSZ 2000 + STOP + + CONO 4000 ;CLEAR CLK EN + CONO ;TEST FOR NOT SETTING + CONSZ 2000 + STOP + +MOD53: CAM -1 ;SET NON-EX VIA F(CE) + CONO 10000 ;TRY TO CLEAR + CONSZ 10000 + STOP ;FAIL TO CLEAR + + CONO 10000 ;CLEAR NON-EX + CAM -1 ;TRY TO SET VIA F(CE) + CONSO 10000 ;FAIL TO SET + STOP ;CK MEM CNTL, CPA + + CONO 10000 ;CLEAR NON-EX + MOVEM -1 ;TRY TO SET VIA S(CE) + CONSO 10000 ;FAIL TO SET + STOP + + CONO 10000 ;CLEAR NON-EX + ADDM -1 ;TRY TO SET VIA PSE + CONSO 10000 ;FAIL TO SET + STOP + + CAM -1 ;SET NON EX + CONO ;TEST FOR NOT CLEARING + CONSO 10000 ;ON CONO 0 + STOP + CONO 10000 + +MOD54: CONO 400000 ;CLEAR PDL OV + SETO ;TRY TO SET + PUSH ;VIA PUSH + CONSO 200000 ;TEST FOR SET + STOP ;CPA PRINT + + SETO + PUSH ;SET PDL OV + CONO 400000 ;TRY TO CLEAR .CK + CONSZ 200000 ;CPA PDL OV SET (ET0) POP GATE + STOP ;FLOP/IOB CPA PRINT + + SETO + PUSH ;SET PDL OV + CONO ;CK FOR NOT CLEARING + CONSO 200000 + STOP + + CONO 400000 ;TEST FOR NOT + SETO ;SETTING PDL-OV + AOS ;CPA PDL OV SET FAIL + CONSZ 200000 ;IR PUSH CRY(0) (1) AT ET0 + STOP ;AND GATE. THE PUSH INPUT + +MOD55: CONO 400000 ;CK PDL FLAG + SETZ ;CPA PDL OV SET + PUSH ;CK AND GATE OK + CONSZ 200000 ;ET0 IR PUSH,ADCRY0 (1) + STOP ;THE CRY FLAG SHOULD PREVENT + + CONO 400000 ;TRY TO SET PDL-OV + SETO ;VIA PUSHJ + PUSHJ .+1 ;THE AND GATE OF + CONSO 200000 ;PUSH,PUSHJ TO FROM + STOP ;CPA PDL OV SET FAILED. SEE CPA PRINT + + CONO 400000 ;TRY TO SET VIA POPS + MOVEI 1 ;CHECK AND GATE OF + POP ;IR POPS, ET0, AD CRY 0(0) + CONSO 200000 ;TO CPA PDL OV SET + STOP + + CONO 400000 ;CHECK POPS FOR NOT + MOVE [XWD 1,1] ;SETTING PDL-OV + POP ;AD CRY0(0) SHOULD PREVENT + CONSZ 200000 ;SEE ABOVE + STOP + +MOD56: MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;CK IOB INPUT IOB1 + CONSO 10 ;PRINT FOR MISSING + STOP ;IOB BIT 32 + + JFCL 17,.+1 ;CHECK AROV STATUS + CONSZ 10 ;BIT 32 ON IOB + STOP ;SEE IOB1 PRINT + + CONSZ 404440 ;STATUS BITS NOT USED + STOP ;SHOULD BE 0 IOB1 PRINT + + CONO 200000 ;CLEAR THE WORLD + SETZ ;ON IOT THE + BLKI ;AND GATE OF IOT BLKI + CAI ;BLKO WHICH MAKES IOT BLK + CAME [XWD 1,1] ;FAILED LOOK AT THE + STOP ;BLKI INPUT + +MOD57: MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;A CONO WITH OUT + CONO ;BIT 32 CLEARED IT + JFCL 10,.+2 ;SEE ARF PRINT CPA CONO + STOP ;AND BIT 32 + + MOVSI 400000 ;SET AROV FLAG + ADD [XWD 400000,0] ;TRY TO CLEAR WITH + CONO 10 ;A CONO + JFCL 10,.+2 ;IT FAILED TO CLEAR + SKIPA ;CHECK ARF PRINT + STOP ;CPA CONO AND BIT 32 + + MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV FLAG + JRST 2,.+1(1) ;VIA RESET FLAGS + CONO ;CONO WITHOUT BIT29 + JFCL 1,.+2 ;CLEARED IT. SEE ARF PRINT + STOP ;CPA CONO SET AND IOB 29 + +MOD58: MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV FLAG + JRST 2,.+1(1) ;VIA RESET FLAGS + CONO 100 ;CONO FAIL TO CLEAR FOV + JFCL 1,.+2 ;SEE ARF PRINT + SKIPA ;CONO CPU AND IOB + STOP ;BIT 29 + + JFCL 1,.+1 ;AR FOV FLAG TO IOB + CONSZ 100 ;FAIL SEE IOB1 PRINT + STOP ;AND CPA STATUS, AR FOV (1) + + MOVSI 1,40000 + JFCL 17,.+1 ;SET FOV VIA + JRST 2,.+1(1) ;RESTOR FLAGS + CONSO 100 ;FOV TO IOB FAIL + STOP ;SEE IOB1 PRINT + + CONO 40000 ;CPA ADDR BREAK + CONSZ 40000 ;STATUS FAIL + STOP ;SEE CPA OR IOB1 PRINT + +MOD59: CONO 7 ;A CONO TO P1 MODIFIED + CONO PI,0 ;CPU AS A DEVICE. BIO + CONSO 7 ;CPA SEL IS CONFUSED + STOP + + CONO 10000 ;JUST CHECKING FOR + CAM . ;NOT NONEX AGAIN + CONSZ 10000 + STOP + + CONO PI,200000 ;SEE IF PAR ERR + CONSZ PI,200000 ;IS A ZERO + STOP + + CONO PI,400000 ;SEE IF POWER FAIL + CONSZ PI,400000 ;IS A ZERO + STOP + + MOVEI -1 ;WAIT FOR CLOCK + CONSZ 1000 ;FLAG TO SET + JRST .+3 + SOJG .-2 + STOP ;NO CLOCK FLAG + +MOD60: CONO PI,100000 ;CLEAR CPA PARITY ENB + CONO PI,40000 ;TRY TO SET IT + CONSO PI,100000 ;ALSO PI AS DEVICE + STOP + + CONO PI,40000 ;SET CPA PAR ENB + CONO PI, ;CK FOR NOT CLEAR + CONSO PI,100000 + STOP + + CONO PI,40000 ;SET CPA PAR ENB + CONO PI,100000 ;TRY TO CLEAR + CONSZ PI,100000 + STOP + + CONO PI,100000 ;CLEAR CPA PAR ENB + CONO PI, ;CK FOR NOT SET + CONSZ PI,100000 ;ON CONO + STOP + +MOD70: CLEAN ;SEE IOB1 + CONI PI,0 ;READ PI STATUS + TRNE 77400 ;A PI HOLD FLOP FAIL TO + STOP ;CLEAR OR IOB PI INPUT + MOVE 1,[MOVEI 40] ;STORE A MOVIT IN + MOVEM 1,(1) ;LOCATIONS 40 TO 60 + CAME 1,[MOVEI 57] + AOJA 1,.-2 + +DEFINE BLURB< +;CORE LOCATIONS 40 TO 60 CONTAIN A "MOVEI, ADDRESS" +;THEREFORE IF A INTERRUPT OCCURES THE MOVEI WILL +;STORE IN LOCATION ZERO THE ADDRESS OF THE EXECUTED +;INSTRUCTION +> +DEFINE PIO (A) +< CLEAN + CONO PI,PIOSET+A ;PIO FAIL TO SET IF LIGHT OUT + CONSO PI,A ;OTHERWISE FAIL TO READ + STOP ;STATUS SE P12-IOB1 PRINT + + CLEAN ;CHECK PIO CLEAR + CONO PI,PIOSET+A ;SET PIO + CONO PI,PIOCLR+A ;TRY TO CLEAR + CONSZ PI,A ;LIGHT=FAIL TO CLEAR PI2 PRINT + STOP ;NO LIGHT=STATUS FAIL IOB1 PRINT + + CLEAN ;CHECK FOR PI RESET + CONO PI,PIOSET+A ;ABILITY TO CLEAR PIO FLAG + CONO PI,10000 ;SEE PI2 PRINT, PI RESET + CONSZ PI,A ;TO PIO FLAGS + STOP + + CLEAN ;TEST PIO SET + CONO PI,PIOSET ;SEE PI2 PRINT + CONSZ PI,A ;IT SET FLOP WITHOUT + STOP ;A IOB BIT + + CLEAN ;TEST PIO CLR + CONO PI,PIOSET+A ;PERHAPS PI RESET OCCURED (NO IOB-23) + CONO PI,PIOCLR ;THE FLOP CLEARED + CONSO PI,A ;WITH OUT A IOB BIT + STOP ;SEE PI2 PRINT +> + +MOD71: CLEAN ;CHECK PIO SET + CONO PI,PIOSET+177 ;THE PI CHANNEL FLOPS + CONSO PI,177 ;FAILED TO SET + STOP ;CHECK PI1 PRINT + +MOD72: PIO 100 + PIO 40 + +MOD73: CHANEL MOD75 + PIO 20 + PIO 10 + +MOD74: PIO 4 + PIO 2 + PIO 1 +MOD75: CLEAN +MOD76: CLEAN + CONO PI,PIOSET+100 ;PI RESET OCCURED + CONO PI,0 ;WITH OUT IOB-23 + CONSO PI,100 ;SEE PI1 PRINT + STOP + + CLEAN ;PI RESET OCCURED + CONO PI,PIOSET+100 ;WITH OUT PI SEL + CONO ME,1000 ;SEE PI1 PRINT + CONSO PI,100 + STOP + + CLEAN + CONO PI,PIOSET+100 ;CHECK SELECTION + CONO ME,PIOCLR+100 ;ON CONO SETL. SEE + CONSO PI,100 ;PI1 PRINT CONO ME + STOP ;SHOULD NOT EFFECT PI +MOD77: CLEAN + CONO PI,ACT ;SET ACTIVE THEN + CONO PI,10000 ;TRY TO CLEAR VIA PI RESET + CONSZ PI,200 ;FAIL TO CLEAR SEE P11 PRINT + STOP ;THE PI ACT FLAG + CLEAN + CONO PI,ACT ;SET ACTIVE THEN + CONO PI,400 ;TRY TO CLEAR VIA CONO + CONSZ PI,200 ;AND BIT27 SEE PI1 + STOP ;PRINT ACTIVE FLAG + CLEAN + CONO PI,ACT ;SEE ACT VIA CONO BIT 28 + CONSO PI,200 ;LIGHT=0 FAIL TO SET + STOP ;LIGHT=(1) FAIL TO READ PI1-IOB1 + CLEAN + CONO PI,ACT ;SEE ABOVE + CONO PI,ACT + CONSO PI,200 + STOP ;PI ACT FAIL + +DEFINE NOTPIR (A)< + CLEAN ;ENABLE PRIORITY, EXPECT NO INTERRUPTS + CONO PI,ACT ;CK PI REQ LEVEL (PI2 PRINT). THE + CONSZ PI,A ;PIR (1) INPUT TO AND GATE OF PIH (0) + STOP ;BOTTEM OF PAGE. ALSO PIR-FLOP +> +MOD78: BLURB +;CHECK CHANNEL 1, PIR1 FLOP OR RI REQ1 LEVEL + NOTPIR 40000 +;CHECK CHANNEL 2, PIR2 FLOP OR PI REQ2 LEVEL + NOTPIR 20000 +;CHECK CHANNEL 3, PIR3 FLOP OR PI REQ3 LEVEL + NOTPIR 10000 +;CHECK CHANNEL 4, PIR4 FLOP OR PI REQ4 LEVEL + NOTPIR 4000 +;CHECK CHANNEL 5, PIR5 FLOP OR PI REQ5 LEVEL + NOTPIR 2000 +;CHECK CHANNEL 6, PIR6 FLOP OR PI REQ6 LEVEL + NOTPIR 1000 +;CHECK CHANNEL 7, PIR 7 FLOP OR PI REQ7 LEVEL + NOTPIR 400 + +DEFINE NOTREQ (A,B)< + CLEAN ;A TEST OF PI OK TO PREVENT INTERRUPT + CONO PI,PIREQ+A ;ACTIVE CLEARED, REQUEST FLAG SET + CONSZ PI,B ;INTR OCCURED PIOK INPUT, PIOK TO PI + STOP ;REQ FAIL. SEE BOTTEM PI2 PRINT +> + +MOD79: BLURB +;TEST PI ACT ABILITY TO PREVENT PI REQ1, INTERRUPT VIA ACTIVE + NOTREQ 100,40000 +;TEST PIOK2 ABILITY TO PREVENT PI REQ2, INTERRUPT + NOTREQ 40,20000 +;TEST PIOK3 ABILITY TO PREVENT PI REQ3, INTERRUPT + NOTREQ 20,10000 +;TEST PIOK4 ABILITY TO PREVENT PI REQ4, INTERRUPT + NOTREQ 10,4000 +;TEST PIOK5 ABILITY TO PREVENT PI REQ5, INTERRUPT + NOTREQ 4,2000 +;TEST PIOK6 ABILITY TO PREVENT PI REQ6, INTERRUPT + NOTREQ 2,1000 +;TEST PIOK7 ABILITY TO PREVENT PI REQ7, INTERRUPT + NOTREQ 1,400 + +DEFINE PIRCLR (A)< + CLEAN + CONO PI,PIREQ+A ;SET REQUEST FLOP BUT + SETZ ;NOT ACTIVE THEN CLEAR + CONO PI,10000+ACT ;REQUEST AND SET ACTIVE + SKIPE ;PI RESET FAILED TO CLEAR + STOP ;THE PIR FLAG.`SEE PI2 PRINT +> + +ZZ=100 ;CHECK CLEAR TO PIR FLAGS + REPEAT 7,< + PIRCLR ZZ + ZZ=ZZ/2> + +DEFINE FILAC< + MOVE 17,[MOVEI 17] ;FILL ACS WITH + MOVEM 17,(17) ;MOVEI TO AC 0 + CAME 17,[MOVEI 0] ;THE CURRENT LOC + SOJA 17,.-2 + MOVE 17,[MOVEI 17] +> + + FILAC + + CLEAN ;CHECK PC+1 INHIBIT ON INTERRUPT + MOVE [MOVEI] + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + SKIPA ;PC+1 INH ON PC1 PRINT FAIL + STOP ;SEE P1 CYC(1) INPUT + BLURB +MOD80: CLEAN + MOVE [MOVEI] ;IF LOC 0 EXECUTED C(0)=0 + CONO PI,ACT+PIREQ+100 ;CAUSE AN INTERRUPT + SKIPN 0 ;MA FM PICH (1) PULSE FAIL + STOP ;SEE MA1 PRINT + CLEAN + MOVE [MOVEI] + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT IF MA + CAIN 40 ;34 SET FAIL C(0)=40 + STOP ;SEE MA1 PRINT + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 2 ;MA 30 SET FAILED + STOP ;SEE MA1 PRINT + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 46 ;MA 33 SET OUCCRED ON CH1 + STOP ;SEE MA1 PRINT +MOD81: CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 52 ;MA 32 SET OCCURED ON CH1 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+100 ;CAUSE INTERRUPT + CAIN 43 ;MA 35 SET OUCCURED ON CH1 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + CAIN 40 ;MA 33 SET FAILED ON CH2 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+20 ;CAUSE INTERRUPT + CAIN 40 ;MA 32 SET FAILED ON CH4 + STOP ;SEE MA1 PRINT + + CLEAN + CONO PI,ACT+PIREQ+40 ;CAUSE INTERRUPT + CAIN 46 ;MA 34 SET OCCURED ON CH2 + STOP ;SEE MA1 PRINT + + BLURB +MOD82: CLEAN ;CHECK IF AN INTERRUPT OCCURES + SETZ 0 ;C(0) FILLED BY XCT OF MOVEI + CONO PI,ACT+PIREQ+177 ;ACTIVATE ALL INTERRUPTS + SKIPN 0 ;CK PIR FM IOB [1] PI1 PRINT + STOP ;AND PIRQ LEVEL PI1 PRINT + + CLEAN + SETZ 0 ;ON INTERRUPT NO PI HOLDS + CONO PI,ACT+PIREQ+177 ;WERE SET CHECK PIH + CONSO PI,77400 ;FM PICHRQ PULSE ON + STOP ;PI1 PRINT +DEFINE PIHCLR (A,B)< + CLEAN + CONO PI,PIREQ+ACT+A ;CAUSE INTERRUPT TO SET HOLD + CONO PI,10000 ;TRY TO CLEAR WITH PI RESET + CONSZ PI,B ;FAIL TO CLEAR SEE PI2 + STOP +> + +ZZ=100 +YY=40000 ;CHECK RESET TO PIH FLOPS +MOD83: REPEAT 7,< + PIHCLR ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> + + + BLURB +DEFINE OFFPIR (A,B)< + CLEAN + CONO PI,PIREQ+ACT+A ;SETS PIH. THEN CLR + JRST 10,.+1 ;PIR TURNED BACK ON + CONSZ PI,B ;PIR TURNED BACK ON.PIH(1) CLR PIR + STOP +> + +ZZ=100 +YY=40000 ;TEST THE RESET TO PIR +MOD85: REPEAT 7,< + OFFPIR ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> +DEFINE TSTREQ (A)< + CLEAN ;TEST ABILITY OF HOLD TO PREVENT INTERRUPT + CONO PI,ACT+PIREQ+A ;INTERRUPT SETS PIH IF SECOND + SETZ ;INTERRUPT OCCURED PIH (0) + CONO PI,ACT+PIREQ+A ;FAILED TO INHIBIT PIREQ + SKIPE ;SEE BOTTOM OF PI2 PRINT + STOP +> + + BLURB +ZZ=100 +MOD86: REPEAT 7,< + TSTREQ ZZ + ZZ=ZZ/2 +> + +DEFINE PIHOK (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;INTERRUPT SHOULD SET HOLD(PIH) + SETZ ;IF SECOND INTERRUPT OCCURS PIH + CONO PI,ACT+PIREQ+B ;FAILED TO PREVENT PIOK THUS + SKIPE ;ALLOWING INTERRUPT. SEE BOTTOM + STOP ;OF PI2 PRINT +> + BLURB + +ZZ=100 +YY=40 ;TEST PRIORITY CHAIN +MOD87: REPEAT 6,< + PIHOK ZZ,YY + ZZ=ZZ/2 + YY=YY/2 +> + +DEFINE SETPIH (A,B)< + CLEAN ;CHECK REQ AND PIH FLOPS + CONO PI,ACT+PIREQ+A ;CAUSE INTERRUPT, SHOULD SET + CONSO PI,B ;HOLD (PIH) SEE PI2 PRINT + STOP ;BOTH PIR+PIH SHOULD BE SET +> +MOD88: SETPIH 100,40000 ;CH 1 + SETPIH 40,20000 ;CH 2 + CHANEL MOD90 +MOD89: SETPIH 20,10000 ;CH 3 + SETPIH 10,4000 ;CH 4 + SETPIH 4,2000 ;CH 5 + SETPIH 2,1000 ;CH 6 + SETPIH 1,400 ;CH 7 +MOD90: CLEAN + +DEFINE PIADDR (A,B)< + CLEAN ;CHECK ABILITY TO INTERRUPT TO + SETZ ;LOC 40-60 SHOULD SEE MOVEI + CONO PI,ACT+PIREQ+A ;ACTIVATE AN INTERRUPT. IF C(0)=0 + CAIE B ;NO INTERRUPT OCCURED, C(0)=ADDR + STOP ;OF INTERRUPT EXECUTED +> + + BLURB +MOD91: PIADDR 100,42 ;CH 1 TO LOC 42 + PIADDR 40,44 ;CH 2 TO LOC 44 + CHANEL MOD93 +MOD92: PIADDR 20,46 ;CH 3 TO LOC 46 + PIADDR 10,50 ;CH 4 TO LOC 50 + PIADDR 4,52 ;CH 5 TO LOC 52 + PIADDR 2,54 ;CH 6 TO LOC 54 + PIADDR 1,56 ;CH 7 TO LOC 56 + +MOD93: CLEAN + +DEFINE TWOPIR (A,B)< + CLEAN ;CK PIR(0) ABILITY TO PREVENT INTERRUPT + SETZ ;LOWER CHANNEL SHOULD BE INHIBIT + CONO PI,ACT+PIREQ+A ;TURN ON 2 PIR FLOPS. CHECK INT LOC + CAIN B ;PIR (0) INPUT TO PIOK + STOP +> + BLURB +MOD94: TWOPIR 100,46 ;CH 1+2 + TWOPIR 40,46 ;CH 2+3 + CHANEL MOD96 +MOD95: TWOPIR 20,56 ;CH 3+4 + TWOPIR 10,52 ;CH 4+5 + TWOPIR 4,56 ;CH 5+6 + TWOPIR 2,56 ;CH 6+7 +MOD96: CLEAN +DEFINE MULPIR (A,B)< + CLEAN + SETZ ;TEST MULTI REQUEST BREAK ON + CONO PI,ACT+PIREQ+A ;CORRECT CHANNEL TO CORRECT + CAIE B ;LOC C(0)=INTERRUPTED ADDR + STOP +> + + BLURB +MOD97: MULPIR 100,42 + MULPIR 40,44 + CHANEL MOD99 +MOD98: MULPIR 20,46 + MULPIR 10,50 + MULPIR 4,52 + MULPIR 2,54 + MULPIR 1,56 +MOD99: CLEAN + +DEFINE JENOK (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;SET THE PIH FLOP THEN REMOVE + CONO PI,DACT ;THE PIOK LEVELS VIA NO ACTIVE + JRST 10,.+1 ;RELEASE INTERRUPT SHOULD NOT + CONSO PI,B ;EFFECT PIH FLOP UNLESS AND + STOP +> + +MOD100: JENOK 100,40000 ;PIH 1 + JENOK 40,20000 ;PIH 2 + CHANEL MOD102 +MOD101: JENOK 20,10000 ;PIH 3 + JENOK 10,4000 ;PIH 4 + JENOK 4,2000 ;PIH 5 + JENOK 2,1000 ;PIH 6 + JENOK 1,400 ;PIH 7 +MOD102: CLEAN + +DEFINE ONEPIH (A,B)< + CLEAN + CONO PI,ACT+PIREQ+A ;CHECK FOR REDUNDANT + CONSZ PI,B ;PIH FLAGS.SEE TOP PI2 PRINT + STOP +> + +WW=20000 +ZZ=100 +YY=37400 +MOD103: REPEAT 7,< + ONEPIH ZZ,YY + YY=YY+WW + WW=WW/2 + ZZ=ZZ/2 +> + +DEFINE FASTPIH (A,B,C)< + CLEAN + CONO PI,ACT+PIREQ+B ;SET PIH AND PIH ON + CONO PI,ACT+PIREQ+A ;NEXT HIGHER CHANNEL + JRST 10,.+1 ;SHOULD RELEASE ONLY HIGH CH + CONSO PI,C ;CHECK FOR FAST TURN OFF (PIH) + STOP +> + +MOD104: FASTPIH 100,40,20000 + CHANEL MOD106 +MOD105: FASTPIH 40,20,10000 + FASTPIH 20,10,4000 + FASTPIH 10,4,2000 + FASTPIH 4,2,1000 + FASTPIH 2,1,400 +MOD106: CLEAN + +ZZ=100 +YY=40000 +MOD107: REPEAT 7,< + CLEAN + CONO PI,PIOSET+ACT+ZZ ;SET CHANNEL IOB SHOULD + CONSZ PI,YY ;NOT HAVE DATA. CHECK AND + STOP ;OF PIR STB, IOB PIRQ, PIO + ZZ=ZZ/2 ;THE PIRQ INPUT. INTERRUPT NOT + YY=YY/2 ;HAVE OCCURED. SEE PI2 PRINT> + +DEFINE CPINTR (A)< ;PROVIDE AN INTERRUPT TO PI + MOVSI 400000 ;BUS FROM PROCESSOR VIA ARROV + ADD ;AND OTHER SOURCES + CONO 42220+A> + +DEFINE IOBRQ (A,B,C)< + CLEAN ;CLEAR THE WORLD EXCEPT CP + CPINTR A + CONO PI,PIOSET+ACT+B ;TURN ON CK FLOP TO ALLOW + CONSO PI,C ;INTERRUPT. CK INPUT TO PIR FLOP + STOP +> + +ZZ=1 +YY=40000 +MOD108: REPEAT 7,< ;TEST FOR NO INTERRUPT FROM BUSS + CLEAN ;CLEAR WORLD + CPINTR ZZ ;INTERRUPT TO BUSS INPUT TO PIR + CONSZ PI,YY ;PIO=0 EXPECT NO INTERRUPT. SEE + STOP + ZZ=ZZ+1 ;IOB PIRQ,PIO(1), ON PI2 PRINT + YY=YY/2 +> + +MOD109: IOBRQ 1,100,77400 + IOBRQ 2,40,77400 + CHANEL MOD111 +MOD110: IOBRQ 3,20,77400 + IOBRQ 4,10,77400 + IOBRQ 5,4,77400 + IOBRQ 6,2,77400 + IOBRQ 7,1,77400 +MOD111: CLEAN + +MOD115: CLEAN ;TEST CP FOR NO INTERRUPT + CONO 1 ;ASSIGN A CHANNEL TO + CONO PI,PIG0 ;PROCESSOR, ENABLE PI. IF + CONSZ PI,77400 ;INTERRUPT PROCESS PUT BIT ON PI BUSS + STOP ;CHECK TOB IPRQ ON CPA PRINT + + BLURB + +MOD116: CLEAN + CPINTR 1 ;ENABLE PROCESSOR INTERRUPT + SETZ + CONO PI,PIG0 ;PROCESSOR DECODE TO PI BUSS + CAIE 42 ;FAIL, SEE TOP RIGHT OF CPU + STOP ;PRINT C(0)=ADDR OF XCT INST + +MOD117: CLEAN + CPINTR 2 ;ENABLE PROCESSOR INTERRUPT + SETZ ;WILL BE FILLED BY ADDR OF XCT INST + CONO PI,PIG0 ;ACTIVATE PI SYS + CAIE 44 ;EXPECT CHANNEL 2 + STOP ;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + CHANEL MOD120 +MOD118: CLEAN + CPINTR 4 ;ENABLE PROCESSOR INTERRUPT + SETZ ;WILL BE FILL BY ADDR OF XCT INST + CONO PI,PIG0 ;ACT PI SYS + CAIE 50 ;EXPECT CHANNEL 4 + STOP ;IF C(0)=0 NO INTERRUPT. SEE CPA PRINT + + BLURB +MOD119: CLEAN ;ENABLE AN INTERRUPT ON CHANNEL 1-7 + CPINTR 7 ;CHECK PROCESSOR INTERRUPT + CONO PI,PIG0 + CAIE 56 + STOP ;CH 7 FAIL TO INTERRUPT + CONO 6 + CAIE 54 + STOP ;CH 6 FAIL TO INTERRUPT + CONO 5 + CAIE 52 + STOP ;CH 5 FAIL TO INTERRUPT + CONO 4 + CAIE 50 + STOP ;CH 4 FAIL TO INTERRUPT + CONO 3 + CAIE 46 + STOP ;CH 3 FAIL TO INTERRUPT + CONO 2 + CAIE 44 + STOP ;CH 2 FAIL TO INTERRUPT + CONO 1 + CAIE 42 + STOP ;CH 1 FAIL TO INTERRUPT +MOD120: CLEAN + + BLURB +MOD121: CLEAN + SETZ ;C(0) MODIFIED IF INTERRUPT + CONO PI,PIG0 ;ENABLE PI + JFCL 10,.+1 ;CLEAR AROV + CONO 20+1 ;ENABLE AROV CH1 + SKIPE ;INTERRUPT OCCURED SEE CPA PRINT + STOP ;CPA AROV EN(1) AND GATE TO PIRQ + +MOD122: CLEAN + SETZ + CONO PI,PIG0 + MOVSI 400000 + ADD ;SET AROV + CONO 1 ;AROV CNT NO ENABLE + SKIPE ;INT OCCURED SEE CPU PRINT + STOP + +MOD123: CLEAN + SETZ + CONO PI,PIG0 ;ENABLE PI + MOVSI 400000 ;SET AROV + ADD ;FLOP + CONO 21 ;FLOP AND AROV (EN) + CAIE 42 ;NO INTERRUPT CHECK AND GATE + STOP ;TO PIRQ ON CPU PRINT + +MOD124: CLEAN + SETZ + CONO PI,PIG0 ;ENABLE PI + CONSO 1000 + JRST .-1 ;WAIT IF CLK=0 + CONO 2001 ;SET CLOCK ENABLE + CAIE 42 ;SHOULD INTERRUPT TO LOC 42 + STOP ;SEE CPU PRINT AND CLK ENABLE + + BLURB +MOD125: CLEAN + CONO PI,PIG0 ;ENABLE PISYS + CONO 1 ;TRY TO SET NONEX MEM + SETZ ;NO INTERRUPT SET + CAM -1 ;NONEX INPUT TO + CAIE 42 ;PIRQ ON CPA + STOP ;PRINT + +MOD127: CLEAN + CONO PI,PIG0 ;ENABLE PI + CONO 1 ;CPU TO CHANNEL 1 + SETO ;SET THE + PUSHJ .+1 ;PDL FLAG + CAIE 42 ;IT FAILED TO INTERRUPT + STOP ;SEE ITS INPUT TO PIRQ ON CPA PRINT + +MOD128: CLEAN + CONO PI,PIG0 ;ENABLE PI + CONO 1 + SETZ + CONO PI,40000 ;ENABLE PAR + SKIPE ;INTERRUPT OCCURED + STOP ;CHECK CPU PIRQ INPUT + +MOD129: CLEAN + JFCL 1,.+1 ;CLEAR FOV + CONO PI,PIG0 ;ENABLE PI + SETZ + CONO PI,201 ;FOV ENABLE. INTERRUPT + SKIPE ;OCCURED CK PIRQ INPUTS + STOP ;ON CPU PRINT + +MOD130: CLEAN + SFLAG 40000 ;SET FOV FLAG + SETZ + CONO PI,PIG0 ;ENABLE PI + CONO 1 ;CH1 TO PROCESSOR + SKIPE ;FOV ENABLE FAIL TO PREVENT + STOP ;INTERRUPT SEE CPU PRINT + BLURB +MOD131: CLEAN + SFLAG 40000 ;SET FOV FLAG + CONO PI,PIG0 ;ENABLE PI + SETZ + CONO 201 ;ENABLE FOV+CH1 + CAIE 42 ;FAIL TO INTERRUPT SEE + STOP ;PIRQ INPUTS ON CPA PRINT +MOD132: CLEAN + CONO PI,ACT+PIREQ+100 ;INTERRUPT + REPEAT ^D10, +< JRST .+1> + CONSO PI,40000 ;PIH WAS RESET BY JRST (NO BIT 9) + STOP ;SEE PI RESTORE LOGIC ON PI1 PRINT +MOD133: CLEAN + CONO PI,ACT+PIREQ+100 ;INTERRUPT + REPEAT ^D10, +< CAI 10,0> + CONSO PI,40000 ;PIH WAS RESET BY BIT9(NO JRST) + STOP ;SEE PI RESTORE LOGIC ON PI1 PRINT +MOD134: CLEAN ;TEST PI CYC(1) INPUT TO PI OV + SETO ;PROVIDE ALL CONDITIONS TO SET + BLKI ;PI OV EXCEPT PI CYC(1) + CONO PI,ACT+PIREQ+100 ;IF C(0)=43 REPLACE THE B137 + CAIE 42 ;AND GATE TO PI OV SEE + STOP ;PI1 PRINT +MOD135: CLEAN + MOVE [BLKO ME,0] ;PUT A BLKI IN + MOVEM 42 ;LOC 42 + SETZ ;PROVIDE FOR NO OVERFLOW + CONO PI,ACT+PIREQ+100 ;INTERRUPT. IF C(0)=43 + CAIN 43 ;AND GATE TO PIOU THE AD + STOP ;CRY0(1) INPUT FAILED. SEE PI1 PRINT + JRST MOD136 +;HOLE LEFT FOR RELOCATION TEST + + +MOD136: CLEAN + MOVE [AOS] ;PUT AN AOS IN LOC 42 + MOVEM 42 ;PROVIDE ALL INPUTS TO + SETO ;PIOU EXCEPT IOT BLK + CONO PI,ACT+PIREQ+100 ;CANT TEST GATE + SKIPE ;THINK UNNECESSARY + STOP ;BUT DO IT ANYWAY + +MOD137: CLEAN + MOVE [BLKO ME,0] ;SETUP A BLKO TO SET + MOVEM 42 ;THE PI OV FLOP + SETO + CONO PI,ACT+PIREQ+100 ;CAUSE FIRST INTERRUPT + SETZ ;PI SHOULD SET AT THIS + CLEAN ;TIME, IF PI OV IS NOT + CONO PI,ACT+PIREQ+100 ;CLEARED AT ST1 NEXT INTERRUPT + CAIN 43 ;WILL OCCUR AT LOC 43 + STOP ;SET PI 1 PRINT. + +MOD140: CLEAN + MOVE [BLKO ME,0] ;PUT A BLKO IN LOC 42 + MOVEM 42 ;WHEN EXECUTED THIS SHOULD + SETO ;SET PIOV. IF PI OV IS NOT + CONO PI,ACT+PIREQ+100 ;CONNECTED TO MA REGISTER + ANDI -1 ;42 WILL BE EXECUTED TWICE + CAIN 1 ;SEE MA 35 SET AT IT0 + STOP ;AND PI OV(1) ON MA1 PRINT + +MOD141: CLEAN ;CHECK BLKO NOT RESET PIH + MOVE [MOVEI 42] ;RESTORE LOC 42 + MOVEM 42 ;TO MOVEI + CONO PI,PIREQ+ACT+100 ;SET PIH VIA INTERRUPT + SETZ ;IF PIH1(0) THEN PI CYC(1) + BLKO ME,0 ;INPUT TO PI RESTORE FAILED + + CAI + CONSO PI,40000 ;SET PI1 PRINT + STOP + +MOD142: CLEAN ;CHECK PI RESTORE LOGIC + MOVE [DATAO ME,0] ;DATAO AND PIOV SHOULD PRODUCE + MOVEM 42 ;PI RESTORE. CHECK THIS INPUT + CONO PI,PIREQ+ACT+100 ;TO PI RESTORE ON PI1 PRINT + CONSZ PI,40000 ;ALSO CHECK PI CYC(1) INPUT + STOP ;ON SAME PAGE + +MOD143: CLEAN + MOVE [DATAI ME,0] ;IF MACHINE HANGS OR + MOVEM 42 ;PIH(1) CHECK DATAO/DATAI + CONO PI,PIREQ+ACT+100 ;INPUT TO PRIORITY SYSTEM + CONSZ PI,40000 ;SEE PI1 PRINT (LOWER LEFT) + STOP + +MOD144: CLEAN + MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + MOVEM 42 ;POINTER SHOULD SET PIOV. THE + SETO ;INST AT LOC 43 A (MOVEI 43) + CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + CONSO PI,40000 ;PI OV AND ASSOCIATED LOGIC + STOP ;ON PI1 PRINT + +MOD145: CLEAN + MOVE [BLKO ME,0] ;INTERRUPT TO A BLKO WHOS + MOVEM 42 ;POINTER SHOULD SET PIOV. THE + SETO ;INST AT LOC 43 A (MOVEI 43) + CONO PI,PIREQ+ACT+100 ;SHOULD BE EXECUTED. CHECK + CAIE 43 ;CHECK PI OV INPUT TO MA35 + STOP ;SET ON MA1 PRINT + +MOD147: CLEAN ;TEST PI CYC(0) GET TO PIR STB + MOVE [BLKO ME,0] ;PUT A BLKO WITH POINTER TO + MOVEM 44 ;SET PI OV IN CHANNEL 2 BLKO + MOVE [MOVEI 1,42] ;WILL SET NONEX MEM CAUSING + MOVEM 42 ;INTERRUPT ON CH1 THE INSTRUCTION + HRROI -2 ;AT LOC 45 MUST BE EXECUTED + CONO PI,PIOSET+100 + CONO 1 ;OR PI CYC(0) GATE TO PIR STB FAILED + CONO PI,PIREQ+ACT+40 + CAIE 45 ;AND OF MC RQ PULSE PICYC(0) + STOP + CAIE 1,42 + STOP ;NONEX FAIL TO INTERRUPT CH1 + +MOD148: CLEAN ;PUT A SKIPA IN THE + MOVE [SKIPA] ;INTERRUPT SPOT + MOVEM 42 + CONO PI,PIREQ+ACT+100 + STOP + +MOD149: CLEAN + MOVE [JSR .+4] + MOVEM 42 + CONO PI,PIREQ+ACT+100 + STOP + 0 + +MOD150: CLEAN ;INTERRUPT TO A PUSHJ + MOVE [PUSHJ .+4] + MOVEM 42 + MOVSI -1 + CONO PI,ACT+PIREQ+100 + ANDI 1,-1 + CAIE 1,.-1 + STOP ;PC STORED INCORRECTLY + CAIE 1 ;THE PUSHJ + STOP ;POINTER WORD IN ERROR + CLEAN +MOD151: CLEAN + MOVE [MOVEI 43] ;TEST CLEAR MA ON INTERRUPT + MOVEM 43 + MOVE [BLKO ME,4] + MOVEM 42 + SETOB 4 + HRRI 4,4 + CONO PI,PIREQ+ACT+100 + CAIE 43 + STOP + + +MOD152: SETZM 60 ;TEST TRAP TO 60 + MOVE [JSP MOD153] ;GO HERE IF TRAP TO 40 + MOVEM 41 ;ERROR + MOVE [JSP MOD153+1] + MOVEM 61 ;OK TRAP + XWD 100000,0 ;OP CODE 100-127 + STOP +MOD153: STOP + SKIPN 60 ;NOTHING STORED IN C(60) + STOP + +MOD154: SKIPN USMOD# ;TEST RELOC IF SPECIFIED + JRST MOD195 + +DEFINE UMON< + CONO 634440 ;PREPARE TO TURN ON USER + CONO PI,10000 ;MODE. CL PI, IOB, RELOC + DATAO [XWD -1,0]> + +DEFINE UMOFF< + MOVE [JSP .+3] ;TURN OFF USER MODE VIA + MOVEM 41 ;UUO. PROG RETURNS TO END + XWD 040000,0 ;OF MACRO. PC+FLAGS STORED .+1 +> + +DEFINE HOLD< + JUMPA . ;MACH ERROR. HALT MAY TRAP + JUMP .+1 ;SO WAITING FOR OPERATOR +> + +MOD160: JRST 2,@[XWD 0,.+1] ;CLEAR EX IOT USER, IF LIGHT + JSP .+1 ;OUT FLAG TRANSFER TO AR FAIL + + TLNE UMIOT ;BIT 6. OR FLOP FAIL TO CLEAR + STOP + + JRST 2,@[XWD UMIOT,.+1] ;SET THEN CLEAR EX IOT USER + JRST 2,@[XWD 0,.+1] ;CK AND GATE ARF FLAGS FM BR (J), + JSP .+1 ;BR6(0) FAIL TO CLEAR + + TLNE UMIOT ;EX IOT USER ON EX PRINT + STOP + + JRST 2,@[XWD 0,.+1] ;CLEAR THEN SET EX IOT USER + JRST 2,@[XWD UMIOT,.+1] ;IF LIGHT=1 FLAGS TO AR FAIL + JSP .+1 ;IF LIGHT=0 FLOP FAIL TO SET. CK + TLNN UMIOT ;BR6(1), EX USER(0), ARF FLAGS(J), EX PRINT + STOP + + JRST 2,@[XWD 0,.+1] ;CLEAR USER. IOB1 PRINT + CONSZ 1B20 ;READ PROCESSOR STATUS + STOP + + JRST 2,@[XWD UMIOT,.+1] ;SET USER IOB1 PRINT + CONSO 1B20 ;CPA STATUS FAIL + STOP + +MOD161: UMOFF + TLNE USERF ;FLAGS TO AR BIT5 (USER MODE) FAIL + HOLD + +;TRY TO TURN ON USER MODE VIA RESTORE FLAGS THEN +;TURN OFF VIA UU0. SEE EX PRINT + +MOD162: MOVE [JSP MD162A] + MOVEM 41 + UMON + JRST 2,@[XWD USERF+UMIOT,MD162B] ;ALSO PRIVI IO + +MD162A: HOLD ;TRAP HERE, NO MEMORY ACCESS, USER MODE + +MD162B: UMOFF + TLNN USERF ;JSP STORED FLAGS IN C(0) + HOLD + +;TEST UUO TURN OFF OF USER MODE. PRIVI I/O ALLOWS +;IOT TO OCCUR IN CASE USER STILL ON. SEE EX PRINT + +MOD163: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + UMOFF + UMOFF + TLNE USERF ;FLAGS STORED VIA JSP AT 41 + HOLD + +MOD164: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;SET USER+PRIV I/O + MOVE [JUMPA .+3] ;SET RETURN FOR THE + MOVEM 41 ;UUO. EX ILL OP SHOULD + XWD 40000,0 ;NOT TURN OFF USER FLAG + JSP .+1 ;BECAUSE AR FM PC(J)(ET0) + TLNN USERF ;PULSE IF NOT PRESENT. SEE EX + HOLD + UMOFF + +;PERFORM A UUO. THE PURPOSE OF THIS IS TO SET THE +;EX ILL OP FLOP. THE FLOP SHOULD BE CLEARED BY THE +;JSP AT 41. IF HOWEVER THIS DID NOT OCCUR, ANY +;STORE PC INSTRUCTION IN USER MODE WOULD CLEAR +;USER MODE. THIS TEST THEREFORE TEST THE CLEAR +;TO EX ILL OP VIA AR FM PC(J) (ET0) ON EX PRINT + +MOD165: UMOFF + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + JSP .+1 ;DONT FORGET FAIL TO CLEAR + JSP .+1 ;MAY BE PHONEY SET EX ILL OP + TLNN USERF ;OR PHONEY CLEAR EX-USER + HOLD + UMOFF + +MOD166: UMOFF + UMON + JRST 1,.+1 ;SET USER MODE VIA ET0 + JSP .+1 ;IR JRST, IR12(1). IT FAILED + TLNN USERF ;REPLACE B135 ON EX PRINT + HOLD + UMOFF + +;THIS TEST WILL TRY TO SET THE PRIV I/O BIT WHEN IN +;USER MODE. IF THE EX IOT USER FLOP SETS EX USER (0) INPUT +;TO THE FLAG FAILED SEE EX PRINT + +MOD167: UMON + JRST 2,@[XWD USERF,.+1] ;SET USER + JRST 2,@[XWD USERF+UMIOT,.+1] ;TRY TO SET PRIV I/O + JSP .+1 + TLNE UMIOT + HOLD + UMOFF + +MOD170: UMON + JRST 2,@[XWD USERF,.+1] ;SET USER MODE + MOVE [JSP .+4] ;SET TRAP RETURN + MOVEM 41 ;1 PAST THE IOT INST + SETZM 40 ;FAIL TO TRAP. EX ALLOW IOT + XWD 700000,0 ;ALLOWED THE IOT IN USER + SKIPN 40 ;MODE. SEE EX PRINT + HOLD + UMOFF + +MOD171: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;SET PRIVI+USER + MOVE [JSP .+4] ;SET TRAP RETURN 1 PAST + MOVEM 41 ;THE TRAP INST + SETZB 40 ;THE EX IOT USER FLOP + XWD 700000,0 ;SHOULD ALLOW THE IOT + CAI + SKIPE 40 ;CHECK EX ALLOW IOT. EX PRINT + HOLD + UMOFF + +MOD172: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] ;USER AND PRIV I/O + MOVE [JSP .+3] ;THEN CAUSE A PI REQUEST + MOVEM 42 ;PI CYC(1) SHOULD SET EX PI SYNC + CONO PI,ACT+PIREQ+100 ;WHICH SHOULD CLEAR EX USER + JSP .+1 ;AT ET1 OF JSP AT 42. IT + TLNE USERF ;FAILED. SEE EX PRINT + HOLD + +;THIS TEST WILL INSURE THAT EX ILL OP IS CLEARED +;BY IOT BLK. THIS LOGIC IS NECESSARY FOR RETURNING TO +;THE PROPER RELOCATION WHEN A UUO IS INTERRUPTED AND +;MUST BE RE EXECUTED. + + +MOD173: MOVE [JUMPA .+3] + MOVEM 41 + XWD 040000,0 ;PERHAPS TURN OFF USER MODE + SETZ ;PREVIOUS UUO SET EX ILL OP + BLKI ;THIS IOT SHOULD CLEAR IT + CAI + JRST 2,@[XWD USERF,.+1] ;NOW ENTER USER MODE IF + JSP .+1 ;EX ILL OP SET JSP WILL CLEAR + JSP .+1 ;EX USER FLAG. SEE EX PRINT + TLNN USERF + HOLD + UMOFF + +MOD174: UMON + JRST 2,@[XWD USERF,.+1] + MOVE [JSP .+4] ;SET RETURN + MOVEM 41 ;SEE IR2 PRINT + SETZM 40 ;IR JRST A IR10(1) + HALT . ;THIS HALT SHOULD TRAP + SKIPN 40 ;BUT DID NOT + HOLD + UMOFF + +MOD175: UMON + JRST 2,@[XWD USERF,.+1] + MOVE [JSP .+4] ;SET RETURN + MOVEM 41 ;SEE IR2 PRINT + SETZM 40 ;THE ENABLE PI SHOULD + JEN .+1 ;TRAP TO 40 + SKIPN 40 ;BUT DID NOT + HOLD + UMOFF + +MOD176: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + MOVE [JSP .+4] ;SET PRIVI IO BIT + MOVEM 41 ;THIS SHOULD PREVENT JRST IO, + SETZM 40 ;FROM TRAPPING. SEE IR UUO + JRST 10,.+1 ;ON IR2 PRINT + SKIPE 40 + HOLD + UMOFF + +MOD177: UMON + JRST 1,.+1 ;SEE IF JUST A PLAIN + MOVE [JSP .+4] ;JRST WILL TRAP + MOVEM 41 ;SEE IR2 PRINT FOR + SETZM 40 ;DECODE IR-UUO + JRST .+1 + SKIPE 40 + HOLD + UMOFF + +MOD178: UMON + JRST 1,.+1 ;SEE IF IR 9+10 WITH OUT + MOVE [JSP .+4] ;A JRST WILL TRAP + MOVEM 41 ;SEE IR UUO ON IR-2 PRINT + SETZM 40 + JFCL 14,.+1 + SKIPE 40 + HOLD + UMOFF + +;CHECK THAT AN IOT AT INTERRUPT LEVEL WILL NOT LOOK +;LIKE A UUO SEE IR-2 PRINT + +MOD179: UMON + CONO 1 + MOVE [BLKI] + MOVEM 42 + MOVE [JSP M179+1] + MOVEM 41 + SETZB 40 + MOVE [JSP M179] + MOVEM 43 + SETO + CONO PI,ACT+PIOSET+100 + JRST 1,.+1 + CAM -1 +M179: SKIPE 40 + HOLD + UMOFF + +MODXX1: UMON ;TEST TRAP (60) TURN OFF OF + MOVE [JSP .+5] ;USER MODE + MOVEM 61 + JRST 1,.+1 + XWD 100000,0 ;OP CODE 100 + HOLD ;IT FAILED TO TRAP + JSP .+1 ;IT SHOULD ALSO + TLNE USERF ;TURN OFF USER MODE + HOLD + +MODXX2: UMON + MOVE [JSP .+4] ;TEST IR TO C(40) + MOVEM 41 ;FOR BITS 1,2,3 + JRST 2,@[XWD USERF,.+1] + XWD 700000,0 ;AN IOT + MOVE 40 + CAME [XWD 700000,0] + HOLD + +MOD180: UMON + DATAO [0] ;GET RID OF PROTECT REG + + CONO 1 + CONO PI,ACT+PIOSET+100 + MOVE [JSP M180] + MOVEM 42 + MOVE [JSP .+4] + MOVEM 41 + JRST 2,@[XWD USERF+UMIOT,.+1] ;ENABLE USER + JUMPA . ;THIS INST SHOULD SET PROT +M180: CONSO PROT ;HERE IF FLAG FAIL + HOLD + CONSZ NONEX ;NEVER NON EX WITH PROT + HOLD + CONO 1B22 ;FAIL TO CLEAR PROT + CONSZ PROT ;FLAG SEE CPA PRINT + HOLD + +DEFINE EXCT (A) < + MOVE [JSP .+3] ;EXECUTE A UUO + MOVEM 41 ;AND STORE FLAGS + XWD A,0 ;IN AC0. +> +;CHECK UUO 0 TRAPING TO EXEC MODE AND UUO 1-37 +;NOT TRAPING TO EXEC MODE...1P19 ON EX CONTROL PRINT. + +MOD18A: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 0 + EXCT 0 + TLNE USERF ;USER MODE ON?..CK 1P19 EX CONT PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 1000 + TLNN USERF ;CK BIT 8 INPUT TO 1P19 EX CONTROL PRINT. + HOLD + + + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 2000 + TLNN USERF ;CK BIT 7 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 4000 + TLNN USERF ;CK BIT 6 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 10000 + TLNN USERF ;CK BIT 5 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + + UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + EXCT 20000 + TLNN USERF ;CK BIT 4 INPUT TO 1P19 EX CONTROL PNT. + HOLD + + UMON + JRST 2,@[XWD USERF,.+1] + MOVE 0,[JSP .+3] + MOVEM 0,41 + XWD 700000,0 ;XCT AN IOT. + JSP .+1 ;GET FLAGS. + TLNE 0,USERF ;USER MODE STILL ON? + HOLD ;YES. CK EX NON REL UUO + ;EX PRINT. + +MOD181: MOVE 10040 ;SAVE THESE LOC + SKIPN SAV40 + MOVEM SAV40 + MOVE 10041 + SKIPN SAV41 + MOVEM SAV41 + MOVE 10042 + SKIPN SAV42 + MOVEM SAV42 + MOVE 10043 + SKIPN SAV43 + MOVEM SAV43 + JRST .+5 +SAV40: 0 +SAV41: 0 +SAV42: 0 +SAV43: 0 + +;TEST THE SETTING OF PROTECT FLAG BY MOVING A +;TWO INST PROG TO AC 1+2 PROG IS CAM X AND UU0 +;WITH TRAP SET TO REAL WORLD THE CAM SHOULD TEST +;THE PROT FLAG + +X=2000 + +DEFINE LAC (A)< + UMON + DATAO [0] + MOVE 1,[CAM A] + MOVSI 2,40000 + + CONO PI,ACT+PIOSET+100 + CONO 1 + MOVE [JSP .+5] + MOVEM 42 + MOVE [JSP .+3] + MOVEM 41 ;SET TRAP RETURN + JRST 1,1 ;TURN ON USER MODE + CONSO PROT ;THE PROT FLAG SHOULD BE SET + HOLD + CONSZ NONEX + HOLD +> +MOD182: REPEAT 10,< + LAC X + X=X+X> + +MOD185: SETZM 40 ;TEST FOR TRAP TO REAL LOC 40 + MOVE [JSP MOD186-1] ;NOT RELOCATED 40 + MOVEM 41 ;SETUP TRAP FOR OK + DATAO [XWD -1,10000] + MOVE [JSP MOD186] ;SETUP TRAP FOR ERR + MOVEM 10041 + JRST 1,.+1-10000 ;IF THE UUO TRAPS TO + XWD 40000,0 ;RELOCATED 40 PROG WILL HOLD + SKIPN 40 ;AT THIS POINT + +MOD186: HOLD + JSP .+1 ;IF USER MODE STILL ON + TLNE USERF ;THEN WAIT HERE + HOLD + +;TEST FOR INTERRUPT TO REAL PI (NOT RELOCATED) +MOD190: UMON + MOVE [JSP MOD191] ;SET ERROR PI RET + MOVEM 10042 + MOVE [JSP MOD191+1] ;SET OK PI + MOVEM 42 + DATAO [XWD -1,10000] + JRST 2,@[XWD USERF+UMIOT,.+1-10000] + CONO PI,ACT+PIREQ+100 ;SHOULD INTERRUPT + HOLD +MOD191: HOLD + UMOFF +;TEST FOR NOT RELOCATION OF AC'S +MOD192: SETZM 5 + UMON + MOVE [JSP M192] + MOVEM 41 + DATAO [XWD -1,10000] + JRST 1,.+1-10000 + MOVEI 5,12345 + XWD 040000,0 ;UUO TO TERM USER MODE +M192: CAIE 5,12345 + HOLD +MOD195: SKIPE FPTRAP ;SEE IF SWITCH SAYS FP + JRST MOD196 + MOVE [JSP .+3] ;TEST THE ABILITY TO + MOVEM 61 ;TRAP A FP INST + FADRI -1 ;THIS INST SHOULD TRAP + MOVE 2,.-1 ;FAIL TO TRAP PROPERLY + CAME 2,60 + STOP + JRST MOD197 ;WHAT ABOUT SWITCHS +MOD196: MOVE [JSP .+4] ;TEST FOR FP NOT TRAP + SETZM 60 + MOVEM 61 ;SET RETURN + FADRI -1 + SKIPE 60 ;DOES MACH HAVE FP + STOP +;CHECK BYT7A SETING BYF6. +MOD19X: CONO 635550 ;CLR THE WORLD. + MOVE [JSP MOD19B] + MOVEM 42 ;SETUP FOR INT ON CH # 1. + CONO PI,12300 ;SETUP PI. + MOVE 1,POINTR ;PUT POINTER INTO AC1. + CONO 1000 ;CLR CLOCK FLAG. + CONSO 1000 ;WAIT FOR + JRST .-1 ;CLOCK FLAG. + CONO 3001 ;SET INT ENABLE AND PI 35 AND CLR CLK FLG. + ILDB 0,1 ;SHOULD STAY IN INDIRECT LOOP. +MOD19B: CONSO 1000 ;CLK FLG INT? + HOLD + TLNN 0,20000 ;BYF6 FLAG SET? NO..CK BYT7A ON BYTE PRINT. + HOLD + JSP .+1 ;CAUSE ARLT FM FLAGS(J)A. + TLNE 0,20000 ;CK BYTE PRINT. + HOLD + + JRST MOD197 + +POINTR: XWD 440720,1 +;CK TO SEE THAT UUO 0 TRAPS TO 141. +MOD200: UMON + JRST 2,@[XWD USERF+UMIOT,.+1] + MOVE [JSP .+5] + MOVEM 41 + AOJ + MOVEM 141 + 0 + HOLD ;UUO 0 TRAPED TO 40. CK 2L44 ON MA CONTROL PRINT. + TLNN USERF ;USER MODE GET CLR?..CK 1P19 ON EX CONT PNT. + HOLD +;CK TO SEE THAT UUO 37 TRAPS TO 41. + + UMON + JRST 2,@[XWD USERF + UMIOT, .+1] + MOVE [JSP .+5] + MOVEM 141 + AOJ + MOVEM 41 + 037000000000 + HOLD ;UUO 37 TRAPPED TO 141, CK 2L44 ON MA CONTROL PRINT. + + +;CK TO SEE THAT AN INTERRUPT ON CH # 1 TRAPS TO 142. + + MOVE [MOVEI 142] + MOVEM 142 + CONO 634440 ;CLR THE WORLD. + SETZ 0, + CONO PI,10000 ;CLR PI. + CONO PI,ACT+PIREQ+100;CAUSE INT. + CAIE 0,142 ;CK 2K44 ON MA CONTROL PRINT. + HALT + + SETOM MATPOF ;SET FLG SO KNOW IN THIS ROUTINE. + + +MOD197: JRST BEGEND ;REPEAT DIAGNOSTIC + +;DIAGNOSTIC STORAGE + + LIT + + VAR + +LAST: JRST 4,BEGIN diff --git a/apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt b/apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt new file mode 100644 index 000000000..3b55b5def --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt @@ -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 + > diff --git a/apps/pdp10/diags/klad/dakah/README.md b/apps/pdp10/diags/klad/dakah/README.md new file mode 100644 index 000000000..f8d2d84a0 --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/README.md @@ -0,0 +1,280 @@ +--- +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)] 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. + +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 DAKAH.MAC.txt %} +{% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakai/DAKAI.LST.txt b/apps/pdp10/diags/klad/dakai/DAKAI.LST.txt new file mode 100644 index 000000000..9d96317f0 --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/DAKAI.LST.txt @@ -0,0 +1,16210 @@ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +DAKAIT MAC 20-JAN-77 10:35 DIAGNOSTIC PARAMETERS SEQ 0011 + + 1 ;DAKAI + 2 + 3 000000 MCNVER==0 + 4 000002 DECVER==2 + 5 + 6 + 7 XLIST + 8 LIST + 9 LALL + 10 + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 + 14 ^ + 15 + 16 ;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED) + 17 + 18 ;COPYRIGHT 1975,1977 + 19 ;DIGITAL EQUIPMENT CORPORATION + 20 ;MARLBORO, MASS. 01752 + 21 + 22 ;JOHN R. KIRCHOFF + 23 + 24 000137 LOC 137 + 25 000137 000000 000002 MCNVER,,DECVER + 26 + 27 NOSYM +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 2 +DAKAIT MAC 20-JAN-77 10:35 DIAGNOSTIC PARAMETERS SEQ 0012 + + 28 SUBTTL DIAGNOSTIC PARAMETERS + 29 + 30 ;OPERATOR DEFINITIONS + 31 + 32 001000 000000 OPDEF ER1 [1B8] + 33 002000 000000 OPDEF ER2 [2B8] + 34 003000 000000 OPDEF ER3 [3B8] + 35 004000 000000 OPDEF ER4 [4B8] + 36 005000 000000 OPDEF ER5 [5B8] + 37 006000 000000 OPDEF ER6 [6B8] + 38 007000 000000 OPDEF ER7 [7B8] + 39 010000 000000 OPDEF ER10 [10B8] + 40 011000 000000 OPDEF ER11 [11B8] + 41 012000 000000 OPDEF ER12 [12B8] + 42 013000 000000 OPDEF ER13 [13B8] + 43 + 44 041423 LUUO1=ERRMES + 45 041423 LUUO2=ERRMES + 46 041423 LUUO3=ERRMES + 47 041423 LUUO4=ERRMES + 48 041423 LUUO5=ERRMES + 49 041423 LUUO6=ERRMES + 50 041423 LUUO7=ERRMES + 51 041423 LUUO10=ERRMES + 52 041423 LUUO11=ERRMES + 53 041423 LUUO12=ERRMES + 54 041423 LUUO13=ERRMES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 3 +DAKAIT MAC 20-JAN-77 10:35 DIAGNOSTIC PARAMETERS SEQ 0013 + + 55 ;SUBROUTINE ASSEMBLY DEFINITIONS + 56 + 57 000001 KLOLD==1 + 58 000040 DEBUG=40 + 59 000001 EXCASB=1 + 60 000001 USRASB=1 + 61 000001 KA10=1 + 62 000001 PGMEND=1 + 63 000001 ERDIAG=1 + 64 + 65 ;SPECIAL FEATURE DEFINITIONS + 66 + 67 030000 SADR1=BEGIN + 68 030000 SADR2=BEGIN + 69 030000 SADR3=BEGIN + 70 030000 SADR4=BEGIN + 71 254000 030000 SADR5=JRST BEGIN + 72 254000 030000 SADR6=JRST BEGIN + 73 254000 030000 SADR7=JRST BEGIN + 74 254000 030000 SADR8=JRST BEGIN + 75 254000 030000 SADR9=JRST BEGIN + 76 254000 030000 SADR10=JRST BEGIN + 77 254000 030000 SADR11=JRST BEGIN + 78 + 79 ;SPECIAL FEATURE PARAMETERS + 80 + 81 000000 PAREA0=0 + 82 000000 PAREA1=0 + 83 000000 PAREA2=0 + 84 444153 415100 PAREA3=SIXBIT/DAKAI/ + 85 645560 000000 PAREA4=SIXBIT/TMP/ + 86 000000 PAREA5=0 + 87 000000 PAREA6=0 + 88 001000 ITERAT==1000 + 89 + 90 ;MACROS + 91 + 92 DEFINE SAVEAC (A,B)< + 93 MOVEI AC+2,. ;SAVE TEST PC + 94 MOVEM AC+2,TESTPC + 95 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 96 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> + 97 + 98 DEFINE SETACS (WW,XX)< + 99 MOVEI AC-1,WW ;SETUP AC-1 + 100 HRLI AC-1,WW ;FOR COMPARISION + 101 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 102 MOVEI AC,XX ;SETUP AC RIGHT + 103 HRLI AC,XX ;SETUP AC LEFT + 104 MOVEM AC,&17 ;SETUP AC2> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 4 +DAKAIT MAC 20-JAN-77 10:35 DIAGNOSTIC PARAMETERS SEQ 0014 + + 105 ;USER DEFINED MACROS + 106 + 107 DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)< + 108 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT + 109 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B] + 110 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 111 + 112 E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC + 113 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 114 OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS + 115 CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT? + 116 ER3 AC,T'01 ;RESULT IN AC IS INCORRECT + 117 CAME AC+1,[XWD 741703,607417] + 118 ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY + 119 JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH> + 120 + 121 + 122 DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)< + 123 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 124 ;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND + 125 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND + 126 ;[XWD R2A,R2B] + 127 + 128 E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC + 129 MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1 + 130 OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES + 131 CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT? + 132 ER3 AC,T'01 ;RESULT IN AC IS INCORRECT + 133 CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT? + 134 ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT + 135 JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015 + + 136 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 137 + 138 DEFINE S,<;*********************************************************************> + 139 + 140 S^;*********************************************************************^ + 141 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 142 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 143 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 144 S^;*********************************************************************^ + 145 + 146 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 147 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 148 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 149 + 150 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 151 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 152 010000 DING== 010000 ;RING BELL ON ERROR + 153 + 154 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 155 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 156 001000 PALERS==001000 ;PRINT ALL ERRORS + 157 + 158 000400 RELIAB==000400 ;RELIABILITY MODE + 159 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 160 000100 INHPAG==000100 ;INHIBIT PAGING + 161 + 162 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 163 000020 INHCSH==000020 ;INHIBIT CACHE + 164 000010 OPRSEL==000010 ;OPERATOR SELECTION + 165 + 166 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 167 + 168 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 169 + 170 ;SWITCH 17 RESERVED !!! +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016 + + 171 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 172 + 173 S^;*********************************************************************^ + 174 ;*SPECIAL SUBPROGRAM LINKAGES + 175 S^;*********************************************************************^ + 176 + 177 027772 FSELNK= 27772 ;FILE SELECT LINK + 178 027773 FRDLNK= 27773 ;FILE READ LINK + 179 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 180 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 181 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 182 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 183 + 184 S^;*********************************************************************^ + 185 ;*SPECIAL SUBROUTINE FATAL HALTS + 186 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 187 S^;*********************************************************************^ + 188 + 189 ;ADDRESS TAG REASON + 190 ;--------------------- + 191 + 192 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 193 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 194 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 195 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 196 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 197 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 198 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 199 ; 1017 EOPERR ;END OF PROGRAM ERROR + 200 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 201 + 202 S^;*********************************************************************^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017 + + 203 S^;*********************************************************************^ + 204 ;OPERATOR DEFINITIONS (NON-UUO'S) + 205 S^;*********************************************************************^ + 206 + 207 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 208 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 209 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 210 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 211 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 212 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 213 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 214 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 215 + 216 S^;*********************************************************************^ + 217 ;*SUBROUTINE INITIALIZATION CALL + 218 S^;*********************************************************************^ + 219 + 220 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 221 + 222 S^;*********************************************************************^ + 223 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 224 S^;*********************************************************************^ + 225 + 226 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 227 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 228 + 229 S^;*********************************************************************^ + 230 ;*TERMINAL INPUT UUO'S + 231 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 232 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 233 S^;*********************************************************************^ + 234 + 235 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 236 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 237 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 238 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 239 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 240 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 241 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 242 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 243 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 244 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018 + + 245 ;*TERMINAL OUTPUT UUO'S. + 246 + 247 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 248 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 249 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 250 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 251 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 252 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 253 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 254 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 255 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 256 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 257 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 258 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 259 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 260 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 261 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 262 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 263 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 264 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 265 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 266 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 267 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 268 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 269 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 270 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 271 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 272 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 273 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 274 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 275 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 276 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 277 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 278 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 279 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 280 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 281 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 282 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 283 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 284 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 285 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 286 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 287 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 288 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 289 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 290 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 291 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 292 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 293 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 294 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 295 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 296 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 297 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 298 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 299 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 + + 300 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 301 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 302 + 303 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 304 + 305 DEFINE PMSG (ARG),< + 306 PSIXM [SIXBIT\ARG'_\]> + 307 + 308 DEFINE PMSGF (ARG),< + 309 PSIXMF [SIXBIT\ARG'_\]> + 310 + 311 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 312 ;* CONSERVES CORE OVER ASCIZ + 313 + 314 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 315 + 316 ;*CONSOLE SWITCH INPUT UUO. + 317 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 318 ;* USER MODE. + 319 + 320 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 321 + 322 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 323 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 324 + 325 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 326 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 327 + 328 ;*KL10 ONLY CACHE OPERATION UUO'S + 329 + 330 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 331 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 332 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 + + 333 ;*END OF PASS/PROGRAM UUOS + 334 + 335 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 336 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 337 + 338 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 339 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 340 + 341 ;*MEMORY MANAGEMENT UUO'S + 342 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 343 ;*ADDRESS CONVERSION, ETC... + 344 + 345 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 346 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 347 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 348 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 349 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 350 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 351 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 352 + 353 ;*DEVICE CODE MODIFICATION UUO + 354 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 355 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 356 + 357 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 358 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 359 + 360 030000 IFNDEF MODDVL, + 361 030000 IFNDEF MODDVU, + 362 + 363 ;*"DIAMON" FILE SELECTION AND READ UUOS + 364 + 365 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 366 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 367 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 368 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 369 + 370 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 371 + 372 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 373 + 374 XLIST + 375 LIST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 376 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 377 + 378 030000 LOC 30000 + 379 + 380 S^;*********************************************************************^ + 381 ;*PROGRAM STARTING ADDRESSES + 382 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 383 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 384 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 385 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 386 S^;*********************************************************************^ + 387 + 388 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 389 030001 254 00 0 00 030620 $START: JRST START ;MODE CHECK STARTING ADDRESS + 390 + 391 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 392 + 393 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 394 + 395 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 396 + 397 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 398 + 399 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 400 + 401 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 402 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 403 + 404 030010 254 00 0 00 030623 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 405 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 406 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 407 + 408 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 409 030014 254000 030000 START2: SADR8 ; " + 410 030015 254000 030000 START3: SADR9 ; " + 411 030016 254000 030000 START4: SADR10 ; " + 412 030017 254000 030000 START5: SADR11 ; " +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 413 S^;*********************************************************************^ + 414 ;*PROGRAM FIXED PARAMETER AREA + 415 S^;*********************************************************************^ + 416 + 417 030020 444153 415100 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 418 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 419 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 420 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 421 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 422 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 423 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 424 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 425 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 426 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 427 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 428 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 429 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 430 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 431 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 432 + 433 S^;*********************************************************************^ + 434 ;*PROGRAM VARIABLE PARAMETER AREA + 435 S^;*********************************************************************^ + 436 + 437 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 438 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 439 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 440 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 441 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 442 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 443 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 444 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 445 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 446 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 447 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 448 030052 000000 000000 ERRPC: 0 ;ERROR PC + 449 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 450 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 451 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 452 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 453 S^;*********************************************************************^ + 454 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 455 S^;*********************************************************************^ + 456 + 457 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 458 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 459 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 460 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 461 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 462 030064 CPOPJ1: ;SKIP RETURN + 463 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 464 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 465 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 466 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 467 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 468 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 469 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 470 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 471 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 472 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 473 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 474 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 475 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 476 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 477 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 478 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 479 + 480 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 481 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 482 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 483 + 484 S^;*********************************************************************^ + 485 ;*PROCESSOR CONTROL STORAGE + 486 S^;*********************************************************************^ + 487 + 488 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 489 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 490 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 491 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 492 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 493 + 494 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 495 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 496 + 497 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 498 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 499 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 500 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 501 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 502 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 503 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 504 S^;*********************************************************************^ + 505 ;*UUO DISPATCH TABLE + 506 S^;*********************************************************************^ + 507 XLIST + 508 LIST + 509 030124 041423 030070 UUODIS: LUUO1,,$UUOER + 510 030125 041423 041423 LUUO3,,LUUO2 + 511 030126 041423 041423 LUUO5,,LUUO4 + 512 030127 041423 041423 LUUO7,,LUUO6 + 513 030130 041423 041423 LUUO11,,LUUO10 + 514 030131 041423 041423 LUUO13,,LUUO12 + 515 030132 030070 030070 LUUO15,,LUUO14 + 516 030133 030070 030070 LUUO17,,LUUO16 + 517 030134 030070 030070 LUUO21,,LUUO20 + 518 030135 030070 030070 LUUO23,,LUUO22 + 519 030136 030070 030070 LUUO25,,LUUO24 + 520 030137 030070 030070 LUUO27,,LUUO26 + 521 030140 030070 030070 LUUO31,,LUUO30 + 522 030141 030070 030070 LUUO33,,LUUO32 + 523 + 524 S^;*********************************************************************^ + 525 ;*MEMORY MANAGMENT STORAGE + 526 S^;*********************************************************************^ + 527 + 528 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 529 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 530 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 531 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 532 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 533 + 534 S^;*********************************************************************^ + 535 ;*PRINT CONTROL STORAGE + 536 S^;*********************************************************************^ + 537 + 538 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 539 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 540 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 541 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 542 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 543 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 544 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 545 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 546 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 547 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 548 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 549 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 550 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 551 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 552 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 553 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 554 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 555 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 556 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 + + 557 S^;*********************************************************************^ + 558 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 559 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 560 ;* MOVEI NAME + 561 ;* PNTA ;OR PNTAF + 562 S^;*********************************************************************^ + 563 + 564 030242 CRLF: ASCII/ + 565 030242 015 012 000 000 000 / + 566 030243 CRLF2: ASCII/ + 567 + 568 030243 015 012 015 012 000 / + 569 030244 054 000 000 000 000 COMMA: ASCII/,/ + 570 030245 056 000 000 000 000 PERIOD: ASCII/./ + 571 030246 040 000 000 000 000 SPACE: ASCII/ / + 572 030247 011 000 000 000 000 TAB: ASCII/ / + 573 030250 MINUS: + 574 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 575 030251 053 000 000 000 000 PLUS: ASCII/+/ + 576 030252 052 000 000 000 000 AST: ASCII/*/ + 577 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 578 030254 050 000 000 000 000 LFP: ASCII/(/ + 579 030255 051 000 000 000 000 RTP: ASCII/)/ + 580 030256 007 0000000000 BELL: BYTE (7) 007 + 581 030257 077 000 000 000 000 QUEST: ASCII/?/ + 582 030260 057 000 000 000 000 SLASH: ASCII!/! + 583 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 584 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 585 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 586 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 587 + 588 S^;*********************************************************************^ + 589 ;*USER MODE OUTPUT FILE INFORMATION + 590 S^;*********************************************************************^ + 591 + 592 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 593 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 594 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 595 030272 BLOCK 2 + 596 + 597 S^;*********************************************************************^ + 598 ;*DISK UPDATE MODE FILE INFORMATION + 599 S^;*********************************************************************^ + 600 + 601 030274 $IBUF: BLOCK 3 + 602 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 603 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 604 030301 BLOCK 2 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 + + 605 S^;*********************************************************************^ + 606 ;*PUSHDOWN LIST CONTROL INFORMATION + 607 S^;*********************************************************************^ + 608 + 609 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 610 030304 PLISTS: BLOCK 200 + 611 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 612 + 613 S^;*********************************************************************^ + 614 ;*POWER LINE CLOCK FREQUENCY FLAG + 615 S^;*********************************************************************^ + 616 + 617 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 618 + 619 S^;*********************************************************************^ + 620 ;*KL10 CACHE CONTROL FLAGS + 621 S^;*********************************************************************^ + 622 + 623 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 624 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 625 + 626 S^;*********************************************************************^ + 627 ;*NUMBER INPUT DIGIT FLAG + 628 S^;*********************************************************************^ + 629 + 630 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 631 + 632 S^;*********************************************************************^ + 633 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 634 S^;*********************************************************************^ + 635 + 636 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 637 + 638 S^;*********************************************************************^ + 639 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 640 S^;*********************************************************************^ + 641 + 642 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 643 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 644 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 645 + 646 S^;*********************************************************************^ + 647 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 648 S^;*********************************************************************^ + 649 + 650 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 + + 651 S^;*********************************************************************^ + 652 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 653 S^;*********************************************************************^ + 654 + 655 030516 000000 000000 KLTYP: 0 + 656 + 657 S^;*********************************************************************^ + 658 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 659 S^;*********************************************************************^ + 660 + 661 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 662 + 663 S^;*********************************************************************^ + 664 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 665 S^;*********************************************************************^ + 666 + 667 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 668 + 669 S^;*********************************************************************^ + 670 ;*"SWITCH" CALL USAGE CONTROL + 671 S^;*********************************************************************^ + 672 + 673 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 674 + 675 S^;*********************************************************************^ + 676 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 677 S^;*********************************************************************^ + 678 + 679 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 680 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 681 + 682 S^;*********************************************************************^ + 683 ;*SPECIAL FUTURE EXPANSION ROOM + 684 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 685 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 686 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 687 S^;*********************************************************************^ + 688 + 689 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 690 + 691 S^;*********************************************************************^ + 692 ;*END OF FIXED STORAGE + 693 S^;*********************************************************************^ + 694 + 695 030577 $ENDFX=&<777700>-1 + 696 030577 LOC $ENDFX + 697 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +DAKAIM MAC 20-JAN-77 10:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0028 + + 698 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + 699 030601 000000 030600 EXIT + 700 + 701 030602 PGMNAM: ASCIZ/ + 702 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #9 SHIFT-ROTATE [DAKAI] + 703 030603 055 061 060 040 113 + 704 030604 101 061 060 040 102 + 705 030605 101 123 111 103 040 + 706 030606 111 116 123 124 122 + 707 030607 125 103 124 111 117 + 708 030610 116 040 104 111 101 + 709 030611 107 116 117 123 124 + 710 030612 111 103 040 043 071 + 711 030613 040 123 110 111 106 + 712 030614 124 055 122 117 124 + 713 030615 101 124 105 040 133 + 714 030616 104 101 113 101 111 + 715 030617 135 015 012 000 000 / + 716 + 717 ;INITIALIZE SUBROUTINES + 718 + 719 030620 265 00 0 00 030011 START: PGMINT + 720 030621 200 00 0 00 041614 MOVE [ASCIZ/AI/] + 721 030622 202 00 0 00 041536 MOVEM TLET + 722 + 723 030623 254 00 0 00 030624 STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS SEQ 0029 + + 724 SUBTTL DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS + 725 + 726 ;TEST FETCH,STORE AND DECODE + 727 ;TEST THE ABILITY OF ROT, ROTC TO FETCH AND STORE + 728 ;AC,AC+1 + 729 ;TESTING IS ACCOMPLISHED BY ROTATING ZERO TIMES ALL + 730 ;ZERO'S, ALL ONE'S. + 731 ;OPERANDS SELECTED ARE LEAST AFFECTED BY + 732 ;INADVERTENT ROTATING + 733 ;FAILURE OF A SC BIT TO SET,OR SC TO + 734 ;COUNT WILL RESULT IN LOOPING + 735 + 736 + 737 000001 AC=1 + 738 030624 E00: SAVEAC (1,1)^ + 739 030624 201 03 0 00 030624 MOVEI AC+2,. ;SAVE TEST PC + 740 030625 202 03 0 00 030051 MOVEM AC+2,TESTPC + 741 030626 201 03 0 00 000003 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 742 030627 202 03 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 743 + 744 030630 400 01 0 00 000000 E100: SETZ AC, ;CLEAR AC + 745 030631 241 01 0 00 000000 ROT AC,0 ;*ROTATE LEFT ZERO TIMES + 746 030632 332 00 0 00 000001 SKIPE AC ;TEST AC FOR ZERO + 747 030633 003 01 0 00 000101 ER3 AC,101 ;FETCH OR STORE FAILED + 748 030634 321 03 0 00 030630 JUMPL AC+2,E100 ;LOOP ON ERROR SWITCH + 749 + 750 030635 477 01 0 00 000000 E200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + 751 030636 241 01 0 00 000000 ROT AC,0 ;*ROTATE LEFT ZERO TIMES + 752 030637 312 01 0 00 000000 CAME AC,AC-1 ;TEST AC FOR A -1 + 753 030640 003 01 0 00 000201 ER3 AC,201 ;FETCH OR STORE FAILED + 754 030641 321 03 0 00 030635 JUMPL AC+2,E200 ;LOOP ON ERROR SWITCH + 755 + 756 000002 AC=2 + 757 SAVEAC (1,1)^ + 758 030642 201 04 0 00 030642 MOVEI AC+2,. ;SAVE TEST PC + 759 030643 202 04 0 00 030051 MOVEM AC+2,TESTPC + 760 030644 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 761 030645 202 04 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 762 + 763 030646 403 02 0 00 000003 E300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + 764 030647 245 02 0 00 000000 ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + 765 030650 332 00 0 00 000002 SKIPE AC ;TEST AC FOR ZERO + 766 030651 003 02 0 00 000301 ER3 AC,301 ;FETCH OR STORE AC FAILED + 767 030652 332 00 0 00 000003 SKIPE AC+1 ;TEST AC+1 FOR ZERO + 768 030653 004 03 0 00 000301 ER4 AC+1,301 ;FETCH OR STORE AC+1 FAILED + 769 030654 321 04 0 00 030646 JUMPL AC+2,E300 ;LOOP ON ERROR SWITCH + 770 + 771 030655 474 01 0 00 000000 E400: SETO AC-1, ;SET UP FOR COMPARISON + 772 030656 477 02 0 00 000003 SETOB AC,AC+1 ;SET AC,AC+1 + 773 030657 245 02 0 00 000000 ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + 774 030660 312 02 0 00 000001 CAME AC,AC-1 ;TEST AC FOR A -1 + 775 030661 003 02 0 00 000401 ER3 AC,401 ;FETCH OR STORE AC FAILED + 776 030662 312 03 0 00 000001 CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + 777 030663 004 03 0 00 000401 ER4 AC+1,401 ;FETCH OR STORE AC+1 FAILED + 778 030664 321 04 0 00 030655 JUMPL AC+2,E400 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS SEQ 0030 + + 779 ;TEST FETCH,STORE AND DECODE + 780 ;TEST THE ABILITY OF LSH, LSHC TO FETCH AND STORE + 781 ;AC,AC+1 + 782 ;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL + 783 ;ZERO'S ALL ONE'S + 784 ;OPERANDS SELECTED ARE LEAST AFFECTED BY + 785 ;INADVERTENT SHIFTING + 786 ;FAILURE OF A SC BIT TO SET,OR SC TO + 787 ;COUNT WILL RESULT IN LOOPING + 788 + 789 000003 AC=3 + 790 SAVEAC (1,1)^ + 791 030665 201 05 0 00 030665 MOVEI AC+2,. ;SAVE TEST PC + 792 030666 202 05 0 00 030051 MOVEM AC+2,TESTPC + 793 030667 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 794 030670 202 05 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 795 + 796 030671 400 03 0 00 000000 E500: SETZ AC, ;CLEAR AC + 797 030672 242 03 0 00 000000 LSH AC,0 ;*SHIFT LEFT ZERO TIMES + 798 030673 332 00 0 00 000003 SKIPE AC ;TEST AC FOR ZERO + 799 030674 003 03 0 00 000501 ER3 AC,501 ;FETCH OR STORE AC FAILED + 800 030675 321 05 0 00 030671 JUMPL AC+2,E500 ;LOOP ON ERROR SWITCH + 801 + 802 030676 477 03 0 00 000002 E600: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + 803 030677 242 03 0 00 000000 LSH AC,0 ;*SHIFT LEFT ZERO TIMES + 804 030700 312 03 0 00 000002 CAME AC,AC-1 ;TEST AC FOR -1 + 805 030701 003 03 0 00 000601 ER3 AC,601 ;FETCH OR STORE AC FAILED + 806 030702 321 05 0 00 030676 JUMPL AC+2,E600 ;LOOP ON ERROR SWITCH + 807 + 808 000014 AC=14 + 809 SAVEAC (1,1)^ + 810 030703 201 16 0 00 030703 MOVEI AC+2,. ;SAVE TEST PC + 811 030704 202 16 0 00 030051 MOVEM AC+2,TESTPC + 812 030705 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 813 030706 202 16 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 814 + 815 030707 403 14 0 00 000015 E700: SETZB AC,AC+1 ;CLEAR AC,AC+1 + 816 030710 246 14 0 00 000000 LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + 817 030711 332 00 0 00 000014 SKIPE AC ;TEST AC FOR 0 + 818 030712 003 14 0 00 000701 ER3 AC,701 ;FETCH OR STORE AC FAILED + 819 030713 332 00 0 00 000015 SKIPE AC+1 ;TEST AC+1 FOR 0 + 820 030714 004 15 0 00 000701 ER4 AC+1,701 ;FETCH OR STORE AC+1 FAILED + 821 030715 321 16 0 00 030707 JUMPL AC+2,E700 ;LOOP ON ERROR SWITCH + 822 + 823 030716 474 13 0 00 000000 E1000: SETO AC-1, ;SET UP FOR COMPARISON + 824 030717 477 14 0 00 000015 SETOB AC,AC+1 ;SET AC,AC+1 + 825 030720 246 14 0 00 000000 LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + 826 030721 312 14 0 00 000013 CAME AC,AC-1 ;TEST AC FOR -1 + 827 030722 003 14 0 00 001001 ER3 AC,1001 ;FETCH OR STORE AC FAILED + 828 030723 312 15 0 00 000013 CAME AC+1,AC-1 ;TEST AC+1 FOR -1 + 829 030724 004 15 0 00 001001 ER4 AC+1,1001 ;FETCH OR STORE AC+1 FAILED + 830 030725 321 16 0 00 030716 JUMPL AC+2,E1000 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS SEQ 0031 + + 831 ;TEST FETCH,STORE AND DECODE + 832 ;TEST THE ABILITY OF ASH, ASHC TO FETCH AND STORE + 833 ;AC,AC+1 + 834 ;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL + 835 ;ZERO'S ALL ONES + 836 ;OPERANDS SELECTED ARE LEAST AFFECTED BY + 837 ;INADVERTENT SHIFTING + 838 ;FAILURE OF A SC BIT TO SET,OR SC TO + 839 ;COUNT WILL RESULT IN LOOPING + 840 + 841 000013 AC=13 + 842 SAVEAC (1,1)^ + 843 030726 201 15 0 00 030726 MOVEI AC+2,. ;SAVE TEST PC + 844 030727 202 15 0 00 030051 MOVEM AC+2,TESTPC + 845 030730 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 846 030731 202 15 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 847 + 848 030732 400 13 0 00 000000 E1100: SETZ AC, ;CLEAR AC + 849 030733 240 13 0 00 000000 ASH AC,0 ;*SHIFT LEFT ZERO TIMES + 850 030734 332 00 0 00 000013 SKIPE AC ;TEST AC FOR ZERO + 851 030735 003 13 0 00 001101 ER3 AC,1101 ;FETCH OR STORE AC FAILED + 852 030736 321 15 0 00 030732 JUMPL AC+2,E1100 ;LOOP ON ERROR SWITCH + 853 + 854 030737 477 13 0 00 000012 E1200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + 855 030740 240 13 0 00 000000 ASH AC,0 ;*SHIFT LEFT ZERO TIMES + 856 030741 312 13 0 00 000012 CAME AC,AC-1 ;TEST AC FOR A -1 + 857 030742 003 13 0 00 001201 ER3 AC,1201 ;FETCH OR STORE AC FAILED + 858 030743 321 15 0 00 030737 JUMPL AC+2,E1200 ;LOOP ON ERROR SWITCH + 859 + 860 000012 AC=12 + 861 SAVEAC (1,1)^ + 862 030744 201 14 0 00 030744 MOVEI AC+2,. ;SAVE TEST PC + 863 030745 202 14 0 00 030051 MOVEM AC+2,TESTPC + 864 030746 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 865 030747 202 14 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 866 + 867 030750 403 12 0 00 000013 E1300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + 868 030751 244 12 0 00 000000 ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + 869 030752 332 00 0 00 000012 SKIPE AC ;TEST AC FOR 0 + 870 030753 003 12 0 00 001301 ER3 AC,1301 ;FETCH OR STORE AC FAILED + 871 030754 332 00 0 00 000013 SKIPE AC+1 ;TEST AC+1 FOR 0 + 872 030755 004 13 0 00 001301 ER4 AC+1,1301 ;FETCH OR STORE AC+1 FAILED + 873 030756 321 14 0 00 030750 JUMPL AC+2,E1300 ;LOOP ON ERROR SWITCH + 874 + 875 030757 474 11 0 00 000000 E1400: SETO AC-1, ;SET UP FOR COMPARISON + 876 030760 477 12 0 00 000013 SETOB AC,AC+1 ;SET AC,AC+1 + 877 030761 244 12 0 00 000000 ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + 878 030762 312 12 0 00 000011 CAME AC,AC-1 ;TEST AC FOR A -1 + 879 030763 003 12 0 00 001401 ER3 AC,1401 ;FETCH OR STORE AC FAILED + 880 030764 312 13 0 00 000011 CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + 881 030765 004 13 0 00 001401 ER4 AC+1,1401 ;FETCH OR STORE AC+1 FAILED + 882 030766 321 14 0 00 030757 JUMPL AC+2,E1400 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - CHECK SIGN BIT OF AC+1 FOR ASHC SEQ 0032 + + 883 SUBTTL DIAGNOSTIC SECTION - CHECK SIGN BIT OF AC+1 FOR ASHC + 884 + 885 ;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC + 886 ;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. + 887 ;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. + 888 ;CHECK THIS WHEN THE SIGN BIT OF AC IS ZERO AND THE SIGN BIT OF AC+1 IS ONE. + 889 + 890 SR2 (443,0,0,-1,-1,0,0,-1,-1,ASHC,0)^ + 891 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 892 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD -1,-1] 0 BIT POSITIONS AND + 893 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 894 ;[XWD -1,-1] + 895 + 896 030767 200 12 0 00 041615 E44300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 897 030770 200 13 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 898 030771 244 12 0 00 000000 ASHC AC,0 ;*SHIFT/ROTATE COMBINED 0 PLACES + 899 030772 312 12 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 900 030773 003 12 0 00 044301 ER3 AC,44301 ;RESULT IN AC IS INCORRECT + 901 030774 312 13 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 902 030775 004 13 0 00 044301 ER4 AC+1,44301 ;RESULT IN AC+1 IS INCORRECT + 903 030776 321 14 0 00 030767 JUMPL AC+2,E44300 ;LOOP ON ERROR SWITCH^ + 904 + 905 ;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC + 906 ;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. + 907 ;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. + 908 ;CHECK THIS WHEN THE SIGN BIT OF AC IS ONE AND THE SIGN BIT OF AC+1 IS ZERO. + 909 SR2 (444,-1,-1,0,0,-1,-1,0,0,ASHC,0)^ + 910 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 911 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 0,0] 0 BIT POSITIONS AND + 912 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 913 ;[XWD 0,0] + 914 + 915 030777 200 12 0 00 041616 E44400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 916 031000 200 13 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 917 031001 244 12 0 00 000000 ASHC AC,0 ;*SHIFT/ROTATE COMBINED 0 PLACES + 918 031002 312 12 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 919 031003 003 12 0 00 044401 ER3 AC,44401 ;RESULT IN AC IS INCORRECT + 920 031004 312 13 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 921 031005 004 13 0 00 044401 ER4 AC+1,44401 ;RESULT IN AC+1 IS INCORRECT + 922 031006 321 14 0 00 030777 JUMPL AC+2,E44400 ;LOOP ON ERROR SWITCH^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0033 + + 923 SUBTTL DIAGNOSTIC SECTION - TEST MQ-ADDER GATING + 924 + 925 000010 AC=10 + 926 SAVEAC (1,1)^ + 927 031007 201 12 0 00 031007 MOVEI AC+2,. ;SAVE TEST PC + 928 031010 202 12 0 00 030051 MOVEM AC+2,TESTPC + 929 031011 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 930 031012 202 12 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 931 + 932 001500 SN=1500 + 933 000000 ZZ=0 + 934 ;CHECK AC+1 RIGHT < + 935 E1500: REPEAT ^D18,< + 936 + 937 ;VERIFY MQ-AD GATING + 938 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 939 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 940 ;REPEAT FOR ALL 36 BITS OF MQ + 941 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 942 SN=SN+1 + 943 ZZ=ZZ+ZZ ;TESTED BIT + 944 IFE ZZ, + 945 SETZM AC ;CLEAR AC + 946 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 947 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 948 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 949 ER4 AC+1,SN ;MQ-AD GATE FAILED + 950 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 951 > + 952 + 953 + 954 ;VERIFY MQ-AD GATING + 955 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 956 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 957 ;REPEAT FOR ALL 36 BITS OF MQ + 958 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 959 001501 SN=SN+1 + 960 000000 ZZ=ZZ+ZZ ;TESTED BIT + 961 000001 IFE ZZ, + 962 031013 402 00 0 00 000010 SETZM AC ;CLEAR AC + 963 031014 201 11 0 00 000001 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 964 031015 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 965 031016 302 11 0 00 000001 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 966 031017 004 11 0 00 001501 ER4 AC+1,SN ;MQ-AD GATE FAILED + 967 031020 321 12 0 00 031013 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 968 + 969 + 970 + 971 ;VERIFY MQ-AD GATING + 972 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 973 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 974 ;REPEAT FOR ALL 36 BITS OF MQ + 975 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 976 001502 SN=SN+1 + 977 000002 ZZ=ZZ+ZZ ;TESTED BIT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0034 + + 978 IFE ZZ, + 979 031021 402 00 0 00 000010 SETZM AC ;CLEAR AC + 980 031022 201 11 0 00 000002 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 981 031023 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 982 031024 302 11 0 00 000002 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 983 031025 004 11 0 00 001502 ER4 AC+1,SN ;MQ-AD GATE FAILED + 984 031026 321 12 0 00 031021 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 985 + 986 + 987 + 988 ;VERIFY MQ-AD GATING + 989 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 990 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 991 ;REPEAT FOR ALL 36 BITS OF MQ + 992 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 993 001503 SN=SN+1 + 994 000004 ZZ=ZZ+ZZ ;TESTED BIT + 995 IFE ZZ, + 996 031027 402 00 0 00 000010 SETZM AC ;CLEAR AC + 997 031030 201 11 0 00 000004 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 998 031031 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 999 031032 302 11 0 00 000004 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1000 031033 004 11 0 00 001503 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1001 031034 321 12 0 00 031027 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1002 + 1003 + 1004 + 1005 ;VERIFY MQ-AD GATING + 1006 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1007 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1008 ;REPEAT FOR ALL 36 BITS OF MQ + 1009 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1010 001504 SN=SN+1 + 1011 000010 ZZ=ZZ+ZZ ;TESTED BIT + 1012 IFE ZZ, + 1013 031035 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1014 031036 201 11 0 00 000010 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1015 031037 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1016 031040 302 11 0 00 000010 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1017 031041 004 11 0 00 001504 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1018 031042 321 12 0 00 031035 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1019 + 1020 + 1021 + 1022 ;VERIFY MQ-AD GATING + 1023 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1024 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1025 ;REPEAT FOR ALL 36 BITS OF MQ + 1026 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1027 001505 SN=SN+1 + 1028 000020 ZZ=ZZ+ZZ ;TESTED BIT + 1029 IFE ZZ, + 1030 031043 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1031 031044 201 11 0 00 000020 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1032 031045 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0035 + + 1033 031046 302 11 0 00 000020 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1034 031047 004 11 0 00 001505 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1035 031050 321 12 0 00 031043 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1036 + 1037 + 1038 + 1039 ;VERIFY MQ-AD GATING + 1040 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1041 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1042 ;REPEAT FOR ALL 36 BITS OF MQ + 1043 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1044 001506 SN=SN+1 + 1045 000040 ZZ=ZZ+ZZ ;TESTED BIT + 1046 IFE ZZ, + 1047 031051 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1048 031052 201 11 0 00 000040 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1049 031053 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1050 031054 302 11 0 00 000040 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1051 031055 004 11 0 00 001506 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1052 031056 321 12 0 00 031051 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1053 + 1054 + 1055 + 1056 ;VERIFY MQ-AD GATING + 1057 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1058 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1059 ;REPEAT FOR ALL 36 BITS OF MQ + 1060 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1061 001507 SN=SN+1 + 1062 000100 ZZ=ZZ+ZZ ;TESTED BIT + 1063 IFE ZZ, + 1064 031057 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1065 031060 201 11 0 00 000100 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1066 031061 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1067 031062 302 11 0 00 000100 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1068 031063 004 11 0 00 001507 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1069 031064 321 12 0 00 031057 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1070 + 1071 + 1072 + 1073 ;VERIFY MQ-AD GATING + 1074 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1075 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1076 ;REPEAT FOR ALL 36 BITS OF MQ + 1077 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1078 001510 SN=SN+1 + 1079 000200 ZZ=ZZ+ZZ ;TESTED BIT + 1080 IFE ZZ, + 1081 031065 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1082 031066 201 11 0 00 000200 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1083 031067 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1084 031070 302 11 0 00 000200 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1085 031071 004 11 0 00 001510 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1086 031072 321 12 0 00 031065 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1087 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0036 + + 1088 + 1089 + 1090 ;VERIFY MQ-AD GATING + 1091 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1092 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1093 ;REPEAT FOR ALL 36 BITS OF MQ + 1094 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1095 001511 SN=SN+1 + 1096 000400 ZZ=ZZ+ZZ ;TESTED BIT + 1097 IFE ZZ, + 1098 031073 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1099 031074 201 11 0 00 000400 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1100 031075 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1101 031076 302 11 0 00 000400 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1102 031077 004 11 0 00 001511 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1103 031100 321 12 0 00 031073 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1104 + 1105 + 1106 + 1107 ;VERIFY MQ-AD GATING + 1108 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1109 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1110 ;REPEAT FOR ALL 36 BITS OF MQ + 1111 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1112 001512 SN=SN+1 + 1113 001000 ZZ=ZZ+ZZ ;TESTED BIT + 1114 IFE ZZ, + 1115 031101 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1116 031102 201 11 0 00 001000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1117 031103 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1118 031104 302 11 0 00 001000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1119 031105 004 11 0 00 001512 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1120 031106 321 12 0 00 031101 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1121 + 1122 + 1123 + 1124 ;VERIFY MQ-AD GATING + 1125 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1126 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1127 ;REPEAT FOR ALL 36 BITS OF MQ + 1128 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1129 001513 SN=SN+1 + 1130 002000 ZZ=ZZ+ZZ ;TESTED BIT + 1131 IFE ZZ, + 1132 031107 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1133 031110 201 11 0 00 002000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1134 031111 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1135 031112 302 11 0 00 002000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1136 031113 004 11 0 00 001513 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1137 031114 321 12 0 00 031107 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1138 + 1139 + 1140 + 1141 ;VERIFY MQ-AD GATING + 1142 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0037 + + 1143 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1144 ;REPEAT FOR ALL 36 BITS OF MQ + 1145 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1146 001514 SN=SN+1 + 1147 004000 ZZ=ZZ+ZZ ;TESTED BIT + 1148 IFE ZZ, + 1149 031115 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1150 031116 201 11 0 00 004000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1151 031117 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1152 031120 302 11 0 00 004000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1153 031121 004 11 0 00 001514 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1154 031122 321 12 0 00 031115 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1155 + 1156 + 1157 + 1158 ;VERIFY MQ-AD GATING + 1159 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1160 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1161 ;REPEAT FOR ALL 36 BITS OF MQ + 1162 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1163 001515 SN=SN+1 + 1164 010000 ZZ=ZZ+ZZ ;TESTED BIT + 1165 IFE ZZ, + 1166 031123 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1167 031124 201 11 0 00 010000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1168 031125 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1169 031126 302 11 0 00 010000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1170 031127 004 11 0 00 001515 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1171 031130 321 12 0 00 031123 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1172 + 1173 + 1174 + 1175 ;VERIFY MQ-AD GATING + 1176 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1177 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1178 ;REPEAT FOR ALL 36 BITS OF MQ + 1179 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1180 001516 SN=SN+1 + 1181 020000 ZZ=ZZ+ZZ ;TESTED BIT + 1182 IFE ZZ, + 1183 031131 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1184 031132 201 11 0 00 020000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1185 031133 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1186 031134 302 11 0 00 020000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1187 031135 004 11 0 00 001516 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1188 031136 321 12 0 00 031131 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1189 + 1190 + 1191 + 1192 ;VERIFY MQ-AD GATING + 1193 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1194 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1195 ;REPEAT FOR ALL 36 BITS OF MQ + 1196 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1197 001517 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0038 + + 1198 040000 ZZ=ZZ+ZZ ;TESTED BIT + 1199 IFE ZZ, + 1200 031137 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1201 031140 201 11 0 00 040000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1202 031141 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1203 031142 302 11 0 00 040000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1204 031143 004 11 0 00 001517 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1205 031144 321 12 0 00 031137 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1206 + 1207 + 1208 + 1209 ;VERIFY MQ-AD GATING + 1210 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1211 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1212 ;REPEAT FOR ALL 36 BITS OF MQ + 1213 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1214 001520 SN=SN+1 + 1215 100000 ZZ=ZZ+ZZ ;TESTED BIT + 1216 IFE ZZ, + 1217 031145 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1218 031146 201 11 0 00 100000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1219 031147 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1220 031150 302 11 0 00 100000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1221 031151 004 11 0 00 001520 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1222 031152 321 12 0 00 031145 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1223 + 1224 + 1225 + 1226 ;VERIFY MQ-AD GATING + 1227 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1228 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1229 ;REPEAT FOR ALL 36 BITS OF MQ + 1230 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1231 001521 SN=SN+1 + 1232 200000 ZZ=ZZ+ZZ ;TESTED BIT + 1233 IFE ZZ, + 1234 031153 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1235 031154 201 11 0 00 200000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 + 1236 031155 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1237 031156 302 11 0 00 200000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1238 031157 004 11 0 00 001521 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1239 031160 321 12 0 00 031153 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1240 + 1241 + 1242 + 1243 ;VERIFY MQ-AD GATING + 1244 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1245 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1246 ;REPEAT FOR ALL 36 BITS OF MQ + 1247 ;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA + 1248 001522 SN=SN+1 + 1249 400000 ZZ=ZZ+ZZ ;TESTED BIT + 1250 IFE ZZ, + 1251 031161 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1252 031162 201 11 0 00 400000 MOVEI AC+1,ZZ ;INITIALIZE AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0039 + + 1253 031163 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + 1254 031164 302 11 0 00 400000 CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + 1255 031165 004 11 0 00 001522 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1256 031166 321 12 0 00 031161 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1257 + 1258 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0040 + + 1259 000000 ZZ=0 + 1260 ;CHECK AC+1 LEFT < + 1261 REPEAT ^D18,< + 1262 + 1263 ;VERIFY MQ-AD GATING + 1264 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1265 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1266 ;REPEAT FOR ALL 36 BITS OF MQ + 1267 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1268 SN=SN+1 + 1269 ZZ=ZZ+ZZ ;TESTED BIT + 1270 IFE ZZ, + 1271 SETZM AC ;CLEAR AC + 1272 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1273 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1274 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1275 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1276 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1277 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1278 > + 1279 + 1280 + 1281 ;VERIFY MQ-AD GATING + 1282 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1283 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1284 ;REPEAT FOR ALL 36 BITS OF MQ + 1285 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1286 001523 SN=SN+1 + 1287 000000 ZZ=ZZ+ZZ ;TESTED BIT + 1288 000001 IFE ZZ, + 1289 031167 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1290 031170 205 11 0 00 000001 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1291 031171 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1292 031172 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1293 031173 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1294 031174 004 11 0 00 001523 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1295 031175 321 12 0 00 031170 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1296 + 1297 + 1298 + 1299 ;VERIFY MQ-AD GATING + 1300 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1301 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1302 ;REPEAT FOR ALL 36 BITS OF MQ + 1303 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1304 001524 SN=SN+1 + 1305 000002 ZZ=ZZ+ZZ ;TESTED BIT + 1306 IFE ZZ, + 1307 031176 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1308 031177 205 11 0 00 000002 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1309 031200 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1310 031201 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1311 031202 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1312 031203 004 11 0 00 001524 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1313 031204 321 12 0 00 031177 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0041 + + 1314 + 1315 + 1316 + 1317 ;VERIFY MQ-AD GATING + 1318 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1319 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1320 ;REPEAT FOR ALL 36 BITS OF MQ + 1321 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1322 001525 SN=SN+1 + 1323 000004 ZZ=ZZ+ZZ ;TESTED BIT + 1324 IFE ZZ, + 1325 031205 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1326 031206 205 11 0 00 000004 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1327 031207 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1328 031210 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1329 031211 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1330 031212 004 11 0 00 001525 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1331 031213 321 12 0 00 031206 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1332 + 1333 + 1334 + 1335 ;VERIFY MQ-AD GATING + 1336 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1337 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1338 ;REPEAT FOR ALL 36 BITS OF MQ + 1339 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1340 001526 SN=SN+1 + 1341 000010 ZZ=ZZ+ZZ ;TESTED BIT + 1342 IFE ZZ, + 1343 031214 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1344 031215 205 11 0 00 000010 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1345 031216 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1346 031217 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1347 031220 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1348 031221 004 11 0 00 001526 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1349 031222 321 12 0 00 031215 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1350 + 1351 + 1352 + 1353 ;VERIFY MQ-AD GATING + 1354 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1355 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1356 ;REPEAT FOR ALL 36 BITS OF MQ + 1357 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1358 001527 SN=SN+1 + 1359 000020 ZZ=ZZ+ZZ ;TESTED BIT + 1360 IFE ZZ, + 1361 031223 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1362 031224 205 11 0 00 000020 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1363 031225 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1364 031226 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1365 031227 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1366 031230 004 11 0 00 001527 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1367 031231 321 12 0 00 031224 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1368 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0042 + + 1369 + 1370 + 1371 ;VERIFY MQ-AD GATING + 1372 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1373 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1374 ;REPEAT FOR ALL 36 BITS OF MQ + 1375 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1376 001530 SN=SN+1 + 1377 000040 ZZ=ZZ+ZZ ;TESTED BIT + 1378 IFE ZZ, + 1379 031232 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1380 031233 205 11 0 00 000040 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1381 031234 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1382 031235 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1383 031236 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1384 031237 004 11 0 00 001530 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1385 031240 321 12 0 00 031233 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1386 + 1387 + 1388 + 1389 ;VERIFY MQ-AD GATING + 1390 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1391 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1392 ;REPEAT FOR ALL 36 BITS OF MQ + 1393 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1394 001531 SN=SN+1 + 1395 000100 ZZ=ZZ+ZZ ;TESTED BIT + 1396 IFE ZZ, + 1397 031241 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1398 031242 205 11 0 00 000100 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1399 031243 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1400 031244 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1401 031245 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1402 031246 004 11 0 00 001531 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1403 031247 321 12 0 00 031242 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1404 + 1405 + 1406 + 1407 ;VERIFY MQ-AD GATING + 1408 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1409 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1410 ;REPEAT FOR ALL 36 BITS OF MQ + 1411 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1412 001532 SN=SN+1 + 1413 000200 ZZ=ZZ+ZZ ;TESTED BIT + 1414 IFE ZZ, + 1415 031250 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1416 031251 205 11 0 00 000200 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1417 031252 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1418 031253 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1419 031254 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1420 031255 004 11 0 00 001532 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1421 031256 321 12 0 00 031251 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1422 + 1423 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0043 + + 1424 + 1425 ;VERIFY MQ-AD GATING + 1426 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1427 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1428 ;REPEAT FOR ALL 36 BITS OF MQ + 1429 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1430 001533 SN=SN+1 + 1431 000400 ZZ=ZZ+ZZ ;TESTED BIT + 1432 IFE ZZ, + 1433 031257 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1434 031260 205 11 0 00 000400 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1435 031261 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1436 031262 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1437 031263 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1438 031264 004 11 0 00 001533 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1439 031265 321 12 0 00 031260 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1440 + 1441 + 1442 + 1443 ;VERIFY MQ-AD GATING + 1444 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1445 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1446 ;REPEAT FOR ALL 36 BITS OF MQ + 1447 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1448 001534 SN=SN+1 + 1449 001000 ZZ=ZZ+ZZ ;TESTED BIT + 1450 IFE ZZ, + 1451 031266 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1452 031267 205 11 0 00 001000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1453 031270 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1454 031271 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1455 031272 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1456 031273 004 11 0 00 001534 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1457 031274 321 12 0 00 031267 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1458 + 1459 + 1460 + 1461 ;VERIFY MQ-AD GATING + 1462 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1463 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1464 ;REPEAT FOR ALL 36 BITS OF MQ + 1465 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1466 001535 SN=SN+1 + 1467 002000 ZZ=ZZ+ZZ ;TESTED BIT + 1468 IFE ZZ, + 1469 031275 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1470 031276 205 11 0 00 002000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1471 031277 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1472 031300 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1473 031301 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1474 031302 004 11 0 00 001535 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1475 031303 321 12 0 00 031276 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1476 + 1477 + 1478 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0044 + + 1479 ;VERIFY MQ-AD GATING + 1480 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1481 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1482 ;REPEAT FOR ALL 36 BITS OF MQ + 1483 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1484 001536 SN=SN+1 + 1485 004000 ZZ=ZZ+ZZ ;TESTED BIT + 1486 IFE ZZ, + 1487 031304 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1488 031305 205 11 0 00 004000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1489 031306 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1490 031307 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1491 031310 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1492 031311 004 11 0 00 001536 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1493 031312 321 12 0 00 031305 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1494 + 1495 + 1496 + 1497 ;VERIFY MQ-AD GATING + 1498 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1499 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1500 ;REPEAT FOR ALL 36 BITS OF MQ + 1501 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1502 001537 SN=SN+1 + 1503 010000 ZZ=ZZ+ZZ ;TESTED BIT + 1504 IFE ZZ, + 1505 031313 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1506 031314 205 11 0 00 010000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1507 031315 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1508 031316 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1509 031317 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1510 031320 004 11 0 00 001537 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1511 031321 321 12 0 00 031314 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1512 + 1513 + 1514 + 1515 ;VERIFY MQ-AD GATING + 1516 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1517 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1518 ;REPEAT FOR ALL 36 BITS OF MQ + 1519 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1520 001540 SN=SN+1 + 1521 020000 ZZ=ZZ+ZZ ;TESTED BIT + 1522 IFE ZZ, + 1523 031322 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1524 031323 205 11 0 00 020000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1525 031324 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1526 031325 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1527 031326 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1528 031327 004 11 0 00 001540 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1529 031330 321 12 0 00 031323 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1530 + 1531 + 1532 + 1533 ;VERIFY MQ-AD GATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0045 + + 1534 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1535 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1536 ;REPEAT FOR ALL 36 BITS OF MQ + 1537 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1538 001541 SN=SN+1 + 1539 040000 ZZ=ZZ+ZZ ;TESTED BIT + 1540 IFE ZZ, + 1541 031331 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1542 031332 205 11 0 00 040000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1543 031333 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1544 031334 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1545 031335 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1546 031336 004 11 0 00 001541 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1547 031337 321 12 0 00 031332 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1548 + 1549 + 1550 + 1551 ;VERIFY MQ-AD GATING + 1552 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1553 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1554 ;REPEAT FOR ALL 36 BITS OF MQ + 1555 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1556 001542 SN=SN+1 + 1557 100000 ZZ=ZZ+ZZ ;TESTED BIT + 1558 IFE ZZ, + 1559 031340 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1560 031341 205 11 0 00 100000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1561 031342 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1562 031343 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1563 031344 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1564 031345 004 11 0 00 001542 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1565 031346 321 12 0 00 031341 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1566 + 1567 + 1568 + 1569 ;VERIFY MQ-AD GATING + 1570 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 + 1571 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1572 ;REPEAT FOR ALL 36 BITS OF MQ + 1573 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1574 001543 SN=SN+1 + 1575 200000 ZZ=ZZ+ZZ ;TESTED BIT + 1576 IFE ZZ, + 1577 031347 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1578 031350 205 11 0 00 200000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1579 031351 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1580 031352 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1581 031353 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1582 031354 004 11 0 00 001543 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1583 031355 321 12 0 00 031350 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1584 + 1585 + 1586 + 1587 ;VERIFY MQ-AD GATING + 1588 ;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 6-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0046 + + 1589 ;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 + 1590 ;REPEAT FOR ALL 36 BITS OF MQ + 1591 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1592 001544 SN=SN+1 + 1593 400000 ZZ=ZZ+ZZ ;TESTED BIT + 1594 IFE ZZ, + 1595 031356 402 00 0 00 000010 SETZM AC ;CLEAR AC + 1596 031357 205 11 0 00 400000 MOVSI AC+1,ZZ ;INITIALIZE AC+1 + 1597 031360 200 07 0 00 000011 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1598 031361 245 10 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1599 031362 312 11 0 00 000007 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1600 031363 004 11 0 00 001544 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1601 031364 321 12 0 00 031357 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 1602 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0047 + + 1603 000007 AC=7 + 1604 SAVEAC (1,1)^ + 1605 031365 201 11 0 00 031365 MOVEI AC+2,. ;SAVE TEST PC + 1606 031366 202 11 0 00 030051 MOVEM AC+2,TESTPC + 1607 031367 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1608 031370 202 11 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1609 + 1610 001600 SN=1600 + 1611 + 1612 000000 ZZ=0 + 1613 + 1614 ;CHECK AC+1 RIGHT < + 1615 E1600: REPEAT ^D18,< + 1616 + 1617 ;VERIFY MQ-AD GATING + 1618 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1619 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1620 ;REPEAT FOR ALL 36 BITS OF MQ + 1621 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1622 SN=SN+1 + 1623 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1624 IFE ZZ, + 1625 SETOM AC ;INITIALIZE TO ALL ONES + 1626 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1627 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1628 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1629 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1630 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1631 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1632 > + 1633 + 1634 + 1635 ;VERIFY MQ-AD GATING + 1636 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1637 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1638 ;REPEAT FOR ALL 36 BITS OF MQ + 1639 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1640 001601 SN=SN+1 + 1641 000001 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1642 IFE ZZ, + 1643 031371 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1644 031372 561 10 0 00 000001 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1645 031373 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1646 031374 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1647 031375 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1648 031376 004 10 0 00 001601 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1649 031377 321 11 0 00 031371 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1650 + 1651 + 1652 + 1653 ;VERIFY MQ-AD GATING + 1654 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1655 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1656 ;REPEAT FOR ALL 36 BITS OF MQ + 1657 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0048 + + 1658 001602 SN=SN+1 + 1659 000003 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1660 IFE ZZ, + 1661 031400 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1662 031401 561 10 0 00 000003 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1663 031402 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1664 031403 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1665 031404 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1666 031405 004 10 0 00 001602 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1667 031406 321 11 0 00 031400 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1668 + 1669 + 1670 + 1671 ;VERIFY MQ-AD GATING + 1672 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1673 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1674 ;REPEAT FOR ALL 36 BITS OF MQ + 1675 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1676 001603 SN=SN+1 + 1677 000007 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1678 IFE ZZ, + 1679 031407 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1680 031410 561 10 0 00 000007 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1681 031411 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1682 031412 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1683 031413 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1684 031414 004 10 0 00 001603 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1685 031415 321 11 0 00 031407 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1686 + 1687 + 1688 + 1689 ;VERIFY MQ-AD GATING + 1690 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1691 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1692 ;REPEAT FOR ALL 36 BITS OF MQ + 1693 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1694 001604 SN=SN+1 + 1695 000017 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1696 IFE ZZ, + 1697 031416 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1698 031417 561 10 0 00 000017 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1699 031420 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1700 031421 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1701 031422 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1702 031423 004 10 0 00 001604 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1703 031424 321 11 0 00 031416 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1704 + 1705 + 1706 + 1707 ;VERIFY MQ-AD GATING + 1708 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1709 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1710 ;REPEAT FOR ALL 36 BITS OF MQ + 1711 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1712 001605 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0049 + + 1713 000037 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1714 IFE ZZ, + 1715 031425 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1716 031426 561 10 0 00 000037 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1717 031427 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1718 031430 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1719 031431 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1720 031432 004 10 0 00 001605 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1721 031433 321 11 0 00 031425 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1722 + 1723 + 1724 + 1725 ;VERIFY MQ-AD GATING + 1726 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1727 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1728 ;REPEAT FOR ALL 36 BITS OF MQ + 1729 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1730 001606 SN=SN+1 + 1731 000077 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1732 IFE ZZ, + 1733 031434 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1734 031435 561 10 0 00 000077 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1735 031436 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1736 031437 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1737 031440 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1738 031441 004 10 0 00 001606 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1739 031442 321 11 0 00 031434 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1740 + 1741 + 1742 + 1743 ;VERIFY MQ-AD GATING + 1744 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1745 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1746 ;REPEAT FOR ALL 36 BITS OF MQ + 1747 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1748 001607 SN=SN+1 + 1749 000177 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1750 IFE ZZ, + 1751 031443 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1752 031444 561 10 0 00 000177 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1753 031445 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1754 031446 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1755 031447 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1756 031450 004 10 0 00 001607 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1757 031451 321 11 0 00 031443 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1758 + 1759 + 1760 + 1761 ;VERIFY MQ-AD GATING + 1762 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1763 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1764 ;REPEAT FOR ALL 36 BITS OF MQ + 1765 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1766 001610 SN=SN+1 + 1767 000377 ZZ=ZZ+ZZ+1 ;TESTED BIT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0050 + + 1768 IFE ZZ, + 1769 031452 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1770 031453 561 10 0 00 000377 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1771 031454 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1772 031455 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1773 031456 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1774 031457 004 10 0 00 001610 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1775 031460 321 11 0 00 031452 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1776 + 1777 + 1778 + 1779 ;VERIFY MQ-AD GATING + 1780 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1781 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1782 ;REPEAT FOR ALL 36 BITS OF MQ + 1783 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1784 001611 SN=SN+1 + 1785 000777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1786 IFE ZZ, + 1787 031461 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1788 031462 561 10 0 00 000777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1789 031463 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1790 031464 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1791 031465 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1792 031466 004 10 0 00 001611 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1793 031467 321 11 0 00 031461 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1794 + 1795 + 1796 + 1797 ;VERIFY MQ-AD GATING + 1798 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1799 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1800 ;REPEAT FOR ALL 36 BITS OF MQ + 1801 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1802 001612 SN=SN+1 + 1803 001777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1804 IFE ZZ, + 1805 031470 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1806 031471 561 10 0 00 001777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1807 031472 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1808 031473 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1809 031474 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1810 031475 004 10 0 00 001612 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1811 031476 321 11 0 00 031470 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1812 + 1813 + 1814 + 1815 ;VERIFY MQ-AD GATING + 1816 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1817 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1818 ;REPEAT FOR ALL 36 BITS OF MQ + 1819 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1820 001613 SN=SN+1 + 1821 003777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1822 IFE ZZ, +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0051 + + 1823 031477 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1824 031500 561 10 0 00 003777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1825 031501 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1826 031502 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1827 031503 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1828 031504 004 10 0 00 001613 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1829 031505 321 11 0 00 031477 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1830 + 1831 + 1832 + 1833 ;VERIFY MQ-AD GATING + 1834 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1835 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1836 ;REPEAT FOR ALL 36 BITS OF MQ + 1837 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1838 001614 SN=SN+1 + 1839 007777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1840 IFE ZZ, + 1841 031506 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1842 031507 561 10 0 00 007777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1843 031510 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1844 031511 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1845 031512 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1846 031513 004 10 0 00 001614 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1847 031514 321 11 0 00 031506 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1848 + 1849 + 1850 + 1851 ;VERIFY MQ-AD GATING + 1852 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1853 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1854 ;REPEAT FOR ALL 36 BITS OF MQ + 1855 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1856 001615 SN=SN+1 + 1857 017777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1858 IFE ZZ, + 1859 031515 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1860 031516 561 10 0 00 017777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1861 031517 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1862 031520 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1863 031521 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1864 031522 004 10 0 00 001615 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1865 031523 321 11 0 00 031515 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1866 + 1867 + 1868 + 1869 ;VERIFY MQ-AD GATING + 1870 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1871 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1872 ;REPEAT FOR ALL 36 BITS OF MQ + 1873 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1874 001616 SN=SN+1 + 1875 037777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1876 IFE ZZ, + 1877 031524 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0052 + + 1878 031525 561 10 0 00 037777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1879 031526 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1880 031527 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1881 031530 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1882 031531 004 10 0 00 001616 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1883 031532 321 11 0 00 031524 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1884 + 1885 + 1886 + 1887 ;VERIFY MQ-AD GATING + 1888 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1889 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1890 ;REPEAT FOR ALL 36 BITS OF MQ + 1891 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1892 001617 SN=SN+1 + 1893 077777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1894 IFE ZZ, + 1895 031533 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1896 031534 561 10 0 00 077777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1897 031535 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1898 031536 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1899 031537 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1900 031540 004 10 0 00 001617 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1901 031541 321 11 0 00 031533 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1902 + 1903 + 1904 + 1905 ;VERIFY MQ-AD GATING + 1906 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1907 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1908 ;REPEAT FOR ALL 36 BITS OF MQ + 1909 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1910 001620 SN=SN+1 + 1911 177777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1912 IFE ZZ, + 1913 031542 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1914 031543 561 10 0 00 177777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1915 031544 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1916 031545 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1917 031546 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1918 031547 004 10 0 00 001620 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1919 031550 321 11 0 00 031542 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1920 + 1921 + 1922 + 1923 ;VERIFY MQ-AD GATING + 1924 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1925 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1926 ;REPEAT FOR ALL 36 BITS OF MQ + 1927 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1928 001621 SN=SN+1 + 1929 377777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1930 IFE ZZ, + 1931 031551 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1932 031552 561 10 0 00 377777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0053 + + 1933 031553 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1934 031554 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1935 031555 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1936 031556 004 10 0 00 001621 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1937 031557 321 11 0 00 031551 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1938 + 1939 + 1940 + 1941 ;VERIFY MQ-AD GATING + 1942 ;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 + 1943 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1944 ;REPEAT FOR ALL 36 BITS OF MQ + 1945 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1946 001622 SN=SN+1 + 1947 777777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1948 IFE ZZ, + 1949 031560 476 00 0 00 000007 SETOM AC ;INITIALIZE TO ALL ONES + 1950 031561 561 10 0 00 777777 HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1951 031562 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1952 031563 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1953 031564 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1954 031565 004 10 0 00 001622 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1955 031566 321 11 0 00 031560 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1956 + 1957 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0054 + + 1958 000000 ZZ=0 + 1959 ;CHECK AC+1 LEFT < + 1960 REPEAT ^D18,< + 1961 + 1962 ;VERIFY MQ-AD GATING + 1963 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 1964 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1965 ;REPEAT FOR ALL 36 BITS OF MQ + 1966 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1967 SN=SN+1 + 1968 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1969 IFE ZZ, + 1970 SETOM AC ;INITIALIZE AC TO ALL ONES + 1971 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1972 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1973 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1974 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1975 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1976 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1977 > + 1978 + 1979 + 1980 ;VERIFY MQ-AD GATING + 1981 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 1982 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 1983 ;REPEAT FOR ALL 36 BITS OF MQ + 1984 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 1985 001623 SN=SN+1 + 1986 000001 ZZ=ZZ+ZZ+1 ;TESTED BIT + 1987 IFE ZZ, + 1988 031567 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 1989 031570 525 10 0 00 000001 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 1990 031571 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 1991 031572 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 1992 031573 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 1993 031574 004 10 0 00 001623 ER4 AC+1,SN ;MQ-AD GATE FAILED + 1994 031575 321 11 0 00 031567 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 1995 + 1996 + 1997 + 1998 ;VERIFY MQ-AD GATING + 1999 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2000 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2001 ;REPEAT FOR ALL 36 BITS OF MQ + 2002 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2003 001624 SN=SN+1 + 2004 000003 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2005 IFE ZZ, + 2006 031576 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2007 031577 525 10 0 00 000003 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2008 031600 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2009 031601 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2010 031602 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2011 031603 004 10 0 00 001624 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2012 031604 321 11 0 00 031576 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0055 + + 2013 + 2014 + 2015 + 2016 ;VERIFY MQ-AD GATING + 2017 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2018 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2019 ;REPEAT FOR ALL 36 BITS OF MQ + 2020 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2021 001625 SN=SN+1 + 2022 000007 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2023 IFE ZZ, + 2024 031605 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2025 031606 525 10 0 00 000007 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2026 031607 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2027 031610 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2028 031611 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2029 031612 004 10 0 00 001625 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2030 031613 321 11 0 00 031605 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2031 + 2032 + 2033 + 2034 ;VERIFY MQ-AD GATING + 2035 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2036 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2037 ;REPEAT FOR ALL 36 BITS OF MQ + 2038 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2039 001626 SN=SN+1 + 2040 000017 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2041 IFE ZZ, + 2042 031614 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2043 031615 525 10 0 00 000017 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2044 031616 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2045 031617 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2046 031620 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2047 031621 004 10 0 00 001626 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2048 031622 321 11 0 00 031614 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2049 + 2050 + 2051 + 2052 ;VERIFY MQ-AD GATING + 2053 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2054 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2055 ;REPEAT FOR ALL 36 BITS OF MQ + 2056 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2057 001627 SN=SN+1 + 2058 000037 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2059 IFE ZZ, + 2060 031623 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2061 031624 525 10 0 00 000037 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2062 031625 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2063 031626 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2064 031627 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2065 031630 004 10 0 00 001627 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2066 031631 321 11 0 00 031623 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2067 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0056 + + 2068 + 2069 + 2070 ;VERIFY MQ-AD GATING + 2071 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2072 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2073 ;REPEAT FOR ALL 36 BITS OF MQ + 2074 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2075 001630 SN=SN+1 + 2076 000077 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2077 IFE ZZ, + 2078 031632 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2079 031633 525 10 0 00 000077 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2080 031634 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2081 031635 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2082 031636 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2083 031637 004 10 0 00 001630 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2084 031640 321 11 0 00 031632 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2085 + 2086 + 2087 + 2088 ;VERIFY MQ-AD GATING + 2089 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2090 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2091 ;REPEAT FOR ALL 36 BITS OF MQ + 2092 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2093 001631 SN=SN+1 + 2094 000177 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2095 IFE ZZ, + 2096 031641 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2097 031642 525 10 0 00 000177 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2098 031643 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2099 031644 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2100 031645 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2101 031646 004 10 0 00 001631 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2102 031647 321 11 0 00 031641 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2103 + 2104 + 2105 + 2106 ;VERIFY MQ-AD GATING + 2107 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2108 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2109 ;REPEAT FOR ALL 36 BITS OF MQ + 2110 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2111 001632 SN=SN+1 + 2112 000377 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2113 IFE ZZ, + 2114 031650 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2115 031651 525 10 0 00 000377 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2116 031652 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2117 031653 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2118 031654 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2119 031655 004 10 0 00 001632 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2120 031656 321 11 0 00 031650 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2121 + 2122 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0057 + + 2123 + 2124 ;VERIFY MQ-AD GATING + 2125 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2126 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2127 ;REPEAT FOR ALL 36 BITS OF MQ + 2128 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2129 001633 SN=SN+1 + 2130 000777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2131 IFE ZZ, + 2132 031657 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2133 031660 525 10 0 00 000777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2134 031661 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2135 031662 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2136 031663 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2137 031664 004 10 0 00 001633 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2138 031665 321 11 0 00 031657 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2139 + 2140 + 2141 + 2142 ;VERIFY MQ-AD GATING + 2143 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2144 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2145 ;REPEAT FOR ALL 36 BITS OF MQ + 2146 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2147 001634 SN=SN+1 + 2148 001777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2149 IFE ZZ, + 2150 031666 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2151 031667 525 10 0 00 001777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2152 031670 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2153 031671 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2154 031672 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2155 031673 004 10 0 00 001634 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2156 031674 321 11 0 00 031666 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2157 + 2158 + 2159 + 2160 ;VERIFY MQ-AD GATING + 2161 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2162 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2163 ;REPEAT FOR ALL 36 BITS OF MQ + 2164 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2165 001635 SN=SN+1 + 2166 003777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2167 IFE ZZ, + 2168 031675 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2169 031676 525 10 0 00 003777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2170 031677 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2171 031700 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2172 031701 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2173 031702 004 10 0 00 001635 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2174 031703 321 11 0 00 031675 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2175 + 2176 + 2177 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0058 + + 2178 ;VERIFY MQ-AD GATING + 2179 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2180 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2181 ;REPEAT FOR ALL 36 BITS OF MQ + 2182 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2183 001636 SN=SN+1 + 2184 007777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2185 IFE ZZ, + 2186 031704 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2187 031705 525 10 0 00 007777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2188 031706 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2189 031707 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2190 031710 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2191 031711 004 10 0 00 001636 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2192 031712 321 11 0 00 031704 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2193 + 2194 + 2195 + 2196 ;VERIFY MQ-AD GATING + 2197 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2198 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2199 ;REPEAT FOR ALL 36 BITS OF MQ + 2200 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2201 001637 SN=SN+1 + 2202 017777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2203 IFE ZZ, + 2204 031713 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2205 031714 525 10 0 00 017777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2206 031715 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2207 031716 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2208 031717 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2209 031720 004 10 0 00 001637 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2210 031721 321 11 0 00 031713 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2211 + 2212 + 2213 + 2214 ;VERIFY MQ-AD GATING + 2215 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2216 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2217 ;REPEAT FOR ALL 36 BITS OF MQ + 2218 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2219 001640 SN=SN+1 + 2220 037777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2221 IFE ZZ, + 2222 031722 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2223 031723 525 10 0 00 037777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2224 031724 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2225 031725 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2226 031726 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2227 031727 004 10 0 00 001640 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2228 031730 321 11 0 00 031722 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2229 + 2230 + 2231 + 2232 ;VERIFY MQ-AD GATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0059 + + 2233 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2234 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2235 ;REPEAT FOR ALL 36 BITS OF MQ + 2236 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2237 001641 SN=SN+1 + 2238 077777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2239 IFE ZZ, + 2240 031731 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2241 031732 525 10 0 00 077777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2242 031733 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2243 031734 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2244 031735 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2245 031736 004 10 0 00 001641 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2246 031737 321 11 0 00 031731 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2247 + 2248 + 2249 + 2250 ;VERIFY MQ-AD GATING + 2251 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2252 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2253 ;REPEAT FOR ALL 36 BITS OF MQ + 2254 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2255 001642 SN=SN+1 + 2256 177777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2257 IFE ZZ, + 2258 031740 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2259 031741 525 10 0 00 177777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2260 031742 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2261 031743 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2262 031744 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2263 031745 004 10 0 00 001642 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2264 031746 321 11 0 00 031740 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2265 + 2266 + 2267 + 2268 ;VERIFY MQ-AD GATING + 2269 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 + 2270 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2271 ;REPEAT FOR ALL 36 BITS OF MQ + 2272 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2273 001643 SN=SN+1 + 2274 377777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2275 IFE ZZ, + 2276 031747 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2277 031750 525 10 0 00 377777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2278 031751 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2279 031752 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2280 031753 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2281 031754 004 10 0 00 001643 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2282 031755 321 11 0 00 031747 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2283 + 2284 + 2285 + 2286 ;VERIFY MQ-AD GATING + 2287 ;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 7-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ-ADDER GATING SEQ 0060 + + 2288 ;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 + 2289 ;REPEAT FOR ALL 36 BITS OF MQ + 2290 ;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA + 2291 001644 SN=SN+1 + 2292 777777 ZZ=ZZ+ZZ+1 ;TESTED BIT + 2293 IFE ZZ, + 2294 031756 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL ONES + 2295 031757 525 10 0 00 777777 HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + 2296 031760 200 06 0 00 000010 MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + 2297 031761 245 07 0 00 000000 ROTC AC,0 ;*ROT 0 BIT POSITIONS + 2298 031762 312 10 0 00 000006 CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + 2299 031763 004 10 0 00 001644 ER4 AC+1,SN ;MQ-AD GATE FAILED + 2300 031764 321 11 0 00 031756 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2301 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) SEQ 0061 + + 2302 SUBTTL DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) + 2303 + 2304 ;BASIC SHIFT TEST + 2305 ;TEST ABILITY TO SHIFT A BIT 0,1,-1 AND -2 POSITIONS + 2306 + 2307 000004 AC=4 + 2308 SAVEAC (1,1)^ + 2309 031765 201 06 0 00 031765 MOVEI AC+2,. ;SAVE TEST PC + 2310 031766 202 06 0 00 030051 MOVEM AC+2,TESTPC + 2311 031767 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2312 031770 202 06 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2313 + 2314 ;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSH + 2315 SR1 (17,0,10,0,10,LSH,0)^ + 2316 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] 0 BIT + 2317 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,10] + 2318 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2319 + 2320 031771 200 04 0 00 041617 E1700: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2321 031772 200 05 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2322 031773 242 04 0 00 000000 LSH AC,0 ;*SHIFT/ROTATE 0 BIT POSITIONS + 2323 031774 312 04 0 00 041617 CAME AC,[XWD 0,10] ;IS RESULT IN AC CORRECT? + 2324 031775 003 04 0 00 001701 ER3 AC,1701 ;RESULT IN AC IS INCORRECT + 2325 031776 312 05 0 00 041620 CAME AC+1,[XWD 741703,607417] + 2326 031777 004 05 0 00 001701 ER4 AC+1,1701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2327 032000 321 06 0 00 031771 JUMPL AC+2,E1700 ;LOOP ON ERROR SWITCH^ + 2328 + 2329 ;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSH + 2330 SR1 (20,0,10,0,20,LSH,1)^ + 2331 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] 1 BIT + 2332 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,20] + 2333 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2334 + 2335 032001 200 04 0 00 041617 E2000: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2336 032002 200 05 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2337 032003 242 04 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 2338 032004 312 04 0 00 041621 CAME AC,[XWD 0,20] ;IS RESULT IN AC CORRECT? + 2339 032005 003 04 0 00 002001 ER3 AC,2001 ;RESULT IN AC IS INCORRECT + 2340 032006 312 05 0 00 041620 CAME AC+1,[XWD 741703,607417] + 2341 032007 004 05 0 00 002001 ER4 AC+1,2001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2342 032010 321 06 0 00 032001 JUMPL AC+2,E2000 ;LOOP ON ERROR SWITCH^ + 2343 + 2344 ;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSH + 2345 SR1 (442,0,10,0,4,LSH,-1)^ + 2346 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] -1 BIT + 2347 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,4] + 2348 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2349 + 2350 032011 200 04 0 00 041617 E44200: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2351 032012 200 05 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2352 032013 242 04 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 2353 032014 312 04 0 00 041622 CAME AC,[XWD 0,4] ;IS RESULT IN AC CORRECT? + 2354 032015 003 04 0 00 044201 ER3 AC,44201 ;RESULT IN AC IS INCORRECT + 2355 032016 312 05 0 00 041620 CAME AC+1,[XWD 741703,607417] + 2356 032017 004 05 0 00 044201 ER4 AC+1,44201 ;C(AC+1) WAS MODIFIED INCORRECTLY +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 8-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) SEQ 0062 + + 2357 032020 321 06 0 00 032011 JUMPL AC+2,E44200 ;LOOP ON ERROR SWITCH^ + 2358 + 2359 ;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSH + 2360 SR1 (21,0,10,0,2,LSH,-2)^ + 2361 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] -2 BIT + 2362 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 2363 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2364 + 2365 032021 200 04 0 00 041617 E2100: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2366 032022 200 05 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2367 032023 242 04 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 2368 032024 312 04 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 2369 032025 003 04 0 00 002101 ER3 AC,2101 ;RESULT IN AC IS INCORRECT + 2370 032026 312 05 0 00 041620 CAME AC+1,[XWD 741703,607417] + 2371 032027 004 05 0 00 002101 ER4 AC+1,2101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2372 032030 321 06 0 00 032021 JUMPL AC+2,E2100 ;LOOP ON ERROR SWITCH^ + 2373 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 8-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) SEQ 0063 + + 2374 ;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSHC + 2375 SR2 (22,0,10,0,10,0,10,0,10,LSHC,0)^ + 2376 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2377 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,10] 0 BIT POSITIONS AND + 2378 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,10] AND + 2379 ;[XWD 0,10] + 2380 + 2381 032031 200 04 0 00 041617 E2200: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2382 032032 200 05 0 00 041617 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 2383 032033 246 04 0 00 000000 LSHC AC,0 ;*SHIFT/ROTATE COMBINED 0 PLACES + 2384 032034 312 04 0 00 041617 CAME AC,[XWD 0,10] ;IS RESULT IN AC CORRECT? + 2385 032035 003 04 0 00 002201 ER3 AC,2201 ;RESULT IN AC IS INCORRECT + 2386 032036 312 05 0 00 041617 CAME AC+1,[XWD 0,10] ;IS RESULT IN AC+1 CORRECT? + 2387 032037 004 05 0 00 002201 ER4 AC+1,2201 ;RESULT IN AC+1 IS INCORRECT + 2388 032040 321 06 0 00 032031 JUMPL AC+2,E2200 ;LOOP ON ERROR SWITCH^ + 2389 + 2390 ;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSHC + 2391 SR2 (23,0,10,0,10,0,20,0,20,LSHC,1)^ + 2392 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2393 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,10] 1 BIT POSITIONS AND + 2394 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,20] AND + 2395 ;[XWD 0,20] + 2396 + 2397 032041 200 04 0 00 041617 E2300: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2398 032042 200 05 0 00 041617 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 2399 032043 246 04 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 2400 032044 312 04 0 00 041621 CAME AC,[XWD 0,20] ;IS RESULT IN AC CORRECT? + 2401 032045 003 04 0 00 002301 ER3 AC,2301 ;RESULT IN AC IS INCORRECT + 2402 032046 312 05 0 00 041621 CAME AC+1,[XWD 0,20] ;IS RESULT IN AC+1 CORRECT? + 2403 032047 004 05 0 00 002301 ER4 AC+1,2301 ;RESULT IN AC+1 IS INCORRECT + 2404 032050 321 06 0 00 032041 JUMPL AC+2,E2300 ;LOOP ON ERROR SWITCH^ + 2405 + 2406 ;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSHC + 2407 SR2 (24,0,10,0,10,0,4,0,4,LSHC,-1)^ + 2408 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2409 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,10] -1 BIT POSITIONS AND + 2410 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,4] AND + 2411 ;[XWD 0,4] + 2412 + 2413 032051 200 04 0 00 041617 E2400: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2414 032052 200 05 0 00 041617 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 2415 032053 246 04 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2416 032054 312 04 0 00 041622 CAME AC,[XWD 0,4] ;IS RESULT IN AC CORRECT? + 2417 032055 003 04 0 00 002401 ER3 AC,2401 ;RESULT IN AC IS INCORRECT + 2418 032056 312 05 0 00 041622 CAME AC+1,[XWD 0,4] ;IS RESULT IN AC+1 CORRECT? + 2419 032057 004 05 0 00 002401 ER4 AC+1,2401 ;RESULT IN AC+1 IS INCORRECT + 2420 032060 321 06 0 00 032051 JUMPL AC+2,E2400 ;LOOP ON ERROR SWITCH^ + 2421 + 2422 ;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSHC + 2423 SR2 (25,0,10,0,10,0,2,0,2,LSHC,-2)^ + 2424 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2425 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,10] -2 BIT POSITIONS AND + 2426 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 2427 ;[XWD 0,2] + 2428 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 8-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) SEQ 0064 + + 2429 032061 200 04 0 00 041617 E2500: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2430 032062 200 05 0 00 041617 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 2431 032063 246 04 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2432 032064 312 04 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 2433 032065 003 04 0 00 002501 ER3 AC,2501 ;RESULT IN AC IS INCORRECT + 2434 032066 312 05 0 00 041623 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 2435 032067 004 05 0 00 002501 ER4 AC+1,2501 ;RESULT IN AC+1 IS INCORRECT + 2436 032070 321 06 0 00 032061 JUMPL AC+2,E2500 ;LOOP ON ERROR SWITCH^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SAC FUNCTION SEQ 0065 + + 2437 SUBTTL DIAGNOSTIC SECTION - TEST SAC FUNCTION + 2438 + 2439 000010 AC=10 + 2440 SAVEAC (1,1)^ + 2441 032071 201 12 0 00 032071 MOVEI AC+2,. ;SAVE TEST PC + 2442 032072 202 12 0 00 030051 MOVEM AC+2,TESTPC + 2443 032073 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2444 032074 202 12 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2445 + 2446 002600 SN=2600 + 2447 000001 ZZ=1 + 2448 + 2449 ;TEST SAC + 2450 E2600: REPEAT ^D3,< + 2451 SN=SN+1 + 2452 ;FURTHER TEST OF SAC,SAC2 + 2453 ;TEST FOR ASSERTION OF SAC INH + 2454 ;TEST ASSUMES ABILITY TO ROTATE + 2455 ;TO SOME DEGREE + 2456 ZZ=ZZ+ZZ + 2457 HRRZI AC,400000 ;SET BIT 18 + 2458 ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2459 CAIN AC,400000 ;TEST FOR SAC + 2460 ER3 AC,SN ;STORE AC FAILED + 2461 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2462 > + 2463 + 2464 002601 SN=SN+1 + 2465 ;FURTHER TEST OF SAC,SAC2 + 2466 ;TEST FOR ASSERTION OF SAC INH + 2467 ;TEST ASSUMES ABILITY TO ROTATE + 2468 ;TO SOME DEGREE + 2469 000002 ZZ=ZZ+ZZ + 2470 032075 551 10 0 00 400000 HRRZI AC,400000 ;SET BIT 18 + 2471 032076 241 10 0 00 000002 ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2472 032077 306 10 0 00 400000 CAIN AC,400000 ;TEST FOR SAC + 2473 032100 003 10 0 00 002601 ER3 AC,SN ;STORE AC FAILED + 2474 032101 321 12 0 00 032075 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2475 + 2476 + 2477 002602 SN=SN+1 + 2478 ;FURTHER TEST OF SAC,SAC2 + 2479 ;TEST FOR ASSERTION OF SAC INH + 2480 ;TEST ASSUMES ABILITY TO ROTATE + 2481 ;TO SOME DEGREE + 2482 000004 ZZ=ZZ+ZZ + 2483 032102 551 10 0 00 400000 HRRZI AC,400000 ;SET BIT 18 + 2484 032103 241 10 0 00 000004 ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2485 032104 306 10 0 00 400000 CAIN AC,400000 ;TEST FOR SAC + 2486 032105 003 10 0 00 002602 ER3 AC,SN ;STORE AC FAILED + 2487 032106 321 12 0 00 032102 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2488 + 2489 + 2490 002603 SN=SN+1 + 2491 ;FURTHER TEST OF SAC,SAC2 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 9-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SAC FUNCTION SEQ 0066 + + 2492 ;TEST FOR ASSERTION OF SAC INH + 2493 ;TEST ASSUMES ABILITY TO ROTATE + 2494 ;TO SOME DEGREE + 2495 000010 ZZ=ZZ+ZZ + 2496 032107 551 10 0 00 400000 HRRZI AC,400000 ;SET BIT 18 + 2497 032110 241 10 0 00 000010 ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2498 032111 306 10 0 00 400000 CAIN AC,400000 ;TEST FOR SAC + 2499 032112 003 10 0 00 002603 ER3 AC,SN ;STORE AC FAILED + 2500 032113 321 12 0 00 032107 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2501 + 2502 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 9-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SAC FUNCTION SEQ 0067 + + 2503 002700 SN=2700 + 2504 000001 ZZ=1 + 2505 + 2506 ;TEST SAC + 2507 E2700: REPEAT ^D3,< + 2508 SN=SN+1 + 2509 ;FURTHER TEST OF SAC,SAC2 + 2510 ;TEST FOR ASSERTION OF SAC INH + 2511 ;TEST ASSUMES ABILITY TO ROTATE + 2512 ;TO SOME DEGREE + 2513 + 2514 ZZ=ZZ+ZZ + 2515 SETZ AC, ;CLEAR AC + 2516 HRRZI AC+1,400000 ;SET BIT 18 + 2517 ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2518 CAIN AC+1,400000 ;TEST FOR SAC + 2519 ER4 AC+1,SN ;STORE AC+1 FAILED + 2520 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2521 > + 2522 + 2523 002701 SN=SN+1 + 2524 ;FURTHER TEST OF SAC,SAC2 + 2525 ;TEST FOR ASSERTION OF SAC INH + 2526 ;TEST ASSUMES ABILITY TO ROTATE + 2527 ;TO SOME DEGREE + 2528 + 2529 000002 ZZ=ZZ+ZZ + 2530 032114 400 10 0 00 000000 SETZ AC, ;CLEAR AC + 2531 032115 551 11 0 00 400000 HRRZI AC+1,400000 ;SET BIT 18 + 2532 032116 245 10 0 00 000002 ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2533 032117 306 11 0 00 400000 CAIN AC+1,400000 ;TEST FOR SAC + 2534 032120 004 11 0 00 002701 ER4 AC+1,SN ;STORE AC+1 FAILED + 2535 032121 321 12 0 00 032114 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2536 + 2537 + 2538 002702 SN=SN+1 + 2539 ;FURTHER TEST OF SAC,SAC2 + 2540 ;TEST FOR ASSERTION OF SAC INH + 2541 ;TEST ASSUMES ABILITY TO ROTATE + 2542 ;TO SOME DEGREE + 2543 + 2544 000004 ZZ=ZZ+ZZ + 2545 032122 400 10 0 00 000000 SETZ AC, ;CLEAR AC + 2546 032123 551 11 0 00 400000 HRRZI AC+1,400000 ;SET BIT 18 + 2547 032124 245 10 0 00 000004 ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2548 032125 306 11 0 00 400000 CAIN AC+1,400000 ;TEST FOR SAC + 2549 032126 004 11 0 00 002702 ER4 AC+1,SN ;STORE AC+1 FAILED + 2550 032127 321 12 0 00 032122 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2551 + 2552 + 2553 002703 SN=SN+1 + 2554 ;FURTHER TEST OF SAC,SAC2 + 2555 ;TEST FOR ASSERTION OF SAC INH + 2556 ;TEST ASSUMES ABILITY TO ROTATE + 2557 ;TO SOME DEGREE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 9-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SAC FUNCTION SEQ 0068 + + 2558 + 2559 000010 ZZ=ZZ+ZZ + 2560 032130 400 10 0 00 000000 SETZ AC, ;CLEAR AC + 2561 032131 551 11 0 00 400000 HRRZI AC+1,400000 ;SET BIT 18 + 2562 032132 245 10 0 00 000010 ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + 2563 032133 306 11 0 00 400000 CAIN AC+1,400000 ;TEST FOR SAC + 2564 032134 004 11 0 00 002703 ER4 AC+1,SN ;STORE AC+1 FAILED + 2565 032135 321 12 0 00 032130 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2566 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0069 + + 2567 SUBTTL DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR + 2568 + 2569 ;TEST ROT LEFT ONE BIT POSITION USING ALL ZEROS + 2570 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2571 ;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + 2572 + 2573 000011 AC=11 + 2574 SAVEAC (1,1)^ + 2575 032136 201 13 0 00 032136 MOVEI AC+2,. ;SAVE TEST PC + 2576 032137 202 13 0 00 030051 MOVEM AC+2,TESTPC + 2577 032140 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2578 032141 202 13 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2579 + 2580 032142 403 11 0 00 000010 E3000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + 2581 032143 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2582 032144 312 11 0 00 000010 CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + 2583 032145 003 11 0 00 003001 ER3 AC,3001 ;AD-AR GATING FAILED + 2584 032146 321 13 0 00 032147 JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH + 2585 + 2586 ;TEST ROT LEFT ONE BIT POSITION USING ALL ONES + 2587 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2588 ;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + 2589 + 2590 032147 477 11 0 00 000010 E3100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + 2591 032150 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2592 032151 312 11 0 00 000010 CAME AC,AC-1 ;TEST AC FOR ALL ONES + 2593 032152 003 11 0 00 003101 ER3 AC,3101 ;AD-AR GATING FAILED + 2594 032153 321 13 0 00 032147 JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0070 + + 2595 003200 SN=3200 + 2596 000000 ZZ=0 + 2597 + 2598 ;TEST AC RIGHT HALF < + 2599 E3200: REPEAT ^D18,< + 2600 ;TEST ROT LEFT ONE BIT POSITION + 2601 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2602 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2603 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2604 ;IS ONE AFTER ROTATING + 2605 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2606 + 2607 SN=SN+1 + 2608 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2609 IFE ZZ, + 2610 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2611 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2612 IFN ,< + 2613 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2614 IFE ,< + 2615 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2616 ROT AC,1 ;*ROTATE LEFT ONE + 2617 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2618 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2619 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2620 > + 2621 + 2622 ;TEST ROT LEFT ONE BIT POSITION + 2623 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2624 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2625 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2626 ;IS ONE AFTER ROTATING + 2627 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2628 + 2629 003201 SN=SN+1 + 2630 000000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2631 000001 IFE ZZ, + 2632 000002 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2633 032154 201 11 0 00 000001 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2634 IFN ,< + 2635 032155 201 10 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2636 IFE ,< + 2637 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2638 032156 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2639 032157 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2640 032160 003 11 0 00 003201 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2641 032161 321 13 0 00 032154 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2642 + 2643 + 2644 ;TEST ROT LEFT ONE BIT POSITION + 2645 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2646 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2647 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2648 ;IS ONE AFTER ROTATING + 2649 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0071 + + 2650 + 2651 003202 SN=SN+1 + 2652 000002 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2653 IFE ZZ, + 2654 000004 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2655 032162 201 11 0 00 000002 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2656 IFN ,< + 2657 032163 201 10 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2658 IFE ,< + 2659 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2660 032164 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2661 032165 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2662 032166 003 11 0 00 003202 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2663 032167 321 13 0 00 032162 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2664 + 2665 + 2666 ;TEST ROT LEFT ONE BIT POSITION + 2667 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2668 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2669 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2670 ;IS ONE AFTER ROTATING + 2671 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2672 + 2673 003203 SN=SN+1 + 2674 000004 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2675 IFE ZZ, + 2676 000010 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2677 032170 201 11 0 00 000004 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2678 IFN ,< + 2679 032171 201 10 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2680 IFE ,< + 2681 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2682 032172 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2683 032173 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2684 032174 003 11 0 00 003203 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2685 032175 321 13 0 00 032170 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2686 + 2687 + 2688 ;TEST ROT LEFT ONE BIT POSITION + 2689 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2690 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2691 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2692 ;IS ONE AFTER ROTATING + 2693 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2694 + 2695 003204 SN=SN+1 + 2696 000010 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2697 IFE ZZ, + 2698 000020 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2699 032176 201 11 0 00 000010 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2700 IFN ,< + 2701 032177 201 10 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2702 IFE ,< + 2703 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2704 032200 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0072 + + 2705 032201 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2706 032202 003 11 0 00 003204 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2707 032203 321 13 0 00 032176 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2708 + 2709 + 2710 ;TEST ROT LEFT ONE BIT POSITION + 2711 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2712 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2713 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2714 ;IS ONE AFTER ROTATING + 2715 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2716 + 2717 003205 SN=SN+1 + 2718 000020 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2719 IFE ZZ, + 2720 000040 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2721 032204 201 11 0 00 000020 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2722 IFN ,< + 2723 032205 201 10 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2724 IFE ,< + 2725 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2726 032206 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2727 032207 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2728 032210 003 11 0 00 003205 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2729 032211 321 13 0 00 032204 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2730 + 2731 + 2732 ;TEST ROT LEFT ONE BIT POSITION + 2733 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2734 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2735 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2736 ;IS ONE AFTER ROTATING + 2737 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2738 + 2739 003206 SN=SN+1 + 2740 000040 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2741 IFE ZZ, + 2742 000100 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2743 032212 201 11 0 00 000040 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2744 IFN ,< + 2745 032213 201 10 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2746 IFE ,< + 2747 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2748 032214 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2749 032215 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2750 032216 003 11 0 00 003206 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2751 032217 321 13 0 00 032212 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2752 + 2753 + 2754 ;TEST ROT LEFT ONE BIT POSITION + 2755 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2756 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2757 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2758 ;IS ONE AFTER ROTATING + 2759 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0073 + + 2760 + 2761 003207 SN=SN+1 + 2762 000100 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2763 IFE ZZ, + 2764 000200 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2765 032220 201 11 0 00 000100 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2766 IFN ,< + 2767 032221 201 10 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2768 IFE ,< + 2769 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2770 032222 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2771 032223 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2772 032224 003 11 0 00 003207 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2773 032225 321 13 0 00 032220 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2774 + 2775 + 2776 ;TEST ROT LEFT ONE BIT POSITION + 2777 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2778 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2779 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2780 ;IS ONE AFTER ROTATING + 2781 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2782 + 2783 003210 SN=SN+1 + 2784 000200 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2785 IFE ZZ, + 2786 000400 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2787 032226 201 11 0 00 000200 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2788 IFN ,< + 2789 032227 201 10 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2790 IFE ,< + 2791 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2792 032230 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2793 032231 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2794 032232 003 11 0 00 003210 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2795 032233 321 13 0 00 032226 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2796 + 2797 + 2798 ;TEST ROT LEFT ONE BIT POSITION + 2799 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2800 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2801 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2802 ;IS ONE AFTER ROTATING + 2803 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2804 + 2805 003211 SN=SN+1 + 2806 000400 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2807 IFE ZZ, + 2808 001000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2809 032234 201 11 0 00 000400 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2810 IFN ,< + 2811 032235 201 10 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2812 IFE ,< + 2813 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2814 032236 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0074 + + 2815 032237 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2816 032240 003 11 0 00 003211 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2817 032241 321 13 0 00 032234 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2818 + 2819 + 2820 ;TEST ROT LEFT ONE BIT POSITION + 2821 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2822 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2823 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2824 ;IS ONE AFTER ROTATING + 2825 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2826 + 2827 003212 SN=SN+1 + 2828 001000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2829 IFE ZZ, + 2830 002000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2831 032242 201 11 0 00 001000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2832 IFN ,< + 2833 032243 201 10 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2834 IFE ,< + 2835 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2836 032244 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2837 032245 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2838 032246 003 11 0 00 003212 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2839 032247 321 13 0 00 032242 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2840 + 2841 + 2842 ;TEST ROT LEFT ONE BIT POSITION + 2843 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2844 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2845 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2846 ;IS ONE AFTER ROTATING + 2847 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2848 + 2849 003213 SN=SN+1 + 2850 002000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2851 IFE ZZ, + 2852 004000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2853 032250 201 11 0 00 002000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2854 IFN ,< + 2855 032251 201 10 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2856 IFE ,< + 2857 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2858 032252 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2859 032253 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2860 032254 003 11 0 00 003213 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2861 032255 321 13 0 00 032250 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2862 + 2863 + 2864 ;TEST ROT LEFT ONE BIT POSITION + 2865 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2866 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2867 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2868 ;IS ONE AFTER ROTATING + 2869 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0075 + + 2870 + 2871 003214 SN=SN+1 + 2872 004000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2873 IFE ZZ, + 2874 010000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2875 032256 201 11 0 00 004000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2876 IFN ,< + 2877 032257 201 10 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2878 IFE ,< + 2879 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2880 032260 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2881 032261 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2882 032262 003 11 0 00 003214 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2883 032263 321 13 0 00 032256 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2884 + 2885 + 2886 ;TEST ROT LEFT ONE BIT POSITION + 2887 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2888 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2889 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2890 ;IS ONE AFTER ROTATING + 2891 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2892 + 2893 003215 SN=SN+1 + 2894 010000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2895 IFE ZZ, + 2896 020000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2897 032264 201 11 0 00 010000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2898 IFN ,< + 2899 032265 201 10 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2900 IFE ,< + 2901 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2902 032266 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2903 032267 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2904 032270 003 11 0 00 003215 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2905 032271 321 13 0 00 032264 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2906 + 2907 + 2908 ;TEST ROT LEFT ONE BIT POSITION + 2909 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2910 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2911 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2912 ;IS ONE AFTER ROTATING + 2913 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2914 + 2915 003216 SN=SN+1 + 2916 020000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2917 IFE ZZ, + 2918 040000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2919 032272 201 11 0 00 020000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2920 IFN ,< + 2921 032273 201 10 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2922 IFE ,< + 2923 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2924 032274 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0076 + + 2925 032275 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2926 032276 003 11 0 00 003216 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2927 032277 321 13 0 00 032272 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2928 + 2929 + 2930 ;TEST ROT LEFT ONE BIT POSITION + 2931 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2932 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2933 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2934 ;IS ONE AFTER ROTATING + 2935 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2936 + 2937 003217 SN=SN+1 + 2938 040000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2939 IFE ZZ, + 2940 100000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2941 032300 201 11 0 00 040000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2942 IFN ,< + 2943 032301 201 10 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2944 IFE ,< + 2945 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2946 032302 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2947 032303 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2948 032304 003 11 0 00 003217 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2949 032305 321 13 0 00 032300 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2950 + 2951 + 2952 ;TEST ROT LEFT ONE BIT POSITION + 2953 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2954 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2955 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2956 ;IS ONE AFTER ROTATING + 2957 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 2958 + 2959 003220 SN=SN+1 + 2960 100000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2961 IFE ZZ, + 2962 200000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2963 032306 201 11 0 00 100000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2964 IFN ,< + 2965 032307 201 10 0 00 200000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2966 IFE ,< + 2967 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2968 032310 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2969 032311 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2970 032312 003 11 0 00 003220 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2971 032313 321 13 0 00 032306 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2972 + 2973 + 2974 ;TEST ROT LEFT ONE BIT POSITION + 2975 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2976 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2977 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 2978 ;IS ONE AFTER ROTATING + 2979 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0077 + + 2980 + 2981 003221 SN=SN+1 + 2982 200000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 2983 IFE ZZ, + 2984 400000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 2985 032314 201 11 0 00 200000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 2986 IFN ,< + 2987 032315 201 10 0 00 400000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 2988 IFE ,< + 2989 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 2990 032316 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 2991 032317 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 2992 032320 003 11 0 00 003221 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 2993 032321 321 13 0 00 032314 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2994 + 2995 + 2996 ;TEST ROT LEFT ONE BIT POSITION + 2997 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 2998 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 2999 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT + 3000 ;IS ONE AFTER ROTATING + 3001 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3002 + 3003 003222 SN=SN+1 + 3004 400000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3005 IFE ZZ, + 3006 000001 000000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3007 032322 201 11 0 00 400000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 3008 IFN ,< + 3009 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 3010 IFE ,< + 3011 032323 205 10 0 00 000001 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 3012 032324 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3013 032325 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3014 032326 003 11 0 00 003222 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3015 032327 321 13 0 00 032322 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3016 + 3017 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0078 + + 3018 000000 ZZ=0 + 3019 + 3020 ;TEST AC LEFT HALF < + 3021 REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION + 3022 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3023 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3024 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3025 ;ONE AFTER ROTATING + 3026 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3027 + 3028 SN=SN+1 + 3029 + 3030 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3031 IFE ZZ, + 3032 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3033 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3034 IFN ,< + 3035 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3036 IFE ,< + 3037 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3038 ROT AC,1 ;*ROTATE LEFT ONE + 3039 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3040 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3041 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3042 > + 3043 ;TEST ROT LEFT ONE BIT POSITION + 3044 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3045 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3046 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3047 ;ONE AFTER ROTATING + 3048 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3049 + 3050 003223 SN=SN+1 + 3051 + 3052 000000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3053 000001 IFE ZZ, + 3054 000002 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3055 032330 205 11 0 00 000001 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3056 IFN ,< + 3057 032331 205 10 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3058 IFE ,< + 3059 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3060 032332 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3061 032333 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3062 032334 003 11 0 00 003223 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3063 032335 321 13 0 00 032330 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3064 + 3065 ;TEST ROT LEFT ONE BIT POSITION + 3066 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3067 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3068 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3069 ;ONE AFTER ROTATING + 3070 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3071 + 3072 003224 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0079 + + 3073 + 3074 000002 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3075 IFE ZZ, + 3076 000004 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3077 032336 205 11 0 00 000002 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3078 IFN ,< + 3079 032337 205 10 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3080 IFE ,< + 3081 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3082 032340 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3083 032341 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3084 032342 003 11 0 00 003224 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3085 032343 321 13 0 00 032336 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3086 + 3087 ;TEST ROT LEFT ONE BIT POSITION + 3088 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3089 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3090 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3091 ;ONE AFTER ROTATING + 3092 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3093 + 3094 003225 SN=SN+1 + 3095 + 3096 000004 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3097 IFE ZZ, + 3098 000010 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3099 032344 205 11 0 00 000004 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3100 IFN ,< + 3101 032345 205 10 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3102 IFE ,< + 3103 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3104 032346 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3105 032347 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3106 032350 003 11 0 00 003225 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3107 032351 321 13 0 00 032344 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3108 + 3109 ;TEST ROT LEFT ONE BIT POSITION + 3110 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3111 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3112 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3113 ;ONE AFTER ROTATING + 3114 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3115 + 3116 003226 SN=SN+1 + 3117 + 3118 000010 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3119 IFE ZZ, + 3120 000020 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3121 032352 205 11 0 00 000010 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3122 IFN ,< + 3123 032353 205 10 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3124 IFE ,< + 3125 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3126 032354 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3127 032355 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0080 + + 3128 032356 003 11 0 00 003226 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3129 032357 321 13 0 00 032352 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3130 + 3131 ;TEST ROT LEFT ONE BIT POSITION + 3132 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3133 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3134 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3135 ;ONE AFTER ROTATING + 3136 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3137 + 3138 003227 SN=SN+1 + 3139 + 3140 000020 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3141 IFE ZZ, + 3142 000040 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3143 032360 205 11 0 00 000020 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3144 IFN ,< + 3145 032361 205 10 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3146 IFE ,< + 3147 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3148 032362 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3149 032363 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3150 032364 003 11 0 00 003227 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3151 032365 321 13 0 00 032360 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3152 + 3153 ;TEST ROT LEFT ONE BIT POSITION + 3154 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3155 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3156 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3157 ;ONE AFTER ROTATING + 3158 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3159 + 3160 003230 SN=SN+1 + 3161 + 3162 000040 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3163 IFE ZZ, + 3164 000100 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3165 032366 205 11 0 00 000040 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3166 IFN ,< + 3167 032367 205 10 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3168 IFE ,< + 3169 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3170 032370 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3171 032371 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3172 032372 003 11 0 00 003230 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3173 032373 321 13 0 00 032366 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3174 + 3175 ;TEST ROT LEFT ONE BIT POSITION + 3176 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3177 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3178 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3179 ;ONE AFTER ROTATING + 3180 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3181 + 3182 003231 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0081 + + 3183 + 3184 000100 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3185 IFE ZZ, + 3186 000200 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3187 032374 205 11 0 00 000100 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3188 IFN ,< + 3189 032375 205 10 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3190 IFE ,< + 3191 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3192 032376 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3193 032377 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3194 032400 003 11 0 00 003231 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3195 032401 321 13 0 00 032374 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3196 + 3197 ;TEST ROT LEFT ONE BIT POSITION + 3198 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3199 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3200 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3201 ;ONE AFTER ROTATING + 3202 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3203 + 3204 003232 SN=SN+1 + 3205 + 3206 000200 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3207 IFE ZZ, + 3208 000400 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3209 032402 205 11 0 00 000200 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3210 IFN ,< + 3211 032403 205 10 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3212 IFE ,< + 3213 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3214 032404 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3215 032405 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3216 032406 003 11 0 00 003232 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3217 032407 321 13 0 00 032402 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3218 + 3219 ;TEST ROT LEFT ONE BIT POSITION + 3220 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3221 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3222 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3223 ;ONE AFTER ROTATING + 3224 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3225 + 3226 003233 SN=SN+1 + 3227 + 3228 000400 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3229 IFE ZZ, + 3230 001000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3231 032410 205 11 0 00 000400 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3232 IFN ,< + 3233 032411 205 10 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3234 IFE ,< + 3235 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3236 032412 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3237 032413 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0082 + + 3238 032414 003 11 0 00 003233 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3239 032415 321 13 0 00 032410 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3240 + 3241 ;TEST ROT LEFT ONE BIT POSITION + 3242 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3243 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3244 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3245 ;ONE AFTER ROTATING + 3246 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3247 + 3248 003234 SN=SN+1 + 3249 + 3250 001000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3251 IFE ZZ, + 3252 002000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3253 032416 205 11 0 00 001000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3254 IFN ,< + 3255 032417 205 10 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3256 IFE ,< + 3257 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3258 032420 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3259 032421 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3260 032422 003 11 0 00 003234 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3261 032423 321 13 0 00 032416 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3262 + 3263 ;TEST ROT LEFT ONE BIT POSITION + 3264 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3265 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3266 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3267 ;ONE AFTER ROTATING + 3268 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3269 + 3270 003235 SN=SN+1 + 3271 + 3272 002000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3273 IFE ZZ, + 3274 004000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3275 032424 205 11 0 00 002000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3276 IFN ,< + 3277 032425 205 10 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3278 IFE ,< + 3279 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3280 032426 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3281 032427 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3282 032430 003 11 0 00 003235 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3283 032431 321 13 0 00 032424 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3284 + 3285 ;TEST ROT LEFT ONE BIT POSITION + 3286 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3287 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3288 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3289 ;ONE AFTER ROTATING + 3290 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3291 + 3292 003236 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0083 + + 3293 + 3294 004000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3295 IFE ZZ, + 3296 010000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3297 032432 205 11 0 00 004000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3298 IFN ,< + 3299 032433 205 10 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3300 IFE ,< + 3301 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3302 032434 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3303 032435 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3304 032436 003 11 0 00 003236 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3305 032437 321 13 0 00 032432 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3306 + 3307 ;TEST ROT LEFT ONE BIT POSITION + 3308 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3309 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3310 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3311 ;ONE AFTER ROTATING + 3312 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3313 + 3314 003237 SN=SN+1 + 3315 + 3316 010000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3317 IFE ZZ, + 3318 020000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3319 032440 205 11 0 00 010000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3320 IFN ,< + 3321 032441 205 10 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3322 IFE ,< + 3323 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3324 032442 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3325 032443 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3326 032444 003 11 0 00 003237 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3327 032445 321 13 0 00 032440 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3328 + 3329 ;TEST ROT LEFT ONE BIT POSITION + 3330 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3331 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3332 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3333 ;ONE AFTER ROTATING + 3334 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3335 + 3336 003240 SN=SN+1 + 3337 + 3338 020000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3339 IFE ZZ, + 3340 040000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3341 032446 205 11 0 00 020000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3342 IFN ,< + 3343 032447 205 10 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3344 IFE ,< + 3345 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3346 032450 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3347 032451 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0084 + + 3348 032452 003 11 0 00 003240 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3349 032453 321 13 0 00 032446 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3350 + 3351 ;TEST ROT LEFT ONE BIT POSITION + 3352 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3353 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3354 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3355 ;ONE AFTER ROTATING + 3356 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3357 + 3358 003241 SN=SN+1 + 3359 + 3360 040000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3361 IFE ZZ, + 3362 100000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3363 032454 205 11 0 00 040000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3364 IFN ,< + 3365 032455 205 10 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3366 IFE ,< + 3367 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3368 032456 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3369 032457 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3370 032460 003 11 0 00 003241 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3371 032461 321 13 0 00 032454 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3372 + 3373 ;TEST ROT LEFT ONE BIT POSITION + 3374 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3375 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3376 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3377 ;ONE AFTER ROTATING + 3378 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3379 + 3380 003242 SN=SN+1 + 3381 + 3382 100000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3383 IFE ZZ, + 3384 200000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3385 032462 205 11 0 00 100000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3386 IFN ,< + 3387 032463 205 10 0 00 200000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3388 IFE ,< + 3389 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3390 032464 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3391 032465 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3392 032466 003 11 0 00 003242 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3393 032467 321 13 0 00 032462 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3394 + 3395 ;TEST ROT LEFT ONE BIT POSITION + 3396 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3397 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3398 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3399 ;ONE AFTER ROTATING + 3400 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3401 + 3402 003243 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 11-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0085 + + 3403 + 3404 200000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3405 IFE ZZ, + 3406 400000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3407 032470 205 11 0 00 200000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3408 IFN ,< + 3409 032471 205 10 0 00 400000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3410 IFE ,< + 3411 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3412 032472 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3413 032473 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3414 032474 003 11 0 00 003243 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3415 032475 321 13 0 00 032470 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3416 + 3417 ;TEST ROT LEFT ONE BIT POSITION + 3418 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 3419 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3420 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 3421 ;ONE AFTER ROTATING + 3422 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 3423 + 3424 003244 SN=SN+1 + 3425 + 3426 400000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 3427 IFE ZZ, + 3428 000001 000000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 3429 032476 205 11 0 00 400000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 3430 IFN ,< + 3431 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 3432 IFE ,< + 3433 032477 201 10 0 00 000001 MOVEI AC-1,1 ;SETUP FOR COMPARISON> + 3434 032500 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3435 032501 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + 3436 032502 003 11 0 00 003244 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3437 032503 321 13 0 00 032476 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3438 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0086 + + 3439 003300 SN=3300 + 3440 000000 ZZ=0 + 3441 + 3442 ;TEST AC RIGHT HALF< + 3443 E3300: REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION + 3444 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3445 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3446 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3447 ;IS ZERO AFTER ROTATING. + 3448 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3449 + 3450 SN=SN+1 + 3451 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3452 IFE , + 3453 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3454 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3455 IFN <&377777>,< + 3456 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3457 IFE <&777777>,< + 3458 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3459 ROT AC,1 ;*ROTATE LEFT ONE + 3460 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3461 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3462 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3463 > + 3464 ;TEST ROT LEFT ONE BIT POSITION + 3465 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3466 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3467 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3468 ;IS ZERO AFTER ROTATING. + 3469 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3470 + 3471 003301 SN=SN+1 + 3472 000001 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3473 777777 777776 IFE , + 3474 777775 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3475 032504 561 11 0 00 777776 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3476 IFN <&377777>,< + 3477 032505 561 10 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3478 IFE <&777777>,< + 3479 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3480 032506 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3481 032507 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3482 032510 003 11 0 00 003301 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3483 032511 321 13 0 00 032504 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3484 + 3485 ;TEST ROT LEFT ONE BIT POSITION + 3486 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3487 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3488 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3489 ;IS ZERO AFTER ROTATING. + 3490 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3491 + 3492 003302 SN=SN+1 + 3493 777777 777775 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0087 + + 3494 IFE , + 3495 777773 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3496 032512 561 11 0 00 777775 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3497 IFN <&377777>,< + 3498 032513 561 10 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3499 IFE <&777777>,< + 3500 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3501 032514 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3502 032515 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3503 032516 003 11 0 00 003302 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3504 032517 321 13 0 00 032512 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3505 + 3506 ;TEST ROT LEFT ONE BIT POSITION + 3507 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3508 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3509 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3510 ;IS ZERO AFTER ROTATING. + 3511 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3512 + 3513 003303 SN=SN+1 + 3514 777777 777773 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3515 IFE , + 3516 777767 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3517 032520 561 11 0 00 777773 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3518 IFN <&377777>,< + 3519 032521 561 10 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3520 IFE <&777777>,< + 3521 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3522 032522 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3523 032523 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3524 032524 003 11 0 00 003303 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3525 032525 321 13 0 00 032520 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3526 + 3527 ;TEST ROT LEFT ONE BIT POSITION + 3528 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3529 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3530 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3531 ;IS ZERO AFTER ROTATING. + 3532 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3533 + 3534 003304 SN=SN+1 + 3535 777777 777767 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3536 IFE , + 3537 777757 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3538 032526 561 11 0 00 777767 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3539 IFN <&377777>,< + 3540 032527 561 10 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3541 IFE <&777777>,< + 3542 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3543 032530 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3544 032531 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3545 032532 003 11 0 00 003304 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3546 032533 321 13 0 00 032526 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3547 + 3548 ;TEST ROT LEFT ONE BIT POSITION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0088 + + 3549 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3550 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3551 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3552 ;IS ZERO AFTER ROTATING. + 3553 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3554 + 3555 003305 SN=SN+1 + 3556 777777 777757 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3557 IFE , + 3558 777737 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3559 032534 561 11 0 00 777757 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3560 IFN <&377777>,< + 3561 032535 561 10 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3562 IFE <&777777>,< + 3563 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3564 032536 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3565 032537 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3566 032540 003 11 0 00 003305 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3567 032541 321 13 0 00 032534 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3568 + 3569 ;TEST ROT LEFT ONE BIT POSITION + 3570 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3571 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3572 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3573 ;IS ZERO AFTER ROTATING. + 3574 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3575 + 3576 003306 SN=SN+1 + 3577 777777 777737 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3578 IFE , + 3579 777677 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3580 032542 561 11 0 00 777737 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3581 IFN <&377777>,< + 3582 032543 561 10 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3583 IFE <&777777>,< + 3584 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3585 032544 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3586 032545 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3587 032546 003 11 0 00 003306 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3588 032547 321 13 0 00 032542 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3589 + 3590 ;TEST ROT LEFT ONE BIT POSITION + 3591 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3592 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3593 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3594 ;IS ZERO AFTER ROTATING. + 3595 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3596 + 3597 003307 SN=SN+1 + 3598 777777 777677 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3599 IFE , + 3600 777577 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3601 032550 561 11 0 00 777677 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3602 IFN <&377777>,< + 3603 032551 561 10 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0089 + + 3604 IFE <&777777>,< + 3605 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3606 032552 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3607 032553 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3608 032554 003 11 0 00 003307 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3609 032555 321 13 0 00 032550 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3610 + 3611 ;TEST ROT LEFT ONE BIT POSITION + 3612 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3613 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3614 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3615 ;IS ZERO AFTER ROTATING. + 3616 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3617 + 3618 003310 SN=SN+1 + 3619 777777 777577 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3620 IFE , + 3621 777377 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3622 032556 561 11 0 00 777577 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3623 IFN <&377777>,< + 3624 032557 561 10 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3625 IFE <&777777>,< + 3626 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3627 032560 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3628 032561 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3629 032562 003 11 0 00 003310 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3630 032563 321 13 0 00 032556 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3631 + 3632 ;TEST ROT LEFT ONE BIT POSITION + 3633 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3634 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3635 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3636 ;IS ZERO AFTER ROTATING. + 3637 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3638 + 3639 003311 SN=SN+1 + 3640 777777 777377 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3641 IFE , + 3642 776777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3643 032564 561 11 0 00 777377 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3644 IFN <&377777>,< + 3645 032565 561 10 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3646 IFE <&777777>,< + 3647 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3648 032566 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3649 032567 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3650 032570 003 11 0 00 003311 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3651 032571 321 13 0 00 032564 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3652 + 3653 ;TEST ROT LEFT ONE BIT POSITION + 3654 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3655 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3656 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3657 ;IS ZERO AFTER ROTATING. + 3658 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0090 + + 3659 + 3660 003312 SN=SN+1 + 3661 777777 776777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3662 IFE , + 3663 775777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3664 032572 561 11 0 00 776777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3665 IFN <&377777>,< + 3666 032573 561 10 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3667 IFE <&777777>,< + 3668 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3669 032574 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3670 032575 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3671 032576 003 11 0 00 003312 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3672 032577 321 13 0 00 032572 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3673 + 3674 ;TEST ROT LEFT ONE BIT POSITION + 3675 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3676 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3677 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3678 ;IS ZERO AFTER ROTATING. + 3679 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3680 + 3681 003313 SN=SN+1 + 3682 777777 775777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3683 IFE , + 3684 773777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3685 032600 561 11 0 00 775777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3686 IFN <&377777>,< + 3687 032601 561 10 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3688 IFE <&777777>,< + 3689 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3690 032602 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3691 032603 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3692 032604 003 11 0 00 003313 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3693 032605 321 13 0 00 032600 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3694 + 3695 ;TEST ROT LEFT ONE BIT POSITION + 3696 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3697 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3698 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3699 ;IS ZERO AFTER ROTATING. + 3700 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3701 + 3702 003314 SN=SN+1 + 3703 777777 773777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3704 IFE , + 3705 767777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3706 032606 561 11 0 00 773777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3707 IFN <&377777>,< + 3708 032607 561 10 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3709 IFE <&777777>,< + 3710 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3711 032610 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3712 032611 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3713 032612 003 11 0 00 003314 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0091 + + 3714 032613 321 13 0 00 032606 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3715 + 3716 ;TEST ROT LEFT ONE BIT POSITION + 3717 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3718 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3719 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3720 ;IS ZERO AFTER ROTATING. + 3721 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3722 + 3723 003315 SN=SN+1 + 3724 777777 767777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3725 IFE , + 3726 757777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3727 032614 561 11 0 00 767777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3728 IFN <&377777>,< + 3729 032615 561 10 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3730 IFE <&777777>,< + 3731 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3732 032616 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3733 032617 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3734 032620 003 11 0 00 003315 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3735 032621 321 13 0 00 032614 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3736 + 3737 ;TEST ROT LEFT ONE BIT POSITION + 3738 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3739 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3740 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3741 ;IS ZERO AFTER ROTATING. + 3742 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3743 + 3744 003316 SN=SN+1 + 3745 777777 757777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3746 IFE , + 3747 737777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3748 032622 561 11 0 00 757777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3749 IFN <&377777>,< + 3750 032623 561 10 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3751 IFE <&777777>,< + 3752 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3753 032624 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3754 032625 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3755 032626 003 11 0 00 003316 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3756 032627 321 13 0 00 032622 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3757 + 3758 ;TEST ROT LEFT ONE BIT POSITION + 3759 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3760 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3761 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3762 ;IS ZERO AFTER ROTATING. + 3763 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3764 + 3765 003317 SN=SN+1 + 3766 777777 737777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3767 IFE , + 3768 677777 YY=&777777 ;SELECTED BIT AFTER ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0092 + + 3769 032630 561 11 0 00 737777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3770 IFN <&377777>,< + 3771 032631 561 10 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3772 IFE <&777777>,< + 3773 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3774 032632 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3775 032633 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3776 032634 003 11 0 00 003317 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3777 032635 321 13 0 00 032630 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3778 + 3779 ;TEST ROT LEFT ONE BIT POSITION + 3780 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3781 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3782 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3783 ;IS ZERO AFTER ROTATING. + 3784 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3785 + 3786 003320 SN=SN+1 + 3787 777777 677777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3788 IFE , + 3789 577777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3790 032636 561 11 0 00 677777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3791 IFN <&377777>,< + 3792 032637 561 10 0 00 577777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3793 IFE <&777777>,< + 3794 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3795 032640 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3796 032641 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3797 032642 003 11 0 00 003320 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3798 032643 321 13 0 00 032636 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3799 + 3800 ;TEST ROT LEFT ONE BIT POSITION + 3801 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3802 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3803 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3804 ;IS ZERO AFTER ROTATING. + 3805 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3806 + 3807 003321 SN=SN+1 + 3808 777777 577777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3809 IFE , + 3810 377777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3811 032644 561 11 0 00 577777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3812 IFN <&377777>,< + 3813 032645 561 10 0 00 377777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3814 IFE <&777777>,< + 3815 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3816 032646 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3817 032647 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3818 032650 003 11 0 00 003321 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3819 032651 321 13 0 00 032644 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3820 + 3821 ;TEST ROT LEFT ONE BIT POSITION + 3822 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3823 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0093 + + 3824 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3825 ;IS ZERO AFTER ROTATING. + 3826 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3827 + 3828 003322 SN=SN+1 + 3829 777777 377777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3830 IFE , + 3831 777777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3832 032652 561 11 0 00 377777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 3833 IFN <&377777>,< + 3834 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 3835 IFE <&777777>,< + 3836 032653 525 10 0 00 777776 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 3837 032654 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3838 032655 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + 3839 032656 003 11 0 00 003322 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3840 032657 321 13 0 00 032652 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3841 + 3842 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0094 + + 3843 000000 ZZ=0 + 3844 ;TEST AC LEFT HALF< + 3845 REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION + 3846 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3847 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3848 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3849 ;IS ZERO AFTER ROTATING. + 3850 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3851 + 3852 SN=SN+1 + 3853 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3854 IFE , + 3855 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3856 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3857 IFN <&777777>,< + 3858 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3859 IFE <&777777>,< + 3860 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3861 ROT AC,1 ;*ROTATE LEFT ONE + 3862 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3863 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3864 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3865 > + 3866 ;TEST ROT LEFT ONE BIT POSITION + 3867 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3868 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3869 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3870 ;IS ZERO AFTER ROTATING. + 3871 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3872 + 3873 003323 SN=SN+1 + 3874 000001 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3875 777777 777776 IFE , + 3876 777775 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3877 032660 525 11 0 00 777776 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3878 IFN <&777777>,< + 3879 032661 525 10 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3880 IFE <&777777>,< + 3881 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3882 032662 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3883 032663 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3884 032664 003 11 0 00 003323 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3885 032665 321 13 0 00 032660 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3886 + 3887 ;TEST ROT LEFT ONE BIT POSITION + 3888 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3889 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3890 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3891 ;IS ZERO AFTER ROTATING. + 3892 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3893 + 3894 003324 SN=SN+1 + 3895 777777 777775 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3896 IFE , + 3897 777773 YY=&777777 ;SELECTED BIT AFTER ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0095 + + 3898 032666 525 11 0 00 777775 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3899 IFN <&777777>,< + 3900 032667 525 10 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3901 IFE <&777777>,< + 3902 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3903 032670 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3904 032671 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3905 032672 003 11 0 00 003324 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3906 032673 321 13 0 00 032666 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3907 + 3908 ;TEST ROT LEFT ONE BIT POSITION + 3909 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3910 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3911 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3912 ;IS ZERO AFTER ROTATING. + 3913 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3914 + 3915 003325 SN=SN+1 + 3916 777777 777773 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3917 IFE , + 3918 777767 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3919 032674 525 11 0 00 777773 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3920 IFN <&777777>,< + 3921 032675 525 10 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3922 IFE <&777777>,< + 3923 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3924 032676 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3925 032677 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3926 032700 003 11 0 00 003325 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3927 032701 321 13 0 00 032674 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3928 + 3929 ;TEST ROT LEFT ONE BIT POSITION + 3930 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3931 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3932 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3933 ;IS ZERO AFTER ROTATING. + 3934 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3935 + 3936 003326 SN=SN+1 + 3937 777777 777767 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3938 IFE , + 3939 777757 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3940 032702 525 11 0 00 777767 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3941 IFN <&777777>,< + 3942 032703 525 10 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3943 IFE <&777777>,< + 3944 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3945 032704 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3946 032705 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3947 032706 003 11 0 00 003326 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3948 032707 321 13 0 00 032702 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3949 + 3950 ;TEST ROT LEFT ONE BIT POSITION + 3951 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3952 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0096 + + 3953 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3954 ;IS ZERO AFTER ROTATING. + 3955 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3956 + 3957 003327 SN=SN+1 + 3958 777777 777757 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3959 IFE , + 3960 777737 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3961 032710 525 11 0 00 777757 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3962 IFN <&777777>,< + 3963 032711 525 10 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3964 IFE <&777777>,< + 3965 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3966 032712 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3967 032713 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3968 032714 003 11 0 00 003327 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3969 032715 321 13 0 00 032710 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3970 + 3971 ;TEST ROT LEFT ONE BIT POSITION + 3972 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3973 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3974 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3975 ;IS ZERO AFTER ROTATING. + 3976 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3977 + 3978 003330 SN=SN+1 + 3979 777777 777737 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 3980 IFE , + 3981 777677 YY=&777777 ;SELECTED BIT AFTER ROTATION + 3982 032716 525 11 0 00 777737 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 3983 IFN <&777777>,< + 3984 032717 525 10 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 3985 IFE <&777777>,< + 3986 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 3987 032720 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 3988 032721 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 3989 032722 003 11 0 00 003330 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 3990 032723 321 13 0 00 032716 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3991 + 3992 ;TEST ROT LEFT ONE BIT POSITION + 3993 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 3994 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 3995 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 3996 ;IS ZERO AFTER ROTATING. + 3997 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 3998 + 3999 003331 SN=SN+1 + 4000 777777 777677 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4001 IFE , + 4002 777577 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4003 032724 525 11 0 00 777677 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4004 IFN <&777777>,< + 4005 032725 525 10 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4006 IFE <&777777>,< + 4007 HRROI AC-1,-2 ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0097 + + 4008 032726 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4009 032727 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4010 032730 003 11 0 00 003331 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4011 032731 321 13 0 00 032724 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4012 + 4013 ;TEST ROT LEFT ONE BIT POSITION + 4014 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4015 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4016 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4017 ;IS ZERO AFTER ROTATING. + 4018 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4019 + 4020 003332 SN=SN+1 + 4021 777777 777577 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4022 IFE , + 4023 777377 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4024 032732 525 11 0 00 777577 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4025 IFN <&777777>,< + 4026 032733 525 10 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4027 IFE <&777777>,< + 4028 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4029 032734 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4030 032735 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4031 032736 003 11 0 00 003332 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4032 032737 321 13 0 00 032732 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4033 + 4034 ;TEST ROT LEFT ONE BIT POSITION + 4035 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4036 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4037 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4038 ;IS ZERO AFTER ROTATING. + 4039 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4040 + 4041 003333 SN=SN+1 + 4042 777777 777377 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4043 IFE , + 4044 776777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4045 032740 525 11 0 00 777377 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4046 IFN <&777777>,< + 4047 032741 525 10 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4048 IFE <&777777>,< + 4049 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4050 032742 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4051 032743 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4052 032744 003 11 0 00 003333 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4053 032745 321 13 0 00 032740 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4054 + 4055 ;TEST ROT LEFT ONE BIT POSITION + 4056 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4057 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4058 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4059 ;IS ZERO AFTER ROTATING. + 4060 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4061 + 4062 003334 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0098 + + 4063 777777 776777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4064 IFE , + 4065 775777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4066 032746 525 11 0 00 776777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4067 IFN <&777777>,< + 4068 032747 525 10 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4069 IFE <&777777>,< + 4070 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4071 032750 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4072 032751 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4073 032752 003 11 0 00 003334 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4074 032753 321 13 0 00 032746 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4075 + 4076 ;TEST ROT LEFT ONE BIT POSITION + 4077 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4078 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4079 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4080 ;IS ZERO AFTER ROTATING. + 4081 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4082 + 4083 003335 SN=SN+1 + 4084 777777 775777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4085 IFE , + 4086 773777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4087 032754 525 11 0 00 775777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4088 IFN <&777777>,< + 4089 032755 525 10 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4090 IFE <&777777>,< + 4091 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4092 032756 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4093 032757 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4094 032760 003 11 0 00 003335 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4095 032761 321 13 0 00 032754 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4096 + 4097 ;TEST ROT LEFT ONE BIT POSITION + 4098 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4099 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4100 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4101 ;IS ZERO AFTER ROTATING. + 4102 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4103 + 4104 003336 SN=SN+1 + 4105 777777 773777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4106 IFE , + 4107 767777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4108 032762 525 11 0 00 773777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4109 IFN <&777777>,< + 4110 032763 525 10 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4111 IFE <&777777>,< + 4112 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4113 032764 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4114 032765 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4115 032766 003 11 0 00 003336 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4116 032767 321 13 0 00 032762 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4117 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0099 + + 4118 ;TEST ROT LEFT ONE BIT POSITION + 4119 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4120 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4121 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4122 ;IS ZERO AFTER ROTATING. + 4123 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4124 + 4125 003337 SN=SN+1 + 4126 777777 767777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4127 IFE , + 4128 757777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4129 032770 525 11 0 00 767777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4130 IFN <&777777>,< + 4131 032771 525 10 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4132 IFE <&777777>,< + 4133 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4134 032772 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4135 032773 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4136 032774 003 11 0 00 003337 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4137 032775 321 13 0 00 032770 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4138 + 4139 ;TEST ROT LEFT ONE BIT POSITION + 4140 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4141 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4142 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4143 ;IS ZERO AFTER ROTATING. + 4144 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4145 + 4146 003340 SN=SN+1 + 4147 777777 757777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4148 IFE , + 4149 737777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4150 032776 525 11 0 00 757777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4151 IFN <&777777>,< + 4152 032777 525 10 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4153 IFE <&777777>,< + 4154 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4155 033000 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4156 033001 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4157 033002 003 11 0 00 003340 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4158 033003 321 13 0 00 032776 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4159 + 4160 ;TEST ROT LEFT ONE BIT POSITION + 4161 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4162 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4163 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4164 ;IS ZERO AFTER ROTATING. + 4165 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4166 + 4167 003341 SN=SN+1 + 4168 777777 737777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4169 IFE , + 4170 677777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4171 033004 525 11 0 00 737777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4172 IFN <&777777>,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0100 + + 4173 033005 525 10 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4174 IFE <&777777>,< + 4175 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4176 033006 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4177 033007 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4178 033010 003 11 0 00 003341 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4179 033011 321 13 0 00 033004 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4180 + 4181 ;TEST ROT LEFT ONE BIT POSITION + 4182 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4183 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4184 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4185 ;IS ZERO AFTER ROTATING. + 4186 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4187 + 4188 003342 SN=SN+1 + 4189 777777 677777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4190 IFE , + 4191 577777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4192 033012 525 11 0 00 677777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4193 IFN <&777777>,< + 4194 033013 525 10 0 00 577777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4195 IFE <&777777>,< + 4196 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4197 033014 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4198 033015 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4199 033016 003 11 0 00 003342 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4200 033017 321 13 0 00 033012 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4201 + 4202 ;TEST ROT LEFT ONE BIT POSITION + 4203 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4204 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4205 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4206 ;IS ZERO AFTER ROTATING. + 4207 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4208 + 4209 003343 SN=SN+1 + 4210 777777 577777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4211 IFE , + 4212 377777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4213 033020 525 11 0 00 577777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4214 IFN <&777777>,< + 4215 033021 525 10 0 00 377777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4216 IFE <&777777>,< + 4217 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4218 033022 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4219 033023 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4220 033024 003 11 0 00 003343 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4221 033025 321 13 0 00 033020 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4222 + 4223 ;TEST ROT LEFT ONE BIT POSITION + 4224 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 4225 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4226 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 4227 ;IS ZERO AFTER ROTATING. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 12-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0101 + + 4228 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 4229 + 4230 003344 SN=SN+1 + 4231 777777 377777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 4232 IFE , + 4233 777777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 4234 033026 525 11 0 00 377777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 4235 IFN <&777777>,< + 4236 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 4237 IFE <&777777>,< + 4238 033027 561 10 0 00 777776 HRROI AC-1,-2 ;SETUP FOR COMPARISON> + 4239 033030 241 11 0 00 000001 ROT AC,1 ;*ROTATE LEFT ONE + 4240 033031 312 11 0 00 000010 CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + 4241 033032 003 11 0 00 003344 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4242 033033 321 13 0 00 033026 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4243 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0102 + + 4244 + 4245 ;TEST ROT RIGHT ONE BIT POSITION + 4246 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD. + 4247 ;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + 4248 + 4249 000010 AC=10 + 4250 SAVEAC (1,1)^ + 4251 033034 201 12 0 00 033034 MOVEI AC+2,. ;SAVE TEST PC + 4252 033035 202 12 0 00 030051 MOVEM AC+2,TESTPC + 4253 033036 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4254 033037 202 12 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4255 + 4256 033040 403 10 0 00 000007 E3400: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + 4257 033041 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4258 033042 312 10 0 00 000007 CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + 4259 033043 003 10 0 00 003401 ER3 AC,3401 ;AD-AR GATING FAILED + 4260 033044 321 12 0 00 033040 JUMPL AC+2,E3400 ;LOOP ON ERROR SWITCH + 4261 + 4262 ;TEST ROT RIGHT ONE BIT POSITION + 4263 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4264 ;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + 4265 + 4266 033045 477 10 0 00 000007 E3500: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + 4267 033046 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4268 033047 312 10 0 00 000007 CAME AC,AC-1 ;TEST AC FOR ALL ONES. + 4269 033050 003 10 0 00 003501 ER3 AC,3501 ;AD-AR GATING FAILED + 4270 033051 321 12 0 00 033045 JUMPL AC+2,E3500 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0103 + + 4271 003600 SN=3600 + 4272 000000 ZZ=0 + 4273 + 4274 ;TEST AC LEFT HALF< + 4275 E3600: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION + 4276 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4277 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4278 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4279 ;BIT IS ONE AFTER ROTATING + 4280 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4281 + 4282 SN=SN+1 + 4283 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4284 IFE ZZ, + 4285 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4286 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4287 IFN ,< + 4288 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4289 IFE ,< + 4290 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4291 ROT AC,-1 ;*ROTATE RIGHT ONE + 4292 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4293 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4294 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4295 > + 4296 ;TEST ROT RIGHT ONE BIT POSITION + 4297 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4298 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4299 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4300 ;BIT IS ONE AFTER ROTATING + 4301 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4302 + 4303 003601 SN=SN+1 + 4304 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4305 400000 IFE ZZ, + 4306 200000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4307 033052 205 10 0 00 400000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4308 IFN ,< + 4309 033053 205 07 0 00 200000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4310 IFE ,< + 4311 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4312 033054 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4313 033055 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4314 033056 003 10 0 00 003601 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4315 033057 321 12 0 00 033052 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4316 + 4317 ;TEST ROT RIGHT ONE BIT POSITION + 4318 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4319 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4320 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4321 ;BIT IS ONE AFTER ROTATING + 4322 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4323 + 4324 003602 SN=SN+1 + 4325 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0104 + + 4326 IFE ZZ, + 4327 100000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4328 033060 205 10 0 00 200000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4329 IFN ,< + 4330 033061 205 07 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4331 IFE ,< + 4332 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4333 033062 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4334 033063 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4335 033064 003 10 0 00 003602 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4336 033065 321 12 0 00 033060 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4337 + 4338 ;TEST ROT RIGHT ONE BIT POSITION + 4339 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4340 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4341 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4342 ;BIT IS ONE AFTER ROTATING + 4343 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4344 + 4345 003603 SN=SN+1 + 4346 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4347 IFE ZZ, + 4348 040000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4349 033066 205 10 0 00 100000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4350 IFN ,< + 4351 033067 205 07 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4352 IFE ,< + 4353 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4354 033070 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4355 033071 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4356 033072 003 10 0 00 003603 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4357 033073 321 12 0 00 033066 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4358 + 4359 ;TEST ROT RIGHT ONE BIT POSITION + 4360 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4361 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4362 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4363 ;BIT IS ONE AFTER ROTATING + 4364 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4365 + 4366 003604 SN=SN+1 + 4367 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4368 IFE ZZ, + 4369 020000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4370 033074 205 10 0 00 040000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4371 IFN ,< + 4372 033075 205 07 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4373 IFE ,< + 4374 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4375 033076 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4376 033077 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4377 033100 003 10 0 00 003604 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4378 033101 321 12 0 00 033074 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4379 + 4380 ;TEST ROT RIGHT ONE BIT POSITION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0105 + + 4381 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4382 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4383 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4384 ;BIT IS ONE AFTER ROTATING + 4385 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4386 + 4387 003605 SN=SN+1 + 4388 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4389 IFE ZZ, + 4390 010000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4391 033102 205 10 0 00 020000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4392 IFN ,< + 4393 033103 205 07 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4394 IFE ,< + 4395 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4396 033104 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4397 033105 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4398 033106 003 10 0 00 003605 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4399 033107 321 12 0 00 033102 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4400 + 4401 ;TEST ROT RIGHT ONE BIT POSITION + 4402 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4403 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4404 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4405 ;BIT IS ONE AFTER ROTATING + 4406 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4407 + 4408 003606 SN=SN+1 + 4409 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4410 IFE ZZ, + 4411 004000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4412 033110 205 10 0 00 010000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4413 IFN ,< + 4414 033111 205 07 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4415 IFE ,< + 4416 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4417 033112 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4418 033113 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4419 033114 003 10 0 00 003606 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4420 033115 321 12 0 00 033110 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4421 + 4422 ;TEST ROT RIGHT ONE BIT POSITION + 4423 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4424 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4425 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4426 ;BIT IS ONE AFTER ROTATING + 4427 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4428 + 4429 003607 SN=SN+1 + 4430 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4431 IFE ZZ, + 4432 002000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4433 033116 205 10 0 00 004000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4434 IFN ,< + 4435 033117 205 07 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0106 + + 4436 IFE ,< + 4437 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4438 033120 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4439 033121 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4440 033122 003 10 0 00 003607 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4441 033123 321 12 0 00 033116 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4442 + 4443 ;TEST ROT RIGHT ONE BIT POSITION + 4444 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4445 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4446 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4447 ;BIT IS ONE AFTER ROTATING + 4448 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4449 + 4450 003610 SN=SN+1 + 4451 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4452 IFE ZZ, + 4453 001000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4454 033124 205 10 0 00 002000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4455 IFN ,< + 4456 033125 205 07 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4457 IFE ,< + 4458 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4459 033126 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4460 033127 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4461 033130 003 10 0 00 003610 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4462 033131 321 12 0 00 033124 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4463 + 4464 ;TEST ROT RIGHT ONE BIT POSITION + 4465 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4466 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4467 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4468 ;BIT IS ONE AFTER ROTATING + 4469 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4470 + 4471 003611 SN=SN+1 + 4472 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4473 IFE ZZ, + 4474 000400 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4475 033132 205 10 0 00 001000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4476 IFN ,< + 4477 033133 205 07 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4478 IFE ,< + 4479 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4480 033134 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4481 033135 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4482 033136 003 10 0 00 003611 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4483 033137 321 12 0 00 033132 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4484 + 4485 ;TEST ROT RIGHT ONE BIT POSITION + 4486 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4487 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4488 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4489 ;BIT IS ONE AFTER ROTATING + 4490 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0107 + + 4491 + 4492 003612 SN=SN+1 + 4493 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4494 IFE ZZ, + 4495 000200 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4496 033140 205 10 0 00 000400 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4497 IFN ,< + 4498 033141 205 07 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4499 IFE ,< + 4500 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4501 033142 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4502 033143 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4503 033144 003 10 0 00 003612 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4504 033145 321 12 0 00 033140 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4505 + 4506 ;TEST ROT RIGHT ONE BIT POSITION + 4507 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4508 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4509 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4510 ;BIT IS ONE AFTER ROTATING + 4511 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4512 + 4513 003613 SN=SN+1 + 4514 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4515 IFE ZZ, + 4516 000100 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4517 033146 205 10 0 00 000200 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4518 IFN ,< + 4519 033147 205 07 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4520 IFE ,< + 4521 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4522 033150 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4523 033151 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4524 033152 003 10 0 00 003613 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4525 033153 321 12 0 00 033146 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4526 + 4527 ;TEST ROT RIGHT ONE BIT POSITION + 4528 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4529 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4530 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4531 ;BIT IS ONE AFTER ROTATING + 4532 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4533 + 4534 003614 SN=SN+1 + 4535 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4536 IFE ZZ, + 4537 000040 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4538 033154 205 10 0 00 000100 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4539 IFN ,< + 4540 033155 205 07 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4541 IFE ,< + 4542 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4543 033156 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4544 033157 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4545 033160 003 10 0 00 003614 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0108 + + 4546 033161 321 12 0 00 033154 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4547 + 4548 ;TEST ROT RIGHT ONE BIT POSITION + 4549 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4550 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4551 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4552 ;BIT IS ONE AFTER ROTATING + 4553 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4554 + 4555 003615 SN=SN+1 + 4556 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4557 IFE ZZ, + 4558 000020 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4559 033162 205 10 0 00 000040 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4560 IFN ,< + 4561 033163 205 07 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4562 IFE ,< + 4563 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4564 033164 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4565 033165 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4566 033166 003 10 0 00 003615 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4567 033167 321 12 0 00 033162 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4568 + 4569 ;TEST ROT RIGHT ONE BIT POSITION + 4570 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4571 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4572 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4573 ;BIT IS ONE AFTER ROTATING + 4574 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4575 + 4576 003616 SN=SN+1 + 4577 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4578 IFE ZZ, + 4579 000010 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4580 033170 205 10 0 00 000020 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4581 IFN ,< + 4582 033171 205 07 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4583 IFE ,< + 4584 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4585 033172 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4586 033173 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4587 033174 003 10 0 00 003616 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4588 033175 321 12 0 00 033170 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4589 + 4590 ;TEST ROT RIGHT ONE BIT POSITION + 4591 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4592 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4593 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4594 ;BIT IS ONE AFTER ROTATING + 4595 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4596 + 4597 003617 SN=SN+1 + 4598 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4599 IFE ZZ, + 4600 000004 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0109 + + 4601 033176 205 10 0 00 000010 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4602 IFN ,< + 4603 033177 205 07 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4604 IFE ,< + 4605 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4606 033200 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4607 033201 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4608 033202 003 10 0 00 003617 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4609 033203 321 12 0 00 033176 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4610 + 4611 ;TEST ROT RIGHT ONE BIT POSITION + 4612 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4613 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4614 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4615 ;BIT IS ONE AFTER ROTATING + 4616 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4617 + 4618 003620 SN=SN+1 + 4619 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4620 IFE ZZ, + 4621 000002 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4622 033204 205 10 0 00 000004 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4623 IFN ,< + 4624 033205 205 07 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4625 IFE ,< + 4626 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4627 033206 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4628 033207 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4629 033210 003 10 0 00 003620 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4630 033211 321 12 0 00 033204 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4631 + 4632 ;TEST ROT RIGHT ONE BIT POSITION + 4633 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4634 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4635 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4636 ;BIT IS ONE AFTER ROTATING + 4637 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4638 + 4639 003621 SN=SN+1 + 4640 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4641 IFE ZZ, + 4642 000001 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4643 033212 205 10 0 00 000002 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4644 IFN ,< + 4645 033213 205 07 0 00 000001 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4646 IFE ,< + 4647 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4648 033214 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4649 033215 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4650 033216 003 10 0 00 003621 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4651 033217 321 12 0 00 033212 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4652 + 4653 ;TEST ROT RIGHT ONE BIT POSITION + 4654 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4655 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0110 + + 4656 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 4657 ;BIT IS ONE AFTER ROTATING + 4658 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4659 + 4660 003622 SN=SN+1 + 4661 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4662 IFE ZZ, + 4663 000000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4664 033220 205 10 0 00 000001 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 4665 IFN ,< + 4666 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 4667 IFE ,< + 4668 033221 201 07 0 00 400000 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 4669 033222 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4670 033223 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4671 033224 003 10 0 00 003622 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4672 033225 321 12 0 00 033220 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4673 + 4674 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0111 + + 4675 000000 ZZ=0 + 4676 + 4677 ;TEST AC RIGHT HALF< + 4678 REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION + 4679 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4680 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4681 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4682 ;ONE AFTER ROTATING + 4683 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4684 + 4685 SN=SN+1 + 4686 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4687 IFE ZZ, + 4688 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4689 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4690 IFN ,< + 4691 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4692 IFE ,< + 4693 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4694 ROT AC,-1 ;*ROTATE RIGHT ONE + 4695 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4696 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4697 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4698 > + 4699 ;TEST ROT RIGHT ONE BIT POSITION + 4700 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4701 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4702 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4703 ;ONE AFTER ROTATING + 4704 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4705 + 4706 003623 SN=SN+1 + 4707 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4708 400000 IFE ZZ, + 4709 200000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4710 033226 201 10 0 00 400000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4711 IFN ,< + 4712 033227 201 07 0 00 200000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4713 IFE ,< + 4714 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4715 033230 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4716 033231 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4717 033232 003 10 0 00 003623 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4718 033233 321 12 0 00 033226 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4719 + 4720 ;TEST ROT RIGHT ONE BIT POSITION + 4721 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4722 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4723 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4724 ;ONE AFTER ROTATING + 4725 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4726 + 4727 003624 SN=SN+1 + 4728 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4729 IFE ZZ, +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0112 + + 4730 100000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4731 033234 201 10 0 00 200000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4732 IFN ,< + 4733 033235 201 07 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4734 IFE ,< + 4735 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4736 033236 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4737 033237 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4738 033240 003 10 0 00 003624 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4739 033241 321 12 0 00 033234 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4740 + 4741 ;TEST ROT RIGHT ONE BIT POSITION + 4742 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4743 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4744 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4745 ;ONE AFTER ROTATING + 4746 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4747 + 4748 003625 SN=SN+1 + 4749 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4750 IFE ZZ, + 4751 040000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4752 033242 201 10 0 00 100000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4753 IFN ,< + 4754 033243 201 07 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4755 IFE ,< + 4756 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4757 033244 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4758 033245 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4759 033246 003 10 0 00 003625 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4760 033247 321 12 0 00 033242 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4761 + 4762 ;TEST ROT RIGHT ONE BIT POSITION + 4763 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4764 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4765 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4766 ;ONE AFTER ROTATING + 4767 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4768 + 4769 003626 SN=SN+1 + 4770 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4771 IFE ZZ, + 4772 020000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4773 033250 201 10 0 00 040000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4774 IFN ,< + 4775 033251 201 07 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4776 IFE ,< + 4777 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4778 033252 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4779 033253 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4780 033254 003 10 0 00 003626 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4781 033255 321 12 0 00 033250 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4782 + 4783 ;TEST ROT RIGHT ONE BIT POSITION + 4784 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0113 + + 4785 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4786 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4787 ;ONE AFTER ROTATING + 4788 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4789 + 4790 003627 SN=SN+1 + 4791 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4792 IFE ZZ, + 4793 010000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4794 033256 201 10 0 00 020000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4795 IFN ,< + 4796 033257 201 07 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4797 IFE ,< + 4798 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4799 033260 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4800 033261 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4801 033262 003 10 0 00 003627 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4802 033263 321 12 0 00 033256 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4803 + 4804 ;TEST ROT RIGHT ONE BIT POSITION + 4805 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4806 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4807 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4808 ;ONE AFTER ROTATING + 4809 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4810 + 4811 003630 SN=SN+1 + 4812 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4813 IFE ZZ, + 4814 004000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4815 033264 201 10 0 00 010000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4816 IFN ,< + 4817 033265 201 07 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4818 IFE ,< + 4819 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4820 033266 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4821 033267 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4822 033270 003 10 0 00 003630 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4823 033271 321 12 0 00 033264 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4824 + 4825 ;TEST ROT RIGHT ONE BIT POSITION + 4826 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4827 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4828 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4829 ;ONE AFTER ROTATING + 4830 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4831 + 4832 003631 SN=SN+1 + 4833 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4834 IFE ZZ, + 4835 002000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4836 033272 201 10 0 00 004000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4837 IFN ,< + 4838 033273 201 07 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4839 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0114 + + 4840 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4841 033274 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4842 033275 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4843 033276 003 10 0 00 003631 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4844 033277 321 12 0 00 033272 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4845 + 4846 ;TEST ROT RIGHT ONE BIT POSITION + 4847 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4848 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4849 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4850 ;ONE AFTER ROTATING + 4851 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4852 + 4853 003632 SN=SN+1 + 4854 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4855 IFE ZZ, + 4856 001000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4857 033300 201 10 0 00 002000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4858 IFN ,< + 4859 033301 201 07 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4860 IFE ,< + 4861 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4862 033302 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4863 033303 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4864 033304 003 10 0 00 003632 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4865 033305 321 12 0 00 033300 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4866 + 4867 ;TEST ROT RIGHT ONE BIT POSITION + 4868 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4869 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4870 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4871 ;ONE AFTER ROTATING + 4872 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4873 + 4874 003633 SN=SN+1 + 4875 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4876 IFE ZZ, + 4877 000400 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4878 033306 201 10 0 00 001000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4879 IFN ,< + 4880 033307 201 07 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4881 IFE ,< + 4882 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4883 033310 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4884 033311 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4885 033312 003 10 0 00 003633 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4886 033313 321 12 0 00 033306 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4887 + 4888 ;TEST ROT RIGHT ONE BIT POSITION + 4889 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4890 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4891 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4892 ;ONE AFTER ROTATING + 4893 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4894 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0115 + + 4895 003634 SN=SN+1 + 4896 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4897 IFE ZZ, + 4898 000200 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4899 033314 201 10 0 00 000400 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4900 IFN ,< + 4901 033315 201 07 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4902 IFE ,< + 4903 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4904 033316 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4905 033317 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4906 033320 003 10 0 00 003634 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4907 033321 321 12 0 00 033314 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4908 + 4909 ;TEST ROT RIGHT ONE BIT POSITION + 4910 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4911 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4912 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4913 ;ONE AFTER ROTATING + 4914 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4915 + 4916 003635 SN=SN+1 + 4917 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4918 IFE ZZ, + 4919 000100 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4920 033322 201 10 0 00 000200 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4921 IFN ,< + 4922 033323 201 07 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4923 IFE ,< + 4924 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4925 033324 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4926 033325 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4927 033326 003 10 0 00 003635 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4928 033327 321 12 0 00 033322 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4929 + 4930 ;TEST ROT RIGHT ONE BIT POSITION + 4931 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4932 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4933 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4934 ;ONE AFTER ROTATING + 4935 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4936 + 4937 003636 SN=SN+1 + 4938 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4939 IFE ZZ, + 4940 000040 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4941 033330 201 10 0 00 000100 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4942 IFN ,< + 4943 033331 201 07 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4944 IFE ,< + 4945 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4946 033332 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4947 033333 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4948 033334 003 10 0 00 003636 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4949 033335 321 12 0 00 033330 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0116 + + 4950 + 4951 ;TEST ROT RIGHT ONE BIT POSITION + 4952 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4953 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4954 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4955 ;ONE AFTER ROTATING + 4956 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4957 + 4958 003637 SN=SN+1 + 4959 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4960 IFE ZZ, + 4961 000020 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4962 033336 201 10 0 00 000040 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4963 IFN ,< + 4964 033337 201 07 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4965 IFE ,< + 4966 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4967 033340 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4968 033341 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4969 033342 003 10 0 00 003637 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4970 033343 321 12 0 00 033336 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4971 + 4972 ;TEST ROT RIGHT ONE BIT POSITION + 4973 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4974 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4975 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4976 ;ONE AFTER ROTATING + 4977 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4978 + 4979 003640 SN=SN+1 + 4980 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 4981 IFE ZZ, + 4982 000010 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 4983 033344 201 10 0 00 000020 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 4984 IFN ,< + 4985 033345 201 07 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 4986 IFE ,< + 4987 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 4988 033346 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 4989 033347 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 4990 033350 003 10 0 00 003640 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 4991 033351 321 12 0 00 033344 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4992 + 4993 ;TEST ROT RIGHT ONE BIT POSITION + 4994 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 4995 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 4996 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 4997 ;ONE AFTER ROTATING + 4998 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 4999 + 5000 003641 SN=SN+1 + 5001 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5002 IFE ZZ, + 5003 000004 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 5004 033352 201 10 0 00 000010 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0117 + + 5005 IFN ,< + 5006 033353 201 07 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 5007 IFE ,< + 5008 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 5009 033354 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5010 033355 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 5011 033356 003 10 0 00 003641 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5012 033357 321 12 0 00 033352 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5013 + 5014 ;TEST ROT RIGHT ONE BIT POSITION + 5015 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 5016 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5017 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 5018 ;ONE AFTER ROTATING + 5019 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5020 + 5021 003642 SN=SN+1 + 5022 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5023 IFE ZZ, + 5024 000002 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 5025 033360 201 10 0 00 000004 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 5026 IFN ,< + 5027 033361 201 07 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 5028 IFE ,< + 5029 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 5030 033362 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5031 033363 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 5032 033364 003 10 0 00 003642 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5033 033365 321 12 0 00 033360 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5034 + 5035 ;TEST ROT RIGHT ONE BIT POSITION + 5036 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 5037 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5038 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 5039 ;ONE AFTER ROTATING + 5040 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5041 + 5042 003643 SN=SN+1 + 5043 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5044 IFE ZZ, + 5045 000001 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 5046 033366 201 10 0 00 000002 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 5047 IFN ,< + 5048 033367 201 07 0 00 000001 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 5049 IFE ,< + 5050 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 5051 033370 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5052 033371 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 5053 033372 003 10 0 00 003643 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5054 033373 321 12 0 00 033366 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5055 + 5056 ;TEST ROT RIGHT ONE BIT POSITION + 5057 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 5058 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5059 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 14-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0118 + + 5060 ;ONE AFTER ROTATING + 5061 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5062 + 5063 003644 SN=SN+1 + 5064 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5065 IFE ZZ, + 5066 000000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 5067 033374 201 10 0 00 000001 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 5068 IFN ,< + 5069 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 5070 IFE ,< + 5071 033375 205 07 0 00 400000 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 5072 033376 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5073 033377 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + 5074 033400 003 10 0 00 003644 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5075 033401 321 12 0 00 033374 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5076 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0119 + + 5077 003700 SN=3700 + 5078 000001 ZZ=1 + 5079 + 5080 ;TEST AC LEFT HALF< + 5081 E3700: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION + 5082 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5083 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5084 ;IS ZERO AFTER ROTATING. + 5085 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5086 + 5087 SN=SN+1 + 5088 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5089 IFE , + 5090 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5091 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5092 IFN ,< + 5093 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5094 IFE ,< + 5095 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5096 ROT AC,-1 ;*ROTATE RIGHT ONE + 5097 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5098 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5099 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5100 > + 5101 ;TEST ROT RIGHT ONE BIT POSITION + 5102 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5103 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5104 ;IS ZERO AFTER ROTATING. + 5105 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5106 + 5107 003701 SN=SN+1 + 5108 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5109 777777 377777 IFE , + 5110 577777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5111 033402 525 10 0 00 377777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5112 IFN ,< + 5113 033403 525 07 0 00 577777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5114 IFE ,< + 5115 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5116 033404 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5117 033405 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5118 033406 003 10 0 00 003701 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5119 033407 321 12 0 00 033402 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5120 + 5121 ;TEST ROT RIGHT ONE BIT POSITION + 5122 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5123 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5124 ;IS ZERO AFTER ROTATING. + 5125 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5126 + 5127 003702 SN=SN+1 + 5128 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5129 IFE , + 5130 677777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5131 033410 525 10 0 00 577777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0120 + + 5132 IFN ,< + 5133 033411 525 07 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5134 IFE ,< + 5135 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5136 033412 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5137 033413 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5138 033414 003 10 0 00 003702 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5139 033415 321 12 0 00 033410 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5140 + 5141 ;TEST ROT RIGHT ONE BIT POSITION + 5142 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5143 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5144 ;IS ZERO AFTER ROTATING. + 5145 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5146 + 5147 003703 SN=SN+1 + 5148 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5149 IFE , + 5150 737777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5151 033416 525 10 0 00 677777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5152 IFN ,< + 5153 033417 525 07 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5154 IFE ,< + 5155 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5156 033420 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5157 033421 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5158 033422 003 10 0 00 003703 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5159 033423 321 12 0 00 033416 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5160 + 5161 ;TEST ROT RIGHT ONE BIT POSITION + 5162 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5163 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5164 ;IS ZERO AFTER ROTATING. + 5165 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5166 + 5167 003704 SN=SN+1 + 5168 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5169 IFE , + 5170 757777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5171 033424 525 10 0 00 737777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5172 IFN ,< + 5173 033425 525 07 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5174 IFE ,< + 5175 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5176 033426 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5177 033427 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5178 033430 003 10 0 00 003704 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5179 033431 321 12 0 00 033424 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5180 + 5181 ;TEST ROT RIGHT ONE BIT POSITION + 5182 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5183 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5184 ;IS ZERO AFTER ROTATING. + 5185 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5186 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0121 + + 5187 003705 SN=SN+1 + 5188 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5189 IFE , + 5190 767777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5191 033432 525 10 0 00 757777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5192 IFN ,< + 5193 033433 525 07 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5194 IFE ,< + 5195 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5196 033434 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5197 033435 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5198 033436 003 10 0 00 003705 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5199 033437 321 12 0 00 033432 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5200 + 5201 ;TEST ROT RIGHT ONE BIT POSITION + 5202 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5203 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5204 ;IS ZERO AFTER ROTATING. + 5205 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5206 + 5207 003706 SN=SN+1 + 5208 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5209 IFE , + 5210 773777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5211 033440 525 10 0 00 767777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5212 IFN ,< + 5213 033441 525 07 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5214 IFE ,< + 5215 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5216 033442 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5217 033443 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5218 033444 003 10 0 00 003706 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5219 033445 321 12 0 00 033440 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5220 + 5221 ;TEST ROT RIGHT ONE BIT POSITION + 5222 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5223 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5224 ;IS ZERO AFTER ROTATING. + 5225 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5226 + 5227 003707 SN=SN+1 + 5228 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5229 IFE , + 5230 775777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5231 033446 525 10 0 00 773777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5232 IFN ,< + 5233 033447 525 07 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5234 IFE ,< + 5235 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5236 033450 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5237 033451 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5238 033452 003 10 0 00 003707 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5239 033453 321 12 0 00 033446 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5240 + 5241 ;TEST ROT RIGHT ONE BIT POSITION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0122 + + 5242 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5243 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5244 ;IS ZERO AFTER ROTATING. + 5245 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5246 + 5247 003710 SN=SN+1 + 5248 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5249 IFE , + 5250 776777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5251 033454 525 10 0 00 775777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5252 IFN ,< + 5253 033455 525 07 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5254 IFE ,< + 5255 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5256 033456 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5257 033457 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5258 033460 003 10 0 00 003710 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5259 033461 321 12 0 00 033454 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5260 + 5261 ;TEST ROT RIGHT ONE BIT POSITION + 5262 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5263 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5264 ;IS ZERO AFTER ROTATING. + 5265 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5266 + 5267 003711 SN=SN+1 + 5268 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5269 IFE , + 5270 777377 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5271 033462 525 10 0 00 776777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5272 IFN ,< + 5273 033463 525 07 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5274 IFE ,< + 5275 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5276 033464 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5277 033465 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5278 033466 003 10 0 00 003711 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5279 033467 321 12 0 00 033462 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5280 + 5281 ;TEST ROT RIGHT ONE BIT POSITION + 5282 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5283 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5284 ;IS ZERO AFTER ROTATING. + 5285 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5286 + 5287 003712 SN=SN+1 + 5288 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5289 IFE , + 5290 777577 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5291 033470 525 10 0 00 777377 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5292 IFN ,< + 5293 033471 525 07 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5294 IFE ,< + 5295 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5296 033472 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0123 + + 5297 033473 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5298 033474 003 10 0 00 003712 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5299 033475 321 12 0 00 033470 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5300 + 5301 ;TEST ROT RIGHT ONE BIT POSITION + 5302 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5303 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5304 ;IS ZERO AFTER ROTATING. + 5305 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5306 + 5307 003713 SN=SN+1 + 5308 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5309 IFE , + 5310 777677 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5311 033476 525 10 0 00 777577 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5312 IFN ,< + 5313 033477 525 07 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5314 IFE ,< + 5315 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5316 033500 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5317 033501 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5318 033502 003 10 0 00 003713 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5319 033503 321 12 0 00 033476 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5320 + 5321 ;TEST ROT RIGHT ONE BIT POSITION + 5322 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5323 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5324 ;IS ZERO AFTER ROTATING. + 5325 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5326 + 5327 003714 SN=SN+1 + 5328 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5329 IFE , + 5330 777737 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5331 033504 525 10 0 00 777677 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5332 IFN ,< + 5333 033505 525 07 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5334 IFE ,< + 5335 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5336 033506 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5337 033507 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5338 033510 003 10 0 00 003714 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5339 033511 321 12 0 00 033504 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5340 + 5341 ;TEST ROT RIGHT ONE BIT POSITION + 5342 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5343 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5344 ;IS ZERO AFTER ROTATING. + 5345 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5346 + 5347 003715 SN=SN+1 + 5348 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5349 IFE , + 5350 777757 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5351 033512 525 10 0 00 777737 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0124 + + 5352 IFN ,< + 5353 033513 525 07 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5354 IFE ,< + 5355 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5356 033514 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5357 033515 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5358 033516 003 10 0 00 003715 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5359 033517 321 12 0 00 033512 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5360 + 5361 ;TEST ROT RIGHT ONE BIT POSITION + 5362 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5363 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5364 ;IS ZERO AFTER ROTATING. + 5365 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5366 + 5367 003716 SN=SN+1 + 5368 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5369 IFE , + 5370 777767 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5371 033520 525 10 0 00 777757 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5372 IFN ,< + 5373 033521 525 07 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5374 IFE ,< + 5375 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5376 033522 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5377 033523 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5378 033524 003 10 0 00 003716 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5379 033525 321 12 0 00 033520 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5380 + 5381 ;TEST ROT RIGHT ONE BIT POSITION + 5382 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5383 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5384 ;IS ZERO AFTER ROTATING. + 5385 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5386 + 5387 003717 SN=SN+1 + 5388 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5389 IFE , + 5390 777773 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5391 033526 525 10 0 00 777767 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5392 IFN ,< + 5393 033527 525 07 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5394 IFE ,< + 5395 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5396 033530 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5397 033531 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5398 033532 003 10 0 00 003717 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5399 033533 321 12 0 00 033526 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5400 + 5401 ;TEST ROT RIGHT ONE BIT POSITION + 5402 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5403 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5404 ;IS ZERO AFTER ROTATING. + 5405 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5406 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0125 + + 5407 003720 SN=SN+1 + 5408 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5409 IFE , + 5410 777775 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5411 033534 525 10 0 00 777773 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5412 IFN ,< + 5413 033535 525 07 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5414 IFE ,< + 5415 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5416 033536 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5417 033537 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5418 033540 003 10 0 00 003720 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5419 033541 321 12 0 00 033534 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5420 + 5421 ;TEST ROT RIGHT ONE BIT POSITION + 5422 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5423 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5424 ;IS ZERO AFTER ROTATING. + 5425 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5426 + 5427 003721 SN=SN+1 + 5428 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5429 IFE , + 5430 777776 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5431 033542 525 10 0 00 777775 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5432 IFN ,< + 5433 033543 525 07 0 00 777776 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5434 IFE ,< + 5435 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5436 033544 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5437 033545 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5438 033546 003 10 0 00 003721 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5439 033547 321 12 0 00 033542 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5440 + 5441 ;TEST ROT RIGHT ONE BIT POSITION + 5442 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5443 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5444 ;IS ZERO AFTER ROTATING. + 5445 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5446 + 5447 003722 SN=SN+1 + 5448 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5449 IFE , + 5450 777777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5451 033550 525 10 0 00 777776 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 5452 IFN ,< + 5453 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 5454 IFE ,< + 5455 033551 561 07 0 00 377777 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 5456 033552 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5457 033553 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5458 033554 003 10 0 00 003722 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5459 033555 321 12 0 00 033550 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5460 + 5461 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0126 + + 5462 000001 ZZ=1 + 5463 + 5464 ;TEST AC RIGHT HALF< + 5465 REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION + 5466 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5467 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5468 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5469 ;IS ZERO AFTER ROTATING. + 5470 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5471 + 5472 SN=SN+1 + 5473 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5474 IFE , + 5475 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5476 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5477 IFN ,< + 5478 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5479 IFE ,< + 5480 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5481 ROT AC,-1 ;*ROTATE RIGHT ONE + 5482 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5483 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5484 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5485 > + 5486 ;TEST ROT RIGHT ONE BIT POSITION + 5487 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5488 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5489 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5490 ;IS ZERO AFTER ROTATING. + 5491 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5492 + 5493 003723 SN=SN+1 + 5494 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5495 777777 377777 IFE , + 5496 577777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5497 033556 561 10 0 00 377777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5498 IFN ,< + 5499 033557 561 07 0 00 577777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5500 IFE ,< + 5501 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5502 033560 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5503 033561 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5504 033562 003 10 0 00 003723 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5505 033563 321 12 0 00 033556 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5506 + 5507 ;TEST ROT RIGHT ONE BIT POSITION + 5508 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5509 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5510 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5511 ;IS ZERO AFTER ROTATING. + 5512 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5513 + 5514 003724 SN=SN+1 + 5515 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5516 IFE , +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0127 + + 5517 677777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5518 033564 561 10 0 00 577777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5519 IFN ,< + 5520 033565 561 07 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5521 IFE ,< + 5522 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5523 033566 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5524 033567 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5525 033570 003 10 0 00 003724 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5526 033571 321 12 0 00 033564 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5527 + 5528 ;TEST ROT RIGHT ONE BIT POSITION + 5529 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5530 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5531 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5532 ;IS ZERO AFTER ROTATING. + 5533 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5534 + 5535 003725 SN=SN+1 + 5536 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5537 IFE , + 5538 737777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5539 033572 561 10 0 00 677777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5540 IFN ,< + 5541 033573 561 07 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5542 IFE ,< + 5543 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5544 033574 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5545 033575 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5546 033576 003 10 0 00 003725 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5547 033577 321 12 0 00 033572 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5548 + 5549 ;TEST ROT RIGHT ONE BIT POSITION + 5550 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5551 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5552 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5553 ;IS ZERO AFTER ROTATING. + 5554 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5555 + 5556 003726 SN=SN+1 + 5557 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5558 IFE , + 5559 757777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5560 033600 561 10 0 00 737777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5561 IFN ,< + 5562 033601 561 07 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5563 IFE ,< + 5564 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5565 033602 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5566 033603 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5567 033604 003 10 0 00 003726 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5568 033605 321 12 0 00 033600 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5569 + 5570 ;TEST ROT RIGHT ONE BIT POSITION + 5571 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0128 + + 5572 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5573 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5574 ;IS ZERO AFTER ROTATING. + 5575 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5576 + 5577 003727 SN=SN+1 + 5578 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5579 IFE , + 5580 767777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5581 033606 561 10 0 00 757777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5582 IFN ,< + 5583 033607 561 07 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5584 IFE ,< + 5585 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5586 033610 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5587 033611 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5588 033612 003 10 0 00 003727 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5589 033613 321 12 0 00 033606 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5590 + 5591 ;TEST ROT RIGHT ONE BIT POSITION + 5592 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5593 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5594 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5595 ;IS ZERO AFTER ROTATING. + 5596 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5597 + 5598 003730 SN=SN+1 + 5599 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5600 IFE , + 5601 773777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5602 033614 561 10 0 00 767777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5603 IFN ,< + 5604 033615 561 07 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5605 IFE ,< + 5606 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5607 033616 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5608 033617 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5609 033620 003 10 0 00 003730 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5610 033621 321 12 0 00 033614 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5611 + 5612 ;TEST ROT RIGHT ONE BIT POSITION + 5613 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5614 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5615 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5616 ;IS ZERO AFTER ROTATING. + 5617 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5618 + 5619 003731 SN=SN+1 + 5620 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5621 IFE , + 5622 775777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5623 033622 561 10 0 00 773777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5624 IFN ,< + 5625 033623 561 07 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5626 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0129 + + 5627 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5628 033624 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5629 033625 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5630 033626 003 10 0 00 003731 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5631 033627 321 12 0 00 033622 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5632 + 5633 ;TEST ROT RIGHT ONE BIT POSITION + 5634 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5635 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5636 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5637 ;IS ZERO AFTER ROTATING. + 5638 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5639 + 5640 003732 SN=SN+1 + 5641 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5642 IFE , + 5643 776777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5644 033630 561 10 0 00 775777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5645 IFN ,< + 5646 033631 561 07 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5647 IFE ,< + 5648 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5649 033632 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5650 033633 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5651 033634 003 10 0 00 003732 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5652 033635 321 12 0 00 033630 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5653 + 5654 ;TEST ROT RIGHT ONE BIT POSITION + 5655 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5656 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5657 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5658 ;IS ZERO AFTER ROTATING. + 5659 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5660 + 5661 003733 SN=SN+1 + 5662 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5663 IFE , + 5664 777377 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5665 033636 561 10 0 00 776777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5666 IFN ,< + 5667 033637 561 07 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5668 IFE ,< + 5669 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5670 033640 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5671 033641 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5672 033642 003 10 0 00 003733 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5673 033643 321 12 0 00 033636 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5674 + 5675 ;TEST ROT RIGHT ONE BIT POSITION + 5676 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5677 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5678 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5679 ;IS ZERO AFTER ROTATING. + 5680 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5681 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0130 + + 5682 003734 SN=SN+1 + 5683 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5684 IFE , + 5685 777577 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5686 033644 561 10 0 00 777377 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5687 IFN ,< + 5688 033645 561 07 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5689 IFE ,< + 5690 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5691 033646 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5692 033647 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5693 033650 003 10 0 00 003734 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5694 033651 321 12 0 00 033644 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5695 + 5696 ;TEST ROT RIGHT ONE BIT POSITION + 5697 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5698 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5699 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5700 ;IS ZERO AFTER ROTATING. + 5701 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5702 + 5703 003735 SN=SN+1 + 5704 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5705 IFE , + 5706 777677 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5707 033652 561 10 0 00 777577 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5708 IFN ,< + 5709 033653 561 07 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5710 IFE ,< + 5711 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5712 033654 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5713 033655 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5714 033656 003 10 0 00 003735 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5715 033657 321 12 0 00 033652 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5716 + 5717 ;TEST ROT RIGHT ONE BIT POSITION + 5718 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5719 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5720 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5721 ;IS ZERO AFTER ROTATING. + 5722 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5723 + 5724 003736 SN=SN+1 + 5725 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5726 IFE , + 5727 777737 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5728 033660 561 10 0 00 777677 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5729 IFN ,< + 5730 033661 561 07 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5731 IFE ,< + 5732 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5733 033662 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5734 033663 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5735 033664 003 10 0 00 003736 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5736 033665 321 12 0 00 033660 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0131 + + 5737 + 5738 ;TEST ROT RIGHT ONE BIT POSITION + 5739 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5740 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5741 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5742 ;IS ZERO AFTER ROTATING. + 5743 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5744 + 5745 003737 SN=SN+1 + 5746 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5747 IFE , + 5748 777757 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5749 033666 561 10 0 00 777737 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5750 IFN ,< + 5751 033667 561 07 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5752 IFE ,< + 5753 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5754 033670 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5755 033671 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5756 033672 003 10 0 00 003737 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5757 033673 321 12 0 00 033666 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5758 + 5759 ;TEST ROT RIGHT ONE BIT POSITION + 5760 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5761 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5762 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5763 ;IS ZERO AFTER ROTATING. + 5764 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5765 + 5766 003740 SN=SN+1 + 5767 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5768 IFE , + 5769 777767 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5770 033674 561 10 0 00 777757 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5771 IFN ,< + 5772 033675 561 07 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5773 IFE ,< + 5774 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5775 033676 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5776 033677 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5777 033700 003 10 0 00 003740 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5778 033701 321 12 0 00 033674 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5779 + 5780 ;TEST ROT RIGHT ONE BIT POSITION + 5781 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5782 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5783 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5784 ;IS ZERO AFTER ROTATING. + 5785 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5786 + 5787 003741 SN=SN+1 + 5788 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5789 IFE , + 5790 777773 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5791 033702 561 10 0 00 777767 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0132 + + 5792 IFN ,< + 5793 033703 561 07 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5794 IFE ,< + 5795 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5796 033704 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5797 033705 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5798 033706 003 10 0 00 003741 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5799 033707 321 12 0 00 033702 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5800 + 5801 ;TEST ROT RIGHT ONE BIT POSITION + 5802 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5803 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5804 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5805 ;IS ZERO AFTER ROTATING. + 5806 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5807 + 5808 003742 SN=SN+1 + 5809 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5810 IFE , + 5811 777775 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5812 033710 561 10 0 00 777773 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5813 IFN ,< + 5814 033711 561 07 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5815 IFE ,< + 5816 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5817 033712 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5818 033713 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5819 033714 003 10 0 00 003742 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5820 033715 321 12 0 00 033710 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5821 + 5822 ;TEST ROT RIGHT ONE BIT POSITION + 5823 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5824 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5825 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 5826 ;IS ZERO AFTER ROTATING. + 5827 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5828 + 5829 003743 SN=SN+1 + 5830 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5831 IFE , + 5832 777776 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5833 033716 561 10 0 00 777775 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5834 IFN ,< + 5835 033717 561 07 0 00 777776 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5836 IFE ,< + 5837 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5838 033720 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5839 033721 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5840 033722 003 10 0 00 003743 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5841 033723 321 12 0 00 033716 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5842 + 5843 ;TEST ROT RIGHT ONE BIT POSITION + 5844 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 5845 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5846 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 15-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0133 + + 5847 ;IS ZERO AFTER ROTATING. + 5848 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 5849 + 5850 003744 SN=SN+1 + 5851 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 5852 IFE , + 5853 777777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 5854 033724 561 10 0 00 777776 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 5855 IFN ,< + 5856 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 5857 IFE ,< + 5858 033725 525 07 0 00 377777 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 5859 033726 241 10 0 00 777777 ROT AC,-1 ;*ROTATE RIGHT ONE + 5860 033727 312 10 0 00 000007 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 5861 033730 003 10 0 00 003744 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5862 033731 321 12 0 00 033724 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5863 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0134 + + 5864 ;TEST ROT RIGHT TWO BIT POSITIONS + 5865 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5866 ;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + 5867 + 5868 000007 AC=7 + 5869 SAVEAC (1,1)^ + 5870 033732 201 11 0 00 033732 MOVEI AC+2,. ;SAVE TEST PC + 5871 033733 202 11 0 00 030051 MOVEM AC+2,TESTPC + 5872 033734 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5873 033735 202 11 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5874 + 5875 033736 403 07 0 00 000006 E4000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + 5876 033737 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 5877 033740 312 07 0 00 000006 CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + 5878 033741 003 07 0 00 004001 ER3 AC,4001 ;AD-AR GATING FAILED + 5879 033742 321 11 0 00 033736 JUMPL AC+2,E4000 ;LOOP ON ERROR SWITCH + 5880 + 5881 ;TEST ROT RIGHT TWO BIT POSITIONS + 5882 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5883 ;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + 5884 + 5885 033743 477 07 0 00 000006 E4100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + 5886 033744 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 5887 033745 312 07 0 00 000006 CAME AC,AC-1 ;TEST AC FOR ALL ONES. + 5888 033746 003 07 0 00 004101 ER3 AC,4101 ;AD-AR GATING FAILED + 5889 033747 321 11 0 00 033743 JUMPL AC+2,E4100 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0135 + + 5890 + 5891 004200 SN=4200 + 5892 000000 ZZ=0 + 5893 + 5894 ;TEST AC LEFT HALF< + 5895 E4200: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS + 5896 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 5897 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5898 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 5899 ;BIT IS ONE AFTER ROTATING + 5900 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5901 + 5902 SN=SN+1 + 5903 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5904 IFE ZZ, + 5905 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 5906 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 5907 IFG ,< + 5908 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 5909 IFE ,< + 5910 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 5911 IFE ,< + 5912 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 5913 ROT AC,-2 ;*ROTATE RIGHT TWO + 5914 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 5915 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5916 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5917 > + 5918 ;TEST ROT RIGHT TWO BIT POSITIONS + 5919 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 5920 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5921 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 5922 ;BIT IS ONE AFTER ROTATING + 5923 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5924 + 5925 004201 SN=SN+1 + 5926 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5927 400000 IFE ZZ, + 5928 100000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 5929 033750 205 07 0 00 400000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 5930 IFG ,< + 5931 033751 205 06 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 5932 IFE ,< + 5933 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 5934 IFE ,< + 5935 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 5936 033752 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 5937 033753 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 5938 033754 003 07 0 00 004201 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5939 033755 321 11 0 00 033750 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5940 + 5941 ;TEST ROT RIGHT TWO BIT POSITIONS + 5942 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 5943 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5944 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0136 + + 5945 ;BIT IS ONE AFTER ROTATING + 5946 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5947 + 5948 004202 SN=SN+1 + 5949 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5950 IFE ZZ, + 5951 040000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 5952 033756 205 07 0 00 200000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 5953 IFG ,< + 5954 033757 205 06 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 5955 IFE ,< + 5956 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 5957 IFE ,< + 5958 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 5959 033760 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 5960 033761 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 5961 033762 003 07 0 00 004202 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5962 033763 321 11 0 00 033756 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5963 + 5964 ;TEST ROT RIGHT TWO BIT POSITIONS + 5965 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 5966 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5967 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 5968 ;BIT IS ONE AFTER ROTATING + 5969 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5970 + 5971 004203 SN=SN+1 + 5972 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5973 IFE ZZ, + 5974 020000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 5975 033764 205 07 0 00 100000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 5976 IFG ,< + 5977 033765 205 06 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 5978 IFE ,< + 5979 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 5980 IFE ,< + 5981 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 5982 033766 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 5983 033767 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 5984 033770 003 07 0 00 004203 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 5985 033771 321 11 0 00 033764 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 5986 + 5987 ;TEST ROT RIGHT TWO BIT POSITIONS + 5988 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 5989 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 5990 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 5991 ;BIT IS ONE AFTER ROTATING + 5992 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 5993 + 5994 004204 SN=SN+1 + 5995 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 5996 IFE ZZ, + 5997 010000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 5998 033772 205 07 0 00 040000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 5999 IFG ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0137 + + 6000 033773 205 06 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6001 IFE ,< + 6002 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6003 IFE ,< + 6004 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6005 033774 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6006 033775 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6007 033776 003 07 0 00 004204 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6008 033777 321 11 0 00 033772 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6009 + 6010 ;TEST ROT RIGHT TWO BIT POSITIONS + 6011 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6012 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6013 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6014 ;BIT IS ONE AFTER ROTATING + 6015 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6016 + 6017 004205 SN=SN+1 + 6018 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6019 IFE ZZ, + 6020 004000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6021 034000 205 07 0 00 020000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6022 IFG ,< + 6023 034001 205 06 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6024 IFE ,< + 6025 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6026 IFE ,< + 6027 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6028 034002 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6029 034003 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6030 034004 003 07 0 00 004205 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6031 034005 321 11 0 00 034000 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6032 + 6033 ;TEST ROT RIGHT TWO BIT POSITIONS + 6034 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6035 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6036 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6037 ;BIT IS ONE AFTER ROTATING + 6038 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6039 + 6040 004206 SN=SN+1 + 6041 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6042 IFE ZZ, + 6043 002000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6044 034006 205 07 0 00 010000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6045 IFG ,< + 6046 034007 205 06 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6047 IFE ,< + 6048 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6049 IFE ,< + 6050 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6051 034010 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6052 034011 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6053 034012 003 07 0 00 004206 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6054 034013 321 11 0 00 034006 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0138 + + 6055 + 6056 ;TEST ROT RIGHT TWO BIT POSITIONS + 6057 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6058 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6059 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6060 ;BIT IS ONE AFTER ROTATING + 6061 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6062 + 6063 004207 SN=SN+1 + 6064 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6065 IFE ZZ, + 6066 001000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6067 034014 205 07 0 00 004000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6068 IFG ,< + 6069 034015 205 06 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6070 IFE ,< + 6071 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6072 IFE ,< + 6073 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6074 034016 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6075 034017 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6076 034020 003 07 0 00 004207 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6077 034021 321 11 0 00 034014 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6078 + 6079 ;TEST ROT RIGHT TWO BIT POSITIONS + 6080 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6081 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6082 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6083 ;BIT IS ONE AFTER ROTATING + 6084 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6085 + 6086 004210 SN=SN+1 + 6087 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6088 IFE ZZ, + 6089 000400 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6090 034022 205 07 0 00 002000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6091 IFG ,< + 6092 034023 205 06 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6093 IFE ,< + 6094 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6095 IFE ,< + 6096 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6097 034024 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6098 034025 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6099 034026 003 07 0 00 004210 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6100 034027 321 11 0 00 034022 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6101 + 6102 ;TEST ROT RIGHT TWO BIT POSITIONS + 6103 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6104 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6105 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6106 ;BIT IS ONE AFTER ROTATING + 6107 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6108 + 6109 004211 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0139 + + 6110 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6111 IFE ZZ, + 6112 000200 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6113 034030 205 07 0 00 001000 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6114 IFG ,< + 6115 034031 205 06 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6116 IFE ,< + 6117 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6118 IFE ,< + 6119 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6120 034032 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6121 034033 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6122 034034 003 07 0 00 004211 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6123 034035 321 11 0 00 034030 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6124 + 6125 ;TEST ROT RIGHT TWO BIT POSITIONS + 6126 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6127 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6128 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6129 ;BIT IS ONE AFTER ROTATING + 6130 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6131 + 6132 004212 SN=SN+1 + 6133 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6134 IFE ZZ, + 6135 000100 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6136 034036 205 07 0 00 000400 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6137 IFG ,< + 6138 034037 205 06 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6139 IFE ,< + 6140 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6141 IFE ,< + 6142 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6143 034040 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6144 034041 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6145 034042 003 07 0 00 004212 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6146 034043 321 11 0 00 034036 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6147 + 6148 ;TEST ROT RIGHT TWO BIT POSITIONS + 6149 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6150 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6151 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6152 ;BIT IS ONE AFTER ROTATING + 6153 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6154 + 6155 004213 SN=SN+1 + 6156 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6157 IFE ZZ, + 6158 000040 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6159 034044 205 07 0 00 000200 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6160 IFG ,< + 6161 034045 205 06 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6162 IFE ,< + 6163 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6164 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0140 + + 6165 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6166 034046 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6167 034047 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6168 034050 003 07 0 00 004213 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6169 034051 321 11 0 00 034044 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6170 + 6171 ;TEST ROT RIGHT TWO BIT POSITIONS + 6172 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6173 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6174 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6175 ;BIT IS ONE AFTER ROTATING + 6176 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6177 + 6178 004214 SN=SN+1 + 6179 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6180 IFE ZZ, + 6181 000020 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6182 034052 205 07 0 00 000100 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6183 IFG ,< + 6184 034053 205 06 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6185 IFE ,< + 6186 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6187 IFE ,< + 6188 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6189 034054 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6190 034055 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6191 034056 003 07 0 00 004214 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6192 034057 321 11 0 00 034052 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6193 + 6194 ;TEST ROT RIGHT TWO BIT POSITIONS + 6195 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6196 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6197 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6198 ;BIT IS ONE AFTER ROTATING + 6199 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6200 + 6201 004215 SN=SN+1 + 6202 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6203 IFE ZZ, + 6204 000010 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6205 034060 205 07 0 00 000040 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6206 IFG ,< + 6207 034061 205 06 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6208 IFE ,< + 6209 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6210 IFE ,< + 6211 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6212 034062 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6213 034063 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6214 034064 003 07 0 00 004215 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6215 034065 321 11 0 00 034060 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6216 + 6217 ;TEST ROT RIGHT TWO BIT POSITIONS + 6218 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6219 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0141 + + 6220 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6221 ;BIT IS ONE AFTER ROTATING + 6222 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6223 + 6224 004216 SN=SN+1 + 6225 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6226 IFE ZZ, + 6227 000004 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6228 034066 205 07 0 00 000020 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6229 IFG ,< + 6230 034067 205 06 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6231 IFE ,< + 6232 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6233 IFE ,< + 6234 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6235 034070 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6236 034071 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6237 034072 003 07 0 00 004216 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6238 034073 321 11 0 00 034066 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6239 + 6240 ;TEST ROT RIGHT TWO BIT POSITIONS + 6241 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6242 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6243 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6244 ;BIT IS ONE AFTER ROTATING + 6245 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6246 + 6247 004217 SN=SN+1 + 6248 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6249 IFE ZZ, + 6250 000002 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6251 034074 205 07 0 00 000010 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6252 IFG ,< + 6253 034075 205 06 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6254 IFE ,< + 6255 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6256 IFE ,< + 6257 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6258 034076 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6259 034077 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6260 034100 003 07 0 00 004217 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6261 034101 321 11 0 00 034074 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6262 + 6263 ;TEST ROT RIGHT TWO BIT POSITIONS + 6264 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6265 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6266 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6267 ;BIT IS ONE AFTER ROTATING + 6268 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6269 + 6270 004220 SN=SN+1 + 6271 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6272 IFE ZZ, + 6273 000001 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6274 034102 205 07 0 00 000004 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0142 + + 6275 IFG ,< + 6276 034103 205 06 0 00 000001 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6277 IFE ,< + 6278 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6279 IFE ,< + 6280 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6281 034104 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6282 034105 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6283 034106 003 07 0 00 004220 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6284 034107 321 11 0 00 034102 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6285 + 6286 ;TEST ROT RIGHT TWO BIT POSITIONS + 6287 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6288 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6289 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6290 ;BIT IS ONE AFTER ROTATING + 6291 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6292 + 6293 004221 SN=SN+1 + 6294 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6295 IFE ZZ, + 6296 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6297 034110 205 07 0 00 000002 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6298 IFG ,< + 6299 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6300 IFE ,< + 6301 034111 201 06 0 00 400000 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6302 IFE ,< + 6303 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6304 034112 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6305 034113 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6306 034114 003 07 0 00 004221 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6307 034115 321 11 0 00 034110 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6308 + 6309 ;TEST ROT RIGHT TWO BIT POSITIONS + 6310 ;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR + 6311 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6312 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER + 6313 ;BIT IS ONE AFTER ROTATING + 6314 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6315 + 6316 004222 SN=SN+1 + 6317 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6318 IFE ZZ, + 6319 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6320 034116 205 07 0 00 000001 MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + 6321 IFG ,< + 6322 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 6323 IFE ,< + 6324 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 6325 IFE ,< + 6326 034117 201 06 0 00 200000 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 6327 034120 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6328 034121 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6329 034122 003 07 0 00 004222 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0143 + + 6330 034123 321 11 0 00 034116 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6331 + 6332 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0144 + + 6333 000000 ZZ=0 + 6334 + 6335 ;TEST AC RIGHT HALF < + 6336 REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS + 6337 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6338 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6339 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6340 ;ONE AFTER ROTATING + 6341 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6342 + 6343 SN=SN+1 + 6344 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6345 IFE ZZ, + 6346 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6347 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6348 IFG ,< + 6349 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6350 IFE ,< + 6351 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6352 IFE ,< + 6353 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6354 ROT AC,-2 ;*ROTATE RIGHT TWO + 6355 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6356 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6357 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6358 > + 6359 ;TEST ROT RIGHT TWO BIT POSITIONS + 6360 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6361 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6362 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6363 ;ONE AFTER ROTATING + 6364 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6365 + 6366 004223 SN=SN+1 + 6367 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6368 400000 IFE ZZ, + 6369 100000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6370 034124 201 07 0 00 400000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6371 IFG ,< + 6372 034125 201 06 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6373 IFE ,< + 6374 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6375 IFE ,< + 6376 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6377 034126 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6378 034127 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6379 034130 003 07 0 00 004223 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6380 034131 321 11 0 00 034124 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6381 + 6382 ;TEST ROT RIGHT TWO BIT POSITIONS + 6383 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6384 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6385 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6386 ;ONE AFTER ROTATING + 6387 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0145 + + 6388 + 6389 004224 SN=SN+1 + 6390 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6391 IFE ZZ, + 6392 040000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6393 034132 201 07 0 00 200000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6394 IFG ,< + 6395 034133 201 06 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6396 IFE ,< + 6397 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6398 IFE ,< + 6399 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6400 034134 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6401 034135 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6402 034136 003 07 0 00 004224 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6403 034137 321 11 0 00 034132 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6404 + 6405 ;TEST ROT RIGHT TWO BIT POSITIONS + 6406 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6407 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6408 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6409 ;ONE AFTER ROTATING + 6410 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6411 + 6412 004225 SN=SN+1 + 6413 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6414 IFE ZZ, + 6415 020000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6416 034140 201 07 0 00 100000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6417 IFG ,< + 6418 034141 201 06 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6419 IFE ,< + 6420 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6421 IFE ,< + 6422 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6423 034142 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6424 034143 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6425 034144 003 07 0 00 004225 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6426 034145 321 11 0 00 034140 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6427 + 6428 ;TEST ROT RIGHT TWO BIT POSITIONS + 6429 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6430 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6431 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6432 ;ONE AFTER ROTATING + 6433 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6434 + 6435 004226 SN=SN+1 + 6436 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6437 IFE ZZ, + 6438 010000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6439 034146 201 07 0 00 040000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6440 IFG ,< + 6441 034147 201 06 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6442 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0146 + + 6443 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6444 IFE ,< + 6445 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6446 034150 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6447 034151 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6448 034152 003 07 0 00 004226 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6449 034153 321 11 0 00 034146 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6450 + 6451 ;TEST ROT RIGHT TWO BIT POSITIONS + 6452 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6453 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6454 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6455 ;ONE AFTER ROTATING + 6456 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6457 + 6458 004227 SN=SN+1 + 6459 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6460 IFE ZZ, + 6461 004000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6462 034154 201 07 0 00 020000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6463 IFG ,< + 6464 034155 201 06 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6465 IFE ,< + 6466 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6467 IFE ,< + 6468 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6469 034156 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6470 034157 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6471 034160 003 07 0 00 004227 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6472 034161 321 11 0 00 034154 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6473 + 6474 ;TEST ROT RIGHT TWO BIT POSITIONS + 6475 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6476 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6477 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6478 ;ONE AFTER ROTATING + 6479 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6480 + 6481 004230 SN=SN+1 + 6482 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6483 IFE ZZ, + 6484 002000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6485 034162 201 07 0 00 010000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6486 IFG ,< + 6487 034163 201 06 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6488 IFE ,< + 6489 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6490 IFE ,< + 6491 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6492 034164 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6493 034165 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6494 034166 003 07 0 00 004230 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6495 034167 321 11 0 00 034162 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6496 + 6497 ;TEST ROT RIGHT TWO BIT POSITIONS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0147 + + 6498 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6499 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6500 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6501 ;ONE AFTER ROTATING + 6502 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6503 + 6504 004231 SN=SN+1 + 6505 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6506 IFE ZZ, + 6507 001000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6508 034170 201 07 0 00 004000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6509 IFG ,< + 6510 034171 201 06 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6511 IFE ,< + 6512 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6513 IFE ,< + 6514 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6515 034172 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6516 034173 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6517 034174 003 07 0 00 004231 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6518 034175 321 11 0 00 034170 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6519 + 6520 ;TEST ROT RIGHT TWO BIT POSITIONS + 6521 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6522 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6523 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6524 ;ONE AFTER ROTATING + 6525 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6526 + 6527 004232 SN=SN+1 + 6528 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6529 IFE ZZ, + 6530 000400 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6531 034176 201 07 0 00 002000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6532 IFG ,< + 6533 034177 201 06 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6534 IFE ,< + 6535 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6536 IFE ,< + 6537 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6538 034200 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6539 034201 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6540 034202 003 07 0 00 004232 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6541 034203 321 11 0 00 034176 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6542 + 6543 ;TEST ROT RIGHT TWO BIT POSITIONS + 6544 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6545 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6546 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6547 ;ONE AFTER ROTATING + 6548 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6549 + 6550 004233 SN=SN+1 + 6551 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6552 IFE ZZ, +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0148 + + 6553 000200 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6554 034204 201 07 0 00 001000 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6555 IFG ,< + 6556 034205 201 06 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6557 IFE ,< + 6558 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6559 IFE ,< + 6560 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6561 034206 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6562 034207 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6563 034210 003 07 0 00 004233 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6564 034211 321 11 0 00 034204 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6565 + 6566 ;TEST ROT RIGHT TWO BIT POSITIONS + 6567 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6568 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6569 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6570 ;ONE AFTER ROTATING + 6571 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6572 + 6573 004234 SN=SN+1 + 6574 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6575 IFE ZZ, + 6576 000100 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6577 034212 201 07 0 00 000400 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6578 IFG ,< + 6579 034213 201 06 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6580 IFE ,< + 6581 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6582 IFE ,< + 6583 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6584 034214 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6585 034215 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6586 034216 003 07 0 00 004234 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6587 034217 321 11 0 00 034212 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6588 + 6589 ;TEST ROT RIGHT TWO BIT POSITIONS + 6590 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6591 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6592 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6593 ;ONE AFTER ROTATING + 6594 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6595 + 6596 004235 SN=SN+1 + 6597 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6598 IFE ZZ, + 6599 000040 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6600 034220 201 07 0 00 000200 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6601 IFG ,< + 6602 034221 201 06 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6603 IFE ,< + 6604 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6605 IFE ,< + 6606 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6607 034222 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0149 + + 6608 034223 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6609 034224 003 07 0 00 004235 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6610 034225 321 11 0 00 034220 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6611 + 6612 ;TEST ROT RIGHT TWO BIT POSITIONS + 6613 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6614 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6615 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6616 ;ONE AFTER ROTATING + 6617 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6618 + 6619 004236 SN=SN+1 + 6620 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6621 IFE ZZ, + 6622 000020 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6623 034226 201 07 0 00 000100 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6624 IFG ,< + 6625 034227 201 06 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6626 IFE ,< + 6627 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6628 IFE ,< + 6629 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6630 034230 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6631 034231 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6632 034232 003 07 0 00 004236 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6633 034233 321 11 0 00 034226 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6634 + 6635 ;TEST ROT RIGHT TWO BIT POSITIONS + 6636 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6637 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6638 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6639 ;ONE AFTER ROTATING + 6640 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6641 + 6642 004237 SN=SN+1 + 6643 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6644 IFE ZZ, + 6645 000010 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6646 034234 201 07 0 00 000040 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6647 IFG ,< + 6648 034235 201 06 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6649 IFE ,< + 6650 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6651 IFE ,< + 6652 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6653 034236 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6654 034237 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6655 034240 003 07 0 00 004237 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6656 034241 321 11 0 00 034234 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6657 + 6658 ;TEST ROT RIGHT TWO BIT POSITIONS + 6659 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6660 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6661 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6662 ;ONE AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0150 + + 6663 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6664 + 6665 004240 SN=SN+1 + 6666 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6667 IFE ZZ, + 6668 000004 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6669 034242 201 07 0 00 000020 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6670 IFG ,< + 6671 034243 201 06 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6672 IFE ,< + 6673 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6674 IFE ,< + 6675 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6676 034244 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6677 034245 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6678 034246 003 07 0 00 004240 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6679 034247 321 11 0 00 034242 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6680 + 6681 ;TEST ROT RIGHT TWO BIT POSITIONS + 6682 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6683 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6684 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6685 ;ONE AFTER ROTATING + 6686 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6687 + 6688 004241 SN=SN+1 + 6689 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6690 IFE ZZ, + 6691 000002 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6692 034250 201 07 0 00 000010 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6693 IFG ,< + 6694 034251 201 06 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6695 IFE ,< + 6696 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6697 IFE ,< + 6698 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6699 034252 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6700 034253 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6701 034254 003 07 0 00 004241 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6702 034255 321 11 0 00 034250 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6703 + 6704 ;TEST ROT RIGHT TWO BIT POSITIONS + 6705 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6706 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6707 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6708 ;ONE AFTER ROTATING + 6709 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6710 + 6711 004242 SN=SN+1 + 6712 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6713 IFE ZZ, + 6714 000001 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6715 034256 201 07 0 00 000004 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6716 IFG ,< + 6717 034257 201 06 0 00 000001 MOVEI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 17-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0151 + + 6718 IFE ,< + 6719 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6720 IFE ,< + 6721 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6722 034260 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6723 034261 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6724 034262 003 07 0 00 004242 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6725 034263 321 11 0 00 034256 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6726 + 6727 ;TEST ROT RIGHT TWO BIT POSITIONS + 6728 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6729 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6730 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6731 ;ONE AFTER ROTATING + 6732 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6733 + 6734 004243 SN=SN+1 + 6735 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6736 IFE ZZ, + 6737 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6738 034264 201 07 0 00 000002 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6739 IFG ,< + 6740 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6741 IFE ,< + 6742 034265 205 06 0 00 400000 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6743 IFE ,< + 6744 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6745 034266 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6746 034267 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6747 034270 003 07 0 00 004243 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6748 034271 321 11 0 00 034264 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6749 + 6750 ;TEST ROT RIGHT TWO BIT POSITIONS + 6751 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR + 6752 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6753 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS + 6754 ;ONE AFTER ROTATING + 6755 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + 6756 + 6757 004244 SN=SN+1 + 6758 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 6759 IFE ZZ, + 6760 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 6761 034272 201 07 0 00 000001 MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + 6762 IFG ,< + 6763 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 6764 IFE ,< + 6765 MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + 6766 IFE ,< + 6767 034273 205 06 0 00 200000 MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + 6768 034274 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6769 034275 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + 6770 034276 003 07 0 00 004244 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6771 034277 321 11 0 00 034272 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6772 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0152 + + 6773 004300 SN=4300 + 6774 000001 ZZ=1 + 6775 + 6776 ;TEST AC LEFT HALF< + 6777 E4300: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS + 6778 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6779 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6780 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6781 ;IS ZERO AFTER ROTATING. + 6782 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6783 + 6784 SN=SN+1 + 6785 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6786 IFE , + 6787 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6788 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6789 IFL ,< + 6790 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6791 IFE ,< + 6792 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6793 IFE ,< + 6794 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6795 ROT AC,-2 ;*ROTATE RIGHT TWO + 6796 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6797 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6798 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6799 > + 6800 ;TEST ROT RIGHT TWO BIT POSITIONS + 6801 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6802 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6803 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6804 ;IS ZERO AFTER ROTATING. + 6805 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6806 + 6807 004301 SN=SN+1 + 6808 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6809 777777 377777 IFE , + 6810 677777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6811 034300 525 07 0 00 377777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6812 IFL ,< + 6813 034301 525 06 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6814 IFE ,< + 6815 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6816 IFE ,< + 6817 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6818 034302 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6819 034303 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6820 034304 003 07 0 00 004301 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6821 034305 321 11 0 00 034300 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6822 + 6823 ;TEST ROT RIGHT TWO BIT POSITIONS + 6824 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6825 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6826 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6827 ;IS ZERO AFTER ROTATING. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0153 + + 6828 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6829 + 6830 004302 SN=SN+1 + 6831 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6832 IFE , + 6833 737777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6834 034306 525 07 0 00 577777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6835 IFL ,< + 6836 034307 525 06 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6837 IFE ,< + 6838 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6839 IFE ,< + 6840 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6841 034310 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6842 034311 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6843 034312 003 07 0 00 004302 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6844 034313 321 11 0 00 034306 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6845 + 6846 ;TEST ROT RIGHT TWO BIT POSITIONS + 6847 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6848 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6849 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6850 ;IS ZERO AFTER ROTATING. + 6851 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6852 + 6853 004303 SN=SN+1 + 6854 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6855 IFE , + 6856 757777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6857 034314 525 07 0 00 677777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6858 IFL ,< + 6859 034315 525 06 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6860 IFE ,< + 6861 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6862 IFE ,< + 6863 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6864 034316 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6865 034317 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6866 034320 003 07 0 00 004303 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6867 034321 321 11 0 00 034314 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6868 + 6869 ;TEST ROT RIGHT TWO BIT POSITIONS + 6870 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6871 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6872 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6873 ;IS ZERO AFTER ROTATING. + 6874 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6875 + 6876 004304 SN=SN+1 + 6877 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6878 IFE , + 6879 767777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6880 034322 525 07 0 00 737777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6881 IFL ,< + 6882 034323 525 06 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0154 + + 6883 IFE ,< + 6884 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6885 IFE ,< + 6886 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6887 034324 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6888 034325 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6889 034326 003 07 0 00 004304 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6890 034327 321 11 0 00 034322 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6891 + 6892 ;TEST ROT RIGHT TWO BIT POSITIONS + 6893 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6894 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6895 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6896 ;IS ZERO AFTER ROTATING. + 6897 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6898 + 6899 004305 SN=SN+1 + 6900 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6901 IFE , + 6902 773777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6903 034330 525 07 0 00 757777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6904 IFL ,< + 6905 034331 525 06 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6906 IFE ,< + 6907 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6908 IFE ,< + 6909 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6910 034332 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6911 034333 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6912 034334 003 07 0 00 004305 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6913 034335 321 11 0 00 034330 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6914 + 6915 ;TEST ROT RIGHT TWO BIT POSITIONS + 6916 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6917 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6918 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6919 ;IS ZERO AFTER ROTATING. + 6920 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6921 + 6922 004306 SN=SN+1 + 6923 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6924 IFE , + 6925 775777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6926 034336 525 07 0 00 767777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6927 IFL ,< + 6928 034337 525 06 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6929 IFE ,< + 6930 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6931 IFE ,< + 6932 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6933 034340 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6934 034341 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6935 034342 003 07 0 00 004306 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6936 034343 321 11 0 00 034336 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6937 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0155 + + 6938 ;TEST ROT RIGHT TWO BIT POSITIONS + 6939 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6940 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6941 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6942 ;IS ZERO AFTER ROTATING. + 6943 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6944 + 6945 004307 SN=SN+1 + 6946 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6947 IFE , + 6948 776777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6949 034344 525 07 0 00 773777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6950 IFL ,< + 6951 034345 525 06 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6952 IFE ,< + 6953 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6954 IFE ,< + 6955 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6956 034346 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6957 034347 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6958 034350 003 07 0 00 004307 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6959 034351 321 11 0 00 034344 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6960 + 6961 ;TEST ROT RIGHT TWO BIT POSITIONS + 6962 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6963 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6964 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6965 ;IS ZERO AFTER ROTATING. + 6966 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6967 + 6968 004310 SN=SN+1 + 6969 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 6970 IFE , + 6971 777377 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6972 034352 525 07 0 00 775777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6973 IFL ,< + 6974 034353 525 06 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6975 IFE ,< + 6976 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 6977 IFE ,< + 6978 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 6979 034354 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 6980 034355 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 6981 034356 003 07 0 00 004310 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 6982 034357 321 11 0 00 034352 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6983 + 6984 ;TEST ROT RIGHT TWO BIT POSITIONS + 6985 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 6986 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 6987 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 6988 ;IS ZERO AFTER ROTATING. + 6989 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 6990 + 6991 004311 SN=SN+1 + 6992 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0156 + + 6993 IFE , + 6994 777577 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 6995 034360 525 07 0 00 776777 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 6996 IFL ,< + 6997 034361 525 06 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 6998 IFE ,< + 6999 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7000 IFE ,< + 7001 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7002 034362 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7003 034363 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7004 034364 003 07 0 00 004311 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7005 034365 321 11 0 00 034360 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7006 + 7007 ;TEST ROT RIGHT TWO BIT POSITIONS + 7008 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7009 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7010 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7011 ;IS ZERO AFTER ROTATING. + 7012 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7013 + 7014 004312 SN=SN+1 + 7015 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7016 IFE , + 7017 777677 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7018 034366 525 07 0 00 777377 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7019 IFL ,< + 7020 034367 525 06 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7021 IFE ,< + 7022 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7023 IFE ,< + 7024 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7025 034370 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7026 034371 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7027 034372 003 07 0 00 004312 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7028 034373 321 11 0 00 034366 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7029 + 7030 ;TEST ROT RIGHT TWO BIT POSITIONS + 7031 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7032 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7033 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7034 ;IS ZERO AFTER ROTATING. + 7035 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7036 + 7037 004313 SN=SN+1 + 7038 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7039 IFE , + 7040 777737 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7041 034374 525 07 0 00 777577 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7042 IFL ,< + 7043 034375 525 06 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7044 IFE ,< + 7045 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7046 IFE ,< + 7047 HRROI AC-1,577777 ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0157 + + 7048 034376 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7049 034377 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7050 034400 003 07 0 00 004313 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7051 034401 321 11 0 00 034374 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7052 + 7053 ;TEST ROT RIGHT TWO BIT POSITIONS + 7054 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7055 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7056 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7057 ;IS ZERO AFTER ROTATING. + 7058 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7059 + 7060 004314 SN=SN+1 + 7061 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7062 IFE , + 7063 777757 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7064 034402 525 07 0 00 777677 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7065 IFL ,< + 7066 034403 525 06 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7067 IFE ,< + 7068 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7069 IFE ,< + 7070 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7071 034404 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7072 034405 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7073 034406 003 07 0 00 004314 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7074 034407 321 11 0 00 034402 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7075 + 7076 ;TEST ROT RIGHT TWO BIT POSITIONS + 7077 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7078 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7079 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7080 ;IS ZERO AFTER ROTATING. + 7081 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7082 + 7083 004315 SN=SN+1 + 7084 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7085 IFE , + 7086 777767 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7087 034410 525 07 0 00 777737 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7088 IFL ,< + 7089 034411 525 06 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7090 IFE ,< + 7091 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7092 IFE ,< + 7093 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7094 034412 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7095 034413 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7096 034414 003 07 0 00 004315 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7097 034415 321 11 0 00 034410 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7098 + 7099 ;TEST ROT RIGHT TWO BIT POSITIONS + 7100 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7101 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7102 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0158 + + 7103 ;IS ZERO AFTER ROTATING. + 7104 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7105 + 7106 004316 SN=SN+1 + 7107 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7108 IFE , + 7109 777773 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7110 034416 525 07 0 00 777757 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7111 IFL ,< + 7112 034417 525 06 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7113 IFE ,< + 7114 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7115 IFE ,< + 7116 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7117 034420 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7118 034421 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7119 034422 003 07 0 00 004316 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7120 034423 321 11 0 00 034416 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7121 + 7122 ;TEST ROT RIGHT TWO BIT POSITIONS + 7123 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7124 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7125 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7126 ;IS ZERO AFTER ROTATING. + 7127 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7128 + 7129 004317 SN=SN+1 + 7130 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7131 IFE , + 7132 777775 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7133 034424 525 07 0 00 777767 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7134 IFL ,< + 7135 034425 525 06 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7136 IFE ,< + 7137 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7138 IFE ,< + 7139 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7140 034426 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7141 034427 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7142 034430 003 07 0 00 004317 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7143 034431 321 11 0 00 034424 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7144 + 7145 ;TEST ROT RIGHT TWO BIT POSITIONS + 7146 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7147 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7148 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7149 ;IS ZERO AFTER ROTATING. + 7150 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7151 + 7152 004320 SN=SN+1 + 7153 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7154 IFE , + 7155 777776 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7156 034432 525 07 0 00 777773 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7157 IFL ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0159 + + 7158 034433 525 06 0 00 777776 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7159 IFE ,< + 7160 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7161 IFE ,< + 7162 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7163 034434 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7164 034435 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7165 034436 003 07 0 00 004320 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7166 034437 321 11 0 00 034432 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7167 + 7168 ;TEST ROT RIGHT TWO BIT POSITIONS + 7169 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7170 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7171 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7172 ;IS ZERO AFTER ROTATING. + 7173 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7174 + 7175 004321 SN=SN+1 + 7176 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7177 IFE , + 7178 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7179 034440 525 07 0 00 777775 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7180 IFL ,< + 7181 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7182 IFE ,< + 7183 034441 561 06 0 00 377777 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7184 IFE ,< + 7185 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7186 034442 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7187 034443 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7188 034444 003 07 0 00 004321 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7189 034445 321 11 0 00 034440 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7190 + 7191 ;TEST ROT RIGHT TWO BIT POSITIONS + 7192 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7193 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7194 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7195 ;IS ZERO AFTER ROTATING. + 7196 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7197 + 7198 004322 SN=SN+1 + 7199 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7200 IFE , + 7201 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7202 034446 525 07 0 00 777776 HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + 7203 IFL ,< + 7204 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 7205 IFE ,< + 7206 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 7207 IFE ,< + 7208 034447 561 06 0 00 577777 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 7209 034450 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7210 034451 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + 7211 034452 003 07 0 00 004322 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7212 034453 321 11 0 00 034446 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0160 + + 7213 + 7214 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0161 + + 7215 000001 ZZ=1 + 7216 + 7217 ;TEST AC RIGHT HALF< + 7218 REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS + 7219 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7220 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7221 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7222 ;IS ZERO AFTER ROTATING. + 7223 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7224 + 7225 SN=SN+1 + 7226 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7227 IFE , + 7228 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7229 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7230 IFL ,< + 7231 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7232 IFE ,< + 7233 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7234 IFE ,< + 7235 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7236 ROT AC,-2 ;*ROTATE RIGHT TWO + 7237 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7238 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7239 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7240 > + 7241 ;TEST ROT RIGHT TWO BIT POSITIONS + 7242 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7243 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7244 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7245 ;IS ZERO AFTER ROTATING. + 7246 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7247 + 7248 004323 SN=SN+1 + 7249 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7250 777777 377777 IFE , + 7251 677777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7252 034454 561 07 0 00 377777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7253 IFL ,< + 7254 034455 561 06 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7255 IFE ,< + 7256 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7257 IFE ,< + 7258 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7259 034456 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7260 034457 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7261 034460 003 07 0 00 004323 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7262 034461 321 11 0 00 034454 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7263 + 7264 ;TEST ROT RIGHT TWO BIT POSITIONS + 7265 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7266 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7267 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7268 ;IS ZERO AFTER ROTATING. + 7269 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0162 + + 7270 + 7271 004324 SN=SN+1 + 7272 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7273 IFE , + 7274 737777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7275 034462 561 07 0 00 577777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7276 IFL ,< + 7277 034463 561 06 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7278 IFE ,< + 7279 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7280 IFE ,< + 7281 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7282 034464 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7283 034465 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7284 034466 003 07 0 00 004324 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7285 034467 321 11 0 00 034462 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7286 + 7287 ;TEST ROT RIGHT TWO BIT POSITIONS + 7288 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7289 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7290 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7291 ;IS ZERO AFTER ROTATING. + 7292 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7293 + 7294 004325 SN=SN+1 + 7295 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7296 IFE , + 7297 757777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7298 034470 561 07 0 00 677777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7299 IFL ,< + 7300 034471 561 06 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7301 IFE ,< + 7302 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7303 IFE ,< + 7304 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7305 034472 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7306 034473 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7307 034474 003 07 0 00 004325 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7308 034475 321 11 0 00 034470 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7309 + 7310 ;TEST ROT RIGHT TWO BIT POSITIONS + 7311 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7312 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7313 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7314 ;IS ZERO AFTER ROTATING. + 7315 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7316 + 7317 004326 SN=SN+1 + 7318 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7319 IFE , + 7320 767777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7321 034476 561 07 0 00 737777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7322 IFL ,< + 7323 034477 561 06 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7324 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0163 + + 7325 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7326 IFE ,< + 7327 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7328 034500 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7329 034501 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7330 034502 003 07 0 00 004326 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7331 034503 321 11 0 00 034476 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7332 + 7333 ;TEST ROT RIGHT TWO BIT POSITIONS + 7334 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7335 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7336 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7337 ;IS ZERO AFTER ROTATING. + 7338 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7339 + 7340 004327 SN=SN+1 + 7341 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7342 IFE , + 7343 773777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7344 034504 561 07 0 00 757777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7345 IFL ,< + 7346 034505 561 06 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7347 IFE ,< + 7348 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7349 IFE ,< + 7350 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7351 034506 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7352 034507 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7353 034510 003 07 0 00 004327 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7354 034511 321 11 0 00 034504 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7355 + 7356 ;TEST ROT RIGHT TWO BIT POSITIONS + 7357 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7358 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7359 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7360 ;IS ZERO AFTER ROTATING. + 7361 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7362 + 7363 004330 SN=SN+1 + 7364 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7365 IFE , + 7366 775777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7367 034512 561 07 0 00 767777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7368 IFL ,< + 7369 034513 561 06 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7370 IFE ,< + 7371 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7372 IFE ,< + 7373 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7374 034514 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7375 034515 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7376 034516 003 07 0 00 004330 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7377 034517 321 11 0 00 034512 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7378 + 7379 ;TEST ROT RIGHT TWO BIT POSITIONS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0164 + + 7380 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7381 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7382 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7383 ;IS ZERO AFTER ROTATING. + 7384 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7385 + 7386 004331 SN=SN+1 + 7387 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7388 IFE , + 7389 776777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7390 034520 561 07 0 00 773777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7391 IFL ,< + 7392 034521 561 06 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7393 IFE ,< + 7394 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7395 IFE ,< + 7396 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7397 034522 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7398 034523 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7399 034524 003 07 0 00 004331 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7400 034525 321 11 0 00 034520 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7401 + 7402 ;TEST ROT RIGHT TWO BIT POSITIONS + 7403 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7404 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7405 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7406 ;IS ZERO AFTER ROTATING. + 7407 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7408 + 7409 004332 SN=SN+1 + 7410 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7411 IFE , + 7412 777377 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7413 034526 561 07 0 00 775777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7414 IFL ,< + 7415 034527 561 06 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7416 IFE ,< + 7417 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7418 IFE ,< + 7419 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7420 034530 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7421 034531 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7422 034532 003 07 0 00 004332 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7423 034533 321 11 0 00 034526 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7424 + 7425 ;TEST ROT RIGHT TWO BIT POSITIONS + 7426 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7427 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7428 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7429 ;IS ZERO AFTER ROTATING. + 7430 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7431 + 7432 004333 SN=SN+1 + 7433 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7434 IFE , +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0165 + + 7435 777577 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7436 034534 561 07 0 00 776777 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7437 IFL ,< + 7438 034535 561 06 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7439 IFE ,< + 7440 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7441 IFE ,< + 7442 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7443 034536 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7444 034537 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7445 034540 003 07 0 00 004333 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7446 034541 321 11 0 00 034534 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7447 + 7448 ;TEST ROT RIGHT TWO BIT POSITIONS + 7449 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7450 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7451 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7452 ;IS ZERO AFTER ROTATING. + 7453 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7454 + 7455 004334 SN=SN+1 + 7456 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7457 IFE , + 7458 777677 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7459 034542 561 07 0 00 777377 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7460 IFL ,< + 7461 034543 561 06 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7462 IFE ,< + 7463 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7464 IFE ,< + 7465 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7466 034544 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7467 034545 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7468 034546 003 07 0 00 004334 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7469 034547 321 11 0 00 034542 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7470 + 7471 ;TEST ROT RIGHT TWO BIT POSITIONS + 7472 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7473 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7474 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7475 ;IS ZERO AFTER ROTATING. + 7476 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7477 + 7478 004335 SN=SN+1 + 7479 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7480 IFE , + 7481 777737 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7482 034550 561 07 0 00 777577 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7483 IFL ,< + 7484 034551 561 06 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7485 IFE ,< + 7486 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7487 IFE ,< + 7488 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7489 034552 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0166 + + 7490 034553 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7491 034554 003 07 0 00 004335 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7492 034555 321 11 0 00 034550 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7493 + 7494 ;TEST ROT RIGHT TWO BIT POSITIONS + 7495 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7496 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7497 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7498 ;IS ZERO AFTER ROTATING. + 7499 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7500 + 7501 004336 SN=SN+1 + 7502 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7503 IFE , + 7504 777757 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7505 034556 561 07 0 00 777677 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7506 IFL ,< + 7507 034557 561 06 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7508 IFE ,< + 7509 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7510 IFE ,< + 7511 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7512 034560 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7513 034561 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7514 034562 003 07 0 00 004336 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7515 034563 321 11 0 00 034556 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7516 + 7517 ;TEST ROT RIGHT TWO BIT POSITIONS + 7518 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7519 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7520 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7521 ;IS ZERO AFTER ROTATING. + 7522 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7523 + 7524 004337 SN=SN+1 + 7525 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7526 IFE , + 7527 777767 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7528 034564 561 07 0 00 777737 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7529 IFL ,< + 7530 034565 561 06 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7531 IFE ,< + 7532 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7533 IFE ,< + 7534 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7535 034566 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7536 034567 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7537 034570 003 07 0 00 004337 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7538 034571 321 11 0 00 034564 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7539 + 7540 ;TEST ROT RIGHT TWO BIT POSITIONS + 7541 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7542 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7543 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7544 ;IS ZERO AFTER ROTATING. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0167 + + 7545 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7546 + 7547 004340 SN=SN+1 + 7548 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7549 IFE , + 7550 777773 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7551 034572 561 07 0 00 777757 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7552 IFL ,< + 7553 034573 561 06 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7554 IFE ,< + 7555 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7556 IFE ,< + 7557 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7558 034574 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7559 034575 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7560 034576 003 07 0 00 004340 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7561 034577 321 11 0 00 034572 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7562 + 7563 ;TEST ROT RIGHT TWO BIT POSITIONS + 7564 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7565 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7566 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7567 ;IS ZERO AFTER ROTATING. + 7568 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7569 + 7570 004341 SN=SN+1 + 7571 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7572 IFE , + 7573 777775 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7574 034600 561 07 0 00 777767 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7575 IFL ,< + 7576 034601 561 06 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7577 IFE ,< + 7578 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7579 IFE ,< + 7580 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7581 034602 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7582 034603 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7583 034604 003 07 0 00 004341 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7584 034605 321 11 0 00 034600 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7585 + 7586 ;TEST ROT RIGHT TWO BIT POSITIONS + 7587 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7588 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7589 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7590 ;IS ZERO AFTER ROTATING. + 7591 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7592 + 7593 004342 SN=SN+1 + 7594 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7595 IFE , + 7596 777776 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7597 034606 561 07 0 00 777773 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7598 IFL ,< + 7599 034607 561 06 0 00 777776 HRROI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 18-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR SEQ 0168 + + 7600 IFE ,< + 7601 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7602 IFE ,< + 7603 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7604 034610 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7605 034611 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7606 034612 003 07 0 00 004342 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7607 034613 321 11 0 00 034606 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7608 + 7609 ;TEST ROT RIGHT TWO BIT POSITIONS + 7610 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7611 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7612 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7613 ;IS ZERO AFTER ROTATING. + 7614 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7615 + 7616 004343 SN=SN+1 + 7617 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7618 IFE , + 7619 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7620 034614 561 07 0 00 777775 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7621 IFL ,< + 7622 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7623 IFE ,< + 7624 034615 525 06 0 00 377777 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7625 IFE ,< + 7626 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7627 034616 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7628 034617 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7629 034620 003 07 0 00 004343 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7630 034621 321 11 0 00 034614 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7631 + 7632 ;TEST ROT RIGHT TWO BIT POSITIONS + 7633 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR + 7634 ;TEST SHIFT LOGIC GATES BETWEEN AR AND AD + 7635 ;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT + 7636 ;IS ZERO AFTER ROTATING. + 7637 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 7638 + 7639 004344 SN=SN+1 + 7640 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 7641 IFE , + 7642 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 7643 034622 561 07 0 00 777776 HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + 7644 IFL ,< + 7645 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 7646 IFE ,< + 7647 HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + 7648 IFE ,< + 7649 034623 525 06 0 00 577777 HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + 7650 034624 241 07 0 00 777776 ROT AC,-2 ;*ROTATE RIGHT TWO + 7651 034625 312 07 0 00 000006 CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + 7652 034626 003 07 0 00 004344 ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + 7653 034627 321 11 0 00 034622 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 7654 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 19 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0169 + + 7655 SUBTTL DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES + 7656 + 7657 ;TEST ROTC LEFT ONE BIT POSITION USING ALL ZEROS + 7658 ;TEST MQ SHIFT LOGIC GATES + 7659 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND + 7660 ;AC+1 IS TESTED + 7661 ;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + 7662 + 7663 000010 AC=10 + 7664 SAVEAC (1,1)^ + 7665 034630 201 12 0 00 034630 MOVEI AC+2,. ;SAVE TEST PC + 7666 034631 202 12 0 00 030051 MOVEM AC+2,TESTPC + 7667 034632 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7668 034633 202 12 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7669 + 7670 034634 403 10 0 00 000011 E4400: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + 7671 034635 402 00 0 00 000007 SETZM AC-1 ;INITIALIZE RESULT TO ZERO + 7672 034636 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7673 034637 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + 7674 034640 004 11 0 00 004401 ER4 AC+1,4401 ;MQ GATING FAILED + 7675 034641 321 12 0 00 034634 JUMPL AC+2,E4400 ;LOOP ON ERROR SWITCH + 7676 + 7677 ;TEST ROTC LEFT ONE BIT POSITION USING ALL ONES + 7678 ;TEST MQ SHIFT LOGIC GATES + 7679 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND + 7680 ;AC+1 IS TESTED + 7681 ;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + 7682 + 7683 034642 477 10 0 00 000011 E4500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + 7684 034643 476 00 0 00 000007 SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + 7685 034644 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7686 034645 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + 7687 034646 004 11 0 00 004501 ER4 AC+1,4501 ;MQ GATING FAILED + 7688 034647 321 12 0 00 034642 JUMPL AC+2,E4500 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0170 + + 7689 004600 SN=4600 + 7690 000000 ZZ=0 + 7691 + 7692 ;TEST AC+1 RIGHT HALF < + 7693 E4600: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION + 7694 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7695 ;TEST MQ SHIFT LOGIC GATES + 7696 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7697 ;IS TESTED. + 7698 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7699 ;OTHER BIT IS A ONE AFTER ROTATING + 7700 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7701 + 7702 SN=SN+1 + 7703 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7704 IFE ZZ, + 7705 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7706 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7707 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7708 IFN ,< + 7709 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7710 IFE ,< + 7711 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7712 ROTC AC,1 ;*ROTATE LEFT ONE + 7713 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7714 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7715 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7716 > + 7717 ;TEST ROTC LEFT ONE BIT POSITION + 7718 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7719 ;TEST MQ SHIFT LOGIC GATES + 7720 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7721 ;IS TESTED. + 7722 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7723 ;OTHER BIT IS A ONE AFTER ROTATING + 7724 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7725 + 7726 004601 SN=SN+1 + 7727 000000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7728 000001 IFE ZZ, + 7729 000002 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7730 034650 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7731 034651 201 11 0 00 000001 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7732 IFN ,< + 7733 034652 201 07 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7734 IFE ,< + 7735 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7736 034653 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7737 034654 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7738 034655 004 11 0 00 004601 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7739 034656 321 12 0 00 034650 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7740 + 7741 ;TEST ROTC LEFT ONE BIT POSITION + 7742 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7743 ;TEST MQ SHIFT LOGIC GATES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0171 + + 7744 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7745 ;IS TESTED. + 7746 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7747 ;OTHER BIT IS A ONE AFTER ROTATING + 7748 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7749 + 7750 004602 SN=SN+1 + 7751 000002 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7752 IFE ZZ, + 7753 000004 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7754 034657 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7755 034660 201 11 0 00 000002 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7756 IFN ,< + 7757 034661 201 07 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7758 IFE ,< + 7759 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7760 034662 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7761 034663 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7762 034664 004 11 0 00 004602 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7763 034665 321 12 0 00 034657 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7764 + 7765 ;TEST ROTC LEFT ONE BIT POSITION + 7766 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7767 ;TEST MQ SHIFT LOGIC GATES + 7768 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7769 ;IS TESTED. + 7770 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7771 ;OTHER BIT IS A ONE AFTER ROTATING + 7772 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7773 + 7774 004603 SN=SN+1 + 7775 000004 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7776 IFE ZZ, + 7777 000010 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7778 034666 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7779 034667 201 11 0 00 000004 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7780 IFN ,< + 7781 034670 201 07 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7782 IFE ,< + 7783 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7784 034671 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7785 034672 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7786 034673 004 11 0 00 004603 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7787 034674 321 12 0 00 034666 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7788 + 7789 ;TEST ROTC LEFT ONE BIT POSITION + 7790 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7791 ;TEST MQ SHIFT LOGIC GATES + 7792 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7793 ;IS TESTED. + 7794 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7795 ;OTHER BIT IS A ONE AFTER ROTATING + 7796 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7797 + 7798 004604 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0172 + + 7799 000010 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7800 IFE ZZ, + 7801 000020 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7802 034675 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7803 034676 201 11 0 00 000010 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7804 IFN ,< + 7805 034677 201 07 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7806 IFE ,< + 7807 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7808 034700 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7809 034701 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7810 034702 004 11 0 00 004604 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7811 034703 321 12 0 00 034675 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7812 + 7813 ;TEST ROTC LEFT ONE BIT POSITION + 7814 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7815 ;TEST MQ SHIFT LOGIC GATES + 7816 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7817 ;IS TESTED. + 7818 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7819 ;OTHER BIT IS A ONE AFTER ROTATING + 7820 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7821 + 7822 004605 SN=SN+1 + 7823 000020 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7824 IFE ZZ, + 7825 000040 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7826 034704 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7827 034705 201 11 0 00 000020 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7828 IFN ,< + 7829 034706 201 07 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7830 IFE ,< + 7831 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7832 034707 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7833 034710 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7834 034711 004 11 0 00 004605 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7835 034712 321 12 0 00 034704 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7836 + 7837 ;TEST ROTC LEFT ONE BIT POSITION + 7838 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7839 ;TEST MQ SHIFT LOGIC GATES + 7840 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7841 ;IS TESTED. + 7842 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7843 ;OTHER BIT IS A ONE AFTER ROTATING + 7844 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7845 + 7846 004606 SN=SN+1 + 7847 000040 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7848 IFE ZZ, + 7849 000100 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7850 034713 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7851 034714 201 11 0 00 000040 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7852 IFN ,< + 7853 034715 201 07 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0173 + + 7854 IFE ,< + 7855 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7856 034716 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7857 034717 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7858 034720 004 11 0 00 004606 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7859 034721 321 12 0 00 034713 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7860 + 7861 ;TEST ROTC LEFT ONE BIT POSITION + 7862 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7863 ;TEST MQ SHIFT LOGIC GATES + 7864 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7865 ;IS TESTED. + 7866 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7867 ;OTHER BIT IS A ONE AFTER ROTATING + 7868 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7869 + 7870 004607 SN=SN+1 + 7871 000100 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7872 IFE ZZ, + 7873 000200 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7874 034722 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7875 034723 201 11 0 00 000100 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7876 IFN ,< + 7877 034724 201 07 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7878 IFE ,< + 7879 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7880 034725 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7881 034726 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7882 034727 004 11 0 00 004607 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7883 034730 321 12 0 00 034722 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7884 + 7885 ;TEST ROTC LEFT ONE BIT POSITION + 7886 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7887 ;TEST MQ SHIFT LOGIC GATES + 7888 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7889 ;IS TESTED. + 7890 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7891 ;OTHER BIT IS A ONE AFTER ROTATING + 7892 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7893 + 7894 004610 SN=SN+1 + 7895 000200 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7896 IFE ZZ, + 7897 000400 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7898 034731 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7899 034732 201 11 0 00 000200 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7900 IFN ,< + 7901 034733 201 07 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7902 IFE ,< + 7903 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7904 034734 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7905 034735 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7906 034736 004 11 0 00 004610 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7907 034737 321 12 0 00 034731 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7908 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0174 + + 7909 ;TEST ROTC LEFT ONE BIT POSITION + 7910 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7911 ;TEST MQ SHIFT LOGIC GATES + 7912 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7913 ;IS TESTED. + 7914 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7915 ;OTHER BIT IS A ONE AFTER ROTATING + 7916 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7917 + 7918 004611 SN=SN+1 + 7919 000400 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7920 IFE ZZ, + 7921 001000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7922 034740 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7923 034741 201 11 0 00 000400 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7924 IFN ,< + 7925 034742 201 07 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7926 IFE ,< + 7927 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7928 034743 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7929 034744 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7930 034745 004 11 0 00 004611 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7931 034746 321 12 0 00 034740 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7932 + 7933 ;TEST ROTC LEFT ONE BIT POSITION + 7934 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7935 ;TEST MQ SHIFT LOGIC GATES + 7936 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7937 ;IS TESTED. + 7938 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7939 ;OTHER BIT IS A ONE AFTER ROTATING + 7940 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7941 + 7942 004612 SN=SN+1 + 7943 001000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7944 IFE ZZ, + 7945 002000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7946 034747 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7947 034750 201 11 0 00 001000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7948 IFN ,< + 7949 034751 201 07 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7950 IFE ,< + 7951 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7952 034752 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7953 034753 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7954 034754 004 11 0 00 004612 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7955 034755 321 12 0 00 034747 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7956 + 7957 ;TEST ROTC LEFT ONE BIT POSITION + 7958 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7959 ;TEST MQ SHIFT LOGIC GATES + 7960 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7961 ;IS TESTED. + 7962 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7963 ;OTHER BIT IS A ONE AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0175 + + 7964 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7965 + 7966 004613 SN=SN+1 + 7967 002000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7968 IFE ZZ, + 7969 004000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7970 034756 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7971 034757 201 11 0 00 002000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7972 IFN ,< + 7973 034760 201 07 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7974 IFE ,< + 7975 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 7976 034761 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 7977 034762 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 7978 034763 004 11 0 00 004613 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 7979 034764 321 12 0 00 034756 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 7980 + 7981 ;TEST ROTC LEFT ONE BIT POSITION + 7982 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 7983 ;TEST MQ SHIFT LOGIC GATES + 7984 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 7985 ;IS TESTED. + 7986 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 7987 ;OTHER BIT IS A ONE AFTER ROTATING + 7988 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 7989 + 7990 004614 SN=SN+1 + 7991 004000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 7992 IFE ZZ, + 7993 010000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 7994 034765 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 7995 034766 201 11 0 00 004000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 7996 IFN ,< + 7997 034767 201 07 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 7998 IFE ,< + 7999 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8000 034770 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8001 034771 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8002 034772 004 11 0 00 004614 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8003 034773 321 12 0 00 034765 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8004 + 8005 ;TEST ROTC LEFT ONE BIT POSITION + 8006 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8007 ;TEST MQ SHIFT LOGIC GATES + 8008 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8009 ;IS TESTED. + 8010 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8011 ;OTHER BIT IS A ONE AFTER ROTATING + 8012 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8013 + 8014 004615 SN=SN+1 + 8015 010000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8016 IFE ZZ, + 8017 020000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8018 034774 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0176 + + 8019 034775 201 11 0 00 010000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8020 IFN ,< + 8021 034776 201 07 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8022 IFE ,< + 8023 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8024 034777 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8025 035000 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8026 035001 004 11 0 00 004615 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8027 035002 321 12 0 00 034774 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8028 + 8029 ;TEST ROTC LEFT ONE BIT POSITION + 8030 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8031 ;TEST MQ SHIFT LOGIC GATES + 8032 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8033 ;IS TESTED. + 8034 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8035 ;OTHER BIT IS A ONE AFTER ROTATING + 8036 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8037 + 8038 004616 SN=SN+1 + 8039 020000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8040 IFE ZZ, + 8041 040000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8042 035003 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 8043 035004 201 11 0 00 020000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8044 IFN ,< + 8045 035005 201 07 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8046 IFE ,< + 8047 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8048 035006 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8049 035007 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8050 035010 004 11 0 00 004616 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8051 035011 321 12 0 00 035003 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8052 + 8053 ;TEST ROTC LEFT ONE BIT POSITION + 8054 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8055 ;TEST MQ SHIFT LOGIC GATES + 8056 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8057 ;IS TESTED. + 8058 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8059 ;OTHER BIT IS A ONE AFTER ROTATING + 8060 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8061 + 8062 004617 SN=SN+1 + 8063 040000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8064 IFE ZZ, + 8065 100000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8066 035012 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 8067 035013 201 11 0 00 040000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8068 IFN ,< + 8069 035014 201 07 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8070 IFE ,< + 8071 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8072 035015 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8073 035016 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0177 + + 8074 035017 004 11 0 00 004617 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8075 035020 321 12 0 00 035012 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8076 + 8077 ;TEST ROTC LEFT ONE BIT POSITION + 8078 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8079 ;TEST MQ SHIFT LOGIC GATES + 8080 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8081 ;IS TESTED. + 8082 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8083 ;OTHER BIT IS A ONE AFTER ROTATING + 8084 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8085 + 8086 004620 SN=SN+1 + 8087 100000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8088 IFE ZZ, + 8089 200000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8090 035021 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 8091 035022 201 11 0 00 100000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8092 IFN ,< + 8093 035023 201 07 0 00 200000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8094 IFE ,< + 8095 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8096 035024 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8097 035025 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8098 035026 004 11 0 00 004620 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8099 035027 321 12 0 00 035021 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8100 + 8101 ;TEST ROTC LEFT ONE BIT POSITION + 8102 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8103 ;TEST MQ SHIFT LOGIC GATES + 8104 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8105 ;IS TESTED. + 8106 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8107 ;OTHER BIT IS A ONE AFTER ROTATING + 8108 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8109 + 8110 004621 SN=SN+1 + 8111 200000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8112 IFE ZZ, + 8113 400000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8114 035030 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 8115 035031 201 11 0 00 200000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8116 IFN ,< + 8117 035032 201 07 0 00 400000 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8118 IFE ,< + 8119 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8120 035033 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8121 035034 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8122 035035 004 11 0 00 004621 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8123 035036 321 12 0 00 035030 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8124 + 8125 ;TEST ROTC LEFT ONE BIT POSITION + 8126 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8127 ;TEST MQ SHIFT LOGIC GATES + 8128 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0178 + + 8129 ;IS TESTED. + 8130 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8131 ;OTHER BIT IS A ONE AFTER ROTATING + 8132 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8133 + 8134 004622 SN=SN+1 + 8135 400000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8136 IFE ZZ, + 8137 000001 000000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8138 035037 400 10 0 00 000000 SETZ AC, ;INITILAIZE AC TO ALL ZEROS + 8139 035040 201 11 0 00 400000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 8140 IFN ,< + 8141 MOVEI AC-1,YY ;SETUP FOR COMPARISON> + 8142 IFE ,< + 8143 035041 205 07 0 00 000001 MOVSI AC-1,1 ;SETUP FOR COMPARISON> + 8144 035042 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8145 035043 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8146 035044 004 11 0 00 004622 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8147 035045 321 12 0 00 035037 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8148 + 8149 + 8150 000000 ZZ=0 + 8151 + 8152 ;TEST AC+1 LEFT HALF < + 8153 REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION + 8154 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8155 ;TEST MQ SHIFT LOGIC GATES + 8156 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8157 ;IS TESTED. + 8158 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8159 ;OTHER BIT IS A ONE AFTER ROTATING + 8160 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8161 + 8162 SN=SN+1 + 8163 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8164 IFE ZZ, + 8165 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8166 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8167 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8168 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8169 ROTC AC,1 ;*ROTATE LEFT ONE + 8170 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8171 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8172 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8173 > + 8174 ;TEST ROTC LEFT ONE BIT POSITION + 8175 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8176 ;TEST MQ SHIFT LOGIC GATES + 8177 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8178 ;IS TESTED. + 8179 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8180 ;OTHER BIT IS A ONE AFTER ROTATING + 8181 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8182 + 8183 004623 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0179 + + 8184 000000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8185 000001 IFE ZZ, + 8186 000002 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8187 035046 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8188 035047 205 11 0 00 000001 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8189 035050 205 07 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8190 035051 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8191 035052 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8192 035053 004 11 0 00 004623 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8193 035054 321 12 0 00 035046 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8194 + 8195 ;TEST ROTC LEFT ONE BIT POSITION + 8196 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8197 ;TEST MQ SHIFT LOGIC GATES + 8198 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8199 ;IS TESTED. + 8200 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8201 ;OTHER BIT IS A ONE AFTER ROTATING + 8202 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8203 + 8204 004624 SN=SN+1 + 8205 000002 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8206 IFE ZZ, + 8207 000004 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8208 035055 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8209 035056 205 11 0 00 000002 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8210 035057 205 07 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8211 035060 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8212 035061 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8213 035062 004 11 0 00 004624 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8214 035063 321 12 0 00 035055 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8215 + 8216 ;TEST ROTC LEFT ONE BIT POSITION + 8217 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8218 ;TEST MQ SHIFT LOGIC GATES + 8219 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8220 ;IS TESTED. + 8221 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8222 ;OTHER BIT IS A ONE AFTER ROTATING + 8223 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8224 + 8225 004625 SN=SN+1 + 8226 000004 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8227 IFE ZZ, + 8228 000010 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8229 035064 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8230 035065 205 11 0 00 000004 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8231 035066 205 07 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8232 035067 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8233 035070 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8234 035071 004 11 0 00 004625 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8235 035072 321 12 0 00 035064 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8236 + 8237 ;TEST ROTC LEFT ONE BIT POSITION + 8238 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0180 + + 8239 ;TEST MQ SHIFT LOGIC GATES + 8240 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8241 ;IS TESTED. + 8242 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8243 ;OTHER BIT IS A ONE AFTER ROTATING + 8244 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8245 + 8246 004626 SN=SN+1 + 8247 000010 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8248 IFE ZZ, + 8249 000020 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8250 035073 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8251 035074 205 11 0 00 000010 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8252 035075 205 07 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8253 035076 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8254 035077 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8255 035100 004 11 0 00 004626 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8256 035101 321 12 0 00 035073 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8257 + 8258 ;TEST ROTC LEFT ONE BIT POSITION + 8259 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8260 ;TEST MQ SHIFT LOGIC GATES + 8261 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8262 ;IS TESTED. + 8263 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8264 ;OTHER BIT IS A ONE AFTER ROTATING + 8265 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8266 + 8267 004627 SN=SN+1 + 8268 000020 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8269 IFE ZZ, + 8270 000040 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8271 035102 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8272 035103 205 11 0 00 000020 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8273 035104 205 07 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8274 035105 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8275 035106 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8276 035107 004 11 0 00 004627 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8277 035110 321 12 0 00 035102 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8278 + 8279 ;TEST ROTC LEFT ONE BIT POSITION + 8280 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8281 ;TEST MQ SHIFT LOGIC GATES + 8282 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8283 ;IS TESTED. + 8284 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8285 ;OTHER BIT IS A ONE AFTER ROTATING + 8286 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8287 + 8288 004630 SN=SN+1 + 8289 000040 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8290 IFE ZZ, + 8291 000100 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8292 035111 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8293 035112 205 11 0 00 000040 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0181 + + 8294 035113 205 07 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8295 035114 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8296 035115 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8297 035116 004 11 0 00 004630 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8298 035117 321 12 0 00 035111 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8299 + 8300 ;TEST ROTC LEFT ONE BIT POSITION + 8301 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8302 ;TEST MQ SHIFT LOGIC GATES + 8303 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8304 ;IS TESTED. + 8305 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8306 ;OTHER BIT IS A ONE AFTER ROTATING + 8307 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8308 + 8309 004631 SN=SN+1 + 8310 000100 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8311 IFE ZZ, + 8312 000200 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8313 035120 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8314 035121 205 11 0 00 000100 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8315 035122 205 07 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8316 035123 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8317 035124 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8318 035125 004 11 0 00 004631 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8319 035126 321 12 0 00 035120 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8320 + 8321 ;TEST ROTC LEFT ONE BIT POSITION + 8322 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8323 ;TEST MQ SHIFT LOGIC GATES + 8324 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8325 ;IS TESTED. + 8326 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8327 ;OTHER BIT IS A ONE AFTER ROTATING + 8328 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8329 + 8330 004632 SN=SN+1 + 8331 000200 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8332 IFE ZZ, + 8333 000400 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8334 035127 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8335 035130 205 11 0 00 000200 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8336 035131 205 07 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8337 035132 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8338 035133 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8339 035134 004 11 0 00 004632 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8340 035135 321 12 0 00 035127 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8341 + 8342 ;TEST ROTC LEFT ONE BIT POSITION + 8343 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8344 ;TEST MQ SHIFT LOGIC GATES + 8345 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8346 ;IS TESTED. + 8347 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8348 ;OTHER BIT IS A ONE AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0182 + + 8349 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8350 + 8351 004633 SN=SN+1 + 8352 000400 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8353 IFE ZZ, + 8354 001000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8355 035136 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8356 035137 205 11 0 00 000400 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8357 035140 205 07 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8358 035141 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8359 035142 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8360 035143 004 11 0 00 004633 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8361 035144 321 12 0 00 035136 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8362 + 8363 ;TEST ROTC LEFT ONE BIT POSITION + 8364 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8365 ;TEST MQ SHIFT LOGIC GATES + 8366 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8367 ;IS TESTED. + 8368 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8369 ;OTHER BIT IS A ONE AFTER ROTATING + 8370 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8371 + 8372 004634 SN=SN+1 + 8373 001000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8374 IFE ZZ, + 8375 002000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8376 035145 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8377 035146 205 11 0 00 001000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8378 035147 205 07 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8379 035150 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8380 035151 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8381 035152 004 11 0 00 004634 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8382 035153 321 12 0 00 035145 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8383 + 8384 ;TEST ROTC LEFT ONE BIT POSITION + 8385 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8386 ;TEST MQ SHIFT LOGIC GATES + 8387 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8388 ;IS TESTED. + 8389 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8390 ;OTHER BIT IS A ONE AFTER ROTATING + 8391 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8392 + 8393 004635 SN=SN+1 + 8394 002000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8395 IFE ZZ, + 8396 004000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8397 035154 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8398 035155 205 11 0 00 002000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8399 035156 205 07 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8400 035157 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8401 035160 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8402 035161 004 11 0 00 004635 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8403 035162 321 12 0 00 035154 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0183 + + 8404 + 8405 ;TEST ROTC LEFT ONE BIT POSITION + 8406 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8407 ;TEST MQ SHIFT LOGIC GATES + 8408 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8409 ;IS TESTED. + 8410 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8411 ;OTHER BIT IS A ONE AFTER ROTATING + 8412 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8413 + 8414 004636 SN=SN+1 + 8415 004000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8416 IFE ZZ, + 8417 010000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8418 035163 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8419 035164 205 11 0 00 004000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8420 035165 205 07 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8421 035166 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8422 035167 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8423 035170 004 11 0 00 004636 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8424 035171 321 12 0 00 035163 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8425 + 8426 ;TEST ROTC LEFT ONE BIT POSITION + 8427 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8428 ;TEST MQ SHIFT LOGIC GATES + 8429 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8430 ;IS TESTED. + 8431 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8432 ;OTHER BIT IS A ONE AFTER ROTATING + 8433 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8434 + 8435 004637 SN=SN+1 + 8436 010000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8437 IFE ZZ, + 8438 020000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8439 035172 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8440 035173 205 11 0 00 010000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8441 035174 205 07 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8442 035175 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8443 035176 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8444 035177 004 11 0 00 004637 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8445 035200 321 12 0 00 035172 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8446 + 8447 ;TEST ROTC LEFT ONE BIT POSITION + 8448 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8449 ;TEST MQ SHIFT LOGIC GATES + 8450 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8451 ;IS TESTED. + 8452 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8453 ;OTHER BIT IS A ONE AFTER ROTATING + 8454 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8455 + 8456 004640 SN=SN+1 + 8457 020000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8458 IFE ZZ, +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0184 + + 8459 040000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8460 035201 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8461 035202 205 11 0 00 020000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8462 035203 205 07 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8463 035204 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8464 035205 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8465 035206 004 11 0 00 004640 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8466 035207 321 12 0 00 035201 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8467 + 8468 ;TEST ROTC LEFT ONE BIT POSITION + 8469 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8470 ;TEST MQ SHIFT LOGIC GATES + 8471 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8472 ;IS TESTED. + 8473 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8474 ;OTHER BIT IS A ONE AFTER ROTATING + 8475 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8476 + 8477 004641 SN=SN+1 + 8478 040000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8479 IFE ZZ, + 8480 100000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8481 035210 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8482 035211 205 11 0 00 040000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8483 035212 205 07 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8484 035213 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8485 035214 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8486 035215 004 11 0 00 004641 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8487 035216 321 12 0 00 035210 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8488 + 8489 ;TEST ROTC LEFT ONE BIT POSITION + 8490 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8491 ;TEST MQ SHIFT LOGIC GATES + 8492 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8493 ;IS TESTED. + 8494 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8495 ;OTHER BIT IS A ONE AFTER ROTATING + 8496 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8497 + 8498 004642 SN=SN+1 + 8499 100000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8500 IFE ZZ, + 8501 200000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8502 035217 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8503 035220 205 11 0 00 100000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8504 035221 205 07 0 00 200000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8505 035222 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8506 035223 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8507 035224 004 11 0 00 004642 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8508 035225 321 12 0 00 035217 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8509 + 8510 ;TEST ROTC LEFT ONE BIT POSITION + 8511 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 8512 ;TEST MQ SHIFT LOGIC GATES + 8513 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 20-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0185 + + 8514 ;IS TESTED. + 8515 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 8516 ;OTHER BIT IS A ONE AFTER ROTATING + 8517 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 8518 + 8519 004643 SN=SN+1 + 8520 200000 ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + 8521 IFE ZZ, + 8522 400000 YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + 8523 035226 400 10 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 8524 035227 205 11 0 00 200000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 8525 035230 205 07 0 00 400000 MOVSI AC-1,YY ;SETUP FOR COMPARISON + 8526 035231 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8527 035232 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + 8528 035233 004 11 0 00 004643 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8529 035234 321 12 0 00 035226 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8530 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0186 + + 8531 004700 SN=4700 + 8532 000000 ZZ=0 + 8533 ;TEST AC+1 RIGHT HALF < + 8534 E4700: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION + 8535 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8536 ;TEST MQ SHIFT LOGIC GATES + 8537 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8538 ;IS TESTED. + 8539 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8540 ;OTHER BIT IA A ZERO AFTER ROTATING + 8541 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8542 + 8543 SN=SN+1 + 8544 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8545 IFE , + 8546 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8547 SETOM AC ;INITIALIZE AC TO ALL ONES + 8548 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8549 IFN &777777,< + 8550 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8551 IFE &777777,< + 8552 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8553 ROTC AC,1 ;*ROTATE LEFT ONE + 8554 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8555 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8556 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8557 > + 8558 ;TEST ROTC LEFT ONE BIT POSITION + 8559 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8560 ;TEST MQ SHIFT LOGIC GATES + 8561 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8562 ;IS TESTED. + 8563 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8564 ;OTHER BIT IA A ZERO AFTER ROTATING + 8565 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8566 + 8567 004701 SN=SN+1 + 8568 000001 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8569 777777 777776 IFE , + 8570 777775 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8571 035235 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8572 035236 561 11 0 00 777776 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8573 IFN &777777,< + 8574 035237 561 07 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8575 IFE &777777,< + 8576 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8577 035240 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8578 035241 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8579 035242 004 11 0 00 004701 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8580 035243 321 12 0 00 035235 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8581 + 8582 ;TEST ROTC LEFT ONE BIT POSITION + 8583 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8584 ;TEST MQ SHIFT LOGIC GATES + 8585 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0187 + + 8586 ;IS TESTED. + 8587 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8588 ;OTHER BIT IA A ZERO AFTER ROTATING + 8589 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8590 + 8591 004702 SN=SN+1 + 8592 777777 777775 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8593 IFE , + 8594 777773 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8595 035244 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8596 035245 561 11 0 00 777775 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8597 IFN &777777,< + 8598 035246 561 07 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8599 IFE &777777,< + 8600 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8601 035247 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8602 035250 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8603 035251 004 11 0 00 004702 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8604 035252 321 12 0 00 035244 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8605 + 8606 ;TEST ROTC LEFT ONE BIT POSITION + 8607 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8608 ;TEST MQ SHIFT LOGIC GATES + 8609 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8610 ;IS TESTED. + 8611 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8612 ;OTHER BIT IA A ZERO AFTER ROTATING + 8613 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8614 + 8615 004703 SN=SN+1 + 8616 777777 777773 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8617 IFE , + 8618 777767 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8619 035253 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8620 035254 561 11 0 00 777773 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8621 IFN &777777,< + 8622 035255 561 07 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8623 IFE &777777,< + 8624 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8625 035256 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8626 035257 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8627 035260 004 11 0 00 004703 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8628 035261 321 12 0 00 035253 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8629 + 8630 ;TEST ROTC LEFT ONE BIT POSITION + 8631 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8632 ;TEST MQ SHIFT LOGIC GATES + 8633 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8634 ;IS TESTED. + 8635 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8636 ;OTHER BIT IA A ZERO AFTER ROTATING + 8637 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8638 + 8639 004704 SN=SN+1 + 8640 777777 777767 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0188 + + 8641 IFE , + 8642 777757 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8643 035262 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8644 035263 561 11 0 00 777767 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8645 IFN &777777,< + 8646 035264 561 07 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8647 IFE &777777,< + 8648 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8649 035265 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8650 035266 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8651 035267 004 11 0 00 004704 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8652 035270 321 12 0 00 035262 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8653 + 8654 ;TEST ROTC LEFT ONE BIT POSITION + 8655 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8656 ;TEST MQ SHIFT LOGIC GATES + 8657 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8658 ;IS TESTED. + 8659 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8660 ;OTHER BIT IA A ZERO AFTER ROTATING + 8661 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8662 + 8663 004705 SN=SN+1 + 8664 777777 777757 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8665 IFE , + 8666 777737 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8667 035271 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8668 035272 561 11 0 00 777757 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8669 IFN &777777,< + 8670 035273 561 07 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8671 IFE &777777,< + 8672 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8673 035274 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8674 035275 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8675 035276 004 11 0 00 004705 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8676 035277 321 12 0 00 035271 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8677 + 8678 ;TEST ROTC LEFT ONE BIT POSITION + 8679 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8680 ;TEST MQ SHIFT LOGIC GATES + 8681 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8682 ;IS TESTED. + 8683 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8684 ;OTHER BIT IA A ZERO AFTER ROTATING + 8685 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8686 + 8687 004706 SN=SN+1 + 8688 777777 777737 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8689 IFE , + 8690 777677 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8691 035300 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8692 035301 561 11 0 00 777737 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8693 IFN &777777,< + 8694 035302 561 07 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8695 IFE &777777,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0189 + + 8696 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8697 035303 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8698 035304 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8699 035305 004 11 0 00 004706 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8700 035306 321 12 0 00 035300 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8701 + 8702 ;TEST ROTC LEFT ONE BIT POSITION + 8703 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8704 ;TEST MQ SHIFT LOGIC GATES + 8705 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8706 ;IS TESTED. + 8707 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8708 ;OTHER BIT IA A ZERO AFTER ROTATING + 8709 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8710 + 8711 004707 SN=SN+1 + 8712 777777 777677 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8713 IFE , + 8714 777577 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8715 035307 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8716 035310 561 11 0 00 777677 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8717 IFN &777777,< + 8718 035311 561 07 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8719 IFE &777777,< + 8720 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8721 035312 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8722 035313 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8723 035314 004 11 0 00 004707 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8724 035315 321 12 0 00 035307 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8725 + 8726 ;TEST ROTC LEFT ONE BIT POSITION + 8727 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8728 ;TEST MQ SHIFT LOGIC GATES + 8729 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8730 ;IS TESTED. + 8731 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8732 ;OTHER BIT IA A ZERO AFTER ROTATING + 8733 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8734 + 8735 004710 SN=SN+1 + 8736 777777 777577 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8737 IFE , + 8738 777377 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8739 035316 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8740 035317 561 11 0 00 777577 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8741 IFN &777777,< + 8742 035320 561 07 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8743 IFE &777777,< + 8744 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8745 035321 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8746 035322 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8747 035323 004 11 0 00 004710 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8748 035324 321 12 0 00 035316 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8749 + 8750 ;TEST ROTC LEFT ONE BIT POSITION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0190 + + 8751 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8752 ;TEST MQ SHIFT LOGIC GATES + 8753 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8754 ;IS TESTED. + 8755 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8756 ;OTHER BIT IA A ZERO AFTER ROTATING + 8757 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8758 + 8759 004711 SN=SN+1 + 8760 777777 777377 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8761 IFE , + 8762 776777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8763 035325 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8764 035326 561 11 0 00 777377 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8765 IFN &777777,< + 8766 035327 561 07 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8767 IFE &777777,< + 8768 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8769 035330 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8770 035331 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8771 035332 004 11 0 00 004711 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8772 035333 321 12 0 00 035325 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8773 + 8774 ;TEST ROTC LEFT ONE BIT POSITION + 8775 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8776 ;TEST MQ SHIFT LOGIC GATES + 8777 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8778 ;IS TESTED. + 8779 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8780 ;OTHER BIT IA A ZERO AFTER ROTATING + 8781 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8782 + 8783 004712 SN=SN+1 + 8784 777777 776777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8785 IFE , + 8786 775777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8787 035334 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8788 035335 561 11 0 00 776777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8789 IFN &777777,< + 8790 035336 561 07 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8791 IFE &777777,< + 8792 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8793 035337 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8794 035340 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8795 035341 004 11 0 00 004712 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8796 035342 321 12 0 00 035334 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8797 + 8798 ;TEST ROTC LEFT ONE BIT POSITION + 8799 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8800 ;TEST MQ SHIFT LOGIC GATES + 8801 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8802 ;IS TESTED. + 8803 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8804 ;OTHER BIT IA A ZERO AFTER ROTATING + 8805 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0191 + + 8806 + 8807 004713 SN=SN+1 + 8808 777777 775777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8809 IFE , + 8810 773777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8811 035343 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8812 035344 561 11 0 00 775777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8813 IFN &777777,< + 8814 035345 561 07 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8815 IFE &777777,< + 8816 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8817 035346 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8818 035347 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8819 035350 004 11 0 00 004713 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8820 035351 321 12 0 00 035343 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8821 + 8822 ;TEST ROTC LEFT ONE BIT POSITION + 8823 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8824 ;TEST MQ SHIFT LOGIC GATES + 8825 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8826 ;IS TESTED. + 8827 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8828 ;OTHER BIT IA A ZERO AFTER ROTATING + 8829 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8830 + 8831 004714 SN=SN+1 + 8832 777777 773777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8833 IFE , + 8834 767777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8835 035352 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8836 035353 561 11 0 00 773777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8837 IFN &777777,< + 8838 035354 561 07 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8839 IFE &777777,< + 8840 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8841 035355 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8842 035356 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8843 035357 004 11 0 00 004714 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8844 035360 321 12 0 00 035352 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8845 + 8846 ;TEST ROTC LEFT ONE BIT POSITION + 8847 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8848 ;TEST MQ SHIFT LOGIC GATES + 8849 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8850 ;IS TESTED. + 8851 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8852 ;OTHER BIT IA A ZERO AFTER ROTATING + 8853 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8854 + 8855 004715 SN=SN+1 + 8856 777777 767777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8857 IFE , + 8858 757777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8859 035361 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8860 035362 561 11 0 00 767777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0192 + + 8861 IFN &777777,< + 8862 035363 561 07 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8863 IFE &777777,< + 8864 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8865 035364 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8866 035365 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8867 035366 004 11 0 00 004715 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8868 035367 321 12 0 00 035361 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8869 + 8870 ;TEST ROTC LEFT ONE BIT POSITION + 8871 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8872 ;TEST MQ SHIFT LOGIC GATES + 8873 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8874 ;IS TESTED. + 8875 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8876 ;OTHER BIT IA A ZERO AFTER ROTATING + 8877 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8878 + 8879 004716 SN=SN+1 + 8880 777777 757777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8881 IFE , + 8882 737777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8883 035370 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8884 035371 561 11 0 00 757777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8885 IFN &777777,< + 8886 035372 561 07 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8887 IFE &777777,< + 8888 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8889 035373 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8890 035374 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8891 035375 004 11 0 00 004716 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8892 035376 321 12 0 00 035370 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8893 + 8894 ;TEST ROTC LEFT ONE BIT POSITION + 8895 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8896 ;TEST MQ SHIFT LOGIC GATES + 8897 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8898 ;IS TESTED. + 8899 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8900 ;OTHER BIT IA A ZERO AFTER ROTATING + 8901 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8902 + 8903 004717 SN=SN+1 + 8904 777777 737777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8905 IFE , + 8906 677777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8907 035377 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8908 035400 561 11 0 00 737777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8909 IFN &777777,< + 8910 035401 561 07 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8911 IFE &777777,< + 8912 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8913 035402 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8914 035403 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8915 035404 004 11 0 00 004717 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0193 + + 8916 035405 321 12 0 00 035377 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8917 + 8918 ;TEST ROTC LEFT ONE BIT POSITION + 8919 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8920 ;TEST MQ SHIFT LOGIC GATES + 8921 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8922 ;IS TESTED. + 8923 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8924 ;OTHER BIT IA A ZERO AFTER ROTATING + 8925 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8926 + 8927 004720 SN=SN+1 + 8928 777777 677777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8929 IFE , + 8930 577777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8931 035406 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8932 035407 561 11 0 00 677777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8933 IFN &777777,< + 8934 035410 561 07 0 00 577777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8935 IFE &777777,< + 8936 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8937 035411 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8938 035412 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8939 035413 004 11 0 00 004720 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8940 035414 321 12 0 00 035406 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8941 + 8942 ;TEST ROTC LEFT ONE BIT POSITION + 8943 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8944 ;TEST MQ SHIFT LOGIC GATES + 8945 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8946 ;IS TESTED. + 8947 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8948 ;OTHER BIT IA A ZERO AFTER ROTATING + 8949 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8950 + 8951 004721 SN=SN+1 + 8952 777777 577777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8953 IFE , + 8954 377777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8955 035415 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8956 035416 561 11 0 00 577777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8957 IFN &777777,< + 8958 035417 561 07 0 00 377777 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8959 IFE &777777,< + 8960 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8961 035420 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8962 035421 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8963 035422 004 11 0 00 004721 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8964 035423 321 12 0 00 035415 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8965 + 8966 ;TEST ROTC LEFT ONE BIT POSITION + 8967 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8968 ;TEST MQ SHIFT LOGIC GATES + 8969 ;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8970 ;IS TESTED. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0194 + + 8971 ;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY + 8972 ;OTHER BIT IA A ZERO AFTER ROTATING + 8973 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 8974 + 8975 004722 SN=SN+1 + 8976 777777 377777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 8977 IFE , + 8978 777777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 8979 035424 476 00 0 00 000010 SETOM AC ;INITIALIZE AC TO ALL ONES + 8980 035425 561 11 0 00 377777 HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + 8981 IFN &777777,< + 8982 HRROI AC-1,YY ;SETUP FOR COMPARISON> + 8983 IFE &777777,< + 8984 035426 525 07 0 00 777776 HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + 8985 035427 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 8986 035430 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 8987 035431 004 11 0 00 004722 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 8988 035432 321 12 0 00 035424 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 8989 + 8990 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0195 + + 8991 000000 ZZ=0 + 8992 + 8993 ;TEST AC+1 LEFT HALF < + 8994 REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION + 8995 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 8996 ;TEST MQ SHIFT LOGIC GATES + 8997 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 8998 ;IS TESTED. + 8999 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9000 ;OTHER BIT IS A ZERO AFTER ROTATING + 9001 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9002 ;OF THE MQ + 9003 + 9004 SN=SN+1 + 9005 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9006 IFE , + 9007 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9008 SETOM AC ;INITAILIZE AC TO ALL ONES + 9009 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9010 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9011 ROTC AC,1 ;*ROTATE LEFT ONE + 9012 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9013 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9014 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9015 > + 9016 ;TEST ROTC LEFT ONE BIT POSITION + 9017 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9018 ;TEST MQ SHIFT LOGIC GATES + 9019 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9020 ;IS TESTED. + 9021 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9022 ;OTHER BIT IS A ZERO AFTER ROTATING + 9023 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9024 ;OF THE MQ + 9025 + 9026 004723 SN=SN+1 + 9027 000001 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9028 777777 777776 IFE , + 9029 777775 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9030 035433 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9031 035434 525 11 0 00 777776 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9032 035435 525 07 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9033 035436 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9034 035437 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9035 035440 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9036 035441 321 12 0 00 035433 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9037 + 9038 ;TEST ROTC LEFT ONE BIT POSITION + 9039 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9040 ;TEST MQ SHIFT LOGIC GATES + 9041 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9042 ;IS TESTED. + 9043 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9044 ;OTHER BIT IS A ZERO AFTER ROTATING + 9045 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0196 + + 9046 ;OF THE MQ + 9047 + 9048 004724 SN=SN+1 + 9049 777777 777775 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9050 IFE , + 9051 777773 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9052 035442 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9053 035443 525 11 0 00 777775 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9054 035444 525 07 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9055 035445 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9056 035446 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9057 035447 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9058 035450 321 12 0 00 035442 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9059 + 9060 ;TEST ROTC LEFT ONE BIT POSITION + 9061 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9062 ;TEST MQ SHIFT LOGIC GATES + 9063 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9064 ;IS TESTED. + 9065 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9066 ;OTHER BIT IS A ZERO AFTER ROTATING + 9067 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9068 ;OF THE MQ + 9069 + 9070 004725 SN=SN+1 + 9071 777777 777773 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9072 IFE , + 9073 777767 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9074 035451 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9075 035452 525 11 0 00 777773 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9076 035453 525 07 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9077 035454 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9078 035455 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9079 035456 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9080 035457 321 12 0 00 035451 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9081 + 9082 ;TEST ROTC LEFT ONE BIT POSITION + 9083 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9084 ;TEST MQ SHIFT LOGIC GATES + 9085 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9086 ;IS TESTED. + 9087 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9088 ;OTHER BIT IS A ZERO AFTER ROTATING + 9089 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9090 ;OF THE MQ + 9091 + 9092 004726 SN=SN+1 + 9093 777777 777767 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9094 IFE , + 9095 777757 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9096 035460 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9097 035461 525 11 0 00 777767 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9098 035462 525 07 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9099 035463 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9100 035464 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0197 + + 9101 035465 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9102 035466 321 12 0 00 035460 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9103 + 9104 ;TEST ROTC LEFT ONE BIT POSITION + 9105 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9106 ;TEST MQ SHIFT LOGIC GATES + 9107 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9108 ;IS TESTED. + 9109 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9110 ;OTHER BIT IS A ZERO AFTER ROTATING + 9111 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9112 ;OF THE MQ + 9113 + 9114 004727 SN=SN+1 + 9115 777777 777757 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9116 IFE , + 9117 777737 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9118 035467 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9119 035470 525 11 0 00 777757 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9120 035471 525 07 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9121 035472 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9122 035473 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9123 035474 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9124 035475 321 12 0 00 035467 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9125 + 9126 ;TEST ROTC LEFT ONE BIT POSITION + 9127 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9128 ;TEST MQ SHIFT LOGIC GATES + 9129 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9130 ;IS TESTED. + 9131 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9132 ;OTHER BIT IS A ZERO AFTER ROTATING + 9133 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9134 ;OF THE MQ + 9135 + 9136 004730 SN=SN+1 + 9137 777777 777737 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9138 IFE , + 9139 777677 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9140 035476 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9141 035477 525 11 0 00 777737 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9142 035500 525 07 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9143 035501 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9144 035502 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9145 035503 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9146 035504 321 12 0 00 035476 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9147 + 9148 ;TEST ROTC LEFT ONE BIT POSITION + 9149 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9150 ;TEST MQ SHIFT LOGIC GATES + 9151 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9152 ;IS TESTED. + 9153 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9154 ;OTHER BIT IS A ZERO AFTER ROTATING + 9155 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0198 + + 9156 ;OF THE MQ + 9157 + 9158 004731 SN=SN+1 + 9159 777777 777677 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9160 IFE , + 9161 777577 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9162 035505 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9163 035506 525 11 0 00 777677 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9164 035507 525 07 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9165 035510 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9166 035511 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9167 035512 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9168 035513 321 12 0 00 035505 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9169 + 9170 ;TEST ROTC LEFT ONE BIT POSITION + 9171 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9172 ;TEST MQ SHIFT LOGIC GATES + 9173 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9174 ;IS TESTED. + 9175 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9176 ;OTHER BIT IS A ZERO AFTER ROTATING + 9177 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9178 ;OF THE MQ + 9179 + 9180 004732 SN=SN+1 + 9181 777777 777577 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9182 IFE , + 9183 777377 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9184 035514 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9185 035515 525 11 0 00 777577 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9186 035516 525 07 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9187 035517 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9188 035520 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9189 035521 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9190 035522 321 12 0 00 035514 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9191 + 9192 ;TEST ROTC LEFT ONE BIT POSITION + 9193 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9194 ;TEST MQ SHIFT LOGIC GATES + 9195 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9196 ;IS TESTED. + 9197 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9198 ;OTHER BIT IS A ZERO AFTER ROTATING + 9199 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9200 ;OF THE MQ + 9201 + 9202 004733 SN=SN+1 + 9203 777777 777377 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9204 IFE , + 9205 776777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9206 035523 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9207 035524 525 11 0 00 777377 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9208 035525 525 07 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9209 035526 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9210 035527 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0199 + + 9211 035530 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9212 035531 321 12 0 00 035523 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9213 + 9214 ;TEST ROTC LEFT ONE BIT POSITION + 9215 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9216 ;TEST MQ SHIFT LOGIC GATES + 9217 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9218 ;IS TESTED. + 9219 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9220 ;OTHER BIT IS A ZERO AFTER ROTATING + 9221 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9222 ;OF THE MQ + 9223 + 9224 004734 SN=SN+1 + 9225 777777 776777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9226 IFE , + 9227 775777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9228 035532 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9229 035533 525 11 0 00 776777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9230 035534 525 07 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9231 035535 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9232 035536 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9233 035537 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9234 035540 321 12 0 00 035532 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9235 + 9236 ;TEST ROTC LEFT ONE BIT POSITION + 9237 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9238 ;TEST MQ SHIFT LOGIC GATES + 9239 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9240 ;IS TESTED. + 9241 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9242 ;OTHER BIT IS A ZERO AFTER ROTATING + 9243 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9244 ;OF THE MQ + 9245 + 9246 004735 SN=SN+1 + 9247 777777 775777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9248 IFE , + 9249 773777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9250 035541 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9251 035542 525 11 0 00 775777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9252 035543 525 07 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9253 035544 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9254 035545 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9255 035546 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9256 035547 321 12 0 00 035541 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9257 + 9258 ;TEST ROTC LEFT ONE BIT POSITION + 9259 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9260 ;TEST MQ SHIFT LOGIC GATES + 9261 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9262 ;IS TESTED. + 9263 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9264 ;OTHER BIT IS A ZERO AFTER ROTATING + 9265 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0200 + + 9266 ;OF THE MQ + 9267 + 9268 004736 SN=SN+1 + 9269 777777 773777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9270 IFE , + 9271 767777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9272 035550 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9273 035551 525 11 0 00 773777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9274 035552 525 07 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9275 035553 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9276 035554 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9277 035555 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9278 035556 321 12 0 00 035550 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9279 + 9280 ;TEST ROTC LEFT ONE BIT POSITION + 9281 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9282 ;TEST MQ SHIFT LOGIC GATES + 9283 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9284 ;IS TESTED. + 9285 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9286 ;OTHER BIT IS A ZERO AFTER ROTATING + 9287 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9288 ;OF THE MQ + 9289 + 9290 004737 SN=SN+1 + 9291 777777 767777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9292 IFE , + 9293 757777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9294 035557 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9295 035560 525 11 0 00 767777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9296 035561 525 07 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9297 035562 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9298 035563 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9299 035564 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9300 035565 321 12 0 00 035557 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9301 + 9302 ;TEST ROTC LEFT ONE BIT POSITION + 9303 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9304 ;TEST MQ SHIFT LOGIC GATES + 9305 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9306 ;IS TESTED. + 9307 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9308 ;OTHER BIT IS A ZERO AFTER ROTATING + 9309 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9310 ;OF THE MQ + 9311 + 9312 004740 SN=SN+1 + 9313 777777 757777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9314 IFE , + 9315 737777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9316 035566 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9317 035567 525 11 0 00 757777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9318 035570 525 07 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9319 035571 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9320 035572 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0201 + + 9321 035573 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9322 035574 321 12 0 00 035566 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9323 + 9324 ;TEST ROTC LEFT ONE BIT POSITION + 9325 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9326 ;TEST MQ SHIFT LOGIC GATES + 9327 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9328 ;IS TESTED. + 9329 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9330 ;OTHER BIT IS A ZERO AFTER ROTATING + 9331 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9332 ;OF THE MQ + 9333 + 9334 004741 SN=SN+1 + 9335 777777 737777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9336 IFE , + 9337 677777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9338 035575 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9339 035576 525 11 0 00 737777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9340 035577 525 07 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9341 035600 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9342 035601 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9343 035602 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9344 035603 321 12 0 00 035575 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9345 + 9346 ;TEST ROTC LEFT ONE BIT POSITION + 9347 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9348 ;TEST MQ SHIFT LOGIC GATES + 9349 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9350 ;IS TESTED. + 9351 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9352 ;OTHER BIT IS A ZERO AFTER ROTATING + 9353 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + 9354 ;OF THE MQ + 9355 + 9356 004742 SN=SN+1 + 9357 777777 677777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9358 IFE , + 9359 577777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9360 035604 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9361 035605 525 11 0 00 677777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9362 035606 525 07 0 00 577777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9363 035607 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9364 035610 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9365 035611 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9366 035612 321 12 0 00 035604 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9367 + 9368 ;TEST ROTC LEFT ONE BIT POSITION + 9369 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 9370 ;TEST MQ SHIFT LOGIC GATES + 9371 ;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 + 9372 ;IS TESTED. + 9373 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 9374 ;OTHER BIT IS A ZERO AFTER ROTATING + 9375 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 21-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0202 + + 9376 ;OF THE MQ + 9377 + 9378 004743 SN=SN+1 + 9379 777777 577777 ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + 9380 IFE , + 9381 377777 YY=&777777 ;SELECTED BIT AFTER ROTATION + 9382 035613 476 00 0 00 000010 SETOM AC ;INITAILIZE AC TO ALL ONES + 9383 035614 525 11 0 00 577777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 9384 035615 525 07 0 00 377777 HRLOI AC-1,YY ;SETUP FOR COMPARISON + 9385 035616 245 10 0 00 000001 ROTC AC,1 ;*ROTATE LEFT ONE + 9386 035617 312 11 0 00 000007 CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + 9387 035620 004 11 0 00 000000 ER4 AC+1, ;MQ GATE UNDER TEST FAILED + 9388 035621 321 12 0 00 035613 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9389 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 22 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0203 + + 9390 ;TEST ROTC RIGHT ONE BIT POSITION USING ALL ZEROS + 9391 ;TEST MQ SHIFT LOGIC GATES + 9392 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND + 9393 ;AC+1 IS TESTED + 9394 ;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + 9395 + 9396 000007 AC=7 + 9397 SAVEAC (1,1)^ + 9398 035622 201 11 0 00 035622 MOVEI AC+2,. ;SAVE TEST PC + 9399 035623 202 11 0 00 030051 MOVEM AC+2,TESTPC + 9400 035624 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 9401 035625 202 11 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 9402 + 9403 035626 403 07 0 00 000010 E5000: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + 9404 035627 402 00 0 00 000006 SETZM AC-1 ;INITIALIZE RESULT TO ZERO + 9405 035630 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9406 035631 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + 9407 035632 004 10 0 00 005001 ER4 AC+1,5001 ;MQ GRTING FAILED + 9408 035633 321 11 0 00 035626 JUMPL AC+2,E5000 ;LOOP ON ERROR SWITCH + 9409 + 9410 ;TEST ROTC,RIGHT ONE BIT POSITION USING ALL ONES + 9411 ;TEST MQ SHIFT LOGIC GATES + 9412 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND + 9413 ;AC+1 IS TESTED + 9414 ;AN ERROR OCCURS IF C(AC+1) IS NONZERO AFTER ROTATING + 9415 + 9416 035634 477 07 0 00 000010 E5100: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + 9417 035635 476 00 0 00 000006 SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + 9418 035636 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9419 035637 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + 9420 035640 004 10 0 00 005101 ER4 AC+1,5101 ;MQ GATING FAILED + 9421 035641 321 11 0 00 035634 JUMPL AC+2,E5100 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0204 + + 9422 005200 SN=5200 + 9423 000000 ZZ=0 + 9424 ;TEST AC+1 LEFT HALF< + 9425 E5200: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION + 9426 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9427 ;TEST MQ SHIFT LOGIC GATES + 9428 + 9429 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9430 ;IS TESTED. + 9431 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9432 ;OTHER BIT IS A ONE AFTER ROTATING + 9433 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9434 + 9435 SN=SN+1 + 9436 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9437 IFE ZZ, + 9438 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9439 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9440 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9441 IFN , < + 9442 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9443 IFE ,< + 9444 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9445 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9446 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9447 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9448 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9449 > + 9450 ;TEST ROTC RIGHT ONE BIT POSITION + 9451 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9452 ;TEST MQ SHIFT LOGIC GATES + 9453 + 9454 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9455 ;IS TESTED. + 9456 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9457 ;OTHER BIT IS A ONE AFTER ROTATING + 9458 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9459 + 9460 005201 SN=SN+1 + 9461 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9462 400000 IFE ZZ, + 9463 200000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9464 035642 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9465 035643 205 10 0 00 400000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9466 IFN , < + 9467 035644 205 06 0 00 200000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9468 IFE ,< + 9469 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9470 035645 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9471 035646 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9472 035647 004 10 0 00 005201 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9473 035650 321 11 0 00 035642 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9474 + 9475 ;TEST ROTC RIGHT ONE BIT POSITION + 9476 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0205 + + 9477 ;TEST MQ SHIFT LOGIC GATES + 9478 + 9479 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9480 ;IS TESTED. + 9481 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9482 ;OTHER BIT IS A ONE AFTER ROTATING + 9483 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9484 + 9485 005202 SN=SN+1 + 9486 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9487 IFE ZZ, + 9488 100000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9489 035651 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9490 035652 205 10 0 00 200000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9491 IFN , < + 9492 035653 205 06 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9493 IFE ,< + 9494 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9495 035654 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9496 035655 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9497 035656 004 10 0 00 005202 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9498 035657 321 11 0 00 035651 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9499 + 9500 ;TEST ROTC RIGHT ONE BIT POSITION + 9501 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9502 ;TEST MQ SHIFT LOGIC GATES + 9503 + 9504 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9505 ;IS TESTED. + 9506 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9507 ;OTHER BIT IS A ONE AFTER ROTATING + 9508 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9509 + 9510 005203 SN=SN+1 + 9511 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9512 IFE ZZ, + 9513 040000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9514 035660 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9515 035661 205 10 0 00 100000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9516 IFN , < + 9517 035662 205 06 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9518 IFE ,< + 9519 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9520 035663 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9521 035664 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9522 035665 004 10 0 00 005203 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9523 035666 321 11 0 00 035660 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9524 + 9525 ;TEST ROTC RIGHT ONE BIT POSITION + 9526 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9527 ;TEST MQ SHIFT LOGIC GATES + 9528 + 9529 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9530 ;IS TESTED. + 9531 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0206 + + 9532 ;OTHER BIT IS A ONE AFTER ROTATING + 9533 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9534 + 9535 005204 SN=SN+1 + 9536 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9537 IFE ZZ, + 9538 020000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9539 035667 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9540 035670 205 10 0 00 040000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9541 IFN , < + 9542 035671 205 06 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9543 IFE ,< + 9544 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9545 035672 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9546 035673 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9547 035674 004 10 0 00 005204 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9548 035675 321 11 0 00 035667 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9549 + 9550 ;TEST ROTC RIGHT ONE BIT POSITION + 9551 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9552 ;TEST MQ SHIFT LOGIC GATES + 9553 + 9554 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9555 ;IS TESTED. + 9556 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9557 ;OTHER BIT IS A ONE AFTER ROTATING + 9558 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9559 + 9560 005205 SN=SN+1 + 9561 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9562 IFE ZZ, + 9563 010000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9564 035676 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9565 035677 205 10 0 00 020000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9566 IFN , < + 9567 035700 205 06 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9568 IFE ,< + 9569 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9570 035701 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9571 035702 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9572 035703 004 10 0 00 005205 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9573 035704 321 11 0 00 035676 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9574 + 9575 ;TEST ROTC RIGHT ONE BIT POSITION + 9576 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9577 ;TEST MQ SHIFT LOGIC GATES + 9578 + 9579 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9580 ;IS TESTED. + 9581 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9582 ;OTHER BIT IS A ONE AFTER ROTATING + 9583 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9584 + 9585 005206 SN=SN+1 + 9586 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0207 + + 9587 IFE ZZ, + 9588 004000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9589 035705 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9590 035706 205 10 0 00 010000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9591 IFN , < + 9592 035707 205 06 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9593 IFE ,< + 9594 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9595 035710 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9596 035711 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9597 035712 004 10 0 00 005206 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9598 035713 321 11 0 00 035705 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9599 + 9600 ;TEST ROTC RIGHT ONE BIT POSITION + 9601 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9602 ;TEST MQ SHIFT LOGIC GATES + 9603 + 9604 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9605 ;IS TESTED. + 9606 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9607 ;OTHER BIT IS A ONE AFTER ROTATING + 9608 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9609 + 9610 005207 SN=SN+1 + 9611 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9612 IFE ZZ, + 9613 002000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9614 035714 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9615 035715 205 10 0 00 004000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9616 IFN , < + 9617 035716 205 06 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9618 IFE ,< + 9619 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9620 035717 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9621 035720 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9622 035721 004 10 0 00 005207 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9623 035722 321 11 0 00 035714 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9624 + 9625 ;TEST ROTC RIGHT ONE BIT POSITION + 9626 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9627 ;TEST MQ SHIFT LOGIC GATES + 9628 + 9629 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9630 ;IS TESTED. + 9631 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9632 ;OTHER BIT IS A ONE AFTER ROTATING + 9633 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9634 + 9635 005210 SN=SN+1 + 9636 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9637 IFE ZZ, + 9638 001000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9639 035723 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9640 035724 205 10 0 00 002000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9641 IFN , < +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0208 + + 9642 035725 205 06 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9643 IFE ,< + 9644 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9645 035726 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9646 035727 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9647 035730 004 10 0 00 005210 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9648 035731 321 11 0 00 035723 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9649 + 9650 ;TEST ROTC RIGHT ONE BIT POSITION + 9651 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9652 ;TEST MQ SHIFT LOGIC GATES + 9653 + 9654 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9655 ;IS TESTED. + 9656 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9657 ;OTHER BIT IS A ONE AFTER ROTATING + 9658 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9659 + 9660 005211 SN=SN+1 + 9661 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9662 IFE ZZ, + 9663 000400 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9664 035732 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9665 035733 205 10 0 00 001000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9666 IFN , < + 9667 035734 205 06 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9668 IFE ,< + 9669 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9670 035735 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9671 035736 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9672 035737 004 10 0 00 005211 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9673 035740 321 11 0 00 035732 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9674 + 9675 ;TEST ROTC RIGHT ONE BIT POSITION + 9676 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9677 ;TEST MQ SHIFT LOGIC GATES + 9678 + 9679 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9680 ;IS TESTED. + 9681 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9682 ;OTHER BIT IS A ONE AFTER ROTATING + 9683 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9684 + 9685 005212 SN=SN+1 + 9686 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9687 IFE ZZ, + 9688 000200 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9689 035741 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9690 035742 205 10 0 00 000400 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9691 IFN , < + 9692 035743 205 06 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9693 IFE ,< + 9694 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9695 035744 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9696 035745 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0209 + + 9697 035746 004 10 0 00 005212 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9698 035747 321 11 0 00 035741 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9699 + 9700 ;TEST ROTC RIGHT ONE BIT POSITION + 9701 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9702 ;TEST MQ SHIFT LOGIC GATES + 9703 + 9704 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9705 ;IS TESTED. + 9706 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9707 ;OTHER BIT IS A ONE AFTER ROTATING + 9708 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9709 + 9710 005213 SN=SN+1 + 9711 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9712 IFE ZZ, + 9713 000100 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9714 035750 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9715 035751 205 10 0 00 000200 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9716 IFN , < + 9717 035752 205 06 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9718 IFE ,< + 9719 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9720 035753 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9721 035754 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9722 035755 004 10 0 00 005213 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9723 035756 321 11 0 00 035750 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9724 + 9725 ;TEST ROTC RIGHT ONE BIT POSITION + 9726 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9727 ;TEST MQ SHIFT LOGIC GATES + 9728 + 9729 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9730 ;IS TESTED. + 9731 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9732 ;OTHER BIT IS A ONE AFTER ROTATING + 9733 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9734 + 9735 005214 SN=SN+1 + 9736 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9737 IFE ZZ, + 9738 000040 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9739 035757 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9740 035760 205 10 0 00 000100 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9741 IFN , < + 9742 035761 205 06 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9743 IFE ,< + 9744 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9745 035762 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9746 035763 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9747 035764 004 10 0 00 005214 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9748 035765 321 11 0 00 035757 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9749 + 9750 ;TEST ROTC RIGHT ONE BIT POSITION + 9751 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0210 + + 9752 ;TEST MQ SHIFT LOGIC GATES + 9753 + 9754 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9755 ;IS TESTED. + 9756 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9757 ;OTHER BIT IS A ONE AFTER ROTATING + 9758 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9759 + 9760 005215 SN=SN+1 + 9761 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9762 IFE ZZ, + 9763 000020 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9764 035766 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9765 035767 205 10 0 00 000040 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9766 IFN , < + 9767 035770 205 06 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9768 IFE ,< + 9769 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9770 035771 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9771 035772 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9772 035773 004 10 0 00 005215 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9773 035774 321 11 0 00 035766 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9774 + 9775 ;TEST ROTC RIGHT ONE BIT POSITION + 9776 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9777 ;TEST MQ SHIFT LOGIC GATES + 9778 + 9779 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9780 ;IS TESTED. + 9781 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9782 ;OTHER BIT IS A ONE AFTER ROTATING + 9783 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9784 + 9785 005216 SN=SN+1 + 9786 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9787 IFE ZZ, + 9788 000010 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9789 035775 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9790 035776 205 10 0 00 000020 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9791 IFN , < + 9792 035777 205 06 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9793 IFE ,< + 9794 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9795 036000 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9796 036001 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9797 036002 004 10 0 00 005216 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9798 036003 321 11 0 00 035775 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9799 + 9800 ;TEST ROTC RIGHT ONE BIT POSITION + 9801 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9802 ;TEST MQ SHIFT LOGIC GATES + 9803 + 9804 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9805 ;IS TESTED. + 9806 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0211 + + 9807 ;OTHER BIT IS A ONE AFTER ROTATING + 9808 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9809 + 9810 005217 SN=SN+1 + 9811 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9812 IFE ZZ, + 9813 000004 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9814 036004 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9815 036005 205 10 0 00 000010 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9816 IFN , < + 9817 036006 205 06 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9818 IFE ,< + 9819 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9820 036007 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9821 036010 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9822 036011 004 10 0 00 005217 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9823 036012 321 11 0 00 036004 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9824 + 9825 ;TEST ROTC RIGHT ONE BIT POSITION + 9826 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9827 ;TEST MQ SHIFT LOGIC GATES + 9828 + 9829 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9830 ;IS TESTED. + 9831 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9832 ;OTHER BIT IS A ONE AFTER ROTATING + 9833 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9834 + 9835 005220 SN=SN+1 + 9836 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9837 IFE ZZ, + 9838 000002 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9839 036013 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9840 036014 205 10 0 00 000004 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9841 IFN , < + 9842 036015 205 06 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9843 IFE ,< + 9844 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9845 036016 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9846 036017 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9847 036020 004 10 0 00 005220 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9848 036021 321 11 0 00 036013 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9849 + 9850 ;TEST ROTC RIGHT ONE BIT POSITION + 9851 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9852 ;TEST MQ SHIFT LOGIC GATES + 9853 + 9854 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9855 ;IS TESTED. + 9856 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9857 ;OTHER BIT IS A ONE AFTER ROTATING + 9858 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9859 + 9860 005221 SN=SN+1 + 9861 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0212 + + 9862 IFE ZZ, + 9863 000001 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9864 036022 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9865 036023 205 10 0 00 000002 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9866 IFN , < + 9867 036024 205 06 0 00 000001 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9868 IFE ,< + 9869 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9870 036025 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9871 036026 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9872 036027 004 10 0 00 005221 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9873 036030 321 11 0 00 036022 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9874 + 9875 ;TEST ROTC RIGHT ONE BIT POSITION + 9876 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9877 ;TEST MQ SHIFT LOGIC GATES + 9878 + 9879 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9880 ;IS TESTED. + 9881 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9882 ;OTHER BIT IS A ONE AFTER ROTATING + 9883 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9884 + 9885 005222 SN=SN+1 + 9886 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9887 IFE ZZ, + 9888 000000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9889 036031 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9890 036032 205 10 0 00 000001 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 9891 IFN , < + 9892 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 9893 IFE ,< + 9894 036033 201 06 0 00 400000 MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + 9895 036034 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9896 036035 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9897 036036 004 10 0 00 005222 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9898 036037 321 11 0 00 036031 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 9899 + 9900 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0213 + + 9901 000000 ZZ=0 + 9902 + 9903 ;TEST AC+1 RIGHT HALF< + 9904 REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION + 9905 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9906 ;TEST MQ SHIFT LOGIC GATES + 9907 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9908 ;IS TESTED. + 9909 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9910 ;OTHER BIT IS A ONE AFTER ROTATING + 9911 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9912 + 9913 SN=SN+1 + 9914 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9915 IFE ZZ, + 9916 + 9917 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9918 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9919 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 9920 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 9921 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9922 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9923 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9924 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9925 > + 9926 ;TEST ROTC RIGHT ONE BIT POSITION + 9927 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9928 ;TEST MQ SHIFT LOGIC GATES + 9929 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9930 ;IS TESTED. + 9931 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9932 ;OTHER BIT IS A ONE AFTER ROTATING + 9933 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9934 + 9935 005223 SN=SN+1 + 9936 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9937 400000 IFE ZZ, + 9938 + 9939 200000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9940 036040 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9941 036041 201 10 0 00 400000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 9942 036042 201 06 0 00 200000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 9943 036043 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9944 036044 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9945 036045 004 10 0 00 005223 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9946 036046 321 11 0 00 036040 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9947 + 9948 ;TEST ROTC RIGHT ONE BIT POSITION + 9949 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9950 ;TEST MQ SHIFT LOGIC GATES + 9951 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9952 ;IS TESTED. + 9953 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9954 ;OTHER BIT IS A ONE AFTER ROTATING + 9955 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0214 + + 9956 + 9957 005224 SN=SN+1 + 9958 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9959 IFE ZZ, + 9960 + 9961 100000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9962 036047 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9963 036050 201 10 0 00 200000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 9964 036051 201 06 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 9965 036052 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9966 036053 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9967 036054 004 10 0 00 005224 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9968 036055 321 11 0 00 036047 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9969 + 9970 ;TEST ROTC RIGHT ONE BIT POSITION + 9971 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9972 ;TEST MQ SHIFT LOGIC GATES + 9973 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9974 ;IS TESTED. + 9975 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9976 ;OTHER BIT IS A ONE AFTER ROTATING + 9977 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 9978 + 9979 005225 SN=SN+1 + 9980 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 9981 IFE ZZ, + 9982 + 9983 040000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 9984 036056 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 9985 036057 201 10 0 00 100000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 9986 036060 201 06 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 9987 036061 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 9988 036062 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 9989 036063 004 10 0 00 005225 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 9990 036064 321 11 0 00 036056 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 9991 + 9992 ;TEST ROTC RIGHT ONE BIT POSITION + 9993 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 9994 ;TEST MQ SHIFT LOGIC GATES + 9995 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 9996 ;IS TESTED. + 9997 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 9998 ;OTHER BIT IS A ONE AFTER ROTATING + 9999 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10000 + 10001 005226 SN=SN+1 + 10002 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10003 IFE ZZ, + 10004 + 10005 020000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10006 036065 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10007 036066 201 10 0 00 040000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10008 036067 201 06 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10009 036070 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10010 036071 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0215 + + 10011 036072 004 10 0 00 005226 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10012 036073 321 11 0 00 036065 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10013 + 10014 ;TEST ROTC RIGHT ONE BIT POSITION + 10015 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10016 ;TEST MQ SHIFT LOGIC GATES + 10017 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10018 ;IS TESTED. + 10019 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10020 ;OTHER BIT IS A ONE AFTER ROTATING + 10021 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10022 + 10023 005227 SN=SN+1 + 10024 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10025 IFE ZZ, + 10026 + 10027 010000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10028 036074 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10029 036075 201 10 0 00 020000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10030 036076 201 06 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10031 036077 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10032 036100 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10033 036101 004 10 0 00 005227 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10034 036102 321 11 0 00 036074 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10035 + 10036 ;TEST ROTC RIGHT ONE BIT POSITION + 10037 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10038 ;TEST MQ SHIFT LOGIC GATES + 10039 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10040 ;IS TESTED. + 10041 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10042 ;OTHER BIT IS A ONE AFTER ROTATING + 10043 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10044 + 10045 005230 SN=SN+1 + 10046 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10047 IFE ZZ, + 10048 + 10049 004000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10050 036103 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10051 036104 201 10 0 00 010000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10052 036105 201 06 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10053 036106 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10054 036107 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10055 036110 004 10 0 00 005230 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10056 036111 321 11 0 00 036103 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10057 + 10058 ;TEST ROTC RIGHT ONE BIT POSITION + 10059 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10060 ;TEST MQ SHIFT LOGIC GATES + 10061 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10062 ;IS TESTED. + 10063 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10064 ;OTHER BIT IS A ONE AFTER ROTATING + 10065 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0216 + + 10066 + 10067 005231 SN=SN+1 + 10068 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10069 IFE ZZ, + 10070 + 10071 002000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10072 036112 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10073 036113 201 10 0 00 004000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10074 036114 201 06 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10075 036115 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10076 036116 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10077 036117 004 10 0 00 005231 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10078 036120 321 11 0 00 036112 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10079 + 10080 ;TEST ROTC RIGHT ONE BIT POSITION + 10081 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10082 ;TEST MQ SHIFT LOGIC GATES + 10083 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10084 ;IS TESTED. + 10085 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10086 ;OTHER BIT IS A ONE AFTER ROTATING + 10087 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10088 + 10089 005232 SN=SN+1 + 10090 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10091 IFE ZZ, + 10092 + 10093 001000 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10094 036121 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10095 036122 201 10 0 00 002000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10096 036123 201 06 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10097 036124 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10098 036125 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10099 036126 004 10 0 00 005232 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10100 036127 321 11 0 00 036121 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10101 + 10102 ;TEST ROTC RIGHT ONE BIT POSITION + 10103 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10104 ;TEST MQ SHIFT LOGIC GATES + 10105 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10106 ;IS TESTED. + 10107 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10108 ;OTHER BIT IS A ONE AFTER ROTATING + 10109 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10110 + 10111 005233 SN=SN+1 + 10112 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10113 IFE ZZ, + 10114 + 10115 000400 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10116 036130 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10117 036131 201 10 0 00 001000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10118 036132 201 06 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10119 036133 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10120 036134 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0217 + + 10121 036135 004 10 0 00 005233 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10122 036136 321 11 0 00 036130 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10123 + 10124 ;TEST ROTC RIGHT ONE BIT POSITION + 10125 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10126 ;TEST MQ SHIFT LOGIC GATES + 10127 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10128 ;IS TESTED. + 10129 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10130 ;OTHER BIT IS A ONE AFTER ROTATING + 10131 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10132 + 10133 005234 SN=SN+1 + 10134 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10135 IFE ZZ, + 10136 + 10137 000200 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10138 036137 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10139 036140 201 10 0 00 000400 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10140 036141 201 06 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10141 036142 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10142 036143 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10143 036144 004 10 0 00 005234 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10144 036145 321 11 0 00 036137 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10145 + 10146 ;TEST ROTC RIGHT ONE BIT POSITION + 10147 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10148 ;TEST MQ SHIFT LOGIC GATES + 10149 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10150 ;IS TESTED. + 10151 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10152 ;OTHER BIT IS A ONE AFTER ROTATING + 10153 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10154 + 10155 005235 SN=SN+1 + 10156 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10157 IFE ZZ, + 10158 + 10159 000100 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10160 036146 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10161 036147 201 10 0 00 000200 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10162 036150 201 06 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10163 036151 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10164 036152 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10165 036153 004 10 0 00 005235 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10166 036154 321 11 0 00 036146 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10167 + 10168 ;TEST ROTC RIGHT ONE BIT POSITION + 10169 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10170 ;TEST MQ SHIFT LOGIC GATES + 10171 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10172 ;IS TESTED. + 10173 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10174 ;OTHER BIT IS A ONE AFTER ROTATING + 10175 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0218 + + 10176 + 10177 005236 SN=SN+1 + 10178 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10179 IFE ZZ, + 10180 + 10181 000040 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10182 036155 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10183 036156 201 10 0 00 000100 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10184 036157 201 06 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10185 036160 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10186 036161 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10187 036162 004 10 0 00 005236 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10188 036163 321 11 0 00 036155 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10189 + 10190 ;TEST ROTC RIGHT ONE BIT POSITION + 10191 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10192 ;TEST MQ SHIFT LOGIC GATES + 10193 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10194 ;IS TESTED. + 10195 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10196 ;OTHER BIT IS A ONE AFTER ROTATING + 10197 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10198 + 10199 005237 SN=SN+1 + 10200 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10201 IFE ZZ, + 10202 + 10203 000020 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10204 036164 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10205 036165 201 10 0 00 000040 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10206 036166 201 06 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10207 036167 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10208 036170 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10209 036171 004 10 0 00 005237 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10210 036172 321 11 0 00 036164 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10211 + 10212 ;TEST ROTC RIGHT ONE BIT POSITION + 10213 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10214 ;TEST MQ SHIFT LOGIC GATES + 10215 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10216 ;IS TESTED. + 10217 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10218 ;OTHER BIT IS A ONE AFTER ROTATING + 10219 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10220 + 10221 005240 SN=SN+1 + 10222 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10223 IFE ZZ, + 10224 + 10225 000010 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10226 036173 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10227 036174 201 10 0 00 000020 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10228 036175 201 06 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10229 036176 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10230 036177 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0219 + + 10231 036200 004 10 0 00 005240 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10232 036201 321 11 0 00 036173 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10233 + 10234 ;TEST ROTC RIGHT ONE BIT POSITION + 10235 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10236 ;TEST MQ SHIFT LOGIC GATES + 10237 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10238 ;IS TESTED. + 10239 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10240 ;OTHER BIT IS A ONE AFTER ROTATING + 10241 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10242 + 10243 005241 SN=SN+1 + 10244 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10245 IFE ZZ, + 10246 + 10247 000004 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10248 036202 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10249 036203 201 10 0 00 000010 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10250 036204 201 06 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10251 036205 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10252 036206 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10253 036207 004 10 0 00 005241 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10254 036210 321 11 0 00 036202 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10255 + 10256 ;TEST ROTC RIGHT ONE BIT POSITION + 10257 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10258 ;TEST MQ SHIFT LOGIC GATES + 10259 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10260 ;IS TESTED. + 10261 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10262 ;OTHER BIT IS A ONE AFTER ROTATING + 10263 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 10264 + 10265 005242 SN=SN+1 + 10266 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10267 IFE ZZ, + 10268 + 10269 000002 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10270 036211 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10271 036212 201 10 0 00 000004 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10272 036213 201 06 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10273 036214 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10274 036215 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10275 036216 004 10 0 00 005242 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10276 036217 321 11 0 00 036211 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10277 + 10278 ;TEST ROTC RIGHT ONE BIT POSITION + 10279 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 10280 ;TEST MQ SHIFT LOGIC GATES + 10281 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10282 ;IS TESTED. + 10283 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 10284 ;OTHER BIT IS A ONE AFTER ROTATING + 10285 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 23-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0220 + + 10286 + 10287 005243 SN=SN+1 + 10288 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 10289 IFE ZZ, + 10290 + 10291 000001 YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + 10292 036220 400 07 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 10293 036221 201 10 0 00 000002 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 10294 036222 201 06 0 00 000001 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 10295 036223 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10296 036224 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + 10297 036225 004 10 0 00 005243 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10298 036226 321 11 0 00 036220 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10299 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0221 + + 10300 005300 SN=5300 + 10301 000001 ZZ=1 + 10302 + 10303 ;TEST AC+1 LEFT HALF< + 10304 E5300: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION + 10305 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10306 ;TEST MQ SHIFT LOGIC GATES + 10307 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10308 ;IS TESTED. + 10309 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10310 ;OTHER BIT IS A ZERO AFTER ROTATING + 10311 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10312 + 10313 SN=SN+1 + 10314 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10315 IFE , + 10316 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10317 SETOM AC ;INITIALIZE AC TO ALL CNES + 10318 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10319 IFN &777777,< + 10320 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10321 IFE &777777,< + 10322 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10323 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10324 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10325 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10326 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10327 > + 10328 ;TEST ROTC RIGHT ONE BIT POSITION + 10329 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10330 ;TEST MQ SHIFT LOGIC GATES + 10331 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10332 ;IS TESTED. + 10333 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10334 ;OTHER BIT IS A ZERO AFTER ROTATING + 10335 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10336 + 10337 005301 SN=SN+1 + 10338 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10339 777777 377777 IFE , + 10340 577777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10341 036227 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10342 036230 525 10 0 00 377777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10343 IFN &777777,< + 10344 036231 525 06 0 00 577777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10345 IFE &777777,< + 10346 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10347 036232 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10348 036233 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10349 036234 004 10 0 00 005301 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10350 036235 321 11 0 00 036227 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10351 + 10352 ;TEST ROTC RIGHT ONE BIT POSITION + 10353 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10354 ;TEST MQ SHIFT LOGIC GATES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0222 + + 10355 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10356 ;IS TESTED. + 10357 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10358 ;OTHER BIT IS A ZERO AFTER ROTATING + 10359 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10360 + 10361 005302 SN=SN+1 + 10362 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10363 IFE , + 10364 677777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10365 036236 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10366 036237 525 10 0 00 577777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10367 IFN &777777,< + 10368 036240 525 06 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10369 IFE &777777,< + 10370 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10371 036241 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10372 036242 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10373 036243 004 10 0 00 005302 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10374 036244 321 11 0 00 036236 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10375 + 10376 ;TEST ROTC RIGHT ONE BIT POSITION + 10377 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10378 ;TEST MQ SHIFT LOGIC GATES + 10379 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10380 ;IS TESTED. + 10381 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10382 ;OTHER BIT IS A ZERO AFTER ROTATING + 10383 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10384 + 10385 005303 SN=SN+1 + 10386 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10387 IFE , + 10388 737777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10389 036245 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10390 036246 525 10 0 00 677777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10391 IFN &777777,< + 10392 036247 525 06 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10393 IFE &777777,< + 10394 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10395 036250 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10396 036251 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10397 036252 004 10 0 00 005303 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10398 036253 321 11 0 00 036245 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10399 + 10400 ;TEST ROTC RIGHT ONE BIT POSITION + 10401 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10402 ;TEST MQ SHIFT LOGIC GATES + 10403 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10404 ;IS TESTED. + 10405 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10406 ;OTHER BIT IS A ZERO AFTER ROTATING + 10407 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10408 + 10409 005304 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0223 + + 10410 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10411 IFE , + 10412 757777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10413 036254 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10414 036255 525 10 0 00 737777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10415 IFN &777777,< + 10416 036256 525 06 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10417 IFE &777777,< + 10418 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10419 036257 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10420 036260 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10421 036261 004 10 0 00 005304 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10422 036262 321 11 0 00 036254 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10423 + 10424 ;TEST ROTC RIGHT ONE BIT POSITION + 10425 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10426 ;TEST MQ SHIFT LOGIC GATES + 10427 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10428 ;IS TESTED. + 10429 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10430 ;OTHER BIT IS A ZERO AFTER ROTATING + 10431 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10432 + 10433 005305 SN=SN+1 + 10434 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10435 IFE , + 10436 767777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10437 036263 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10438 036264 525 10 0 00 757777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10439 IFN &777777,< + 10440 036265 525 06 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10441 IFE &777777,< + 10442 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10443 036266 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10444 036267 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10445 036270 004 10 0 00 005305 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10446 036271 321 11 0 00 036263 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10447 + 10448 ;TEST ROTC RIGHT ONE BIT POSITION + 10449 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10450 ;TEST MQ SHIFT LOGIC GATES + 10451 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10452 ;IS TESTED. + 10453 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10454 ;OTHER BIT IS A ZERO AFTER ROTATING + 10455 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10456 + 10457 005306 SN=SN+1 + 10458 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10459 IFE , + 10460 773777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10461 036272 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10462 036273 525 10 0 00 767777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10463 IFN &777777,< + 10464 036274 525 06 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0224 + + 10465 IFE &777777,< + 10466 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10467 036275 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10468 036276 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10469 036277 004 10 0 00 005306 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10470 036300 321 11 0 00 036272 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10471 + 10472 ;TEST ROTC RIGHT ONE BIT POSITION + 10473 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10474 ;TEST MQ SHIFT LOGIC GATES + 10475 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10476 ;IS TESTED. + 10477 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10478 ;OTHER BIT IS A ZERO AFTER ROTATING + 10479 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10480 + 10481 005307 SN=SN+1 + 10482 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10483 IFE , + 10484 775777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10485 036301 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10486 036302 525 10 0 00 773777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10487 IFN &777777,< + 10488 036303 525 06 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10489 IFE &777777,< + 10490 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10491 036304 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10492 036305 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10493 036306 004 10 0 00 005307 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10494 036307 321 11 0 00 036301 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10495 + 10496 ;TEST ROTC RIGHT ONE BIT POSITION + 10497 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10498 ;TEST MQ SHIFT LOGIC GATES + 10499 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10500 ;IS TESTED. + 10501 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10502 ;OTHER BIT IS A ZERO AFTER ROTATING + 10503 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10504 + 10505 005310 SN=SN+1 + 10506 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10507 IFE , + 10508 776777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10509 036310 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10510 036311 525 10 0 00 775777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10511 IFN &777777,< + 10512 036312 525 06 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10513 IFE &777777,< + 10514 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10515 036313 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10516 036314 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10517 036315 004 10 0 00 005310 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10518 036316 321 11 0 00 036310 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10519 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0225 + + 10520 ;TEST ROTC RIGHT ONE BIT POSITION + 10521 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10522 ;TEST MQ SHIFT LOGIC GATES + 10523 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10524 ;IS TESTED. + 10525 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10526 ;OTHER BIT IS A ZERO AFTER ROTATING + 10527 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10528 + 10529 005311 SN=SN+1 + 10530 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10531 IFE , + 10532 777377 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10533 036317 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10534 036320 525 10 0 00 776777 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10535 IFN &777777,< + 10536 036321 525 06 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10537 IFE &777777,< + 10538 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10539 036322 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10540 036323 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10541 036324 004 10 0 00 005311 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10542 036325 321 11 0 00 036317 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10543 + 10544 ;TEST ROTC RIGHT ONE BIT POSITION + 10545 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10546 ;TEST MQ SHIFT LOGIC GATES + 10547 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10548 ;IS TESTED. + 10549 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10550 ;OTHER BIT IS A ZERO AFTER ROTATING + 10551 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10552 + 10553 005312 SN=SN+1 + 10554 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10555 IFE , + 10556 777577 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10557 036326 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10558 036327 525 10 0 00 777377 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10559 IFN &777777,< + 10560 036330 525 06 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10561 IFE &777777,< + 10562 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10563 036331 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10564 036332 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10565 036333 004 10 0 00 005312 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10566 036334 321 11 0 00 036326 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10567 + 10568 ;TEST ROTC RIGHT ONE BIT POSITION + 10569 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10570 ;TEST MQ SHIFT LOGIC GATES + 10571 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10572 ;IS TESTED. + 10573 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10574 ;OTHER BIT IS A ZERO AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0226 + + 10575 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10576 + 10577 005313 SN=SN+1 + 10578 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10579 IFE , + 10580 777677 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10581 036335 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10582 036336 525 10 0 00 777577 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10583 IFN &777777,< + 10584 036337 525 06 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10585 IFE &777777,< + 10586 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10587 036340 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10588 036341 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10589 036342 004 10 0 00 005313 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10590 036343 321 11 0 00 036335 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10591 + 10592 ;TEST ROTC RIGHT ONE BIT POSITION + 10593 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10594 ;TEST MQ SHIFT LOGIC GATES + 10595 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10596 ;IS TESTED. + 10597 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10598 ;OTHER BIT IS A ZERO AFTER ROTATING + 10599 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10600 + 10601 005314 SN=SN+1 + 10602 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10603 IFE , + 10604 777737 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10605 036344 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10606 036345 525 10 0 00 777677 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10607 IFN &777777,< + 10608 036346 525 06 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10609 IFE &777777,< + 10610 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10611 036347 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10612 036350 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10613 036351 004 10 0 00 005314 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10614 036352 321 11 0 00 036344 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10615 + 10616 ;TEST ROTC RIGHT ONE BIT POSITION + 10617 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10618 ;TEST MQ SHIFT LOGIC GATES + 10619 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10620 ;IS TESTED. + 10621 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10622 ;OTHER BIT IS A ZERO AFTER ROTATING + 10623 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10624 + 10625 005315 SN=SN+1 + 10626 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10627 IFE , + 10628 777757 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10629 036353 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0227 + + 10630 036354 525 10 0 00 777737 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10631 IFN &777777,< + 10632 036355 525 06 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10633 IFE &777777,< + 10634 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10635 036356 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10636 036357 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10637 036360 004 10 0 00 005315 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10638 036361 321 11 0 00 036353 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10639 + 10640 ;TEST ROTC RIGHT ONE BIT POSITION + 10641 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10642 ;TEST MQ SHIFT LOGIC GATES + 10643 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10644 ;IS TESTED. + 10645 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10646 ;OTHER BIT IS A ZERO AFTER ROTATING + 10647 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10648 + 10649 005316 SN=SN+1 + 10650 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10651 IFE , + 10652 777767 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10653 036362 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10654 036363 525 10 0 00 777757 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10655 IFN &777777,< + 10656 036364 525 06 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10657 IFE &777777,< + 10658 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10659 036365 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10660 036366 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10661 036367 004 10 0 00 005316 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10662 036370 321 11 0 00 036362 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10663 + 10664 ;TEST ROTC RIGHT ONE BIT POSITION + 10665 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10666 ;TEST MQ SHIFT LOGIC GATES + 10667 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10668 ;IS TESTED. + 10669 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10670 ;OTHER BIT IS A ZERO AFTER ROTATING + 10671 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10672 + 10673 005317 SN=SN+1 + 10674 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10675 IFE , + 10676 777773 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10677 036371 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10678 036372 525 10 0 00 777767 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10679 IFN &777777,< + 10680 036373 525 06 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10681 IFE &777777,< + 10682 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10683 036374 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10684 036375 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0228 + + 10685 036376 004 10 0 00 005317 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10686 036377 321 11 0 00 036371 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10687 + 10688 ;TEST ROTC RIGHT ONE BIT POSITION + 10689 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10690 ;TEST MQ SHIFT LOGIC GATES + 10691 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10692 ;IS TESTED. + 10693 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10694 ;OTHER BIT IS A ZERO AFTER ROTATING + 10695 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10696 + 10697 005320 SN=SN+1 + 10698 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10699 IFE , + 10700 777775 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10701 036400 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10702 036401 525 10 0 00 777773 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10703 IFN &777777,< + 10704 036402 525 06 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10705 IFE &777777,< + 10706 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10707 036403 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10708 036404 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10709 036405 004 10 0 00 005320 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10710 036406 321 11 0 00 036400 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10711 + 10712 ;TEST ROTC RIGHT ONE BIT POSITION + 10713 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10714 ;TEST MQ SHIFT LOGIC GATES + 10715 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10716 ;IS TESTED. + 10717 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10718 ;OTHER BIT IS A ZERO AFTER ROTATING + 10719 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10720 + 10721 005321 SN=SN+1 + 10722 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10723 IFE , + 10724 777776 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10725 036407 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10726 036410 525 10 0 00 777775 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10727 IFN &777777,< + 10728 036411 525 06 0 00 777776 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10729 IFE &777777,< + 10730 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10731 036412 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10732 036413 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10733 036414 004 10 0 00 005321 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10734 036415 321 11 0 00 036407 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10735 + 10736 ;TEST ROTC RIGHT ONE BIT POSITION + 10737 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10738 ;TEST MQ SHIFT LOGIC GATES + 10739 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0229 + + 10740 ;IS TESTED. + 10741 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10742 ;OTHER BIT IS A ZERO AFTER ROTATING + 10743 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10744 + 10745 005322 SN=SN+1 + 10746 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10747 IFE , + 10748 777777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10749 036416 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10750 036417 525 10 0 00 777776 HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + 10751 IFN &777777,< + 10752 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 10753 IFE &777777,< + 10754 036420 561 06 0 00 377777 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 10755 036421 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10756 036422 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10757 036423 004 10 0 00 005322 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10758 036424 321 11 0 00 036416 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. + 10759 + 10760 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0230 + + 10761 000001 ZZ=1 + 10762 + 10763 ;TEST AC+1 RIGHT HALF< + 10764 REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION + 10765 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10766 ;TEST MQ SHIFT LOGIC GATES + 10767 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10768 ;IS TESTED. + 10769 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10770 ;OTHER BIT IS A ZERO AFTER ROTATING + 10771 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10772 + 10773 SN=SN+1 + 10774 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10775 IFE, + 10776 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10777 SETOM AC ;INITIALIZE AC TO ALL CNES + 10778 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10779 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10780 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10781 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10782 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10783 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10784 > + 10785 ;TEST ROTC RIGHT ONE BIT POSITION + 10786 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10787 ;TEST MQ SHIFT LOGIC GATES + 10788 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10789 ;IS TESTED. + 10790 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10791 ;OTHER BIT IS A ZERO AFTER ROTATING + 10792 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10793 + 10794 005323 SN=SN+1 + 10795 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10796 777777 377777 IFE, + 10797 577777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10798 036425 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10799 036426 561 10 0 00 377777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10800 036427 561 06 0 00 577777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10801 036430 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10802 036431 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10803 036432 004 10 0 00 005323 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10804 036433 321 11 0 00 036425 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10805 + 10806 ;TEST ROTC RIGHT ONE BIT POSITION + 10807 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10808 ;TEST MQ SHIFT LOGIC GATES + 10809 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10810 ;IS TESTED. + 10811 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10812 ;OTHER BIT IS A ZERO AFTER ROTATING + 10813 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10814 + 10815 005324 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0231 + + 10816 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10817 IFE, + 10818 677777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10819 036434 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10820 036435 561 10 0 00 577777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10821 036436 561 06 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10822 036437 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10823 036440 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10824 036441 004 10 0 00 005324 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10825 036442 321 11 0 00 036434 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10826 + 10827 ;TEST ROTC RIGHT ONE BIT POSITION + 10828 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10829 ;TEST MQ SHIFT LOGIC GATES + 10830 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10831 ;IS TESTED. + 10832 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10833 ;OTHER BIT IS A ZERO AFTER ROTATING + 10834 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10835 + 10836 005325 SN=SN+1 + 10837 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10838 IFE, + 10839 737777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10840 036443 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10841 036444 561 10 0 00 677777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10842 036445 561 06 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10843 036446 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10844 036447 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10845 036450 004 10 0 00 005325 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10846 036451 321 11 0 00 036443 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10847 + 10848 ;TEST ROTC RIGHT ONE BIT POSITION + 10849 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10850 ;TEST MQ SHIFT LOGIC GATES + 10851 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10852 ;IS TESTED. + 10853 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10854 ;OTHER BIT IS A ZERO AFTER ROTATING + 10855 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10856 + 10857 005326 SN=SN+1 + 10858 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10859 IFE, + 10860 757777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10861 036452 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10862 036453 561 10 0 00 737777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10863 036454 561 06 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10864 036455 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10865 036456 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10866 036457 004 10 0 00 005326 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10867 036460 321 11 0 00 036452 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10868 + 10869 ;TEST ROTC RIGHT ONE BIT POSITION + 10870 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0232 + + 10871 ;TEST MQ SHIFT LOGIC GATES + 10872 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10873 ;IS TESTED. + 10874 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10875 ;OTHER BIT IS A ZERO AFTER ROTATING + 10876 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10877 + 10878 005327 SN=SN+1 + 10879 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10880 IFE, + 10881 767777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10882 036461 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10883 036462 561 10 0 00 757777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10884 036463 561 06 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10885 036464 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10886 036465 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10887 036466 004 10 0 00 005327 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10888 036467 321 11 0 00 036461 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10889 + 10890 ;TEST ROTC RIGHT ONE BIT POSITION + 10891 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10892 ;TEST MQ SHIFT LOGIC GATES + 10893 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10894 ;IS TESTED. + 10895 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10896 ;OTHER BIT IS A ZERO AFTER ROTATING + 10897 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10898 + 10899 005330 SN=SN+1 + 10900 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10901 IFE, + 10902 773777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10903 036470 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10904 036471 561 10 0 00 767777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10905 036472 561 06 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10906 036473 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10907 036474 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10908 036475 004 10 0 00 005330 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10909 036476 321 11 0 00 036470 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10910 + 10911 ;TEST ROTC RIGHT ONE BIT POSITION + 10912 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10913 ;TEST MQ SHIFT LOGIC GATES + 10914 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10915 ;IS TESTED. + 10916 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10917 ;OTHER BIT IS A ZERO AFTER ROTATING + 10918 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10919 + 10920 005331 SN=SN+1 + 10921 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10922 IFE, + 10923 775777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10924 036477 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10925 036500 561 10 0 00 773777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0233 + + 10926 036501 561 06 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10927 036502 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10928 036503 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10929 036504 004 10 0 00 005331 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10930 036505 321 11 0 00 036477 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10931 + 10932 ;TEST ROTC RIGHT ONE BIT POSITION + 10933 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10934 ;TEST MQ SHIFT LOGIC GATES + 10935 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10936 ;IS TESTED. + 10937 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10938 ;OTHER BIT IS A ZERO AFTER ROTATING + 10939 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10940 + 10941 005332 SN=SN+1 + 10942 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10943 IFE, + 10944 776777 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10945 036506 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10946 036507 561 10 0 00 775777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10947 036510 561 06 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10948 036511 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10949 036512 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10950 036513 004 10 0 00 005332 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10951 036514 321 11 0 00 036506 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10952 + 10953 ;TEST ROTC RIGHT ONE BIT POSITION + 10954 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10955 ;TEST MQ SHIFT LOGIC GATES + 10956 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10957 ;IS TESTED. + 10958 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10959 ;OTHER BIT IS A ZERO AFTER ROTATING + 10960 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10961 + 10962 005333 SN=SN+1 + 10963 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10964 IFE, + 10965 777377 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10966 036515 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10967 036516 561 10 0 00 776777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10968 036517 561 06 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10969 036520 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10970 036521 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10971 036522 004 10 0 00 005333 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10972 036523 321 11 0 00 036515 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10973 + 10974 ;TEST ROTC RIGHT ONE BIT POSITION + 10975 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10976 ;TEST MQ SHIFT LOGIC GATES + 10977 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10978 ;IS TESTED. + 10979 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 10980 ;OTHER BIT IS A ZERO AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0234 + + 10981 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 10982 + 10983 005334 SN=SN+1 + 10984 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 10985 IFE, + 10986 777577 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 10987 036524 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 10988 036525 561 10 0 00 777377 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 10989 036526 561 06 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON + 10990 036527 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 10991 036530 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 10992 036531 004 10 0 00 005334 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 10993 036532 321 11 0 00 036524 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 10994 + 10995 ;TEST ROTC RIGHT ONE BIT POSITION + 10996 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 10997 ;TEST MQ SHIFT LOGIC GATES + 10998 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 10999 ;IS TESTED. + 11000 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11001 ;OTHER BIT IS A ZERO AFTER ROTATING + 11002 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11003 + 11004 005335 SN=SN+1 + 11005 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11006 IFE, + 11007 777677 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11008 036533 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11009 036534 561 10 0 00 777577 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11010 036535 561 06 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11011 036536 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11012 036537 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11013 036540 004 10 0 00 005335 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11014 036541 321 11 0 00 036533 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11015 + 11016 ;TEST ROTC RIGHT ONE BIT POSITION + 11017 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11018 ;TEST MQ SHIFT LOGIC GATES + 11019 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11020 ;IS TESTED. + 11021 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11022 ;OTHER BIT IS A ZERO AFTER ROTATING + 11023 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11024 + 11025 005336 SN=SN+1 + 11026 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11027 IFE, + 11028 777737 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11029 036542 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11030 036543 561 10 0 00 777677 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11031 036544 561 06 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11032 036545 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11033 036546 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11034 036547 004 10 0 00 005336 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11035 036550 321 11 0 00 036542 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0235 + + 11036 + 11037 ;TEST ROTC RIGHT ONE BIT POSITION + 11038 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11039 ;TEST MQ SHIFT LOGIC GATES + 11040 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11041 ;IS TESTED. + 11042 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11043 ;OTHER BIT IS A ZERO AFTER ROTATING + 11044 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11045 + 11046 005337 SN=SN+1 + 11047 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11048 IFE, + 11049 777757 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11050 036551 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11051 036552 561 10 0 00 777737 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11052 036553 561 06 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11053 036554 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11054 036555 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11055 036556 004 10 0 00 005337 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11056 036557 321 11 0 00 036551 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11057 + 11058 ;TEST ROTC RIGHT ONE BIT POSITION + 11059 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11060 ;TEST MQ SHIFT LOGIC GATES + 11061 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11062 ;IS TESTED. + 11063 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11064 ;OTHER BIT IS A ZERO AFTER ROTATING + 11065 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11066 + 11067 005340 SN=SN+1 + 11068 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11069 IFE, + 11070 777767 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11071 036560 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11072 036561 561 10 0 00 777757 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11073 036562 561 06 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11074 036563 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11075 036564 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11076 036565 004 10 0 00 005340 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11077 036566 321 11 0 00 036560 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11078 + 11079 ;TEST ROTC RIGHT ONE BIT POSITION + 11080 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11081 ;TEST MQ SHIFT LOGIC GATES + 11082 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11083 ;IS TESTED. + 11084 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11085 ;OTHER BIT IS A ZERO AFTER ROTATING + 11086 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11087 + 11088 005341 SN=SN+1 + 11089 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11090 IFE, +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 24-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0236 + + 11091 777773 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11092 036567 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11093 036570 561 10 0 00 777767 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11094 036571 561 06 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11095 036572 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11096 036573 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11097 036574 004 10 0 00 005341 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11098 036575 321 11 0 00 036567 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11099 + 11100 ;TEST ROTC RIGHT ONE BIT POSITION + 11101 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11102 ;TEST MQ SHIFT LOGIC GATES + 11103 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11104 ;IS TESTED. + 11105 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11106 ;OTHER BIT IS A ZERO AFTER ROTATING + 11107 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11108 + 11109 005342 SN=SN+1 + 11110 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11111 IFE, + 11112 777775 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11113 036576 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11114 036577 561 10 0 00 777773 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11115 036600 561 06 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11116 036601 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11117 036602 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11118 036603 004 10 0 00 005342 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11119 036604 321 11 0 00 036576 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11120 + 11121 ;TEST ROTC RIGHT ONE BIT POSITION + 11122 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 11123 ;TEST MQ SHIFT LOGIC GATES + 11124 ;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 + 11125 ;IS TESTED. + 11126 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 11127 ;OTHER BIT IS A ZERO AFTER ROTATING + 11128 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 11129 + 11130 005343 SN=SN+1 + 11131 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 11132 IFE, + 11133 777776 YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + 11134 036605 476 00 0 00 000007 SETOM AC ;INITIALIZE AC TO ALL CNES + 11135 036606 561 10 0 00 777775 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 11136 036607 561 06 0 00 777776 HRROI AC-1,YY ;SETUP FOR COMPARISON + 11137 036610 245 07 0 00 777777 ROTC AC,-1 ;*ROTATE RIGHT ONE + 11138 036611 312 10 0 00 000006 CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + 11139 036612 004 10 0 00 005343 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11140 036613 321 11 0 00 036605 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11141 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 25 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0237 + + 11142 ;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ZEROS + 11143 ;TEST MQ SHIFT LOGIC GATES + 11144 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND + 11145 ;AC+1 IS TESTED + 11146 ;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + 11147 + 11148 000006 AC=6 + 11149 SAVEAC (1,1)^ + 11150 036614 201 10 0 00 036614 MOVEI AC+2,. ;SAVE TEST PC + 11151 036615 202 10 0 00 030051 MOVEM AC+2,TESTPC + 11152 036616 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 11153 036617 202 10 0 00 041763 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 11154 036620 E5400: + 11155 036620 403 06 0 00 000007 SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + 11156 036621 402 00 0 00 000005 SETZM AC-1 ;INITIALIZE RESULT TO ZERO + 11157 036622 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11158 036623 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + 11159 036624 004 07 0 00 005401 ER4 AC+1,5401 ;MQ GATING FAILED + 11160 036625 321 10 0 00 036620 JUMPL AC+2,E5400 ;LOOP ON ERROR SWITCH + 11161 + 11162 ;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ONES + 11163 ;TEST MQ SHIFT LOGIC GATES + 11164 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND + 11165 ;AC+1 IS TESTED + 11166 ;AN ERROR OCCURS IF C(AC+1) IS ZERO AFTER ROTATING + 11167 + 11168 036626 477 06 0 00 000007 E5500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + 11169 036627 476 00 0 00 000005 SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + 11170 036630 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11171 036631 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + 11172 036632 004 07 0 00 005501 ER4 AC+1,5501 ;MQ GATING FAILED + 11173 036633 321 10 0 00 036626 JUMPL AC+2,E5500 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0238 + + 11174 005600 SN=5600 + 11175 000000 ZZ=0 + 11176 + 11177 ;TEST AC+1 LEFT HALF< + 11178 E5600: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS + 11179 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11180 ;TEST MQ SHIFT LOGIC GATES + 11181 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11182 ;IS TESTED. + 11183 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11184 ;OTHER BIT IS A ONE AFTER ROTATING + 11185 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11186 + 11187 SN=SN+1 + 11188 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11189 IFE ZZ, + 11190 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11191 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11192 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11193 IFG ,< + 11194 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11195 IFE ,< + 11196 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11197 IFE ,< + 11198 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11199 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11200 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11201 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11202 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11203 > + 11204 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11205 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11206 ;TEST MQ SHIFT LOGIC GATES + 11207 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11208 ;IS TESTED. + 11209 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11210 ;OTHER BIT IS A ONE AFTER ROTATING + 11211 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11212 + 11213 005601 SN=SN+1 + 11214 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11215 400000 IFE ZZ, + 11216 100000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11217 036634 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11218 036635 205 07 0 00 400000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11219 IFG ,< + 11220 036636 205 05 0 00 100000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11221 IFE ,< + 11222 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11223 IFE ,< + 11224 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11225 036637 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11226 036640 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11227 036641 004 07 0 00 005601 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11228 036642 321 10 0 00 036634 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0239 + + 11229 + 11230 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11231 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11232 ;TEST MQ SHIFT LOGIC GATES + 11233 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11234 ;IS TESTED. + 11235 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11236 ;OTHER BIT IS A ONE AFTER ROTATING + 11237 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11238 + 11239 005602 SN=SN+1 + 11240 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11241 IFE ZZ, + 11242 040000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11243 036643 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11244 036644 205 07 0 00 200000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11245 IFG ,< + 11246 036645 205 05 0 00 040000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11247 IFE ,< + 11248 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11249 IFE ,< + 11250 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11251 036646 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11252 036647 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11253 036650 004 07 0 00 005602 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11254 036651 321 10 0 00 036643 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11255 + 11256 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11257 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11258 ;TEST MQ SHIFT LOGIC GATES + 11259 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11260 ;IS TESTED. + 11261 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11262 ;OTHER BIT IS A ONE AFTER ROTATING + 11263 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11264 + 11265 005603 SN=SN+1 + 11266 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11267 IFE ZZ, + 11268 020000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11269 036652 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11270 036653 205 07 0 00 100000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11271 IFG ,< + 11272 036654 205 05 0 00 020000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11273 IFE ,< + 11274 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11275 IFE ,< + 11276 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11277 036655 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11278 036656 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11279 036657 004 07 0 00 005603 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11280 036660 321 10 0 00 036652 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11281 + 11282 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11283 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0240 + + 11284 ;TEST MQ SHIFT LOGIC GATES + 11285 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11286 ;IS TESTED. + 11287 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11288 ;OTHER BIT IS A ONE AFTER ROTATING + 11289 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11290 + 11291 005604 SN=SN+1 + 11292 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11293 IFE ZZ, + 11294 010000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11295 036661 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11296 036662 205 07 0 00 040000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11297 IFG ,< + 11298 036663 205 05 0 00 010000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11299 IFE ,< + 11300 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11301 IFE ,< + 11302 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11303 036664 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11304 036665 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11305 036666 004 07 0 00 005604 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11306 036667 321 10 0 00 036661 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11307 + 11308 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11309 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11310 ;TEST MQ SHIFT LOGIC GATES + 11311 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11312 ;IS TESTED. + 11313 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11314 ;OTHER BIT IS A ONE AFTER ROTATING + 11315 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11316 + 11317 005605 SN=SN+1 + 11318 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11319 IFE ZZ, + 11320 004000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11321 036670 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11322 036671 205 07 0 00 020000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11323 IFG ,< + 11324 036672 205 05 0 00 004000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11325 IFE ,< + 11326 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11327 IFE ,< + 11328 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11329 036673 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11330 036674 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11331 036675 004 07 0 00 005605 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11332 036676 321 10 0 00 036670 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11333 + 11334 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11335 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11336 ;TEST MQ SHIFT LOGIC GATES + 11337 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11338 ;IS TESTED. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0241 + + 11339 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11340 ;OTHER BIT IS A ONE AFTER ROTATING + 11341 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11342 + 11343 005606 SN=SN+1 + 11344 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11345 IFE ZZ, + 11346 002000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11347 036677 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11348 036700 205 07 0 00 010000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11349 IFG ,< + 11350 036701 205 05 0 00 002000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11351 IFE ,< + 11352 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11353 IFE ,< + 11354 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11355 036702 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11356 036703 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11357 036704 004 07 0 00 005606 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11358 036705 321 10 0 00 036677 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11359 + 11360 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11361 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11362 ;TEST MQ SHIFT LOGIC GATES + 11363 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11364 ;IS TESTED. + 11365 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11366 ;OTHER BIT IS A ONE AFTER ROTATING + 11367 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11368 + 11369 005607 SN=SN+1 + 11370 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11371 IFE ZZ, + 11372 001000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11373 036706 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11374 036707 205 07 0 00 004000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11375 IFG ,< + 11376 036710 205 05 0 00 001000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11377 IFE ,< + 11378 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11379 IFE ,< + 11380 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11381 036711 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11382 036712 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11383 036713 004 07 0 00 005607 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11384 036714 321 10 0 00 036706 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11385 + 11386 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11387 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11388 ;TEST MQ SHIFT LOGIC GATES + 11389 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11390 ;IS TESTED. + 11391 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11392 ;OTHER BIT IS A ONE AFTER ROTATING + 11393 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0242 + + 11394 + 11395 005610 SN=SN+1 + 11396 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11397 IFE ZZ, + 11398 000400 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11399 036715 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11400 036716 205 07 0 00 002000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11401 IFG ,< + 11402 036717 205 05 0 00 000400 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11403 IFE ,< + 11404 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11405 IFE ,< + 11406 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11407 036720 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11408 036721 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11409 036722 004 07 0 00 005610 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11410 036723 321 10 0 00 036715 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11411 + 11412 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11413 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11414 ;TEST MQ SHIFT LOGIC GATES + 11415 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11416 ;IS TESTED. + 11417 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11418 ;OTHER BIT IS A ONE AFTER ROTATING + 11419 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11420 + 11421 005611 SN=SN+1 + 11422 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11423 IFE ZZ, + 11424 000200 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11425 036724 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11426 036725 205 07 0 00 001000 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11427 IFG ,< + 11428 036726 205 05 0 00 000200 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11429 IFE ,< + 11430 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11431 IFE ,< + 11432 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11433 036727 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11434 036730 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11435 036731 004 07 0 00 005611 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11436 036732 321 10 0 00 036724 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11437 + 11438 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11439 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11440 ;TEST MQ SHIFT LOGIC GATES + 11441 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11442 ;IS TESTED. + 11443 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11444 ;OTHER BIT IS A ONE AFTER ROTATING + 11445 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11446 + 11447 005612 SN=SN+1 + 11448 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0243 + + 11449 IFE ZZ, + 11450 000100 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11451 036733 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11452 036734 205 07 0 00 000400 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11453 IFG ,< + 11454 036735 205 05 0 00 000100 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11455 IFE ,< + 11456 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11457 IFE ,< + 11458 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11459 036736 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11460 036737 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11461 036740 004 07 0 00 005612 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11462 036741 321 10 0 00 036733 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11463 + 11464 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11465 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11466 ;TEST MQ SHIFT LOGIC GATES + 11467 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11468 ;IS TESTED. + 11469 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11470 ;OTHER BIT IS A ONE AFTER ROTATING + 11471 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11472 + 11473 005613 SN=SN+1 + 11474 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11475 IFE ZZ, + 11476 000040 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11477 036742 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11478 036743 205 07 0 00 000200 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11479 IFG ,< + 11480 036744 205 05 0 00 000040 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11481 IFE ,< + 11482 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11483 IFE ,< + 11484 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11485 036745 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11486 036746 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11487 036747 004 07 0 00 005613 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11488 036750 321 10 0 00 036742 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11489 + 11490 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11491 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11492 ;TEST MQ SHIFT LOGIC GATES + 11493 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11494 ;IS TESTED. + 11495 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11496 ;OTHER BIT IS A ONE AFTER ROTATING + 11497 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11498 + 11499 005614 SN=SN+1 + 11500 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11501 IFE ZZ, + 11502 000020 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11503 036751 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0244 + + 11504 036752 205 07 0 00 000100 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11505 IFG ,< + 11506 036753 205 05 0 00 000020 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11507 IFE ,< + 11508 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11509 IFE ,< + 11510 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11511 036754 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11512 036755 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11513 036756 004 07 0 00 005614 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11514 036757 321 10 0 00 036751 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11515 + 11516 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11517 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11518 ;TEST MQ SHIFT LOGIC GATES + 11519 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11520 ;IS TESTED. + 11521 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11522 ;OTHER BIT IS A ONE AFTER ROTATING + 11523 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11524 + 11525 005615 SN=SN+1 + 11526 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11527 IFE ZZ, + 11528 000010 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11529 036760 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11530 036761 205 07 0 00 000040 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11531 IFG ,< + 11532 036762 205 05 0 00 000010 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11533 IFE ,< + 11534 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11535 IFE ,< + 11536 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11537 036763 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11538 036764 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11539 036765 004 07 0 00 005615 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11540 036766 321 10 0 00 036760 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11541 + 11542 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11543 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11544 ;TEST MQ SHIFT LOGIC GATES + 11545 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11546 ;IS TESTED. + 11547 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11548 ;OTHER BIT IS A ONE AFTER ROTATING + 11549 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11550 + 11551 005616 SN=SN+1 + 11552 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11553 IFE ZZ, + 11554 000004 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11555 036767 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11556 036770 205 07 0 00 000020 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11557 IFG ,< + 11558 036771 205 05 0 00 000004 MOVSI AC-1,YY ;SETUP FOR COMPARISON> +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0245 + + 11559 IFE ,< + 11560 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11561 IFE ,< + 11562 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11563 036772 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11564 036773 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11565 036774 004 07 0 00 005616 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11566 036775 321 10 0 00 036767 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11567 + 11568 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11569 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11570 ;TEST MQ SHIFT LOGIC GATES + 11571 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11572 ;IS TESTED. + 11573 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11574 ;OTHER BIT IS A ONE AFTER ROTATING + 11575 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11576 + 11577 005617 SN=SN+1 + 11578 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11579 IFE ZZ, + 11580 000002 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11581 036776 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11582 036777 205 07 0 00 000010 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11583 IFG ,< + 11584 037000 205 05 0 00 000002 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11585 IFE ,< + 11586 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11587 IFE ,< + 11588 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11589 037001 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11590 037002 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11591 037003 004 07 0 00 005617 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11592 037004 321 10 0 00 036776 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11593 + 11594 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11595 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11596 ;TEST MQ SHIFT LOGIC GATES + 11597 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11598 ;IS TESTED. + 11599 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11600 ;OTHER BIT IS A ONE AFTER ROTATING + 11601 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11602 + 11603 005620 SN=SN+1 + 11604 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11605 IFE ZZ, + 11606 000001 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11607 037005 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11608 037006 205 07 0 00 000004 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11609 IFG ,< + 11610 037007 205 05 0 00 000001 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11611 IFE ,< + 11612 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11613 IFE ,< +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0246 + + 11614 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11615 037010 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11616 037011 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11617 037012 004 07 0 00 005620 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11618 037013 321 10 0 00 037005 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11619 + 11620 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11621 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11622 ;TEST MQ SHIFT LOGIC GATES + 11623 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11624 ;IS TESTED. + 11625 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11626 ;OTHER BIT IS A ONE AFTER ROTATING + 11627 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11628 + 11629 005621 SN=SN+1 + 11630 000002 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11631 IFE ZZ, + 11632 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11633 037014 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11634 037015 205 07 0 00 000002 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11635 IFG ,< + 11636 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11637 IFE ,< + 11638 037016 201 05 0 00 400000 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11639 IFE ,< + 11640 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11641 037017 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11642 037020 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11643 037021 004 07 0 00 005621 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11644 037022 321 10 0 00 037014 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11645 + 11646 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11647 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11648 ;TEST MQ SHIFT LOGIC GATES + 11649 ;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11650 ;IS TESTED. + 11651 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11652 ;OTHER BIT IS A ONE AFTER ROTATING + 11653 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11654 + 11655 005622 SN=SN+1 + 11656 000001 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11657 IFE ZZ, + 11658 000000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11659 037023 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11660 037024 205 07 0 00 000001 MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + 11661 IFG ,< + 11662 037025 205 05 0 00 000000 MOVSI AC-1,YY ;SETUP FOR COMPARISON> + 11663 IFE ,< + 11664 MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + 11665 IFE ,< + 11666 037026 201 05 0 00 200000 MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + 11667 037027 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11668 037030 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0247 + + 11669 037031 004 07 0 00 005622 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11670 037032 321 10 0 00 037024 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11671 + 11672 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0248 + + 11673 000000 ZZ=0 + 11674 + 11675 ;TEST AC+1 RIGHT HALF< + 11676 REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS + 11677 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11678 ;TEST MQ SHIFT LOGIC GATES + 11679 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11680 ;IS TESTED. + 11681 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11682 ;OTHER BIT IS A ONE AFTER ROTATING + 11683 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11684 + 11685 SN=SN+1 + 11686 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11687 IFE ZZ, + 11688 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11689 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11690 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11691 + 11692 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11693 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11694 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11695 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11696 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11697 > + 11698 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11699 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11700 ;TEST MQ SHIFT LOGIC GATES + 11701 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11702 ;IS TESTED. + 11703 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11704 ;OTHER BIT IS A ONE AFTER ROTATING + 11705 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11706 + 11707 005623 SN=SN+1 + 11708 000000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11709 400000 IFE ZZ, + 11710 100000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11711 037033 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11712 037034 201 07 0 00 400000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11713 + 11714 037035 201 05 0 00 100000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11715 037036 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11716 037037 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11717 037040 004 07 0 00 005623 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11718 037041 321 10 0 00 037033 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11719 + 11720 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11721 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11722 ;TEST MQ SHIFT LOGIC GATES + 11723 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11724 ;IS TESTED. + 11725 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11726 ;OTHER BIT IS A ONE AFTER ROTATING + 11727 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0249 + + 11728 + 11729 005624 SN=SN+1 + 11730 200000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11731 IFE ZZ, + 11732 040000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11733 037042 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11734 037043 201 07 0 00 200000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11735 + 11736 037044 201 05 0 00 040000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11737 037045 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11738 037046 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11739 037047 004 07 0 00 005624 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11740 037050 321 10 0 00 037042 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11741 + 11742 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11743 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11744 ;TEST MQ SHIFT LOGIC GATES + 11745 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11746 ;IS TESTED. + 11747 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11748 ;OTHER BIT IS A ONE AFTER ROTATING + 11749 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11750 + 11751 005625 SN=SN+1 + 11752 100000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11753 IFE ZZ, + 11754 020000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11755 037051 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11756 037052 201 07 0 00 100000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11757 + 11758 037053 201 05 0 00 020000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11759 037054 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11760 037055 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11761 037056 004 07 0 00 005625 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11762 037057 321 10 0 00 037051 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11763 + 11764 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11765 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11766 ;TEST MQ SHIFT LOGIC GATES + 11767 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11768 ;IS TESTED. + 11769 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11770 ;OTHER BIT IS A ONE AFTER ROTATING + 11771 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11772 + 11773 005626 SN=SN+1 + 11774 040000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11775 IFE ZZ, + 11776 010000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11777 037060 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11778 037061 201 07 0 00 040000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11779 + 11780 037062 201 05 0 00 010000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11781 037063 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11782 037064 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0250 + + 11783 037065 004 07 0 00 005626 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11784 037066 321 10 0 00 037060 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11785 + 11786 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11787 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11788 ;TEST MQ SHIFT LOGIC GATES + 11789 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11790 ;IS TESTED. + 11791 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11792 ;OTHER BIT IS A ONE AFTER ROTATING + 11793 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11794 + 11795 005627 SN=SN+1 + 11796 020000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11797 IFE ZZ, + 11798 004000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11799 037067 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11800 037070 201 07 0 00 020000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11801 + 11802 037071 201 05 0 00 004000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11803 037072 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11804 037073 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11805 037074 004 07 0 00 005627 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11806 037075 321 10 0 00 037067 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11807 + 11808 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11809 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11810 ;TEST MQ SHIFT LOGIC GATES + 11811 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11812 ;IS TESTED. + 11813 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11814 ;OTHER BIT IS A ONE AFTER ROTATING + 11815 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11816 + 11817 005630 SN=SN+1 + 11818 010000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11819 IFE ZZ, + 11820 002000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11821 037076 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11822 037077 201 07 0 00 010000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11823 + 11824 037100 201 05 0 00 002000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11825 037101 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11826 037102 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11827 037103 004 07 0 00 005630 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11828 037104 321 10 0 00 037076 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11829 + 11830 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11831 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11832 ;TEST MQ SHIFT LOGIC GATES + 11833 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11834 ;IS TESTED. + 11835 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11836 ;OTHER BIT IS A ONE AFTER ROTATING + 11837 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0251 + + 11838 + 11839 005631 SN=SN+1 + 11840 004000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11841 IFE ZZ, + 11842 001000 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11843 037105 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11844 037106 201 07 0 00 004000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11845 + 11846 037107 201 05 0 00 001000 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11847 037110 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11848 037111 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11849 037112 004 07 0 00 005631 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11850 037113 321 10 0 00 037105 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11851 + 11852 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11853 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11854 ;TEST MQ SHIFT LOGIC GATES + 11855 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11856 ;IS TESTED. + 11857 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11858 ;OTHER BIT IS A ONE AFTER ROTATING + 11859 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11860 + 11861 005632 SN=SN+1 + 11862 002000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11863 IFE ZZ, + 11864 000400 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11865 037114 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11866 037115 201 07 0 00 002000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11867 + 11868 037116 201 05 0 00 000400 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11869 037117 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11870 037120 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11871 037121 004 07 0 00 005632 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11872 037122 321 10 0 00 037114 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11873 + 11874 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11875 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11876 ;TEST MQ SHIFT LOGIC GATES + 11877 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11878 ;IS TESTED. + 11879 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11880 ;OTHER BIT IS A ONE AFTER ROTATING + 11881 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11882 + 11883 005633 SN=SN+1 + 11884 001000 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11885 IFE ZZ, + 11886 000200 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11887 037123 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11888 037124 201 07 0 00 001000 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11889 + 11890 037125 201 05 0 00 000200 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11891 037126 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11892 037127 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0252 + + 11893 037130 004 07 0 00 005633 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11894 037131 321 10 0 00 037123 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11895 + 11896 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11897 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11898 ;TEST MQ SHIFT LOGIC GATES + 11899 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11900 ;IS TESTED. + 11901 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11902 ;OTHER BIT IS A ONE AFTER ROTATING + 11903 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11904 + 11905 005634 SN=SN+1 + 11906 000400 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11907 IFE ZZ, + 11908 000100 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11909 037132 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11910 037133 201 07 0 00 000400 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11911 + 11912 037134 201 05 0 00 000100 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11913 037135 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11914 037136 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11915 037137 004 07 0 00 005634 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11916 037140 321 10 0 00 037132 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11917 + 11918 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11919 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11920 ;TEST MQ SHIFT LOGIC GATES + 11921 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11922 ;IS TESTED. + 11923 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11924 ;OTHER BIT IS A ONE AFTER ROTATING + 11925 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11926 + 11927 005635 SN=SN+1 + 11928 000200 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11929 IFE ZZ, + 11930 000040 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11931 037141 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11932 037142 201 07 0 00 000200 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11933 + 11934 037143 201 05 0 00 000040 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11935 037144 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11936 037145 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11937 037146 004 07 0 00 005635 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11938 037147 321 10 0 00 037141 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11939 + 11940 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11941 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11942 ;TEST MQ SHIFT LOGIC GATES + 11943 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11944 ;IS TESTED. + 11945 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11946 ;OTHER BIT IS A ONE AFTER ROTATING + 11947 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0253 + + 11948 + 11949 005636 SN=SN+1 + 11950 000100 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11951 IFE ZZ, + 11952 000020 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11953 037150 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11954 037151 201 07 0 00 000100 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11955 + 11956 037152 201 05 0 00 000020 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11957 037153 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11958 037154 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11959 037155 004 07 0 00 005636 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11960 037156 321 10 0 00 037150 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11961 + 11962 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11963 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11964 ;TEST MQ SHIFT LOGIC GATES + 11965 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11966 ;IS TESTED. + 11967 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11968 ;OTHER BIT IS A ONE AFTER ROTATING + 11969 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11970 + 11971 005637 SN=SN+1 + 11972 000040 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11973 IFE ZZ, + 11974 000010 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11975 037157 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11976 037160 201 07 0 00 000040 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11977 + 11978 037161 201 05 0 00 000010 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 11979 037162 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 11980 037163 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 11981 037164 004 07 0 00 005637 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 11982 037165 321 10 0 00 037157 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 11983 + 11984 ;TEST ROTC RIGHT TWO BIT POSITIONS + 11985 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 11986 ;TEST MQ SHIFT LOGIC GATES + 11987 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 11988 ;IS TESTED. + 11989 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 11990 ;OTHER BIT IS A ONE AFTER ROTATING + 11991 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 11992 + 11993 005640 SN=SN+1 + 11994 000020 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 11995 IFE ZZ, + 11996 000004 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 11997 037166 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 11998 037167 201 07 0 00 000020 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 11999 + 12000 037170 201 05 0 00 000004 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 12001 037171 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12002 037172 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 26-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0254 + + 12003 037173 004 07 0 00 005640 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12004 037174 321 10 0 00 037166 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12005 + 12006 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12007 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 12008 ;TEST MQ SHIFT LOGIC GATES + 12009 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12010 ;IS TESTED. + 12011 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 12012 ;OTHER BIT IS A ONE AFTER ROTATING + 12013 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 12014 + 12015 005641 SN=SN+1 + 12016 000010 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 12017 IFE ZZ, + 12018 000002 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 12019 037175 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 12020 037176 201 07 0 00 000010 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 12021 + 12022 037177 201 05 0 00 000002 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 12023 037200 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12024 037201 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 12025 037202 004 07 0 00 005641 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12026 037203 321 10 0 00 037175 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12027 + 12028 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12029 ;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ + 12030 ;TEST MQ SHIFT LOGIC GATES + 12031 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12032 ;IS TESTED. + 12033 ;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY + 12034 ;OTHER BIT IS A ONE AFTER ROTATING + 12035 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + 12036 + 12037 005642 SN=SN+1 + 12038 000004 ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + 12039 IFE ZZ, + 12040 000001 YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + 12041 037204 400 06 0 00 000000 SETZ AC, ;INITIALIZE AC TO ALL ZEROS + 12042 037205 201 07 0 00 000004 MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + 12043 + 12044 037206 201 05 0 00 000001 MOVEI AC-1,YY ;SETUP FOR COMPARISON + 12045 037207 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12046 037210 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + 12047 037211 004 07 0 00 005642 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12048 037212 321 10 0 00 037204 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12049 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0255 + + 12050 005700 SN=5700 + 12051 000001 ZZ=1 + 12052 + 12053 ;TEST AC+1 LEFT HALF < + 12054 E5700: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS + 12055 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12056 ;TEST MQ SHIFT LOGIC GATES + 12057 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12058 ;IS TESTED. + 12059 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12060 ;OTHER BIT IS A ZERO AFTER ROTATING + 12061 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12062 + 12063 SN=SN+1 + 12064 + 12065 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12066 IFE, + 12067 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12068 SETOM AC ;INITIALIZE AC TO ALL ONES + 12069 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12070 IFG &777777,< + 12071 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12072 IFE &777777,< + 12073 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12074 IFE &777777,< + 12075 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12076 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12077 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12078 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12079 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12080 > + 12081 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12082 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12083 ;TEST MQ SHIFT LOGIC GATES + 12084 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12085 ;IS TESTED. + 12086 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12087 ;OTHER BIT IS A ZERO AFTER ROTATING + 12088 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12089 + 12090 005701 SN=SN+1 + 12091 + 12092 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12093 777777 377777 IFE, + 12094 677777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12095 037213 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12096 037214 525 07 0 00 377777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12097 IFG &777777,< + 12098 037215 525 05 0 00 677777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12099 IFE &777777,< + 12100 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12101 IFE &777777,< + 12102 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12103 037216 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12104 037217 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0256 + + 12105 037220 004 07 0 00 005701 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12106 037221 321 10 0 00 037213 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12107 + 12108 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12109 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12110 ;TEST MQ SHIFT LOGIC GATES + 12111 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12112 ;IS TESTED. + 12113 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12114 ;OTHER BIT IS A ZERO AFTER ROTATING + 12115 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12116 + 12117 005702 SN=SN+1 + 12118 + 12119 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12120 IFE, + 12121 737777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12122 037222 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12123 037223 525 07 0 00 577777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12124 IFG &777777,< + 12125 037224 525 05 0 00 737777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12126 IFE &777777,< + 12127 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12128 IFE &777777,< + 12129 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12130 037225 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12131 037226 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12132 037227 004 07 0 00 005702 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12133 037230 321 10 0 00 037222 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12134 + 12135 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12136 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12137 ;TEST MQ SHIFT LOGIC GATES + 12138 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12139 ;IS TESTED. + 12140 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12141 ;OTHER BIT IS A ZERO AFTER ROTATING + 12142 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12143 + 12144 005703 SN=SN+1 + 12145 + 12146 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12147 IFE, + 12148 757777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12149 037231 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12150 037232 525 07 0 00 677777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12151 IFG &777777,< + 12152 037233 525 05 0 00 757777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12153 IFE &777777,< + 12154 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12155 IFE &777777,< + 12156 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12157 037234 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12158 037235 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12159 037236 004 07 0 00 005703 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0257 + + 12160 037237 321 10 0 00 037231 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12161 + 12162 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12163 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12164 ;TEST MQ SHIFT LOGIC GATES + 12165 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12166 ;IS TESTED. + 12167 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12168 ;OTHER BIT IS A ZERO AFTER ROTATING + 12169 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12170 + 12171 005704 SN=SN+1 + 12172 + 12173 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12174 IFE, + 12175 767777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12176 037240 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12177 037241 525 07 0 00 737777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12178 IFG &777777,< + 12179 037242 525 05 0 00 767777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12180 IFE &777777,< + 12181 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12182 IFE &777777,< + 12183 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12184 037243 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12185 037244 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12186 037245 004 07 0 00 005704 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12187 037246 321 10 0 00 037240 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12188 + 12189 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12190 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12191 ;TEST MQ SHIFT LOGIC GATES + 12192 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12193 ;IS TESTED. + 12194 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12195 ;OTHER BIT IS A ZERO AFTER ROTATING + 12196 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12197 + 12198 005705 SN=SN+1 + 12199 + 12200 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12201 IFE, + 12202 773777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12203 037247 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12204 037250 525 07 0 00 757777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12205 IFG &777777,< + 12206 037251 525 05 0 00 773777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12207 IFE &777777,< + 12208 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12209 IFE &777777,< + 12210 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12211 037252 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12212 037253 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12213 037254 004 07 0 00 005705 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12214 037255 321 10 0 00 037247 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0258 + + 12215 + 12216 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12217 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12218 ;TEST MQ SHIFT LOGIC GATES + 12219 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12220 ;IS TESTED. + 12221 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12222 ;OTHER BIT IS A ZERO AFTER ROTATING + 12223 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12224 + 12225 005706 SN=SN+1 + 12226 + 12227 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12228 IFE, + 12229 775777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12230 037256 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12231 037257 525 07 0 00 767777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12232 IFG &777777,< + 12233 037260 525 05 0 00 775777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12234 IFE &777777,< + 12235 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12236 IFE &777777,< + 12237 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12238 037261 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12239 037262 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12240 037263 004 07 0 00 005706 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12241 037264 321 10 0 00 037256 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12242 + 12243 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12244 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12245 ;TEST MQ SHIFT LOGIC GATES + 12246 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12247 ;IS TESTED. + 12248 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12249 ;OTHER BIT IS A ZERO AFTER ROTATING + 12250 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12251 + 12252 005707 SN=SN+1 + 12253 + 12254 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12255 IFE, + 12256 776777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12257 037265 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12258 037266 525 07 0 00 773777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12259 IFG &777777,< + 12260 037267 525 05 0 00 776777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12261 IFE &777777,< + 12262 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12263 IFE &777777,< + 12264 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12265 037270 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12266 037271 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12267 037272 004 07 0 00 005707 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12268 037273 321 10 0 00 037265 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12269 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-4 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0259 + + 12270 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12271 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12272 ;TEST MQ SHIFT LOGIC GATES + 12273 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12274 ;IS TESTED. + 12275 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12276 ;OTHER BIT IS A ZERO AFTER ROTATING + 12277 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12278 + 12279 005710 SN=SN+1 + 12280 + 12281 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12282 IFE, + 12283 777377 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12284 037274 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12285 037275 525 07 0 00 775777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12286 IFG &777777,< + 12287 037276 525 05 0 00 777377 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12288 IFE &777777,< + 12289 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12290 IFE &777777,< + 12291 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12292 037277 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12293 037300 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12294 037301 004 07 0 00 005710 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12295 037302 321 10 0 00 037274 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12296 + 12297 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12298 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12299 ;TEST MQ SHIFT LOGIC GATES + 12300 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12301 ;IS TESTED. + 12302 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12303 ;OTHER BIT IS A ZERO AFTER ROTATING + 12304 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12305 + 12306 005711 SN=SN+1 + 12307 + 12308 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12309 IFE, + 12310 777577 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12311 037303 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12312 037304 525 07 0 00 776777 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12313 IFG &777777,< + 12314 037305 525 05 0 00 777577 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12315 IFE &777777,< + 12316 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12317 IFE &777777,< + 12318 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12319 037306 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12320 037307 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12321 037310 004 07 0 00 005711 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12322 037311 321 10 0 00 037303 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12323 + 12324 ;TEST ROTC RIGHT TWO BIT POSITIONS +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-5 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0260 + + 12325 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12326 ;TEST MQ SHIFT LOGIC GATES + 12327 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12328 ;IS TESTED. + 12329 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12330 ;OTHER BIT IS A ZERO AFTER ROTATING + 12331 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12332 + 12333 005712 SN=SN+1 + 12334 + 12335 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12336 IFE, + 12337 777677 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12338 037312 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12339 037313 525 07 0 00 777377 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12340 IFG &777777,< + 12341 037314 525 05 0 00 777677 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12342 IFE &777777,< + 12343 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12344 IFE &777777,< + 12345 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12346 037315 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12347 037316 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12348 037317 004 07 0 00 005712 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12349 037320 321 10 0 00 037312 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12350 + 12351 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12352 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12353 ;TEST MQ SHIFT LOGIC GATES + 12354 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12355 ;IS TESTED. + 12356 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12357 ;OTHER BIT IS A ZERO AFTER ROTATING + 12358 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12359 + 12360 005713 SN=SN+1 + 12361 + 12362 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12363 IFE, + 12364 777737 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12365 037321 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12366 037322 525 07 0 00 777577 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12367 IFG &777777,< + 12368 037323 525 05 0 00 777737 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12369 IFE &777777,< + 12370 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12371 IFE &777777,< + 12372 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12373 037324 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12374 037325 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12375 037326 004 07 0 00 005713 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12376 037327 321 10 0 00 037321 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12377 + 12378 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12379 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-6 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0261 + + 12380 ;TEST MQ SHIFT LOGIC GATES + 12381 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12382 ;IS TESTED. + 12383 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12384 ;OTHER BIT IS A ZERO AFTER ROTATING + 12385 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12386 + 12387 005714 SN=SN+1 + 12388 + 12389 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12390 IFE, + 12391 777757 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12392 037330 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12393 037331 525 07 0 00 777677 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12394 IFG &777777,< + 12395 037332 525 05 0 00 777757 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12396 IFE &777777,< + 12397 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12398 IFE &777777,< + 12399 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12400 037333 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12401 037334 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12402 037335 004 07 0 00 005714 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12403 037336 321 10 0 00 037330 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12404 + 12405 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12406 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12407 ;TEST MQ SHIFT LOGIC GATES + 12408 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12409 ;IS TESTED. + 12410 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12411 ;OTHER BIT IS A ZERO AFTER ROTATING + 12412 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12413 + 12414 005715 SN=SN+1 + 12415 + 12416 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12417 IFE, + 12418 777767 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12419 037337 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12420 037340 525 07 0 00 777737 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12421 IFG &777777,< + 12422 037341 525 05 0 00 777767 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12423 IFE &777777,< + 12424 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12425 IFE &777777,< + 12426 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12427 037342 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12428 037343 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12429 037344 004 07 0 00 005715 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12430 037345 321 10 0 00 037337 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12431 + 12432 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12433 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12434 ;TEST MQ SHIFT LOGIC GATES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-7 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0262 + + 12435 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12436 ;IS TESTED. + 12437 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12438 ;OTHER BIT IS A ZERO AFTER ROTATING + 12439 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12440 + 12441 005716 SN=SN+1 + 12442 + 12443 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12444 IFE, + 12445 777773 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12446 037346 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12447 037347 525 07 0 00 777757 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12448 IFG &777777,< + 12449 037350 525 05 0 00 777773 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12450 IFE &777777,< + 12451 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12452 IFE &777777,< + 12453 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12454 037351 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12455 037352 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12456 037353 004 07 0 00 005716 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12457 037354 321 10 0 00 037346 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12458 + 12459 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12460 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12461 ;TEST MQ SHIFT LOGIC GATES + 12462 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12463 ;IS TESTED. + 12464 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12465 ;OTHER BIT IS A ZERO AFTER ROTATING + 12466 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12467 + 12468 005717 SN=SN+1 + 12469 + 12470 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12471 IFE, + 12472 777775 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12473 037355 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12474 037356 525 07 0 00 777767 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12475 IFG &777777,< + 12476 037357 525 05 0 00 777775 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12477 IFE &777777,< + 12478 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12479 IFE &777777,< + 12480 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12481 037360 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12482 037361 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12483 037362 004 07 0 00 005717 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12484 037363 321 10 0 00 037355 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12485 + 12486 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12487 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12488 ;TEST MQ SHIFT LOGIC GATES + 12489 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-8 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0263 + + 12490 ;IS TESTED. + 12491 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12492 ;OTHER BIT IS A ZERO AFTER ROTATING + 12493 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12494 + 12495 005720 SN=SN+1 + 12496 + 12497 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12498 IFE, + 12499 777776 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12500 037364 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12501 037365 525 07 0 00 777773 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12502 IFG &777777,< + 12503 037366 525 05 0 00 777776 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12504 IFE &777777,< + 12505 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12506 IFE &777777,< + 12507 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12508 037367 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12509 037370 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12510 037371 004 07 0 00 005720 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12511 037372 321 10 0 00 037364 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12512 + 12513 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12514 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12515 ;TEST MQ SHIFT LOGIC GATES + 12516 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12517 ;IS TESTED. + 12518 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12519 ;OTHER BIT IS A ZERO AFTER ROTATING + 12520 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12521 + 12522 005721 SN=SN+1 + 12523 + 12524 777777 777775 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12525 IFE, + 12526 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12527 037373 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12528 037374 525 07 0 00 777775 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12529 IFG &777777,< + 12530 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12531 IFE &777777,< + 12532 037375 561 05 0 00 377777 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12533 IFE &777777,< + 12534 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12535 037376 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12536 037377 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12537 037400 004 07 0 00 005721 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12538 037401 321 10 0 00 037373 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12539 + 12540 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12541 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12542 ;TEST MQ SHIFT LOGIC GATES + 12543 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12544 ;IS TESTED. +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-9 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0264 + + 12545 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12546 ;OTHER BIT IS A ZERO AFTER ROTATING + 12547 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12548 + 12549 005722 SN=SN+1 + 12550 + 12551 777777 777776 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12552 IFE, + 12553 777777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12554 037402 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12555 037403 525 07 0 00 777776 HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + 12556 IFG &777777,< + 12557 037404 525 05 0 00 777777 HRLOI AC-1,YY ;SETUP FOR COMPARISON> + 12558 IFE &777777,< + 12559 HRROI AC-1,377777 ;SETUP FOR COMPARISON> + 12560 IFE &777777,< + 12561 037405 561 05 0 00 577777 HRROI AC-1,577777 ;SETUP FOR COMPARISON> + 12562 037406 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12563 037407 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12564 037410 004 07 0 00 005722 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12565 037411 321 10 0 00 037403 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12566 + 12567 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-10 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0265 + + 12568 000001 ZZ=1 + 12569 + 12570 ;TEST AC+1 RIGHT HALF< + 12571 REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS + 12572 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12573 ;TEST MQ SHIFT LOGIC GATES + 12574 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12575 ;IS TESTED. + 12576 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12577 ;OTHER BIT IS A ZERO AFTER ROTATING + 12578 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12579 + 12580 SN=SN+1 + 12581 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12582 IFE , + 12583 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12584 SETOM AC ;INITIALIZE AC TO ALL ONES + 12585 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12586 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12587 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12588 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12589 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12590 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12591 > + 12592 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12593 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12594 ;TEST MQ SHIFT LOGIC GATES + 12595 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12596 ;IS TESTED. + 12597 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12598 ;OTHER BIT IS A ZERO AFTER ROTATING + 12599 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12600 + 12601 005723 SN=SN+1 + 12602 000000 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12603 777777 377777 IFE , + 12604 677777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12605 037412 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12606 037413 561 07 0 00 377777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12607 037414 561 05 0 00 677777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12608 037415 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12609 037416 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12610 037417 004 07 0 00 005723 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12611 037420 321 10 0 00 037412 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12612 + 12613 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12614 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12615 ;TEST MQ SHIFT LOGIC GATES + 12616 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12617 ;IS TESTED. + 12618 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12619 ;OTHER BIT IS A ZERO AFTER ROTATING + 12620 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12621 + 12622 005724 SN=SN+1 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-11 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0266 + + 12623 777777 577777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12624 IFE , + 12625 737777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12626 037421 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12627 037422 561 07 0 00 577777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12628 037423 561 05 0 00 737777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12629 037424 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12630 037425 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12631 037426 004 07 0 00 005724 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12632 037427 321 10 0 00 037421 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12633 + 12634 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12635 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12636 ;TEST MQ SHIFT LOGIC GATES + 12637 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12638 ;IS TESTED. + 12639 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12640 ;OTHER BIT IS A ZERO AFTER ROTATING + 12641 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12642 + 12643 005725 SN=SN+1 + 12644 777777 677777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12645 IFE , + 12646 757777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12647 037430 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12648 037431 561 07 0 00 677777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12649 037432 561 05 0 00 757777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12650 037433 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12651 037434 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12652 037435 004 07 0 00 005725 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12653 037436 321 10 0 00 037430 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12654 + 12655 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12656 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12657 ;TEST MQ SHIFT LOGIC GATES + 12658 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12659 ;IS TESTED. + 12660 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12661 ;OTHER BIT IS A ZERO AFTER ROTATING + 12662 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12663 + 12664 005726 SN=SN+1 + 12665 777777 737777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12666 IFE , + 12667 767777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12668 037437 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12669 037440 561 07 0 00 737777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12670 037441 561 05 0 00 767777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12671 037442 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12672 037443 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12673 037444 004 07 0 00 005726 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12674 037445 321 10 0 00 037437 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12675 + 12676 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12677 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-12 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0267 + + 12678 ;TEST MQ SHIFT LOGIC GATES + 12679 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12680 ;IS TESTED. + 12681 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12682 ;OTHER BIT IS A ZERO AFTER ROTATING + 12683 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12684 + 12685 005727 SN=SN+1 + 12686 777777 757777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12687 IFE , + 12688 773777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12689 037446 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12690 037447 561 07 0 00 757777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12691 037450 561 05 0 00 773777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12692 037451 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12693 037452 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12694 037453 004 07 0 00 005727 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12695 037454 321 10 0 00 037446 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12696 + 12697 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12698 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12699 ;TEST MQ SHIFT LOGIC GATES + 12700 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12701 ;IS TESTED. + 12702 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12703 ;OTHER BIT IS A ZERO AFTER ROTATING + 12704 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12705 + 12706 005730 SN=SN+1 + 12707 777777 767777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12708 IFE , + 12709 775777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12710 037455 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12711 037456 561 07 0 00 767777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12712 037457 561 05 0 00 775777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12713 037460 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12714 037461 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12715 037462 004 07 0 00 005730 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12716 037463 321 10 0 00 037455 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12717 + 12718 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12719 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12720 ;TEST MQ SHIFT LOGIC GATES + 12721 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12722 ;IS TESTED. + 12723 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12724 ;OTHER BIT IS A ZERO AFTER ROTATING + 12725 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12726 + 12727 005731 SN=SN+1 + 12728 777777 773777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12729 IFE , + 12730 776777 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12731 037464 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12732 037465 561 07 0 00 773777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-13 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0268 + + 12733 037466 561 05 0 00 776777 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12734 037467 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12735 037470 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12736 037471 004 07 0 00 005731 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12737 037472 321 10 0 00 037464 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12738 + 12739 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12740 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12741 ;TEST MQ SHIFT LOGIC GATES + 12742 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12743 ;IS TESTED. + 12744 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12745 ;OTHER BIT IS A ZERO AFTER ROTATING + 12746 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12747 + 12748 005732 SN=SN+1 + 12749 777777 775777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12750 IFE , + 12751 777377 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12752 037473 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12753 037474 561 07 0 00 775777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12754 037475 561 05 0 00 777377 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12755 037476 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12756 037477 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12757 037500 004 07 0 00 005732 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12758 037501 321 10 0 00 037473 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12759 + 12760 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12761 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12762 ;TEST MQ SHIFT LOGIC GATES + 12763 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12764 ;IS TESTED. + 12765 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12766 ;OTHER BIT IS A ZERO AFTER ROTATING + 12767 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12768 + 12769 005733 SN=SN+1 + 12770 777777 776777 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12771 IFE , + 12772 777577 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12773 037502 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12774 037503 561 07 0 00 776777 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12775 037504 561 05 0 00 777577 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12776 037505 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12777 037506 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12778 037507 004 07 0 00 005733 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12779 037510 321 10 0 00 037502 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12780 + 12781 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12782 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12783 ;TEST MQ SHIFT LOGIC GATES + 12784 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12785 ;IS TESTED. + 12786 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12787 ;OTHER BIT IS A ZERO AFTER ROTATING +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-14 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0269 + + 12788 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12789 + 12790 005734 SN=SN+1 + 12791 777777 777377 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12792 IFE , + 12793 777677 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12794 037511 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12795 037512 561 07 0 00 777377 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12796 037513 561 05 0 00 777677 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12797 037514 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12798 037515 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12799 037516 004 07 0 00 005734 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12800 037517 321 10 0 00 037511 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12801 + 12802 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12803 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12804 ;TEST MQ SHIFT LOGIC GATES + 12805 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12806 ;IS TESTED. + 12807 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12808 ;OTHER BIT IS A ZERO AFTER ROTATING + 12809 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12810 + 12811 005735 SN=SN+1 + 12812 777777 777577 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12813 IFE , + 12814 777737 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12815 037520 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12816 037521 561 07 0 00 777577 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12817 037522 561 05 0 00 777737 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12818 037523 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12819 037524 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12820 037525 004 07 0 00 005735 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12821 037526 321 10 0 00 037520 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12822 + 12823 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12824 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12825 ;TEST MQ SHIFT LOGIC GATES + 12826 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12827 ;IS TESTED. + 12828 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12829 ;OTHER BIT IS A ZERO AFTER ROTATING + 12830 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12831 + 12832 005736 SN=SN+1 + 12833 777777 777677 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12834 IFE , + 12835 777757 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12836 037527 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12837 037530 561 07 0 00 777677 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12838 037531 561 05 0 00 777757 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12839 037532 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12840 037533 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12841 037534 004 07 0 00 005736 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12842 037535 321 10 0 00 037527 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-15 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0270 + + 12843 + 12844 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12845 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12846 ;TEST MQ SHIFT LOGIC GATES + 12847 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12848 ;IS TESTED. + 12849 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12850 ;OTHER BIT IS A ZERO AFTER ROTATING + 12851 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12852 + 12853 005737 SN=SN+1 + 12854 777777 777737 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12855 IFE , + 12856 777767 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12857 037536 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12858 037537 561 07 0 00 777737 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12859 037540 561 05 0 00 777767 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12860 037541 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12861 037542 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12862 037543 004 07 0 00 005737 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12863 037544 321 10 0 00 037536 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12864 + 12865 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12866 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12867 ;TEST MQ SHIFT LOGIC GATES + 12868 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12869 ;IS TESTED. + 12870 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12871 ;OTHER BIT IS A ZERO AFTER ROTATING + 12872 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12873 + 12874 005740 SN=SN+1 + 12875 777777 777757 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12876 IFE , + 12877 777773 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12878 037545 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12879 037546 561 07 0 00 777757 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12880 037547 561 05 0 00 777773 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12881 037550 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12882 037551 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12883 037552 004 07 0 00 005740 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12884 037553 321 10 0 00 037545 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12885 + 12886 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12887 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12888 ;TEST MQ SHIFT LOGIC GATES + 12889 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12890 ;IS TESTED. + 12891 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12892 ;OTHER BIT IS A ZERO AFTER ROTATING + 12893 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12894 + 12895 005741 SN=SN+1 + 12896 777777 777767 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12897 IFE , +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 27-16 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES SEQ 0271 + + 12898 777775 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12899 037554 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12900 037555 561 07 0 00 777767 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12901 037556 561 05 0 00 777775 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12902 037557 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12903 037560 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12904 037561 004 07 0 00 005741 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12905 037562 321 10 0 00 037554 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12906 + 12907 ;TEST ROTC RIGHT TWO BIT POSITIONS + 12908 ;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ + 12909 ;TEST MQ SHIFT LOGIC GATES + 12910 ;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 + 12911 ;IS TESTED. + 12912 ;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY + 12913 ;OTHER BIT IS A ZERO AFTER ROTATING + 12914 ;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + 12915 + 12916 005742 SN=SN+1 + 12917 777777 777773 ZZ=/2 ;SELECTED BIT BEFORE ROTATION + 12918 IFE , + 12919 777776 YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + 12920 037563 476 00 0 00 000006 SETOM AC ;INITIALIZE AC TO ALL ONES + 12921 037564 561 07 0 00 777773 HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + 12922 037565 561 05 0 00 777776 HRROI AC-1,YY ;SETUP FOR COMPARISON + 12923 037566 245 06 0 00 777776 ROTC AC,-2 ;*ROTATE RIGHT TWO + 12924 037567 312 07 0 00 000005 CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + 12925 037570 004 07 0 00 005742 ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + 12926 037571 321 10 0 00 037563 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 12927 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 28 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0272 + + 12928 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) + 12929 + 12930 ;END CONNECTIONS-ROT + 12931 ;TEST AR END BIT INPUT GATES + 12932 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 12933 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 12934 ;AC IS ROTATED LEFT/RIGHT + 12935 ;AND END BITS TESTED + 12936 + 12937 ;SHIFT CONNECTIONS TEST + 12938 ;TEST AR35 SHLT INP-ONE'S - ROT AC,1 + 12939 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 12940 SR1 (60,400000,0,0,1,ROT,1)^ + 12941 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] 1 BIT + 12942 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 12943 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 12944 + 12945 037572 200 06 0 00 041624 E6000: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 12946 037573 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 12947 037574 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 12948 037575 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 12949 037576 003 06 0 00 006001 ER3 AC,6001 ;RESULT IN AC IS INCORRECT + 12950 037577 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 12951 037600 004 07 0 00 006001 ER4 AC+1,6001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 12952 037601 321 10 0 00 037572 JUMPL AC+2,E6000 ;LOOP ON ERROR SWITCH^ + 12953 + 12954 ;SHIFT CONNECTIONS TEST + 12955 ;TEST AR35 SHLT INP-ZERO'S - ROT AC,1 + 12956 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 12957 SR1 (61,377777,-1,-1,-2,ROT,1)^ + 12958 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] 1 BIT + 12959 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 12960 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 12961 + 12962 037602 200 06 0 00 041626 E6100: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 12963 037603 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 12964 037604 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 12965 037605 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 12966 037606 003 06 0 00 006101 ER3 AC,6101 ;RESULT IN AC IS INCORRECT + 12967 037607 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 12968 037610 004 07 0 00 006101 ER4 AC+1,6101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 12969 037611 321 10 0 00 037602 JUMPL AC+2,E6100 ;LOOP ON ERROR SWITCH^ + 12970 + 12971 ;SHIFT CONNECTIONS TEST + 12972 ;TEST AR34 SHLT INP-ONE'S - ROT AC,1 + 12973 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 12974 SR1 (62,0,1,0,2,ROT,1)^ + 12975 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,1] 1 BIT + 12976 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 12977 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 12978 + 12979 037612 200 06 0 00 041625 E6200: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 12980 037613 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 12981 037614 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 12982 037615 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 28-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0273 + + 12983 037616 003 06 0 00 006201 ER3 AC,6201 ;RESULT IN AC IS INCORRECT + 12984 037617 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 12985 037620 004 07 0 00 006201 ER4 AC+1,6201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 12986 037621 321 10 0 00 037612 JUMPL AC+2,E6200 ;LOOP ON ERROR SWITCH^ + 12987 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 28-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0274 + + 12988 ;SHIFT CONNECTIONS TEST + 12989 ;TEST AR34 SHLT INP-ZERO'S - ROT AC,1 + 12990 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 12991 SR1 (63,-1,-2,-1,-3,ROT,1)^ + 12992 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-2] 1 BIT + 12993 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-3] + 12994 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 12995 + 12996 037622 200 06 0 00 041627 E6300: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 12997 037623 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 12998 037624 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 12999 037625 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 13000 037626 003 06 0 00 006301 ER3 AC,6301 ;RESULT IN AC IS INCORRECT + 13001 037627 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13002 037630 004 07 0 00 006301 ER4 AC+1,6301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13003 037631 321 10 0 00 037622 JUMPL AC+2,E6300 ;LOOP ON ERROR SWITCH^ + 13004 + 13005 ;SHIFT CONNECTIONS TEST + 13006 ;TEST AR1 SHLT INP-ONE'S - ROT AC,1 + 13007 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13008 SR1 (64,100000,0,200000,0,ROT,1)^ + 13009 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 100000,0] 1 BIT + 13010 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13011 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13012 + 13013 037632 200 06 0 00 041631 E6400: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 13014 037633 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13015 037634 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13016 037635 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13017 037636 003 06 0 00 006401 ER3 AC,6401 ;RESULT IN AC IS INCORRECT + 13018 037637 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13019 037640 004 07 0 00 006401 ER4 AC+1,6401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13020 037641 321 10 0 00 037632 JUMPL AC+2,E6400 ;LOOP ON ERROR SWITCH^ + 13021 + 13022 ;SHIFT CONNECTIONS TEST + 13023 ;TEST AR1 SHLT INP-ZERO'S - ROT AC,1 + 13024 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13025 SR1 (65,677777,-1,577777,-1,ROT,1)^ + 13026 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 677777,-1] 1 BIT + 13027 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 577777,-1] + 13028 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13029 + 13030 037642 200 06 0 00 041633 E6500: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 13031 037643 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13032 037644 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13033 037645 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 13034 037646 003 06 0 00 006501 ER3 AC,6501 ;RESULT IN AC IS INCORRECT + 13035 037647 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13036 037650 004 07 0 00 006501 ER4 AC+1,6501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13037 037651 321 10 0 00 037642 JUMPL AC+2,E6500 ;LOOP ON ERROR SWITCH^ + 13038 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 28-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0275 + + 13039 ;SHIFT CONNECTIONS TEST + 13040 ;TEST AR0 SHLT INP-ONE'S - ROT AC,1 + 13041 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13042 SR1 (66,200000,0,400000,0,ROT,1)^ + 13043 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 200000,0] 1 BIT + 13044 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 400000,0] + 13045 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13046 + 13047 037652 200 06 0 00 041632 E6600: MOVE AC,[XWD 200000,0] ;INITIALIZE AC + 13048 037653 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13049 037654 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13050 037655 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 13051 037656 003 06 0 00 006601 ER3 AC,6601 ;RESULT IN AC IS INCORRECT + 13052 037657 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13053 037660 004 07 0 00 006601 ER4 AC+1,6601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13054 037661 321 10 0 00 037652 JUMPL AC+2,E6600 ;LOOP ON ERROR SWITCH^ + 13055 + 13056 ;SHIFT CONNECTIONS TEST + 13057 ;TEST AR0 SHLT INP-ZERO'S - ROT AC,1 + 13058 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13059 SR1 (67,577777,-1,377777,-1,ROT,1)^ + 13060 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 577777,-1] 1 BIT + 13061 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-1] + 13062 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13063 + 13064 037662 200 06 0 00 041634 E6700: MOVE AC,[XWD 577777,-1] ;INITIALIZE AC + 13065 037663 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13066 037664 241 06 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13067 037665 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 13068 037666 003 06 0 00 006701 ER3 AC,6701 ;RESULT IN AC IS INCORRECT + 13069 037667 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13070 037670 004 07 0 00 006701 ER4 AC+1,6701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13071 037671 321 10 0 00 037662 JUMPL AC+2,E6700 ;LOOP ON ERROR SWITCH^ + 13072 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 29 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0276 + + 13073 ;SHIFT CONNECTIONS TEST + 13074 ;TEST AR0 SHRT INP-ONE'S - ROT AC,-1 + 13075 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13076 SR1 (70,0,1,400000,0,ROT,-1)^ + 13077 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,1] -1 BIT + 13078 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 400000,0] + 13079 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13080 + 13081 037672 200 06 0 00 041625 E7000: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 13082 037673 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13083 037674 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13084 037675 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 13085 037676 003 06 0 00 007001 ER3 AC,7001 ;RESULT IN AC IS INCORRECT + 13086 037677 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13087 037700 004 07 0 00 007001 ER4 AC+1,7001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13088 037701 321 10 0 00 037672 JUMPL AC+2,E7000 ;LOOP ON ERROR SWITCH^ + 13089 + 13090 ;SHIFT CONNECTIONS TEST + 13091 ;TEST AR0 SHRT INP-ZERO'S - ROT AC,-1 + 13092 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13093 SR1 (71,-1,-2,377777,-1,ROT,-1)^ + 13094 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-2] -1 BIT + 13095 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-1] + 13096 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13097 + 13098 037702 200 06 0 00 041627 E7100: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 13099 037703 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13100 037704 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13101 037705 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 13102 037706 003 06 0 00 007101 ER3 AC,7101 ;RESULT IN AC IS INCORRECT + 13103 037707 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13104 037710 004 07 0 00 007101 ER4 AC+1,7101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13105 037711 321 10 0 00 037702 JUMPL AC+2,E7100 ;LOOP ON ERROR SWITCH^ + 13106 + 13107 ;SHIFT CONNECTIONS TEST + 13108 ;TEST AR1 SHRT INP-ONE'S - ROT AC,-1 + 13109 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13110 SR1 (72,400000,0,200000,0,ROT,-1)^ + 13111 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -1 BIT + 13112 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13113 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13114 + 13115 037712 200 06 0 00 041624 E7200: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13116 037713 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13117 037714 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13118 037715 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13119 037716 003 06 0 00 007201 ER3 AC,7201 ;RESULT IN AC IS INCORRECT + 13120 037717 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13121 037720 004 07 0 00 007201 ER4 AC+1,7201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13122 037721 321 10 0 00 037712 JUMPL AC+2,E7200 ;LOOP ON ERROR SWITCH^ + 13123 + 13124 ;SHIFT CONNECTIONS TEST + 13125 ;TEST AR1 SHRT INP-ZERO'S - ROT AC,-1 + 13126 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13127 SR1 (73,377777,-1,577777,-1,ROT,-1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 29-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0277 + + 13128 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -1 BIT + 13129 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 577777,-1] + 13130 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13131 + 13132 037722 200 06 0 00 041626 E7300: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13133 037723 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13134 037724 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13135 037725 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 13136 037726 003 06 0 00 007301 ER3 AC,7301 ;RESULT IN AC IS INCORRECT + 13137 037727 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13138 037730 004 07 0 00 007301 ER4 AC+1,7301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13139 037731 321 10 0 00 037722 JUMPL AC+2,E7300 ;LOOP ON ERROR SWITCH^ + 13140 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 29-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0278 + + 13141 ;SHIFT CONNECTIONS TEST + 13142 ;TEST AR34 SHRT INP-ONE'S - ROT AC,-1 + 13143 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 13144 SR1 (74,0,4,0,2,ROT,-1)^ + 13145 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -1 BIT + 13146 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13147 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13148 + 13149 037732 200 06 0 00 041622 E7400: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 13150 037733 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13151 037734 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13152 037735 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13153 037736 003 06 0 00 007401 ER3 AC,7401 ;RESULT IN AC IS INCORRECT + 13154 037737 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13155 037740 004 07 0 00 007401 ER4 AC+1,7401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13156 037741 321 10 0 00 037732 JUMPL AC+2,E7400 ;LOOP ON ERROR SWITCH^ + 13157 + 13158 ;SHIFT CONNECTIONS TEST + 13159 ;TEST AR34 SHRT INP-ZERO'S - ROT AC,-1 + 13160 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 13161 SR1 (75,-1,-5,-1,-3,ROT,-1)^ + 13162 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -1 BIT + 13163 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-3] + 13164 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13165 + 13166 037742 200 06 0 00 041635 E7500: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 13167 037743 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13168 037744 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13169 037745 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 13170 037746 003 06 0 00 007501 ER3 AC,7501 ;RESULT IN AC IS INCORRECT + 13171 037747 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13172 037750 004 07 0 00 007501 ER4 AC+1,7501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13173 037751 321 10 0 00 037742 JUMPL AC+2,E7500 ;LOOP ON ERROR SWITCH^ + 13174 + 13175 ;SHIFT CONNECTIONS TEST + 13176 ;TEST AR35 SHRT INP-ONE'S - ROT AC,-1 + 13177 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 13178 SR1 (76,0,2,0,1,ROT,-1)^ + 13179 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,2] -1 BIT + 13180 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 13181 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13182 + 13183 037752 200 06 0 00 041623 E7600: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 13184 037753 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13185 037754 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13186 037755 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 13187 037756 003 06 0 00 007601 ER3 AC,7601 ;RESULT IN AC IS INCORRECT + 13188 037757 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13189 037760 004 07 0 00 007601 ER4 AC+1,7601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13190 037761 321 10 0 00 037752 JUMPL AC+2,E7600 ;LOOP ON ERROR SWITCH^ + 13191 + 13192 ;SHIFT CONNECTIONS TEST + 13193 ;TEST AR35 SHRT INP-ZERO'S - ROT AC,-1 + 13194 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 13195 SR1 (77,-1,-3,-1,-2,ROT,-1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 29-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0279 + + 13196 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-3] -1 BIT + 13197 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 13198 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13199 + 13200 037762 200 06 0 00 041630 E7700: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 13201 037763 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13202 037764 241 06 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13203 037765 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 13204 037766 003 06 0 00 007701 ER3 AC,7701 ;RESULT IN AC IS INCORRECT + 13205 037767 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13206 037770 004 07 0 00 007701 ER4 AC+1,7701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13207 037771 321 10 0 00 037762 JUMPL AC+2,E7700 ;LOOP ON ERROR SWITCH^ + 13208 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 30 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0280 + + 13209 ;SHIFT CONNECTIONS TEST + 13210 ;TEST AR0 SHRT INP-ONE'S - ROT AC,-2 + 13211 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13212 SR1 (100,0,2,400000,0,ROT,-2)^ + 13213 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,2] -2 BIT + 13214 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 400000,0] + 13215 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13216 + 13217 037772 200 06 0 00 041623 E10000: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 13218 037773 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13219 037774 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13220 037775 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 13221 037776 003 06 0 00 010001 ER3 AC,10001 ;RESULT IN AC IS INCORRECT + 13222 037777 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13223 040000 004 07 0 00 010001 ER4 AC+1,10001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13224 040001 321 10 0 00 037772 JUMPL AC+2,E10000 ;LOOP ON ERROR SWITCH^ + 13225 + 13226 ;SHIFT CONNECTIONS TEST + 13227 ;TEST AR0 SHRT INP-ZERO'S - ROT AC,-2 + 13228 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 13229 SR1 (101,-1,-3,377777,-1,ROT,-2)^ + 13230 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-3] -2 BIT + 13231 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-1] + 13232 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13233 + 13234 040002 200 06 0 00 041630 E10100: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 13235 040003 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13236 040004 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13237 040005 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 13238 040006 003 06 0 00 010101 ER3 AC,10101 ;RESULT IN AC IS INCORRECT + 13239 040007 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13240 040010 004 07 0 00 010101 ER4 AC+1,10101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13241 040011 321 10 0 00 040002 JUMPL AC+2,E10100 ;LOOP ON ERROR SWITCH^ + 13242 + 13243 ;SHIFT CONNECTIONS TEST + 13244 ;TEST AR1 SHRT INP-ONE'S - ROT AC,-2 + 13245 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13246 SR1 (102,0,1,200000,0,ROT,-2)^ + 13247 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,1] -2 BIT + 13248 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13249 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13250 + 13251 040012 200 06 0 00 041625 E10200: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 13252 040013 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13253 040014 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13254 040015 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13255 040016 003 06 0 00 010201 ER3 AC,10201 ;RESULT IN AC IS INCORRECT + 13256 040017 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13257 040020 004 07 0 00 010201 ER4 AC+1,10201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13258 040021 321 10 0 00 040012 JUMPL AC+2,E10200 ;LOOP ON ERROR SWITCH^ + 13259 + 13260 ;SHIFT CONNECTIONS TEST + 13261 ;TEST AR1 SHRT INP-ZERO'S - ROT AC,-2 + 13262 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 13263 SR1 (103,-1,-2,577777,-1,ROT,-2)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 30-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0281 + + 13264 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-2] -2 BIT + 13265 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 577777,-1] + 13266 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13267 + 13268 040022 200 06 0 00 041627 E10300: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 13269 040023 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13270 040024 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13271 040025 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 13272 040026 003 06 0 00 010301 ER3 AC,10301 ;RESULT IN AC IS INCORRECT + 13273 040027 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13274 040030 004 07 0 00 010301 ER4 AC+1,10301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13275 040031 321 10 0 00 040022 JUMPL AC+2,E10300 ;LOOP ON ERROR SWITCH^ + 13276 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 30-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0282 + + 13277 ;SHIFT CONNECTIONS TEST + 13278 ;TEST AR34 SHRT INP-ONE'S - ROT AC,-2 + 13279 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 13280 SR1 (104,0,10,0,2,ROT,-2)^ + 13281 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] -2 BIT + 13282 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13283 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13284 + 13285 040032 200 06 0 00 041617 E10400: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 13286 040033 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13287 040034 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13288 040035 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13289 040036 003 06 0 00 010401 ER3 AC,10401 ;RESULT IN AC IS INCORRECT + 13290 040037 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13291 040040 004 07 0 00 010401 ER4 AC+1,10401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13292 040041 321 10 0 00 040032 JUMPL AC+2,E10400 ;LOOP ON ERROR SWITCH^ + 13293 + 13294 ;SHIFT CONNECTIONS TEST + 13295 ;TEST AR34 SHRT INP-ZERO'S - ROT AC,-2 + 13296 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 13297 SR1 (105,-1,-11,-1,-3,ROT,-2)^ + 13298 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-11] -2 BIT + 13299 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-3] + 13300 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13301 + 13302 040042 200 06 0 00 041636 E10500: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 13303 040043 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13304 040044 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13305 040045 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 13306 040046 003 06 0 00 010501 ER3 AC,10501 ;RESULT IN AC IS INCORRECT + 13307 040047 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13308 040050 004 07 0 00 010501 ER4 AC+1,10501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13309 040051 321 10 0 00 040042 JUMPL AC+2,E10500 ;LOOP ON ERROR SWITCH^ + 13310 + 13311 ;SHIFT CONNECTIONS TEST + 13312 ;TEST AR35 SHRT INP-ONE'S - ROT AC,-2 + 13313 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 13314 SR1 (106,0,4,0,1,ROT,-2)^ + 13315 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -2 BIT + 13316 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 13317 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13318 + 13319 040052 200 06 0 00 041622 E10600: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 13320 040053 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13321 040054 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13322 040055 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 13323 040056 003 06 0 00 010601 ER3 AC,10601 ;RESULT IN AC IS INCORRECT + 13324 040057 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13325 040060 004 07 0 00 010601 ER4 AC+1,10601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13326 040061 321 10 0 00 040052 JUMPL AC+2,E10600 ;LOOP ON ERROR SWITCH^ + 13327 + 13328 ;SHIFT CONNECTIONS TEST + 13329 ;TEST AR35 SHRT INP-ZERO'S - ROT AC,-2 + 13330 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 13331 SR1 (107,-1,-5,-1,-2,ROT,-2)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 30-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) SEQ 0283 + + 13332 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -2 BIT + 13333 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 13334 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13335 + 13336 040062 200 06 0 00 041635 E10700: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 13337 040063 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13338 040064 241 06 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13339 040065 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 13340 040066 003 06 0 00 010701 ER3 AC,10701 ;RESULT IN AC IS INCORRECT + 13341 040067 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13342 040070 004 07 0 00 010701 ER4 AC+1,10701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13343 040071 321 10 0 00 040062 JUMPL AC+2,E10700 ;LOOP ON ERROR SWITCH^ + 13344 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 31 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0284 + + 13345 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) + 13346 + 13347 ;END CONNECTIONS-LSH + 13348 ;TEST AR END BIT INPUT GATES + 13349 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 13350 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 13351 ;AC IS SHIFTED LEFT/RIGHT + 13352 ;AND END BITS TESTED + 13353 + 13354 ;SHIFT CONNECTIONS TEST + 13355 ;TEST AR35 SHLT INP-ZERO'S - LSH AC,1 + 13356 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13357 SR1 (110,-1,-1,-1,-2,LSH,1)^ + 13358 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-1] 1 BIT + 13359 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 13360 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13361 + 13362 040072 200 06 0 00 041616 E11000: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 13363 040073 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13364 040074 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13365 040075 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 13366 040076 003 06 0 00 011001 ER3 AC,11001 ;RESULT IN AC IS INCORRECT + 13367 040077 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13368 040100 004 07 0 00 011001 ER4 AC+1,11001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13369 040101 321 10 0 00 040072 JUMPL AC+2,E11000 ;LOOP ON ERROR SWITCH^ + 13370 + 13371 ;SHIFT CONNECTIONS TEST + 13372 ;TEST AR34 SHLT INP-ONE'S - LSH AC,1 + 13373 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13374 SR1 (111,0,1,0,2,LSH,1)^ + 13375 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,1] 1 BIT + 13376 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13377 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13378 + 13379 040102 200 06 0 00 041625 E11100: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 13380 040103 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13381 040104 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13382 040105 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13383 040106 003 06 0 00 011101 ER3 AC,11101 ;RESULT IN AC IS INCORRECT + 13384 040107 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13385 040110 004 07 0 00 011101 ER4 AC+1,11101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13386 040111 321 10 0 00 040102 JUMPL AC+2,E11100 ;LOOP ON ERROR SWITCH^ + 13387 + 13388 ;SHIFT CONNECTIONS TEST + 13389 ;TEST AR34 SHLT INP-ZERO'S - LSH AC,1 + 13390 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13391 SR1 (112,-1,-2,-1,-4,LSH,1)^ + 13392 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-2] 1 BIT + 13393 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-4] + 13394 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13395 + 13396 040112 200 06 0 00 041627 E11200: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 13397 040113 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13398 040114 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13399 040115 312 06 0 00 041637 CAME AC,[XWD -1,-4] ;IS RESULT IN AC CORRECT? +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 31-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0285 + + 13400 040116 003 06 0 00 011201 ER3 AC,11201 ;RESULT IN AC IS INCORRECT + 13401 040117 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13402 040120 004 07 0 00 011201 ER4 AC+1,11201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13403 040121 321 10 0 00 040112 JUMPL AC+2,E11200 ;LOOP ON ERROR SWITCH^ + 13404 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 31-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0286 + + 13405 ;SHIFT CONNECTIONS TEST + 13406 ;TEST AR1 SHLT INP-ONE'S - LSH AC,1 + 13407 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13408 SR1 (113,100000,0,200000,0,LSH,1)^ + 13409 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 100000,0] 1 BIT + 13410 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13411 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13412 + 13413 040122 200 06 0 00 041631 E11300: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 13414 040123 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13415 040124 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13416 040125 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13417 040126 003 06 0 00 011301 ER3 AC,11301 ;RESULT IN AC IS INCORRECT + 13418 040127 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13419 040130 004 07 0 00 011301 ER4 AC+1,11301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13420 040131 321 10 0 00 040122 JUMPL AC+2,E11300 ;LOOP ON ERROR SWITCH^ + 13421 + 13422 ;SHIFT CONNECTIONS TEST + 13423 ;TEST AR1 SHLT INP-ZERO'S - LSH AC,1 + 13424 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13425 SR1 (114,677777,-1,577777,-2,LSH,1)^ + 13426 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 677777,-1] 1 BIT + 13427 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 577777,-2] + 13428 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13429 + 13430 040132 200 06 0 00 041633 E11400: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 13431 040133 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13432 040134 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13433 040135 312 06 0 00 041640 CAME AC,[XWD 577777,-2] ;IS RESULT IN AC CORRECT? + 13434 040136 003 06 0 00 011401 ER3 AC,11401 ;RESULT IN AC IS INCORRECT + 13435 040137 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13436 040140 004 07 0 00 011401 ER4 AC+1,11401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13437 040141 321 10 0 00 040132 JUMPL AC+2,E11400 ;LOOP ON ERROR SWITCH^ + 13438 + 13439 ;SHIFT CONNECTIONS TEST + 13440 ;TEST AR0 SHLT INP-ONE'S - LSH AC,1 + 13441 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13442 SR1 (115,200000,0,400000,0,LSH,1)^ + 13443 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 200000,0] 1 BIT + 13444 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 400000,0] + 13445 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13446 + 13447 040142 200 06 0 00 041632 E11500: MOVE AC,[XWD 200000,0] ;INITIALIZE AC + 13448 040143 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13449 040144 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13450 040145 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 13451 040146 003 06 0 00 011501 ER3 AC,11501 ;RESULT IN AC IS INCORRECT + 13452 040147 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13453 040150 004 07 0 00 011501 ER4 AC+1,11501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13454 040151 321 10 0 00 040142 JUMPL AC+2,E11500 ;LOOP ON ERROR SWITCH^ + 13455 + 13456 ;SHIFT CONNECTIONS TEST + 13457 ;TEST AR0 SHLT INP-ZERO'S - LSH AC,1 + 13458 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13459 SR1 (116,577777,-1,377777,-2,LSH,1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 31-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0287 + + 13460 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 577777,-1] 1 BIT + 13461 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-2] + 13462 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13463 + 13464 040152 200 06 0 00 041634 E11600: MOVE AC,[XWD 577777,-1] ;INITIALIZE AC + 13465 040153 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13466 040154 242 06 0 00 000001 LSH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13467 040155 312 06 0 00 041641 CAME AC,[XWD 377777,-2] ;IS RESULT IN AC CORRECT? + 13468 040156 003 06 0 00 011601 ER3 AC,11601 ;RESULT IN AC IS INCORRECT + 13469 040157 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13470 040160 004 07 0 00 011601 ER4 AC+1,11601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13471 040161 321 10 0 00 040152 JUMPL AC+2,E11600 ;LOOP ON ERROR SWITCH^ + 13472 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 32 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0288 + + 13473 ;SHIFT CONNECTIONS TEST + 13474 ;TEST AR0 SHRT INP-ZERO'S - LSH AC,-1 + 13475 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13476 SR1 (117,-1,-1,377777,-1,LSH,-1)^ + 13477 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-1] -1 BIT + 13478 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-1] + 13479 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13480 + 13481 040162 200 06 0 00 041616 E11700: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 13482 040163 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13483 040164 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13484 040165 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 13485 040166 003 06 0 00 011701 ER3 AC,11701 ;RESULT IN AC IS INCORRECT + 13486 040167 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13487 040170 004 07 0 00 011701 ER4 AC+1,11701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13488 040171 321 10 0 00 040162 JUMPL AC+2,E11700 ;LOOP ON ERROR SWITCH^ + 13489 + 13490 ;SHIFT CONNECTIONS TEST + 13491 ;TEST AR1 SHRT INP-ONE'S - LSH AC,-1 + 13492 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13493 SR1 (120,400000,0,200000,0,LSH,-1)^ + 13494 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -1 BIT + 13495 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13496 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13497 + 13498 040172 200 06 0 00 041624 E12000: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13499 040173 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13500 040174 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13501 040175 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13502 040176 003 06 0 00 012001 ER3 AC,12001 ;RESULT IN AC IS INCORRECT + 13503 040177 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13504 040200 004 07 0 00 012001 ER4 AC+1,12001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13505 040201 321 10 0 00 040172 JUMPL AC+2,E12000 ;LOOP ON ERROR SWITCH^ + 13506 + 13507 ;SHIFT CONNECTIONS TEST + 13508 ;TEST AR1 SHRT INP-ZERO'S - LSH AC,-1 + 13509 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13510 SR1 (121,377777,-1,177777,-1,LSH,-1)^ + 13511 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -1 BIT + 13512 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-1] + 13513 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13514 + 13515 040202 200 06 0 00 041626 E12100: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13516 040203 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13517 040204 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13518 040205 312 06 0 00 041642 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 13519 040206 003 06 0 00 012101 ER3 AC,12101 ;RESULT IN AC IS INCORRECT + 13520 040207 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13521 040210 004 07 0 00 012101 ER4 AC+1,12101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13522 040211 321 10 0 00 040202 JUMPL AC+2,E12100 ;LOOP ON ERROR SWITCH^ + 13523 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 32-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0289 + + 13524 ;SHIFT CONNECTIONS TEST + 13525 ;TEST AR34 SHRT INP-ONE'S - LSH AC,-1 + 13526 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13527 SR1 (122,0,4,0,2,LSH,-1)^ + 13528 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -1 BIT + 13529 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13530 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13531 + 13532 040212 200 06 0 00 041622 E12200: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 13533 040213 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13534 040214 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13535 040215 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13536 040216 003 06 0 00 012201 ER3 AC,12201 ;RESULT IN AC IS INCORRECT + 13537 040217 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13538 040220 004 07 0 00 012201 ER4 AC+1,12201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13539 040221 321 10 0 00 040212 JUMPL AC+2,E12200 ;LOOP ON ERROR SWITCH^ + 13540 + 13541 ;SHIFT CONNECTIONS TEST + 13542 ;TEST AR34 SHRT INP-ZERO'S - LSH AC,-1 + 13543 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13544 SR1 (123,-1,-5,377777,-3,LSH,-1)^ + 13545 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -1 BIT + 13546 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-3] + 13547 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13548 + 13549 040222 200 06 0 00 041635 E12300: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 13550 040223 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13551 040224 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13552 040225 312 06 0 00 041643 CAME AC,[XWD 377777,-3] ;IS RESULT IN AC CORRECT? + 13553 040226 003 06 0 00 012301 ER3 AC,12301 ;RESULT IN AC IS INCORRECT + 13554 040227 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13555 040230 004 07 0 00 012301 ER4 AC+1,12301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13556 040231 321 10 0 00 040222 JUMPL AC+2,E12300 ;LOOP ON ERROR SWITCH^ + 13557 + 13558 ;SHIFT CONNECTIONS TEST + 13559 ;TEST AR35 SHRT INP-ONE'S - LSH AC,-1 + 13560 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13561 SR1 (124,0,2,0,1,LSH,-1)^ + 13562 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,2] -1 BIT + 13563 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 13564 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13565 + 13566 040232 200 06 0 00 041623 E12400: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 13567 040233 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13568 040234 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13569 040235 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 13570 040236 003 06 0 00 012401 ER3 AC,12401 ;RESULT IN AC IS INCORRECT + 13571 040237 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13572 040240 004 07 0 00 012401 ER4 AC+1,12401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13573 040241 321 10 0 00 040232 JUMPL AC+2,E12400 ;LOOP ON ERROR SWITCH^ + 13574 + 13575 ;SHIFT CONNECTIONS TEST + 13576 ;TEST AR35 SHRT INP-ZERO'S - LSH AC,-1 + 13577 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13578 SR1 (125,-1,-3,377777,-2,LSH,-1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 32-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0290 + + 13579 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-3] -1 BIT + 13580 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-2] + 13581 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13582 + 13583 040242 200 06 0 00 041630 E12500: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 13584 040243 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13585 040244 242 06 0 00 777777 LSH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13586 040245 312 06 0 00 041641 CAME AC,[XWD 377777,-2] ;IS RESULT IN AC CORRECT? + 13587 040246 003 06 0 00 012501 ER3 AC,12501 ;RESULT IN AC IS INCORRECT + 13588 040247 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13589 040250 004 07 0 00 012501 ER4 AC+1,12501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13590 040251 321 10 0 00 040242 JUMPL AC+2,E12500 ;LOOP ON ERROR SWITCH^ + 13591 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 33 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0291 + + 13592 ;SHIFT CONNECTIONS TEST + 13593 ;TEST AR0 SHRT INP-ZERO'S - LSH AC,-2 + 13594 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13595 SR1 (126,-1,-1,177777,-1,LSH,-2)^ + 13596 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-1] -2 BIT + 13597 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-1] + 13598 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13599 + 13600 040252 200 06 0 00 041616 E12600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 13601 040253 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13602 040254 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13603 040255 312 06 0 00 041642 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 13604 040256 003 06 0 00 012601 ER3 AC,12601 ;RESULT IN AC IS INCORRECT + 13605 040257 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13606 040260 004 07 0 00 012601 ER4 AC+1,12601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13607 040261 321 10 0 00 040252 JUMPL AC+2,E12600 ;LOOP ON ERROR SWITCH^ + 13608 + 13609 ;SHIFT CONNECTIONS TEST + 13610 ;TEST AR1 SHRT INP-ZERO'S - LSH AC,-2 + 13611 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13612 SR1 (127,-1,-1,177777,-1,LSH,-2)^ + 13613 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-1] -2 BIT + 13614 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-1] + 13615 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13616 + 13617 040262 200 06 0 00 041616 E12700: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 13618 040263 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13619 040264 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13620 040265 312 06 0 00 041642 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 13621 040266 003 06 0 00 012701 ER3 AC,12701 ;RESULT IN AC IS INCORRECT + 13622 040267 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13623 040270 004 07 0 00 012701 ER4 AC+1,12701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13624 040271 321 10 0 00 040262 JUMPL AC+2,E12700 ;LOOP ON ERROR SWITCH^ + 13625 + 13626 ;SHIFT CONNECTIONS TEST + 13627 ;TEST AR34 SHRT INP-ONE'S - LSH AC,-2 + 13628 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13629 SR1 (130,0,10,0,2,LSH,-2)^ + 13630 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] -2 BIT + 13631 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13632 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13633 + 13634 040272 200 06 0 00 041617 E13000: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 13635 040273 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13636 040274 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13637 040275 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13638 040276 003 06 0 00 013001 ER3 AC,13001 ;RESULT IN AC IS INCORRECT + 13639 040277 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13640 040300 004 07 0 00 013001 ER4 AC+1,13001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13641 040301 321 10 0 00 040272 JUMPL AC+2,E13000 ;LOOP ON ERROR SWITCH^ + 13642 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 33-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) SEQ 0292 + + 13643 ;SHIFT CONNECTIONS TEST + 13644 ;TEST AR34 SHRT INP-ZERO'S - LSH AC,-2 + 13645 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13646 SR1 (131,-1,-11,177777,-3,LSH,-2)^ + 13647 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-11] -2 BIT + 13648 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-3] + 13649 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13650 + 13651 040302 200 06 0 00 041636 E13100: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 13652 040303 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13653 040304 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13654 040305 312 06 0 00 041644 CAME AC,[XWD 177777,-3] ;IS RESULT IN AC CORRECT? + 13655 040306 003 06 0 00 013101 ER3 AC,13101 ;RESULT IN AC IS INCORRECT + 13656 040307 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13657 040310 004 07 0 00 013101 ER4 AC+1,13101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13658 040311 321 10 0 00 040302 JUMPL AC+2,E13100 ;LOOP ON ERROR SWITCH^ + 13659 + 13660 ;SHIFT CONNECTIONS TEST + 13661 ;TEST AR35 SHRT INP-ONE'S - LSH AC,-2 + 13662 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13663 SR1 (132,0,4,0,1,LSH,-2)^ + 13664 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -2 BIT + 13665 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 13666 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13667 + 13668 040312 200 06 0 00 041622 E13200: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 13669 040313 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13670 040314 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13671 040315 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 13672 040316 003 06 0 00 013201 ER3 AC,13201 ;RESULT IN AC IS INCORRECT + 13673 040317 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13674 040320 004 07 0 00 013201 ER4 AC+1,13201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13675 040321 321 10 0 00 040312 JUMPL AC+2,E13200 ;LOOP ON ERROR SWITCH^ + 13676 + 13677 ;SHIFT CONNECTIONS TEST + 13678 ;TEST AR35 SHRT INP-ZERO'S - LSH AC,-2 + 13679 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13680 SR1 (133,-1,-5,177777,-2,LSH,-2)^ + 13681 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -2 BIT + 13682 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-2] + 13683 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13684 + 13685 040322 200 06 0 00 041635 E13300: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 13686 040323 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13687 040324 242 06 0 00 777776 LSH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13688 040325 312 06 0 00 041645 CAME AC,[XWD 177777,-2] ;IS RESULT IN AC CORRECT? + 13689 040326 003 06 0 00 013301 ER3 AC,13301 ;RESULT IN AC IS INCORRECT + 13690 040327 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13691 040330 004 07 0 00 013301 ER4 AC+1,13301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13692 040331 321 10 0 00 040322 JUMPL AC+2,E13300 ;LOOP ON ERROR SWITCH^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 34 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0293 + + 13693 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) + 13694 + 13695 ;END CONNECTIONS-ASH + 13696 ;TEST AR END BIT INPUT GATES + 13697 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 13698 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 13699 ;AC IS SHIFTD LEFT/RIGHT + 13700 ;AND END BITS TESTED + 13701 + 13702 ;SHIFT CONNECTIONS TEST + 13703 ;TEST AR35 SHLT INP-ZERO'S - ASH AC,1 + 13704 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13705 SR1 (134,-1,-1,-1,-2,ASH,1)^ + 13706 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-1] 1 BIT + 13707 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 13708 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13709 + 13710 040332 200 06 0 00 041616 E13400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 13711 040333 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13712 040334 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13713 040335 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 13714 040336 003 06 0 00 013401 ER3 AC,13401 ;RESULT IN AC IS INCORRECT + 13715 040337 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13716 040340 004 07 0 00 013401 ER4 AC+1,13401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13717 040341 321 10 0 00 040332 JUMPL AC+2,E13400 ;LOOP ON ERROR SWITCH^ + 13718 + 13719 ;SHIFT CONNECTIONS TEST + 13720 ;TEST AR34 SHLT INP-ONE'S - ASH AC,1 + 13721 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13722 SR1 (135,0,1,0,2,ASH,1)^ + 13723 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,1] 1 BIT + 13724 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13725 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13726 + 13727 040342 200 06 0 00 041625 E13500: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 13728 040343 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13729 040344 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13730 040345 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13731 040346 003 06 0 00 013501 ER3 AC,13501 ;RESULT IN AC IS INCORRECT + 13732 040347 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13733 040350 004 07 0 00 013501 ER4 AC+1,13501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13734 040351 321 10 0 00 040342 JUMPL AC+2,E13500 ;LOOP ON ERROR SWITCH^ + 13735 + 13736 ;SHIFT CONNECTIONS TEST + 13737 ;TEST AR34 SHLT INP-ZERO'S - ASH AC,1 + 13738 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13739 SR1 (136,-1,-2,-1,-4,ASH,1)^ + 13740 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-2] 1 BIT + 13741 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-4] + 13742 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13743 + 13744 040352 200 06 0 00 041627 E13600: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 13745 040353 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13746 040354 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13747 040355 312 06 0 00 041637 CAME AC,[XWD -1,-4] ;IS RESULT IN AC CORRECT? +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 34-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0294 + + 13748 040356 003 06 0 00 013601 ER3 AC,13601 ;RESULT IN AC IS INCORRECT + 13749 040357 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13750 040360 004 07 0 00 013601 ER4 AC+1,13601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13751 040361 321 10 0 00 040352 JUMPL AC+2,E13600 ;LOOP ON ERROR SWITCH^ + 13752 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 34-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0295 + + 13753 ;SHIFT CONNECTIONS TEST + 13754 ;TEST AR1 SHLT INP-ONE'S - ASH AC,1 + 13755 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13756 SR1 (137,100000,0,200000,0,ASH,1)^ + 13757 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 100000,0] 1 BIT + 13758 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 200000,0] + 13759 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13760 + 13761 040362 200 06 0 00 041631 E13700: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 13762 040363 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13763 040364 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13764 040365 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 13765 040366 003 06 0 00 013701 ER3 AC,13701 ;RESULT IN AC IS INCORRECT + 13766 040367 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13767 040370 004 07 0 00 013701 ER4 AC+1,13701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13768 040371 321 10 0 00 040362 JUMPL AC+2,E13700 ;LOOP ON ERROR SWITCH^ + 13769 + 13770 ;SHIFT CONNECTIONS TEST + 13771 ;TEST AR1 SHLT INP-ZERO'S - ASH AC,1 + 13772 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13773 SR1 (140,677777,-1,577777,-2,ASH,1)^ + 13774 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 677777,-1] 1 BIT + 13775 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 577777,-2] + 13776 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13777 + 13778 040372 200 06 0 00 041633 E14000: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 13779 040373 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13780 040374 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13781 040375 312 06 0 00 041640 CAME AC,[XWD 577777,-2] ;IS RESULT IN AC CORRECT? + 13782 040376 003 06 0 00 014001 ER3 AC,14001 ;RESULT IN AC IS INCORRECT + 13783 040377 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13784 040400 004 07 0 00 014001 ER4 AC+1,14001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13785 040401 321 10 0 00 040372 JUMPL AC+2,E14000 ;LOOP ON ERROR SWITCH^ + 13786 + 13787 ;SHIFT CONNECTIONS TEST + 13788 ;TEST AR0 SHLT INP-ONE'S - ASH AC,1 + 13789 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13790 SR1 (141,400000,0,400000,0,ASH,1)^ + 13791 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] 1 BIT + 13792 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 400000,0] + 13793 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13794 + 13795 040402 200 06 0 00 041624 E14100: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13796 040403 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13797 040404 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13798 040405 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 13799 040406 003 06 0 00 014101 ER3 AC,14101 ;RESULT IN AC IS INCORRECT + 13800 040407 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13801 040410 004 07 0 00 014101 ER4 AC+1,14101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13802 040411 321 10 0 00 040402 JUMPL AC+2,E14100 ;LOOP ON ERROR SWITCH^ + 13803 + 13804 ;SHIFT CONNECTIONS TEST + 13805 ;TEST AR0 SHLT INP-ZERO'S - ASH AC,1 + 13806 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13807 SR1 (142,377777,-1,377777,-2,ASH,1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 34-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0296 + + 13808 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] 1 BIT + 13809 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 377777,-2] + 13810 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13811 + 13812 040412 200 06 0 00 041626 E14200: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13813 040413 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13814 040414 240 06 0 00 000001 ASH AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 13815 040415 312 06 0 00 041641 CAME AC,[XWD 377777,-2] ;IS RESULT IN AC CORRECT? + 13816 040416 003 06 0 00 014201 ER3 AC,14201 ;RESULT IN AC IS INCORRECT + 13817 040417 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13818 040420 004 07 0 00 014201 ER4 AC+1,14201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13819 040421 321 10 0 00 040412 JUMPL AC+2,E14200 ;LOOP ON ERROR SWITCH^ + 13820 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 35 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0297 + + 13821 ;SHIFT CONNECTIONS TEST + 13822 ;TEST AR0 SHRT INP-ONE'S - ASH AC,-1 + 13823 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13824 SR1 (143,400000,0,600000,0,ASH,-1)^ + 13825 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -1 BIT + 13826 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 600000,0] + 13827 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13828 + 13829 040422 200 06 0 00 041624 E14300: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13830 040423 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13831 040424 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13832 040425 312 06 0 00 041646 CAME AC,[XWD 600000,0] ;IS RESULT IN AC CORRECT? + 13833 040426 003 06 0 00 014301 ER3 AC,14301 ;RESULT IN AC IS INCORRECT + 13834 040427 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13835 040430 004 07 0 00 014301 ER4 AC+1,14301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13836 040431 321 10 0 00 040422 JUMPL AC+2,E14300 ;LOOP ON ERROR SWITCH^ + 13837 + 13838 ;SHIFT CONNECTIONS TEST + 13839 ;TEST AR0 SHRT INP-ZERO'S - ASH AC,-1 + 13840 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13841 SR1 (144,377777,-1,177777,-1,ASH,-1)^ + 13842 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -1 BIT + 13843 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-1] + 13844 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13845 + 13846 040432 200 06 0 00 041626 E14400: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13847 040433 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13848 040434 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13849 040435 312 06 0 00 041642 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 13850 040436 003 06 0 00 014401 ER3 AC,14401 ;RESULT IN AC IS INCORRECT + 13851 040437 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13852 040440 004 07 0 00 014401 ER4 AC+1,14401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13853 040441 321 10 0 00 040432 JUMPL AC+2,E14400 ;LOOP ON ERROR SWITCH^ + 13854 + 13855 ;SHIFT CONNECTIONS TEST + 13856 ;TEST AR1 SHRT INP-ONE'S - ASH AC,-1 + 13857 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13858 SR1 (145,400000,0,600000,0,ASH,-1)^ + 13859 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -1 BIT + 13860 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 600000,0] + 13861 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13862 + 13863 040442 200 06 0 00 041624 E14500: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13864 040443 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13865 040444 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13866 040445 312 06 0 00 041646 CAME AC,[XWD 600000,0] ;IS RESULT IN AC CORRECT? + 13867 040446 003 06 0 00 014501 ER3 AC,14501 ;RESULT IN AC IS INCORRECT + 13868 040447 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13869 040450 004 07 0 00 014501 ER4 AC+1,14501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13870 040451 321 10 0 00 040442 JUMPL AC+2,E14500 ;LOOP ON ERROR SWITCH^ + 13871 + 13872 ;SHIFT CONNECTIONS TEST + 13873 ;TEST AR1 SHRT INP-ZERO'S - ASH AC,-1 + 13874 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13875 SR1 (146,377777,-1,177777,-1,ASH,-1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 35-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0298 + + 13876 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -1 BIT + 13877 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 177777,-1] + 13878 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13879 + 13880 040452 200 06 0 00 041626 E14600: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13881 040453 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13882 040454 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13883 040455 312 06 0 00 041642 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 13884 040456 003 06 0 00 014601 ER3 AC,14601 ;RESULT IN AC IS INCORRECT + 13885 040457 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13886 040460 004 07 0 00 014601 ER4 AC+1,14601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13887 040461 321 10 0 00 040452 JUMPL AC+2,E14600 ;LOOP ON ERROR SWITCH^ + 13888 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 35-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0299 + + 13889 ;SHIFT CONNECTIONS TEST + 13890 ;TEST AR34 SHRT INP-ONE'S - ASH AC,-1 + 13891 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13892 SR1 (147,0,4,0,2,ASH,-1)^ + 13893 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -1 BIT + 13894 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 13895 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13896 + 13897 040462 200 06 0 00 041622 E14700: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 13898 040463 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13899 040464 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13900 040465 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 13901 040466 003 06 0 00 014701 ER3 AC,14701 ;RESULT IN AC IS INCORRECT + 13902 040467 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13903 040470 004 07 0 00 014701 ER4 AC+1,14701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13904 040471 321 10 0 00 040462 JUMPL AC+2,E14700 ;LOOP ON ERROR SWITCH^ + 13905 + 13906 ;SHIFT CONNECTIONS TEST + 13907 ;TEST AR34 SHRT INP-ZERO'S - ASH AC,-1 + 13908 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 13909 SR1 (150,-1,-5,-1,-3,ASH,-1)^ + 13910 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -1 BIT + 13911 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-3] + 13912 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13913 + 13914 040472 200 06 0 00 041635 E15000: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 13915 040473 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13916 040474 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13917 040475 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 13918 040476 003 06 0 00 015001 ER3 AC,15001 ;RESULT IN AC IS INCORRECT + 13919 040477 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13920 040500 004 07 0 00 015001 ER4 AC+1,15001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13921 040501 321 10 0 00 040472 JUMPL AC+2,E15000 ;LOOP ON ERROR SWITCH^ + 13922 + 13923 ;SHIFT CONNECTIONS TEST + 13924 ;TEST AR35 SHRT INP-ONE'S - ASH AC,-1 + 13925 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13926 SR1 (151,0,2,0,1,ASH,-1)^ + 13927 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,2] -1 BIT + 13928 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 13929 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13930 + 13931 040502 200 06 0 00 041623 E15100: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 13932 040503 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13933 040504 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13934 040505 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 13935 040506 003 06 0 00 015101 ER3 AC,15101 ;RESULT IN AC IS INCORRECT + 13936 040507 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13937 040510 004 07 0 00 015101 ER4 AC+1,15101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13938 040511 321 10 0 00 040502 JUMPL AC+2,E15100 ;LOOP ON ERROR SWITCH^ + 13939 + 13940 ;SHIFT CONNECTIONS TEST + 13941 ;TEST AR35 SHRT INP-ZERO'S - ASH AC,-1 + 13942 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 13943 SR1 (152,-1,-3,-1,-2,ASH,-1)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 35-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0300 + + 13944 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-3] -1 BIT + 13945 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 13946 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13947 + 13948 040512 200 06 0 00 041630 E15200: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 13949 040513 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13950 040514 240 06 0 00 777777 ASH AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 13951 040515 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 13952 040516 003 06 0 00 015201 ER3 AC,15201 ;RESULT IN AC IS INCORRECT + 13953 040517 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13954 040520 004 07 0 00 015201 ER4 AC+1,15201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13955 040521 321 10 0 00 040512 JUMPL AC+2,E15200 ;LOOP ON ERROR SWITCH^ + 13956 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 36 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0301 + + 13957 ;SHIFT CONNECTIONS TEST + 13958 ;TEST AR0 SHRT INP-ONE'S - ASH AC,-2 + 13959 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13960 SR1 (153,400000,0,700000,0,ASH,-2)^ + 13961 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -2 BIT + 13962 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 700000,0] + 13963 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13964 + 13965 040522 200 06 0 00 041624 E15300: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 13966 040523 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13967 040524 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13968 040525 312 06 0 00 041647 CAME AC,[XWD 700000,0] ;IS RESULT IN AC CORRECT? + 13969 040526 003 06 0 00 015301 ER3 AC,15301 ;RESULT IN AC IS INCORRECT + 13970 040527 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13971 040530 004 07 0 00 015301 ER4 AC+1,15301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13972 040531 321 10 0 00 040522 JUMPL AC+2,E15300 ;LOOP ON ERROR SWITCH^ + 13973 + 13974 ;SHIFT CONNECTIONS TEST + 13975 ;TEST AR0 SHRT INP-ZERO'S - ASH AC,-2 + 13976 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 13977 SR1 (154,377777,-1,077777,-1,ASH,-2)^ + 13978 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -2 BIT + 13979 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 077777,-1] + 13980 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13981 + 13982 040532 200 06 0 00 041626 E15400: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 13983 040533 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 13984 040534 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 13985 040535 312 06 0 00 041650 CAME AC,[XWD 077777,-1] ;IS RESULT IN AC CORRECT? + 13986 040536 003 06 0 00 015401 ER3 AC,15401 ;RESULT IN AC IS INCORRECT + 13987 040537 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 13988 040540 004 07 0 00 015401 ER4 AC+1,15401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 13989 040541 321 10 0 00 040532 JUMPL AC+2,E15400 ;LOOP ON ERROR SWITCH^ + 13990 + 13991 ;SHIFT CONNECTIONS TEST + 13992 ;TEST AR1 SHRT INP-ONE'S - ASH AC,-2 + 13993 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 13994 SR1 (155,400000,0,700000,0,ASH,-2)^ + 13995 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 400000,0] -2 BIT + 13996 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 700000,0] + 13997 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 13998 + 13999 040542 200 06 0 00 041624 E15500: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 14000 040543 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14001 040544 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14002 040545 312 06 0 00 041647 CAME AC,[XWD 700000,0] ;IS RESULT IN AC CORRECT? + 14003 040546 003 06 0 00 015501 ER3 AC,15501 ;RESULT IN AC IS INCORRECT + 14004 040547 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14005 040550 004 07 0 00 015501 ER4 AC+1,15501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14006 040551 321 10 0 00 040542 JUMPL AC+2,E15500 ;LOOP ON ERROR SWITCH^ + 14007 + 14008 ;SHIFT CONNECTIONS TEST + 14009 ;TEST AR1 SHRT INP-ZERO'S - ASH AC,-2 + 14010 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 14011 SR1 (156,377777,-1,077777,-1,ASH,-2)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 36-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0302 + + 14012 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 377777,-1] -2 BIT + 14013 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 077777,-1] + 14014 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 14015 + 14016 040552 200 06 0 00 041626 E15600: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 14017 040553 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14018 040554 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14019 040555 312 06 0 00 041650 CAME AC,[XWD 077777,-1] ;IS RESULT IN AC CORRECT? + 14020 040556 003 06 0 00 015601 ER3 AC,15601 ;RESULT IN AC IS INCORRECT + 14021 040557 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14022 040560 004 07 0 00 015601 ER4 AC+1,15601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14023 040561 321 10 0 00 040552 JUMPL AC+2,E15600 ;LOOP ON ERROR SWITCH^ + 14024 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 36-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0303 + + 14025 ;SHIFT CONNECTIONS TEST + 14026 ;TEST AR34 SHRT INP-ONE'S - ASH AC,-2 + 14027 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 14028 SR1 (157,0,10,0,2,ASH,-2)^ + 14029 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,10] -2 BIT + 14030 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,2] + 14031 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 14032 + 14033 040562 200 06 0 00 041617 E15700: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 14034 040563 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14035 040564 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14036 040565 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 14037 040566 003 06 0 00 015701 ER3 AC,15701 ;RESULT IN AC IS INCORRECT + 14038 040567 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14039 040570 004 07 0 00 015701 ER4 AC+1,15701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14040 040571 321 10 0 00 040562 JUMPL AC+2,E15700 ;LOOP ON ERROR SWITCH^ + 14041 + 14042 ;SHIFT CONNECTIONS TEST + 14043 ;TEST AR34 SHRT INP-ZERO'S - ASH AC,-2 + 14044 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 14045 SR1 (160,-1,-11,-1,-3,ASH,-2)^ + 14046 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-11] -2 BIT + 14047 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-3] + 14048 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 14049 + 14050 040572 200 06 0 00 041636 E16000: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 14051 040573 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14052 040574 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14053 040575 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 14054 040576 003 06 0 00 016001 ER3 AC,16001 ;RESULT IN AC IS INCORRECT + 14055 040577 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14056 040600 004 07 0 00 016001 ER4 AC+1,16001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14057 040601 321 10 0 00 040572 JUMPL AC+2,E16000 ;LOOP ON ERROR SWITCH^ + 14058 + 14059 ;SHIFT CONNECTIONS TEST + 14060 ;TEST AR35 SHRT INP-ONE'S - ASH AC,-2 + 14061 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 14062 SR1 (161,0,4,0,1,ASH,-2)^ + 14063 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 0,4] -2 BIT + 14064 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 0,1] + 14065 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 14066 + 14067 040602 200 06 0 00 041622 E16100: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 14068 040603 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14069 040604 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14070 040605 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 14071 040606 003 06 0 00 016101 ER3 AC,16101 ;RESULT IN AC IS INCORRECT + 14072 040607 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14073 040610 004 07 0 00 016101 ER4 AC+1,16101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14074 040611 321 10 0 00 040602 JUMPL AC+2,E16100 ;LOOP ON ERROR SWITCH^ + 14075 + 14076 ;SHIFT CONNECTIONS TEST + 14077 ;TEST AR35 SHRT INP-ZERO'S - ASH AC,-2 + 14078 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 14079 SR1 (162,-1,-5,-1,-2,ASH,-2)^ +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 36-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) SEQ 0304 + + 14080 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD -1,-5] -2 BIT + 14081 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD -1,-2] + 14082 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 14083 + 14084 040612 200 06 0 00 041635 E16200: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 14085 040613 200 07 0 00 041620 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 14086 040614 240 06 0 00 777776 ASH AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 14087 040615 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 14088 040616 003 06 0 00 016201 ER3 AC,16201 ;RESULT IN AC IS INCORRECT + 14089 040617 312 07 0 00 041620 CAME AC+1,[XWD 741703,607417] + 14090 040620 004 07 0 00 016201 ER4 AC+1,16201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 14091 040621 321 10 0 00 040612 JUMPL AC+2,E16200 ;LOOP ON ERROR SWITCH^ + 14092 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 37 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0305 + + 14093 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) + 14094 + 14095 ;END CONNECTIONS-ROTC + 14096 ;TEST AR-MQ END BIT INPUT GATES + 14097 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 14098 ; MQ0,1,34,35 SHLT INP GATES + 14099 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 14100 ; MQ0,1,34,35 SHRT INPUT GATES + 14101 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND + 14102 ;END BITS ARE TESTED + 14103 ;TEST ASSUMES BOTH REGISTERS ARE + 14104 ;CAPABLE OF ROTATING 1,-1 AND -2 BIT POSITIONS CORRECTLY + 14105 + 14106 ;SHIFT CONNECTIONS TEST + 14107 ;TEST MQ35 SHLT INP-ONE'S - ROTC AC,1 + 14108 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14109 SR2 (163,400000,0,0,0,0,0,0,1,ROTC,1)^ + 14110 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14111 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 14112 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14113 ;[XWD 0,1] + 14114 + 14115 040622 200 06 0 00 041624 E16300: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 14116 040623 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14117 040624 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14118 040625 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14119 040626 003 06 0 00 016301 ER3 AC,16301 ;RESULT IN AC IS INCORRECT + 14120 040627 312 07 0 00 041625 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 14121 040630 004 07 0 00 016301 ER4 AC+1,16301 ;RESULT IN AC+1 IS INCORRECT + 14122 040631 321 10 0 00 040622 JUMPL AC+2,E16300 ;LOOP ON ERROR SWITCH^ + 14123 + 14124 ;SHIFT CONNECTIONS TEST + 14125 ;TEST MQ35 SHLT INP-ZERO'S - ROTC AC,1 + 14126 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14127 SR2 (164,377777,-1,-1,-1,-1,-1,-1,-2,ROTC,1)^ + 14128 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14129 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 14130 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14131 ;[XWD -1,-2] + 14132 + 14133 040632 200 06 0 00 041626 E16400: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 14134 040633 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14135 040634 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14136 040635 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14137 040636 003 06 0 00 016401 ER3 AC,16401 ;RESULT IN AC IS INCORRECT + 14138 040637 312 07 0 00 041627 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 14139 040640 004 07 0 00 016401 ER4 AC+1,16401 ;RESULT IN AC+1 IS INCORRECT + 14140 040641 321 10 0 00 040632 JUMPL AC+2,E16400 ;LOOP ON ERROR SWITCH^ + 14141 + 14142 ;SHIFT CONNECTIONS TEST + 14143 ;TEST MQ34 SHLT INP-ONE'S - ROTC AC,1 + 14144 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14145 SR2 (165,0,0,0,1,0,0,0,2,ROTC,1)^ + 14146 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14147 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,1] 1 BIT POSITIONS AND +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 37-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0306 + + 14148 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14149 ;[XWD 0,2] + 14150 + 14151 040642 200 06 0 00 041615 E16500: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14152 040643 200 07 0 00 041625 MOVE AC+1,[XWD 0,1] ;INITIALIZE AC+1 + 14153 040644 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14154 040645 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14155 040646 003 06 0 00 016501 ER3 AC,16501 ;RESULT IN AC IS INCORRECT + 14156 040647 312 07 0 00 041623 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 14157 040650 004 07 0 00 016501 ER4 AC+1,16501 ;RESULT IN AC+1 IS INCORRECT + 14158 040651 321 10 0 00 040642 JUMPL AC+2,E16500 ;LOOP ON ERROR SWITCH^ + 14159 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 37-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0307 + + 14160 ;SHIFT CONNECTIONS TEST + 14161 ;TEST MQ34 SHLT INP-ZERO'S - ROTC AC,1 + 14162 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14163 SR2 (166,-1,-1,-1,-2,-1,-1,-1,-3,ROTC,1)^ + 14164 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14165 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-2] 1 BIT POSITIONS AND + 14166 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14167 ;[XWD -1,-3] + 14168 + 14169 040652 200 06 0 00 041616 E16600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14170 040653 200 07 0 00 041627 MOVE AC+1,[XWD -1,-2] ;INITIALIZE AC+1 + 14171 040654 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14172 040655 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14173 040656 003 06 0 00 016601 ER3 AC,16601 ;RESULT IN AC IS INCORRECT + 14174 040657 312 07 0 00 041630 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 14175 040660 004 07 0 00 016601 ER4 AC+1,16601 ;RESULT IN AC+1 IS INCORRECT + 14176 040661 321 10 0 00 040652 JUMPL AC+2,E16600 ;LOOP ON ERROR SWITCH^ + 14177 + 14178 ;SHIFT CONNECTIONS TEST + 14179 ;TEST MQ1 SHLT INP-ONE'S - ROTC AC,1 + 14180 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14181 SR2 (167,0,0,100000,0,0,0,200000,0,ROTC,1)^ + 14182 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14183 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 100000,0] 1 BIT POSITIONS AND + 14184 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14185 ;[XWD 200000,0] + 14186 + 14187 040662 200 06 0 00 041615 E16700: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14188 040663 200 07 0 00 041631 MOVE AC+1,[XWD 100000,0] ;INITIALIZE AC+1 + 14189 040664 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14190 040665 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14191 040666 003 06 0 00 016701 ER3 AC,16701 ;RESULT IN AC IS INCORRECT + 14192 040667 312 07 0 00 041632 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 14193 040670 004 07 0 00 016701 ER4 AC+1,16701 ;RESULT IN AC+1 IS INCORRECT + 14194 040671 321 10 0 00 040662 JUMPL AC+2,E16700 ;LOOP ON ERROR SWITCH^ + 14195 + 14196 ;SHIFT CONNECTIONS TEST + 14197 ;TEST MQ1 SHLT INP-ZERO'S - ROTC AC,1 + 14198 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14199 SR2 (170,-1,-1,677777,-1,-1,-1,577777,-1,ROTC,1)^ + 14200 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14201 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 677777,-1] 1 BIT POSITIONS AND + 14202 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14203 ;[XWD 577777,-1] + 14204 + 14205 040672 200 06 0 00 041616 E17000: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14206 040673 200 07 0 00 041633 MOVE AC+1,[XWD 677777,-1] ;INITIALIZE AC+1 + 14207 040674 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14208 040675 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14209 040676 003 06 0 00 017001 ER3 AC,17001 ;RESULT IN AC IS INCORRECT + 14210 040677 312 07 0 00 041634 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 14211 040700 004 07 0 00 017001 ER4 AC+1,17001 ;RESULT IN AC+1 IS INCORRECT + 14212 040701 321 10 0 00 040672 JUMPL AC+2,E17000 ;LOOP ON ERROR SWITCH^ + 14213 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 37-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0308 + + 14214 ;SHIFT CONNECTIONS TEST + 14215 ;TEST MQ0 SHLT INP-ONE'S - ROTC AC,1 + 14216 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14217 SR2 (171,0,0,200000,0,0,0,400000,0,ROTC,1)^ + 14218 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14219 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 200000,0] 1 BIT POSITIONS AND + 14220 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14221 ;[XWD 400000,0] + 14222 + 14223 040702 200 06 0 00 041615 E17100: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14224 040703 200 07 0 00 041632 MOVE AC+1,[XWD 200000,0] ;INITIALIZE AC+1 + 14225 040704 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14226 040705 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14227 040706 003 06 0 00 017101 ER3 AC,17101 ;RESULT IN AC IS INCORRECT + 14228 040707 312 07 0 00 041624 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 14229 040710 004 07 0 00 017101 ER4 AC+1,17101 ;RESULT IN AC+1 IS INCORRECT + 14230 040711 321 10 0 00 040702 JUMPL AC+2,E17100 ;LOOP ON ERROR SWITCH^ + 14231 + 14232 ;SHIFT CONNECTIONS TEST + 14233 ;TEST MQ0 SHLT INP-ZERO'S - ROTC AC,1 + 14234 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14235 SR2 (172,-1,-1,577777,-1,-1,-1,377777,-1,ROTC,1)^ + 14236 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14237 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 577777,-1] 1 BIT POSITIONS AND + 14238 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14239 ;[XWD 377777,-1] + 14240 + 14241 040712 200 06 0 00 041616 E17200: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14242 040713 200 07 0 00 041634 MOVE AC+1,[XWD 577777,-1] ;INITIALIZE AC+1 + 14243 040714 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14244 040715 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14245 040716 003 06 0 00 017201 ER3 AC,17201 ;RESULT IN AC IS INCORRECT + 14246 040717 312 07 0 00 041626 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 14247 040720 004 07 0 00 017201 ER4 AC+1,17201 ;RESULT IN AC+1 IS INCORRECT + 14248 040721 321 10 0 00 040712 JUMPL AC+2,E17200 ;LOOP ON ERROR SWITCH^ + 14249 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 38 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0309 + + 14250 ;SHIFT CONNECTIONS TEST + 14251 ;TEST AR35 SHLT INP-ONE'S - ROTC AC,1 + 14252 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14253 SR2 (173,0,0,400000,0,0,1,0,0,ROTC,1)^ + 14254 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14255 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 400000,0] 1 BIT POSITIONS AND + 14256 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 14257 ;[XWD 0,0] + 14258 + 14259 040722 200 06 0 00 041615 E17300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14260 040723 200 07 0 00 041624 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 14261 040724 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14262 040725 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 14263 040726 003 06 0 00 017301 ER3 AC,17301 ;RESULT IN AC IS INCORRECT + 14264 040727 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14265 040730 004 07 0 00 017301 ER4 AC+1,17301 ;RESULT IN AC+1 IS INCORRECT + 14266 040731 321 10 0 00 040722 JUMPL AC+2,E17300 ;LOOP ON ERROR SWITCH^ + 14267 + 14268 ;SHIFT CONNECTIONS TEST + 14269 ;TEST AR35 SHLT INP-ZERO'S - ROTC AC,1 + 14270 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14271 SR2 (174,-1,-1,377777,-1,-1,-2,-1,-1,ROTC,1)^ + 14272 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14273 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 377777,-1] 1 BIT POSITIONS AND + 14274 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 14275 ;[XWD -1,-1] + 14276 + 14277 040732 200 06 0 00 041616 E17400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14278 040733 200 07 0 00 041626 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 14279 040734 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14280 040735 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 14281 040736 003 06 0 00 017401 ER3 AC,17401 ;RESULT IN AC IS INCORRECT + 14282 040737 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14283 040740 004 07 0 00 017401 ER4 AC+1,17401 ;RESULT IN AC+1 IS INCORRECT + 14284 040741 321 10 0 00 040732 JUMPL AC+2,E17400 ;LOOP ON ERROR SWITCH^ + 14285 + 14286 ;SHIFT CONNECTIONS TEST + 14287 ;TEST AR34 SHLT INP-ONE'S - ROTC AC,1 + 14288 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14289 SR2 (175,0,1,0,0,0,2,0,0,ROTC,1)^ + 14290 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14291 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] 1 BIT POSITIONS AND + 14292 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 14293 ;[XWD 0,0] + 14294 + 14295 040742 200 06 0 00 041625 E17500: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 14296 040743 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14297 040744 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14298 040745 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 14299 040746 003 06 0 00 017501 ER3 AC,17501 ;RESULT IN AC IS INCORRECT + 14300 040747 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14301 040750 004 07 0 00 017501 ER4 AC+1,17501 ;RESULT IN AC+1 IS INCORRECT + 14302 040751 321 10 0 00 040742 JUMPL AC+2,E17500 ;LOOP ON ERROR SWITCH^ + 14303 + 14304 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 38-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0310 + + 14305 ;TEST AR34 SHLT INP-ZERO'S - ROTC AC,1 + 14306 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14307 SR2 (176,-1,-2,-1,-1,-1,-3,-1,-1,ROTC,1)^ + 14308 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14309 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] 1 BIT POSITIONS AND + 14310 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 14311 ;[XWD -1,-1] + 14312 + 14313 040752 200 06 0 00 041627 E17600: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 14314 040753 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14315 040754 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14316 040755 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 14317 040756 003 06 0 00 017601 ER3 AC,17601 ;RESULT IN AC IS INCORRECT + 14318 040757 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14319 040760 004 07 0 00 017601 ER4 AC+1,17601 ;RESULT IN AC+1 IS INCORRECT + 14320 040761 321 10 0 00 040752 JUMPL AC+2,E17600 ;LOOP ON ERROR SWITCH^ + 14321 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 38-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0311 + + 14322 ;SHIFT CONNECTIONS TEST + 14323 ;TEST AR1 SHLT INP-ONE'S - ROTC AC,1 + 14324 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14325 SR2 (177,100000,0,0,0,200000,0,0,0,ROTC,1)^ + 14326 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14327 ;DATA SPECIFIED IN [XWD 100000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 14328 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 14329 ;[XWD 0,0] + 14330 + 14331 040762 200 06 0 00 041631 E17700: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 14332 040763 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14333 040764 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14334 040765 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 14335 040766 003 06 0 00 017701 ER3 AC,17701 ;RESULT IN AC IS INCORRECT + 14336 040767 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14337 040770 004 07 0 00 017701 ER4 AC+1,17701 ;RESULT IN AC+1 IS INCORRECT + 14338 040771 321 10 0 00 040762 JUMPL AC+2,E17700 ;LOOP ON ERROR SWITCH^ + 14339 + 14340 ;SHIFT CONNECTIONS TEST + 14341 ;TEST AR1 SHLT INP-ZERO'S - ROTC AC,1 + 14342 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14343 SR2 (200,677777,-1,-1,-1,577777,-1,-1,-1,ROTC,1)^ + 14344 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14345 ;DATA SPECIFIED IN [XWD 677777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 14346 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 577777,-1] AND + 14347 ;[XWD -1,-1] + 14348 + 14349 040772 200 06 0 00 041633 E20000: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 14350 040773 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14351 040774 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14352 040775 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 14353 040776 003 06 0 00 020001 ER3 AC,20001 ;RESULT IN AC IS INCORRECT + 14354 040777 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14355 041000 004 07 0 00 020001 ER4 AC+1,20001 ;RESULT IN AC+1 IS INCORRECT + 14356 041001 321 10 0 00 040772 JUMPL AC+2,E20000 ;LOOP ON ERROR SWITCH^ + 14357 + 14358 ;SHIFT CONNECTIONS TEST + 14359 ;TEST AR0 SHLT INP-ONE'S - ROTC AC,1 + 14360 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14361 SR2 (201,200000,0,0,0,400000,0,0,0,ROTC,1)^ + 14362 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14363 ;DATA SPECIFIED IN [XWD 200000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 14364 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 14365 ;[XWD 0,0] + 14366 + 14367 041002 200 06 0 00 041632 E20100: MOVE AC,[XWD 200000,0] ;INITIALIZE AC + 14368 041003 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14369 041004 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14370 041005 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 14371 041006 003 06 0 00 020101 ER3 AC,20101 ;RESULT IN AC IS INCORRECT + 14372 041007 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14373 041010 004 07 0 00 020101 ER4 AC+1,20101 ;RESULT IN AC+1 IS INCORRECT + 14374 041011 321 10 0 00 041002 JUMPL AC+2,E20100 ;LOOP ON ERROR SWITCH^ + 14375 + 14376 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 38-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0312 + + 14377 ;TEST AR0 SHLT INP-ZERO'S - ROTC AC,1 + 14378 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14379 SR2 (202,577777,-1,-1,-1,377777,-1,-1,-1,ROTC,1)^ + 14380 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14381 ;DATA SPECIFIED IN [XWD 577777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 14382 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 14383 ;[XWD -1,-1] + 14384 + 14385 041012 200 06 0 00 041634 E20200: MOVE AC,[XWD 577777,-1] ;INITIALIZE AC + 14386 041013 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14387 041014 245 06 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 14388 041015 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 14389 041016 003 06 0 00 020201 ER3 AC,20201 ;RESULT IN AC IS INCORRECT + 14390 041017 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14391 041020 004 07 0 00 020201 ER4 AC+1,20201 ;RESULT IN AC+1 IS INCORRECT + 14392 041021 321 10 0 00 041012 JUMPL AC+2,E20200 ;LOOP ON ERROR SWITCH^ + 14393 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 39 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0313 + + 14394 ;SHIFT CONNECTIONS TEST + 14395 ;TEST AR0 SHRT INP-ONE'S - ROTC AC,-1 + 14396 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14397 SR2 (203,0,0,0,1,400000,0,0,0,ROTC,-1)^ + 14398 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14399 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,1] -1 BIT POSITIONS AND + 14400 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 14401 ;[XWD 0,0] + 14402 + 14403 041022 200 06 0 00 041615 E20300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14404 041023 200 07 0 00 041625 MOVE AC+1,[XWD 0,1] ;INITIALIZE AC+1 + 14405 041024 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14406 041025 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 14407 041026 003 06 0 00 020301 ER3 AC,20301 ;RESULT IN AC IS INCORRECT + 14408 041027 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14409 041030 004 07 0 00 020301 ER4 AC+1,20301 ;RESULT IN AC+1 IS INCORRECT + 14410 041031 321 10 0 00 041022 JUMPL AC+2,E20300 ;LOOP ON ERROR SWITCH^ + 14411 + 14412 ;SHIFT CONNECTIONS TEST + 14413 ;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-1 + 14414 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14415 SR2 (204,-1,-1,-1,-2,377777,-1,-1,-1,ROTC,-1)^ + 14416 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14417 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-2] -1 BIT POSITIONS AND + 14418 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 14419 ;[XWD -1,-1] + 14420 + 14421 041032 200 06 0 00 041616 E20400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14422 041033 200 07 0 00 041627 MOVE AC+1,[XWD -1,-2] ;INITIALIZE AC+1 + 14423 041034 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14424 041035 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 14425 041036 003 06 0 00 020401 ER3 AC,20401 ;RESULT IN AC IS INCORRECT + 14426 041037 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14427 041040 004 07 0 00 020401 ER4 AC+1,20401 ;RESULT IN AC+1 IS INCORRECT + 14428 041041 321 10 0 00 041032 JUMPL AC+2,E20400 ;LOOP ON ERROR SWITCH^ + 14429 + 14430 ;SHIFT CONNECTIONS TEST + 14431 ;TEST AR1 SHRT INP-ONE'S - ROTC AC,-1 + 14432 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14433 SR2 (205,400000,0,0,0,200000,0,0,0,ROTC,-1)^ + 14434 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14435 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] -1 BIT POSITIONS AND + 14436 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 14437 ;[XWD 0,0] + 14438 + 14439 041042 200 06 0 00 041624 E20500: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 14440 041043 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14441 041044 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14442 041045 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 14443 041046 003 06 0 00 020501 ER3 AC,20501 ;RESULT IN AC IS INCORRECT + 14444 041047 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14445 041050 004 07 0 00 020501 ER4 AC+1,20501 ;RESULT IN AC+1 IS INCORRECT + 14446 041051 321 10 0 00 041042 JUMPL AC+2,E20500 ;LOOP ON ERROR SWITCH^ + 14447 + 14448 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 39-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0314 + + 14449 ;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-1 + 14450 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14451 SR2 (206,377777,-1,-1,-1,577777,-1,-1,-1,ROTC,-1)^ + 14452 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14453 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] -1 BIT POSITIONS AND + 14454 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 577777,-1] AND + 14455 ;[XWD -1,-1] + 14456 + 14457 041052 200 06 0 00 041626 E20600: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 14458 041053 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14459 041054 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14460 041055 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 14461 041056 003 06 0 00 020601 ER3 AC,20601 ;RESULT IN AC IS INCORRECT + 14462 041057 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14463 041060 004 07 0 00 020601 ER4 AC+1,20601 ;RESULT IN AC+1 IS INCORRECT + 14464 041061 321 10 0 00 041052 JUMPL AC+2,E20600 ;LOOP ON ERROR SWITCH^ + 14465 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 39-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0315 + + 14466 ;SHIFT CONNECTIONS TEST + 14467 ;TEST AR34 SHRT INP-ONE'S - ROTC AC,-1 + 14468 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14469 SR2 (207,0,4,0,0,0,2,0,0,ROTC,-1)^ + 14470 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14471 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -1 BIT POSITIONS AND + 14472 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 14473 ;[XWD 0,0] + 14474 + 14475 041062 200 06 0 00 041622 E20700: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 14476 041063 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14477 041064 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14478 041065 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 14479 041066 003 06 0 00 020701 ER3 AC,20701 ;RESULT IN AC IS INCORRECT + 14480 041067 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14481 041070 004 07 0 00 020701 ER4 AC+1,20701 ;RESULT IN AC+1 IS INCORRECT + 14482 041071 321 10 0 00 041062 JUMPL AC+2,E20700 ;LOOP ON ERROR SWITCH^ + 14483 + 14484 ;SHIFT CONNECTIONS TEST + 14485 ;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-1 + 14486 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14487 SR2 (210,-1,-5,-1,-1,-1,-3,-1,-1,ROTC,-1)^ + 14488 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14489 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -1 BIT POSITIONS AND + 14490 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 14491 ;[XWD -1,-1] + 14492 + 14493 041072 200 06 0 00 041635 E21000: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 14494 041073 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14495 041074 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14496 041075 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 14497 041076 003 06 0 00 021001 ER3 AC,21001 ;RESULT IN AC IS INCORRECT + 14498 041077 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14499 041100 004 07 0 00 021001 ER4 AC+1,21001 ;RESULT IN AC+1 IS INCORRECT + 14500 041101 321 10 0 00 041072 JUMPL AC+2,E21000 ;LOOP ON ERROR SWITCH^ + 14501 + 14502 ;SHIFT CONNECTIONS TEST + 14503 ;TEST AR35 SHRT INP-ONE'S - ROTC AC,-1 + 14504 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14505 SR2 (211,0,2,0,0,0,1,0,0,ROTC,-1)^ + 14506 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14507 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -1 BIT POSITIONS AND + 14508 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 14509 ;[XWD 0,0] + 14510 + 14511 041102 200 06 0 00 041623 E21100: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 14512 041103 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14513 041104 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14514 041105 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 14515 041106 003 06 0 00 021101 ER3 AC,21101 ;RESULT IN AC IS INCORRECT + 14516 041107 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14517 041110 004 07 0 00 021101 ER4 AC+1,21101 ;RESULT IN AC+1 IS INCORRECT + 14518 041111 321 10 0 00 041102 JUMPL AC+2,E21100 ;LOOP ON ERROR SWITCH^ + 14519 + 14520 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 39-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0316 + + 14521 ;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-1 + 14522 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14523 SR2 (212,-1,-3,-1,-1,-1,-2,-1,-1,ROTC,-1)^ + 14524 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14525 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -1 BIT POSITIONS AND + 14526 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 14527 ;[XWD -1,-1] + 14528 + 14529 041112 200 06 0 00 041630 E21200: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 14530 041113 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14531 041114 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14532 041115 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 14533 041116 003 06 0 00 021201 ER3 AC,21201 ;RESULT IN AC IS INCORRECT + 14534 041117 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14535 041120 004 07 0 00 021201 ER4 AC+1,21201 ;RESULT IN AC+1 IS INCORRECT + 14536 041121 321 10 0 00 041112 JUMPL AC+2,E21200 ;LOOP ON ERROR SWITCH^ + 14537 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 40 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0317 + + 14538 ;SHIFT CONNECTIONS TEST + 14539 ;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-1 + 14540 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14541 SR2 (213,0,1,0,0,0,0,400000,0,ROTC,-1)^ + 14542 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14543 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] -1 BIT POSITIONS AND + 14544 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14545 ;[XWD 400000,0] + 14546 + 14547 041122 200 06 0 00 041625 E21300: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 14548 041123 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14549 041124 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14550 041125 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14551 041126 003 06 0 00 021301 ER3 AC,21301 ;RESULT IN AC IS INCORRECT + 14552 041127 312 07 0 00 041624 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 14553 041130 004 07 0 00 021301 ER4 AC+1,21301 ;RESULT IN AC+1 IS INCORRECT + 14554 041131 321 10 0 00 041122 JUMPL AC+2,E21300 ;LOOP ON ERROR SWITCH^ + 14555 + 14556 ;SHIFT CONNECTIONS TEST + 14557 ;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-1 + 14558 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14559 SR2 (214,-1,-2,-1,-1,-1,-1,377777,-1,ROTC,-1)^ + 14560 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14561 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] -1 BIT POSITIONS AND + 14562 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14563 ;[XWD 377777,-1] + 14564 + 14565 041132 200 06 0 00 041627 E21400: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 14566 041133 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14567 041134 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14568 041135 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14569 041136 003 06 0 00 021401 ER3 AC,21401 ;RESULT IN AC IS INCORRECT + 14570 041137 312 07 0 00 041626 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 14571 041140 004 07 0 00 021401 ER4 AC+1,21401 ;RESULT IN AC+1 IS INCORRECT + 14572 041141 321 10 0 00 041132 JUMPL AC+2,E21400 ;LOOP ON ERROR SWITCH^ + 14573 + 14574 ;SHIFT CONNECTIONS TEST + 14575 ;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-1 + 14576 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14577 SR2 (215,0,0,400000,0,0,0,200000,0,ROTC,-1)^ + 14578 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14579 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 400000,0] -1 BIT POSITIONS AND + 14580 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14581 ;[XWD 200000,0] + 14582 + 14583 041142 200 06 0 00 041615 E21500: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14584 041143 200 07 0 00 041624 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 14585 041144 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14586 041145 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14587 041146 003 06 0 00 021501 ER3 AC,21501 ;RESULT IN AC IS INCORRECT + 14588 041147 312 07 0 00 041632 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 14589 041150 004 07 0 00 021501 ER4 AC+1,21501 ;RESULT IN AC+1 IS INCORRECT + 14590 041151 321 10 0 00 041142 JUMPL AC+2,E21500 ;LOOP ON ERROR SWITCH^ + 14591 + 14592 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 40-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0318 + + 14593 ;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-1 + 14594 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14595 SR2 (216,-1,-1,377777,-1,-1,-1,577777,-1,ROTC,-1)^ + 14596 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14597 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 377777,-1] -1 BIT POSITIONS AND + 14598 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14599 ;[XWD 577777,-1] + 14600 + 14601 041152 200 06 0 00 041616 E21600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14602 041153 200 07 0 00 041626 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 14603 041154 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14604 041155 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14605 041156 003 06 0 00 021601 ER3 AC,21601 ;RESULT IN AC IS INCORRECT + 14606 041157 312 07 0 00 041634 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 14607 041160 004 07 0 00 021601 ER4 AC+1,21601 ;RESULT IN AC+1 IS INCORRECT + 14608 041161 321 10 0 00 041152 JUMPL AC+2,E21600 ;LOOP ON ERROR SWITCH^ + 14609 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 40-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0319 + + 14610 ;SHIFT CONNECTIONS TEST + 14611 ;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-1 + 14612 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14613 SR2 (217,0,0,0,4,0,0,0,2,ROTC,-1)^ + 14614 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14615 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -1 BIT POSITIONS AND + 14616 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14617 ;[XWD 0,2] + 14618 + 14619 041162 200 06 0 00 041615 E21700: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14620 041163 200 07 0 00 041622 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 14621 041164 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14622 041165 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14623 041166 003 06 0 00 021701 ER3 AC,21701 ;RESULT IN AC IS INCORRECT + 14624 041167 312 07 0 00 041623 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 14625 041170 004 07 0 00 021701 ER4 AC+1,21701 ;RESULT IN AC+1 IS INCORRECT + 14626 041171 321 10 0 00 041162 JUMPL AC+2,E21700 ;LOOP ON ERROR SWITCH^ + 14627 + 14628 ;SHIFT CONNECTIONS TEST + 14629 ;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-1 + 14630 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14631 SR2 (220,-1,-1,-1,-5,-1,-1,-1,-3,ROTC,-1)^ + 14632 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14633 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -1 BIT POSITIONS AND + 14634 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14635 ;[XWD -1,-3] + 14636 + 14637 041172 200 06 0 00 041616 E22000: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14638 041173 200 07 0 00 041635 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 14639 041174 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14640 041175 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14641 041176 003 06 0 00 022001 ER3 AC,22001 ;RESULT IN AC IS INCORRECT + 14642 041177 312 07 0 00 041630 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 14643 041200 004 07 0 00 022001 ER4 AC+1,22001 ;RESULT IN AC+1 IS INCORRECT + 14644 041201 321 10 0 00 041172 JUMPL AC+2,E22000 ;LOOP ON ERROR SWITCH^ + 14645 + 14646 ;SHIFT CONNECTIONS TEST + 14647 ;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-1 + 14648 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14649 SR2 (221,0,0,0,2,0,0,0,1,ROTC,-1)^ + 14650 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14651 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,2] -1 BIT POSITIONS AND + 14652 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14653 ;[XWD 0,1] + 14654 + 14655 041202 200 06 0 00 041615 E22100: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14656 041203 200 07 0 00 041623 MOVE AC+1,[XWD 0,2] ;INITIALIZE AC+1 + 14657 041204 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14658 041205 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14659 041206 003 06 0 00 022101 ER3 AC,22101 ;RESULT IN AC IS INCORRECT + 14660 041207 312 07 0 00 041625 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 14661 041210 004 07 0 00 022101 ER4 AC+1,22101 ;RESULT IN AC+1 IS INCORRECT + 14662 041211 321 10 0 00 041202 JUMPL AC+2,E22100 ;LOOP ON ERROR SWITCH^ + 14663 + 14664 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 40-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0320 + + 14665 ;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-1 + 14666 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14667 SR2 (222,-1,-1,-1,-3,-1,-1,-1,-2,ROTC,-1)^ + 14668 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14669 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-3] -1 BIT POSITIONS AND + 14670 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14671 ;[XWD -1,-2] + 14672 + 14673 041212 200 06 0 00 041616 E22200: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14674 041213 200 07 0 00 041630 MOVE AC+1,[XWD -1,-3] ;INITIALIZE AC+1 + 14675 041214 245 06 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 14676 041215 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14677 041216 003 06 0 00 022201 ER3 AC,22201 ;RESULT IN AC IS INCORRECT + 14678 041217 312 07 0 00 041627 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 14679 041220 004 07 0 00 022201 ER4 AC+1,22201 ;RESULT IN AC+1 IS INCORRECT + 14680 041221 321 10 0 00 041212 JUMPL AC+2,E22200 ;LOOP ON ERROR SWITCH^ + 14681 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 41 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0321 + + 14682 ;SHIFT CONNECTIONS TEST + 14683 ;TEST AR0 SHRT INP-ONE'S - ROTC AC,-2 + 14684 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14685 SR2 (223,0,0,0,2,400000,0,0,0,ROTC,-2)^ + 14686 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14687 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,2] -2 BIT POSITIONS AND + 14688 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 14689 ;[XWD 0,0] + 14690 + 14691 041222 200 06 0 00 041615 E22300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14692 041223 200 07 0 00 041623 MOVE AC+1,[XWD 0,2] ;INITIALIZE AC+1 + 14693 041224 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14694 041225 312 06 0 00 041624 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 14695 041226 003 06 0 00 022301 ER3 AC,22301 ;RESULT IN AC IS INCORRECT + 14696 041227 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14697 041230 004 07 0 00 022301 ER4 AC+1,22301 ;RESULT IN AC+1 IS INCORRECT + 14698 041231 321 10 0 00 041222 JUMPL AC+2,E22300 ;LOOP ON ERROR SWITCH^ + 14699 + 14700 ;SHIFT CONNECTIONS TEST + 14701 ;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-2 + 14702 ;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + 14703 SR2 (224,-1,-1,-1,-3,377777,-1,-1,-1,ROTC,-2)^ + 14704 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14705 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-3] -2 BIT POSITIONS AND + 14706 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 14707 ;[XWD -1,-1] + 14708 + 14709 041232 200 06 0 00 041616 E22400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14710 041233 200 07 0 00 041630 MOVE AC+1,[XWD -1,-3] ;INITIALIZE AC+1 + 14711 041234 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14712 041235 312 06 0 00 041626 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 14713 041236 003 06 0 00 022401 ER3 AC,22401 ;RESULT IN AC IS INCORRECT + 14714 041237 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14715 041240 004 07 0 00 022401 ER4 AC+1,22401 ;RESULT IN AC+1 IS INCORRECT + 14716 041241 321 10 0 00 041232 JUMPL AC+2,E22400 ;LOOP ON ERROR SWITCH^ + 14717 + 14718 ;SHIFT CONNECTIONS TEST + 14719 ;TEST AR1 SHRT INP-ONE'S - ROTC AC,-2 + 14720 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14721 SR2 (225,0,0,0,1,200000,0,0,0,ROTC,-2)^ + 14722 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14723 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,1] -2 BIT POSITIONS AND + 14724 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 14725 ;[XWD 0,0] + 14726 + 14727 041242 200 06 0 00 041615 E22500: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14728 041243 200 07 0 00 041625 MOVE AC+1,[XWD 0,1] ;INITIALIZE AC+1 + 14729 041244 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14730 041245 312 06 0 00 041632 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 14731 041246 003 06 0 00 022501 ER3 AC,22501 ;RESULT IN AC IS INCORRECT + 14732 041247 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14733 041250 004 07 0 00 022501 ER4 AC+1,22501 ;RESULT IN AC+1 IS INCORRECT + 14734 041251 321 10 0 00 041242 JUMPL AC+2,E22500 ;LOOP ON ERROR SWITCH^ + 14735 + 14736 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 41-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0322 + + 14737 ;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-2 + 14738 ;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + 14739 SR2 (226,-1,-1,-1,-2,577777,-1,-1,-1,ROTC,-2)^ + 14740 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14741 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-2] -2 BIT POSITIONS AND + 14742 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 577777,-1] AND + 14743 ;[XWD -1,-1] + 14744 + 14745 041252 200 06 0 00 041616 E22600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14746 041253 200 07 0 00 041627 MOVE AC+1,[XWD -1,-2] ;INITIALIZE AC+1 + 14747 041254 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14748 041255 312 06 0 00 041634 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 14749 041256 003 06 0 00 022601 ER3 AC,22601 ;RESULT IN AC IS INCORRECT + 14750 041257 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14751 041260 004 07 0 00 022601 ER4 AC+1,22601 ;RESULT IN AC+1 IS INCORRECT + 14752 041261 321 10 0 00 041252 JUMPL AC+2,E22600 ;LOOP ON ERROR SWITCH^ + 14753 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 41-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0323 + + 14754 ;SHIFT CONNECTIONS TEST + 14755 ;TEST AR34 SHRT INP-ONE'S - ROTC AC,-2 + 14756 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14757 SR2 (227,0,10,0,0,0,2,0,0,ROTC,-2)^ + 14758 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14759 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,0] -2 BIT POSITIONS AND + 14760 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 14761 ;[XWD 0,0] + 14762 + 14763 041262 200 06 0 00 041617 E22700: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 14764 041263 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14765 041264 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14766 041265 312 06 0 00 041623 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 14767 041266 003 06 0 00 022701 ER3 AC,22701 ;RESULT IN AC IS INCORRECT + 14768 041267 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14769 041270 004 07 0 00 022701 ER4 AC+1,22701 ;RESULT IN AC+1 IS INCORRECT + 14770 041271 321 10 0 00 041262 JUMPL AC+2,E22700 ;LOOP ON ERROR SWITCH^ + 14771 + 14772 ;SHIFT CONNECTIONS TEST + 14773 ;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-2 + 14774 ;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + 14775 SR2 (230,-1,-11,-1,-1,-1,-3,-1,-1,ROTC,-2)^ + 14776 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14777 ;DATA SPECIFIED IN [XWD -1,-11] AND [XWD -1,-1] -2 BIT POSITIONS AND + 14778 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 14779 ;[XWD -1,-1] + 14780 + 14781 041272 200 06 0 00 041636 E23000: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 14782 041273 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14783 041274 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14784 041275 312 06 0 00 041630 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 14785 041276 003 06 0 00 023001 ER3 AC,23001 ;RESULT IN AC IS INCORRECT + 14786 041277 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14787 041300 004 07 0 00 023001 ER4 AC+1,23001 ;RESULT IN AC+1 IS INCORRECT + 14788 041301 321 10 0 00 041272 JUMPL AC+2,E23000 ;LOOP ON ERROR SWITCH^ + 14789 + 14790 ;SHIFT CONNECTIONS TEST + 14791 ;TEST AR35 SHRT INP-ONE'S - ROTC AC,-2 + 14792 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14793 SR2 (231,0,4,0,0,0,1,0,0,ROTC,-2)^ + 14794 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14795 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -2 BIT POSITIONS AND + 14796 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 14797 ;[XWD 0,0] + 14798 + 14799 041302 200 06 0 00 041622 E23100: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 14800 041303 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14801 041304 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14802 041305 312 06 0 00 041625 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 14803 041306 003 06 0 00 023101 ER3 AC,23101 ;RESULT IN AC IS INCORRECT + 14804 041307 312 07 0 00 041615 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 14805 041310 004 07 0 00 023101 ER4 AC+1,23101 ;RESULT IN AC+1 IS INCORRECT + 14806 041311 321 10 0 00 041302 JUMPL AC+2,E23100 ;LOOP ON ERROR SWITCH^ + 14807 + 14808 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 41-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0324 + + 14809 ;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-2 + 14810 ;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + 14811 SR2 (232,-1,-5,-1,-1,-1,-2,-1,-1,ROTC,-2)^ + 14812 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14813 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -2 BIT POSITIONS AND + 14814 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 14815 ;[XWD -1,-1] + 14816 + 14817 041312 200 06 0 00 041635 E23200: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 14818 041313 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14819 041314 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14820 041315 312 06 0 00 041627 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 14821 041316 003 06 0 00 023201 ER3 AC,23201 ;RESULT IN AC IS INCORRECT + 14822 041317 312 07 0 00 041616 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 14823 041320 004 07 0 00 023201 ER4 AC+1,23201 ;RESULT IN AC+1 IS INCORRECT + 14824 041321 321 10 0 00 041312 JUMPL AC+2,E23200 ;LOOP ON ERROR SWITCH^ + 14825 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 42 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0325 + + 14826 ;SHIFT CONNECTIONS TEST + 14827 ;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-2 + 14828 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14829 SR2 (233,0,2,0,0,0,0,400000,0,ROTC,-2)^ + 14830 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14831 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -2 BIT POSITIONS AND + 14832 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14833 ;[XWD 400000,0] + 14834 + 14835 041322 200 06 0 00 041623 E23300: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 14836 041323 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14837 041324 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14838 041325 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14839 041326 003 06 0 00 023301 ER3 AC,23301 ;RESULT IN AC IS INCORRECT + 14840 041327 312 07 0 00 041624 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 14841 041330 004 07 0 00 023301 ER4 AC+1,23301 ;RESULT IN AC+1 IS INCORRECT + 14842 041331 321 10 0 00 041322 JUMPL AC+2,E23300 ;LOOP ON ERROR SWITCH^ + 14843 + 14844 ;SHIFT CONNECTIONS TEST + 14845 ;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-2 + 14846 ;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + 14847 SR2 (234,-1,-3,-1,-1,-1,-1,377777,-1,ROTC,-2)^ + 14848 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14849 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -2 BIT POSITIONS AND + 14850 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14851 ;[XWD 377777,-1] + 14852 + 14853 041332 200 06 0 00 041630 E23400: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 14854 041333 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14855 041334 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14856 041335 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14857 041336 003 06 0 00 023401 ER3 AC,23401 ;RESULT IN AC IS INCORRECT + 14858 041337 312 07 0 00 041626 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 14859 041340 004 07 0 00 023401 ER4 AC+1,23401 ;RESULT IN AC+1 IS INCORRECT + 14860 041341 321 10 0 00 041332 JUMPL AC+2,E23400 ;LOOP ON ERROR SWITCH^ + 14861 + 14862 ;SHIFT CONNECTIONS TEST + 14863 ;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-2 + 14864 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14865 SR2 (235,0,1,0,0,0,0,200000,0,ROTC,-2)^ + 14866 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14867 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] -2 BIT POSITIONS AND + 14868 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14869 ;[XWD 200000,0] + 14870 + 14871 041342 200 06 0 00 041625 E23500: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 14872 041343 200 07 0 00 041615 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 14873 041344 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14874 041345 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14875 041346 003 06 0 00 023501 ER3 AC,23501 ;RESULT IN AC IS INCORRECT + 14876 041347 312 07 0 00 041632 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 14877 041350 004 07 0 00 023501 ER4 AC+1,23501 ;RESULT IN AC+1 IS INCORRECT + 14878 041351 321 10 0 00 041342 JUMPL AC+2,E23500 ;LOOP ON ERROR SWITCH^ + 14879 + 14880 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 42-1 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0326 + + 14881 ;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-2 + 14882 ;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + 14883 SR2 (236,-1,-2,-1,-1,-1,-1,577777,-1,ROTC,-2)^ + 14884 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14885 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] -2 BIT POSITIONS AND + 14886 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14887 ;[XWD 577777,-1] + 14888 + 14889 041352 200 06 0 00 041627 E23600: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 14890 041353 200 07 0 00 041616 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 14891 041354 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14892 041355 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14893 041356 003 06 0 00 023601 ER3 AC,23601 ;RESULT IN AC IS INCORRECT + 14894 041357 312 07 0 00 041634 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 14895 041360 004 07 0 00 023601 ER4 AC+1,23601 ;RESULT IN AC+1 IS INCORRECT + 14896 041361 321 10 0 00 041352 JUMPL AC+2,E23600 ;LOOP ON ERROR SWITCH^ + 14897 PAGE +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 42-2 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0327 + + 14898 ;SHIFT CONNECTIONS TEST + 14899 ;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-2 + 14900 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14901 SR2 (237,0,0,0,10,0,0,0,2,ROTC,-2)^ + 14902 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14903 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,10] -2 BIT POSITIONS AND + 14904 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14905 ;[XWD 0,2] + 14906 + 14907 041362 200 06 0 00 041615 E23700: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14908 041363 200 07 0 00 041617 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 14909 041364 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14910 041365 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14911 041366 003 06 0 00 023701 ER3 AC,23701 ;RESULT IN AC IS INCORRECT + 14912 041367 312 07 0 00 041623 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 14913 041370 004 07 0 00 023701 ER4 AC+1,23701 ;RESULT IN AC+1 IS INCORRECT + 14914 041371 321 10 0 00 041362 JUMPL AC+2,E23700 ;LOOP ON ERROR SWITCH^ + 14915 + 14916 ;SHIFT CONNECTIONS TEST + 14917 ;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-2 + 14918 ;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + 14919 SR2 (240,-1,-1,-1,-11,-1,-1,-1,-3,ROTC,-2)^ + 14920 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14921 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-11] -2 BIT POSITIONS AND + 14922 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14923 ;[XWD -1,-3] + 14924 + 14925 041372 200 06 0 00 041616 E24000: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14926 041373 200 07 0 00 041636 MOVE AC+1,[XWD -1,-11] ;INITIALIZE AC+1 + 14927 041374 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14928 041375 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14929 041376 003 06 0 00 024001 ER3 AC,24001 ;RESULT IN AC IS INCORRECT + 14930 041377 312 07 0 00 041630 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 14931 041400 004 07 0 00 024001 ER4 AC+1,24001 ;RESULT IN AC+1 IS INCORRECT + 14932 041401 321 10 0 00 041372 JUMPL AC+2,E24000 ;LOOP ON ERROR SWITCH^ + 14933 + 14934 ;SHIFT CONNECTIONS TEST + 14935 ;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-2 + 14936 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14937 SR2 (241,0,0,0,4,0,0,0,1,ROTC,-2)^ + 14938 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14939 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -2 BIT POSITIONS AND + 14940 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 14941 ;[XWD 0,1] + 14942 + 14943 041402 200 06 0 00 041615 E24100: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 14944 041403 200 07 0 00 041622 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 14945 041404 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14946 041405 312 06 0 00 041615 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 14947 041406 003 06 0 00 024101 ER3 AC,24101 ;RESULT IN AC IS INCORRECT + 14948 041407 312 07 0 00 041625 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 14949 041410 004 07 0 00 024101 ER4 AC+1,24101 ;RESULT IN AC+1 IS INCORRECT + 14950 041411 321 10 0 00 041402 JUMPL AC+2,E24100 ;LOOP ON ERROR SWITCH^ + 14951 + 14952 ;SHIFT CONNECTIONS TEST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 42-3 +DAKAIM MAC 20-JAN-77 10:36 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) SEQ 0328 + + 14953 ;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-2 + 14954 ;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + 14955 SR2 (242,-1,-1,-1,-5,-1,-1,-1,-2,ROTC,-2)^ + 14956 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 14957 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -2 BIT POSITIONS AND + 14958 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 14959 ;[XWD -1,-2] + 14960 + 14961 041412 200 06 0 00 041616 E24200: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 14962 041413 200 07 0 00 041635 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 14963 041414 245 06 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 14964 041415 312 06 0 00 041616 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 14965 041416 003 06 0 00 024201 ER3 AC,24201 ;RESULT IN AC IS INCORRECT + 14966 041417 312 07 0 00 041627 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 14967 041420 004 07 0 00 024201 ER4 AC+1,24201 ;RESULT IN AC+1 IS INCORRECT + 14968 041421 321 10 0 00 041412 JUMPL AC+2,E24200 ;LOOP ON ERROR SWITCH^ + 14969 + 14970 041422 254 00 0 00 030057 LAST1: JRST BEGEND +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0329 + + 14971 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + 14972 + 14973 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + 14974 + 14975 041423 202 00 0 00 041767 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + 14976 IFDEF EXCASB,> + 14983 041424 202 01 0 00 041770 MOVEM 1,%ERAC1# ;SAVE AC1 + 14984 041425 202 02 0 00 041771 MOVEM 2,%ERAC2# ;SAVE AC2 + 14985 041426 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS + 14986 041427 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 14987 041430 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + 14988 041431 350 00 0 00 041764 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + 14989 041432 200 00 0 00 041764 MOVE 0,MICNT + 14990 041433 504 00 0 00 030114 HRL 0,$SVUPC + 14991 041434 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 + 14992 041435 332 00 0 00 030037 SKIPE USER ;AND NOT USER? + 14993 041436 254 00 0 00 041440 JRST .+2 + 14994 041437 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + 14995 041440 402 00 0 00 041765 SETZM PROCED# ;CLEAR PROCEED FLAG + 14996 041441 037 10 0 00 000002 SWITCH + 14997 041442 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? + 14998 041443 254 00 0 00 041556 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + 14999 041444 200 01 0 00 030113 MOVE 1,$SVUUO + 15000 041445 242 01 0 00 777745 LSH 1,-^D27 + 15001 041446 202 01 0 00 041766 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + 15002 041447 200 00 0 00 041767 MOVE 0,%ERAC0 + 15003 041450 200 01 0 00 041770 MOVE 1,%ERAC1 + 15004 041451 335 00 1 00 041763 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + 15005 041452 254 00 0 00 041610 JRST %ERRS4 ;NO, SEE IF PRINT ALL + 15006 041453 402 00 0 00 041764 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + 15007 041454 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? + 15008 041455 254 00 0 00 041461 JRST .+4 ;NO, DON'T NEED TITLE + 15009 041456 336 00 0 00 041772 SKIPN %ERFST# ;FIRST ERROR ? + 15010 041457 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE + 15011 041460 476 00 0 00 041772 SETOM %ERFST + 15012 041461 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? + 15013 041462 254 00 0 00 041466 JRST .+4 ;YES + 15014 PMSG <^TEST PASS COUNT = >^ + 15015 041463 037 02 0 00 041651 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ + 15016 041464 200 00 0 00 030047 MOVE PASCNT + 15017 041465 037 15 0 00 000000 PNTDEC + 15018 PMSG <^PC = >^ + 15019 041466 037 02 0 00 041655 PSIXM [SIXBIT\^PC = _\]^ + 15020 041467 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 15021 041470 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE + 15022 041471 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS + 15023 XLIST + 15024 IFDEF ERDIAG,^ + 15030 041472 037 02 0 00 041657 PSIXM [SIXBIT\^RESULT = _\]^ + 15031 041473 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO + 15032 041474 242 01 0 00 777751 LSH 1,-27 + 15033 041475 405 01 0 00 000017 ANDI 1,17 + 15034 041476 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 15035 041477 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ? + 15036 041500 200 00 0 01 041767 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 15037 041501 037 13 0 00 000000 PNTHW ;PRINT C(AC) + 15038 + 15039 041502 200 00 0 00 030046 MOVE CONSW + 15040 041503 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? + 15041 041504 254 00 0 00 041553 JRST %ERMORE ;NO, RESTORE AC'S ETC. + 15042 + 15043 ;PRINT FAILURE DESCRIPTOR + 15044 + 15045 041505 200 01 0 00 041766 MOVE 1,%ACS1A ;GET UUO NUMBER + 15046 041506 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ? + 15047 041507 254 00 0 00 041513 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER + 15048 041510 037 00 0 00 030242 PCRL + 15049 041511 200 00 0 01 041537 MOVE %FLTTB(1) + 15050 041512 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR + 15051 + 15052 ;PRINT FAULT NUMBER + 15053 + 15054 041513 %ERMS3: PMSG <^FAULT NUMBER = >^ + 15055 041513 037 02 0 00 041661 PSIXM [SIXBIT\^FAULT NUMBER = _\]^ + 15056 041514 201 00 0 00 041536 MOVEI TLET + 15057 041515 037 00 0 00 000000 PNTA ;PRINT TEST LETTER +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 3 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0331 + + 15058 + 15059 041516 550 00 0 00 030113 HRRZ $SVUUO + 15060 041517 602 00 0 00 700000 TRNE 700000 + 15061 041520 254 00 0 00 041534 JRST %ER6X + 15062 041521 602 00 0 00 070000 TRNE 070000 + 15063 041522 254 00 0 00 041532 JRST %ER5X + 15064 041523 602 00 0 00 007000 TRNE 007000 + 15065 041524 254 00 0 00 041530 JRST %ER4X + 15066 041525 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER + 15067 041526 037 00 0 00 030242 %ER7X: PCRL + 15068 041527 254 00 0 00 041553 JRST %ERMORE + 15069 + 15070 041530 037 04 0 00 000000 %ER4X: PNT4 + 15071 041531 254 00 0 00 041526 JRST %ER7X + 15072 041532 037 05 0 00 000000 %ER5X: PNT5 + 15073 041533 254 00 0 00 041526 JRST %ER7X + 15074 041534 037 06 0 00 000000 %ER6X: PNT6 + 15075 041535 254 00 0 00 041526 JRST %ER7X + 15076 + 15077 ;FAILURE DESCRIPTORS + 15078 + 15079 041536 000000 000000 TLET: 0 ;TEST LETTER + 15080 041537 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE + 15081 041540 000000 041615 %NODES: [0] ;NO DESCRIPTOR + 15082 041541 000000 041615 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR + 15083 041542 000000 041664 $ACF: [ASCIZ/C(AC) FAILED/] + 15084 041543 000000 041667 %AC1F: [ASCIZ/C(AC+1) FAILED/] + 15085 041544 000000 041672 %EF: [ASCIZ/C(E) FAILED/] + 15086 041545 000000 041675 %E1F: [ASCIZ/C(E+1) FAILED/] + 15087 041546 000000 041700 %ARF: [ASCIZ/C(C(ACR)) FAILED/] + 15088 041547 000000 041704 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] + 15089 041550 000000 041710 %ALF: [ASCIZ/C(C(ACL)) FAILED/] + 15090 041551 000000 041714 %EEF: [ASCIZ/C(C(E)) FAILED/] + 15091 041552 000000 041717 %FF: [ASCIZ/FLAG FAILED/] + 15092 > + 15093 XLIST + 15094 LIST +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 8 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0332 + + 15095 ;RESTORE AC'S AND RETURN OR HALT + 15096 + 15097 041553 256 00 0 00 030101 %ERMORE:XCT ERMORE + 15098 041554 037 16 0 00 000002 PNTMGN ;PRINT MARGINS + 15099 041555 037 10 0 00 000002 SWITCH + 15100 + 15101 041556 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK + 15102 041557 254 00 0 00 041563 JRST .+4 ;NONE + 15103 041560 201 00 0 00 041563 MOVEI .+3 ;SAVE CONT ADDRESS + 15104 041561 202 00 0 00 000130 MOVEM JOBOPC + 15105 041562 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER + 15106 041563 200 00 0 00 030046 MOVE CONSW + 15107 041564 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + 15108 041565 037 14 0 00 000004 ERRHLT ;YES + 15109 041566 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + 15110 041567 476 00 0 00 041765 SETOM PROCED ;NO, SET THE PROCEED FLAG + 15111 041570 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? + 15112 041571 037 01 0 00 000007 PBELL ;YES, GO RING BELL + 15113 + 15114 041572 200 02 0 00 041771 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + 15115 041573 200 01 0 00 041770 MOVE 1,%ERAC1 + 15116 041574 476 00 1 00 041763 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + 15117 041575 336 00 0 00 041765 SKIPN PROCED ;LOOP ON ERROR ? + 15118 041576 254 00 0 00 041606 JRST %ERRS5 ;YES + 15119 041577 350 00 1 00 041763 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + 15120 041600 350 00 1 00 041763 AOS @ERRLOP ;SO IT ='S 1 + 15121 041601 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + 15122 041602 254 00 0 00 041606 JRST %ERRS5 ;NO, CONTINUE PROGRAM + 15123 041603 200 00 0 00 030053 MOVE 0,ERRTLS ;YES + 15124 041604 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + 15125 041605 254 00 0 00 030061 JRST $BEND2 + 15126 + 15127 041606 200 00 0 00 041767 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + 15128 IFDEF EXCASB,> + 15135 041607 254 00 0 00 030065 JRST UUOEXT + 15136 + 15137 041610 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW + 15138 041611 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? + 15139 041612 254 00 0 00 041556 JRST %ERRS1 ;NO + 15140 041613 254 00 0 00 041453 JRST %ERMS1 ;YES +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0333 + + 15141 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 15142 + 15143 ;PROGRAM LITERALS + 15144 + 15145 XLIST + 15146 IFNDEF $LPAPER, + 15147 041614 LIT + 15148 041614 101 111 000 000 000 + 15149 041615 000000 000000 + 15150 041616 777777 777777 + 15151 041617 000000 000010 + 15152 041620 741703 607417 + 15153 041621 000000 000020 + 15154 041622 000000 000004 + 15155 041623 000000 000002 + 15156 041624 400000 000000 + 15157 041625 000000 000001 + 15158 041626 377777 777777 + 15159 041627 777777 777776 + 15160 041630 777777 777775 + 15161 041631 100000 000000 + 15162 041632 200000 000000 + 15163 041633 677777 777777 + 15164 041634 577777 777777 + 15165 041635 777777 777773 + 15166 041636 777777 777767 + 15167 041637 777777 777774 + 15168 041640 577777 777776 + 15169 041641 377777 777776 + 15170 041642 177777 777777 + 15171 041643 377777 777775 + 15172 041644 177777 777775 + 15173 041645 177777 777776 + 15174 041646 600000 000000 + 15175 041647 700000 000000 + 15176 041650 077777 777777 + 15177 041651 76 64 45 63 64 00 + 15178 041652 60 41 63 63 00 43 + 15179 041653 57 65 56 64 00 35 + 15180 041654 00 77 00 00 00 00 + 15181 041655 76 60 43 00 35 00 + 15182 041656 00 00 77 00 00 00 + 15183 041657 76 62 45 63 65 54 + 15184 041660 64 00 00 35 00 77 + 15185 041661 76 46 41 65 54 64 + 15186 041662 00 56 65 55 42 45 + 15187 041663 62 00 35 00 77 00 + 15188 041664 103 050 101 103 051 + 15189 041665 040 106 101 111 114 + 15190 041666 105 104 000 000 000 + 15191 041667 103 050 101 103 053 + 15192 041670 061 051 040 106 101 + 15193 041671 111 114 105 104 000 + 15194 041672 103 050 105 051 040 + 15195 041673 106 101 111 114 105 +DAKAI PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (9) 0,2 MACRO %52(537) 10:41 20-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0334 + + 15196 041674 104 000 000 000 000 + 15197 041675 103 050 105 053 061 + 15198 041676 051 040 106 101 111 + 15199 041677 114 105 104 000 000 + 15200 041700 103 050 103 050 101 + 15201 041701 103 122 051 051 040 + 15202 041702 106 101 111 114 105 + 15203 041703 104 000 000 000 000 + 15204 041704 103 050 103 050 101 + 15205 041705 103 122 053 061 051 + 15206 041706 051 040 106 101 111 + 15207 041707 114 105 104 000 000 + 15208 041710 103 050 103 050 101 + 15209 041711 103 114 051 051 040 + 15210 041712 106 101 111 114 105 + 15211 041713 104 000 000 000 000 + 15212 041714 103 050 103 050 105 + 15213 041715 051 051 040 106 101 + 15214 041716 111 114 105 104 000 + 15215 041717 106 114 101 107 040 + 15216 041720 106 101 111 114 105 + 15217 041721 104 000 000 000 000 + 15218 LIST + 15219 041722 000000 000000 ENDSLD: 0 + 15220 + 15221 IFDEF DEBUG,< + 15222 041723 PATCH: BLOCK DEBUG ;PATCHING AREA + 15223 > + 15224 + 15225 ;PROGRAM VARIABLES + 15226 041763 VAR + 15227 + 15228 IFDEF PGMEND,< + 15229 041773 000000 000000 END: 0 + 15230 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 041774 +CPU TIME USED 01:03.688 + +11K CORE USED diff --git a/apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt b/apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt new file mode 100644 index 000000000..b9c5e8aee --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt @@ -0,0 +1,1876 @@ +;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,&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,&17 ;SETUP AC-2 FOR COMPARISON + MOVEI AC,XX ;SETUP AC RIGHT + HRLI AC,XX ;SETUP AC LEFT + MOVEM AC,&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> + +EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE + ;EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #9 SHIFT-ROTATE [DAKAI] +/ + +TESTPC: 0 ;SUBTEST PC + +;INITIALIZE SUBROUTINES + + LOC 30623 + +START: ;PGMINT + ;MOVE [ASCIZ/AI/] + ;MOVEM TLET + +STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC +SUBTTL DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS + +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF ROT, ROTC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY ROTATING ZERO TIMES ALL +;ZERO'S, ALL ONE'S. +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT ROTATING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + + AC=1 +E00: SAVEAC (1,1) + +E100: SETZ AC, ;CLEAR AC + ROT AC,0 ;*ROTATE LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,101 ;FETCH OR STORE FAILED + JUMPL AC+2,E100 ;LOOP ON ERROR SWITCH + +E200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + ROT AC,0 ;*ROTATE LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,201 ;FETCH OR STORE FAILED + JUMPL AC+2,E200 ;LOOP ON ERROR SWITCH + + AC=2 + SAVEAC (1,1) + +E300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,301 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR ZERO + ER4 AC+1,301 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E300 ;LOOP ON ERROR SWITCH + +E400: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,401 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + ER4 AC+1,401 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E400 ;LOOP ON ERROR SWITCH +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF LSH, LSHC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL +;ZERO'S ALL ONE'S +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT SHIFTING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + AC=3 + SAVEAC (1,1) + +E500: SETZ AC, ;CLEAR AC + LSH AC,0 ;*SHIFT LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,501 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E500 ;LOOP ON ERROR SWITCH + +E600: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + LSH AC,0 ;*SHIFT LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR -1 + ER3 AC,601 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E600 ;LOOP ON ERROR SWITCH + + AC=14 + SAVEAC (1,1) + +E700: SETZB AC,AC+1 ;CLEAR AC,AC+1 + LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR 0 + ER3 AC,701 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR 0 + ER4 AC+1,701 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E700 ;LOOP ON ERROR SWITCH + +E1000: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR -1 + ER3 AC,1001 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR -1 + ER4 AC+1,1001 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1000 ;LOOP ON ERROR SWITCH +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF ASH, ASHC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL +;ZERO'S ALL ONES +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT SHIFTING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + AC=13 + SAVEAC (1,1) + +E1100: SETZ AC, ;CLEAR AC + ASH AC,0 ;*SHIFT LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,1101 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E1100 ;LOOP ON ERROR SWITCH + +E1200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + ASH AC,0 ;*SHIFT LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,1201 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E1200 ;LOOP ON ERROR SWITCH + + AC=12 + SAVEAC (1,1) + +E1300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR 0 + ER3 AC,1301 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR 0 + ER4 AC+1,1301 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1300 ;LOOP ON ERROR SWITCH + +E1400: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,1401 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + ER4 AC+1,1401 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1400 ;LOOP ON ERROR SWITCH +SUBTTL DIAGNOSTIC SECTION - CHECK SIGN BIT OF AC+1 FOR ASHC + +;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC +;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. +;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. +;CHECK THIS WHEN THE SIGN BIT OF AC IS ZERO AND THE SIGN BIT OF AC+1 IS ONE. + + SR2 (443,0,0,-1,-1,0,0,-1,-1,ASHC,0) + +;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC +;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. +;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. +;CHECK THIS WHEN THE SIGN BIT OF AC IS ONE AND THE SIGN BIT OF AC+1 IS ZERO. + SR2 (444,-1,-1,0,0,-1,-1,0,0,ASHC,0) +SUBTTL DIAGNOSTIC SECTION - TEST MQ-ADDER GATING + + AC=10 + SAVEAC (1,1) + +SN=1500 + ZZ=0 + ;CHECK AC+1 RIGHT < +E1500: REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ ;TESTED BIT + IFE ZZ, + SETZM AC ;CLEAR AC + MOVEI AC+1,ZZ ;INITIALIZE AC+1 + ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +ZZ=0 + ;CHECK AC+1 LEFT < + REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ ;TESTED BIT + IFE ZZ, + SETZM AC ;CLEAR AC + MOVSI AC+1,ZZ ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=7 + SAVEAC (1,1) + +SN=1600 + + ZZ=0 + + ;CHECK AC+1 RIGHT < +E1600: REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 +;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ+1 ;TESTED BIT + IFE ZZ, + SETOM AC ;INITIALIZE TO ALL ONES + HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +ZZ=0 + ;CHECK AC+1 LEFT < + REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 +;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ+1 ;TESTED BIT + IFE ZZ, + SETOM AC ;INITIALIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) + +;BASIC SHIFT TEST +;TEST ABILITY TO SHIFT A BIT 0,1,-1 AND -2 POSITIONS + + AC=4 + SAVEAC (1,1) + +;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSH + SR1 (17,0,10,0,10,LSH,0) + +;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSH + SR1 (20,0,10,0,20,LSH,1) + +;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSH + SR1 (442,0,10,0,4,LSH,-1) + +;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSH + SR1 (21,0,10,0,2,LSH,-2) +PAGE +;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSHC + SR2 (22,0,10,0,10,0,10,0,10,LSHC,0) + +;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSHC + SR2 (23,0,10,0,10,0,20,0,20,LSHC,1) + +;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSHC + SR2 (24,0,10,0,10,0,4,0,4,LSHC,-1) + +;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSHC + SR2 (25,0,10,0,10,0,2,0,2,LSHC,-2) +SUBTTL DIAGNOSTIC SECTION - TEST SAC FUNCTION + + AC=10 + SAVEAC (1,1) + +SN=2600 + ZZ=1 + + ;TEST SAC +E2600: REPEAT ^D3,< +SN=SN+1 +;FURTHER TEST OF SAC,SAC2 +;TEST FOR ASSERTION OF SAC INH +;TEST ASSUMES ABILITY TO ROTATE +;TO SOME DEGREE + ZZ=ZZ+ZZ + HRRZI AC,400000 ;SET BIT 18 + ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + CAIN AC,400000 ;TEST FOR SAC + ER3 AC,SN ;STORE AC FAILED + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=2700 + ZZ=1 + + ;TEST SAC +E2700: REPEAT ^D3,< +SN=SN+1 +;FURTHER TEST OF SAC,SAC2 +;TEST FOR ASSERTION OF SAC INH +;TEST ASSUMES ABILITY TO ROTATE +;TO SOME DEGREE + + ZZ=ZZ+ZZ + SETZ AC, ;CLEAR AC + HRRZI AC+1,400000 ;SET BIT 18 + ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + CAIN AC+1,400000 ;TEST FOR SAC + ER4 AC+1,SN ;STORE AC+1 FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR + +;TEST ROT LEFT ONE BIT POSITION USING ALL ZEROS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=11 + SAVEAC (1,1) + +E3000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,3001 ;AD-AR GATING FAILED + JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH + +;TEST ROT LEFT ONE BIT POSITION USING ALL ONES +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E3100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ONES + ER3 AC,3101 ;AD-AR GATING FAILED + JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH +SN=3200 + ZZ=0 + + ;TEST AC RIGHT HALF < +E3200: REPEAT ^D18,< +;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT +;IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,1 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC LEFT HALF < + REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFN ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,1 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=3300 + ZZ=0 + + ;TEST AC RIGHT HALF< +E3300: REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFN <&377777>,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE <&777777>,< + HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + ;TEST AC LEFT HALF< + REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFN <&777777>,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE <&777777>,< + HRROI AC-1,-2 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD. +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=10 + SAVEAC (1,1) + +E3400: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,3401 ;AD-AR GATING FAILED + JUMPL AC+2,E3400 ;LOOP ON ERROR SWITCH + +;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E3500: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ONES. + ER3 AC,3501 ;AD-AR GATING FAILED + JUMPL AC+2,E3500 ;LOOP ON ERROR SWITCH +SN=3600 + ZZ=0 + + ;TEST AC LEFT HALF< +E3600: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER +;BIT IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFN ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=3700 + ZZ=1 + + ;TEST AC LEFT HALF< +E3700: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFN ,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFN ,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +;TEST ROT RIGHT TWO BIT POSITIONS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=7 + SAVEAC (1,1) + +E4000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,4001 ;AD-AR GATING FAILED + JUMPL AC+2,E4000 ;LOOP ON ERROR SWITCH + +;TEST ROT RIGHT TWO BIT POSITIONS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E4100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST AC FOR ALL ONES. + ER3 AC,4101 ;AD-AR GATING FAILED + JUMPL AC+2,E4100 ;LOOP ON ERROR SWITCH + +SN=4200 + ZZ=0 + + ;TEST AC LEFT HALF< +E4200: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER +;BIT IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFG ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC RIGHT HALF < + REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFG ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=4300 + ZZ=1 + + ;TEST AC LEFT HALF< +E4300: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFL ,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,577777 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFL ,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES + +;TEST ROTC LEFT ONE BIT POSITION USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=10 + SAVEAC (1,1) + +E4400: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,4401 ;MQ GATING FAILED + JUMPL AC+2,E4400 ;LOOP ON ERROR SWITCH + +;TEST ROTC LEFT ONE BIT POSITION USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + +E4500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,4501 ;MQ GATING FAILED + JUMPL AC+2,E4500 ;LOOP ON ERROR SWITCH +SN=4600 + ZZ=0 + + ;TEST AC+1 RIGHT HALF < +E4600: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITILAIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,1 ;SETUP FOR COMPARISON> + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + + ZZ=0 + + ;TEST AC+1 LEFT HALF < + REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + MOVSI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=4700 + ZZ=0 + ;TEST AC+1 RIGHT HALF < +E4700: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY +;OTHER BIT IA A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + IFN &777777,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC+1 LEFT HALF < + REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +;OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITAILIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRLOI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER4 AC+1, ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +;TEST ROTC RIGHT ONE BIT POSITION USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=7 + SAVEAC (1,1) + +E5000: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,5001 ;MQ GRTING FAILED + JUMPL AC+2,E5000 ;LOOP ON ERROR SWITCH + +;TEST ROTC,RIGHT ONE BIT POSITION USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NONZERO AFTER ROTATING + +E5100: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,5101 ;MQ GATING FAILED + JUMPL AC+2,E5100 ;LOOP ON ERROR SWITCH +SN=5200 + ZZ=0 + ;TEST AC+1 LEFT HALF< +E5200: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES + +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + IFN , < + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. +> +PAGE + ZZ=0 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + MOVEI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=5300 + ZZ=1 + + ;TEST AC+1 LEFT HALF< +E5300: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL CNES + HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + IFN &777777,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. +> +PAGE + ZZ=1 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE, + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL CNES + HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRROI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=6 + SAVEAC (1,1) +E5400: + SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,5401 ;MQ GATING FAILED + JUMPL AC+2,E5400 ;LOOP ON ERROR SWITCH + +;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS ZERO AFTER ROTATING + +E5500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,5501 ;MQ GATING FAILED + JUMPL AC+2,E5500 ;LOOP ON ERROR SWITCH +SN=5600 + ZZ=0 + + ;TEST AC+1 LEFT HALF< +E5600: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + IFG ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + + MOVEI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=5700 + ZZ=1 + + ;TEST AC+1 LEFT HALF < +E5700: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE, + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + IFG &777777,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,577777 ;SETUP FOR COMPARISON> + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRROI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) + +;END CONNECTIONS-ROT +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS ROTATED LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (60,400000,0,0,1,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (61,377777,-1,-1,-2,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (62,0,1,0,2,ROT,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (63,-1,-2,-1,-3,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (64,100000,0,200000,0,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (65,677777,-1,577777,-1,ROT,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (66,200000,0,400000,0,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (67,577777,-1,377777,-1,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (70,0,1,400000,0,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (71,-1,-2,377777,-1,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (72,400000,0,200000,0,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (73,377777,-1,577777,-1,ROT,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (74,0,4,0,2,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (75,-1,-5,-1,-3,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (76,0,2,0,1,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (77,-1,-3,-1,-2,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (100,0,2,400000,0,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (101,-1,-3,377777,-1,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (102,0,1,200000,0,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (103,-1,-2,577777,-1,ROT,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (104,0,10,0,2,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (105,-1,-11,-1,-3,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (106,0,4,0,1,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (107,-1,-5,-1,-2,ROT,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) + +;END CONNECTIONS-LSH +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS SHIFTED LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (110,-1,-1,-1,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (111,0,1,0,2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (112,-1,-2,-1,-4,LSH,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (113,100000,0,200000,0,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (114,677777,-1,577777,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (115,200000,0,400000,0,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (116,577777,-1,377777,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (117,-1,-1,377777,-1,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (120,400000,0,200000,0,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (121,377777,-1,177777,-1,LSH,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (122,0,4,0,2,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (123,-1,-5,377777,-3,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (124,0,2,0,1,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (125,-1,-3,377777,-2,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (126,-1,-1,177777,-1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (127,-1,-1,177777,-1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (130,0,10,0,2,LSH,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (131,-1,-11,177777,-3,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (132,0,4,0,1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (133,-1,-5,177777,-2,LSH,-2) +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) + +;END CONNECTIONS-ASH +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS SHIFTD LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (134,-1,-1,-1,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (135,0,1,0,2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (136,-1,-2,-1,-4,ASH,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (137,100000,0,200000,0,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (140,677777,-1,577777,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (141,400000,0,400000,0,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (142,377777,-1,377777,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (143,400000,0,600000,0,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (144,377777,-1,177777,-1,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (145,400000,0,600000,0,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (146,377777,-1,177777,-1,ASH,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (147,0,4,0,2,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (150,-1,-5,-1,-3,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (151,0,2,0,1,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (152,-1,-3,-1,-2,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (153,400000,0,700000,0,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (154,377777,-1,077777,-1,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (155,400000,0,700000,0,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (156,377777,-1,077777,-1,ASH,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (157,0,10,0,2,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (160,-1,-11,-1,-3,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (161,0,4,0,1,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (162,-1,-5,-1,-2,ASH,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) + +;END CONNECTIONS-ROTC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF ROTATING 1,-1 AND -2 BIT POSITIONS CORRECTLY + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (163,400000,0,0,0,0,0,0,1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (164,377777,-1,-1,-1,-1,-1,-1,-2,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (165,0,0,0,1,0,0,0,2,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (166,-1,-1,-1,-2,-1,-1,-1,-3,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (167,0,0,100000,0,0,0,200000,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (170,-1,-1,677777,-1,-1,-1,577777,-1,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (171,0,0,200000,0,0,0,400000,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (172,-1,-1,577777,-1,-1,-1,377777,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (173,0,0,400000,0,0,1,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (174,-1,-1,377777,-1,-1,-2,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (175,0,1,0,0,0,2,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (176,-1,-2,-1,-1,-1,-3,-1,-1,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (177,100000,0,0,0,200000,0,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (200,677777,-1,-1,-1,577777,-1,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (201,200000,0,0,0,400000,0,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (202,577777,-1,-1,-1,377777,-1,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (203,0,0,0,1,400000,0,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (204,-1,-1,-1,-2,377777,-1,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (205,400000,0,0,0,200000,0,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (206,377777,-1,-1,-1,577777,-1,-1,-1,ROTC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (207,0,4,0,0,0,2,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (210,-1,-5,-1,-1,-1,-3,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (211,0,2,0,0,0,1,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (212,-1,-3,-1,-1,-1,-2,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (213,0,1,0,0,0,0,400000,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (214,-1,-2,-1,-1,-1,-1,377777,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (215,0,0,400000,0,0,0,200000,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (216,-1,-1,377777,-1,-1,-1,577777,-1,ROTC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (217,0,0,0,4,0,0,0,2,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (220,-1,-1,-1,-5,-1,-1,-1,-3,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (221,0,0,0,2,0,0,0,1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (222,-1,-1,-1,-3,-1,-1,-1,-2,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (223,0,0,0,2,400000,0,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (224,-1,-1,-1,-3,377777,-1,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (225,0,0,0,1,200000,0,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (226,-1,-1,-1,-2,577777,-1,-1,-1,ROTC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (227,0,10,0,0,0,2,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (230,-1,-11,-1,-1,-1,-3,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (231,0,4,0,0,0,1,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (232,-1,-5,-1,-1,-1,-2,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (233,0,2,0,0,0,0,400000,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (234,-1,-3,-1,-1,-1,-1,377777,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (235,0,1,0,0,0,0,200000,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (236,-1,-2,-1,-1,-1,-1,577777,-1,ROTC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (237,0,0,0,10,0,0,0,2,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (240,-1,-1,-1,-11,-1,-1,-1,-3,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (241,0,0,0,4,0,0,0,1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (242,-1,-1,-1,-5,-1,-1,-1,-2,ROTC,-2) + +LAST1: ;JRST BEGEND + + END START diff --git a/apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt b/apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt new file mode 100644 index 000000000..f44b42c6c --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt @@ -0,0 +1,1733 @@ +EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #9 SHIFT-ROTATE [DAKAI] +/ + +;INITIALIZE SUBROUTINES + +START: PGMINT + MOVE [ASCIZ/AI/] + MOVEM TLET + +STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC +SUBTTL DIAGNOSTIC SECTION - TEST FETCH, STORE AND DECODE FUNCTIONS + +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF ROT, ROTC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY ROTATING ZERO TIMES ALL +;ZERO'S, ALL ONE'S. +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT ROTATING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + + AC=1 +E00: SAVEAC (1,1) + +E100: SETZ AC, ;CLEAR AC + ROT AC,0 ;*ROTATE LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,101 ;FETCH OR STORE FAILED + JUMPL AC+2,E100 ;LOOP ON ERROR SWITCH + +E200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + ROT AC,0 ;*ROTATE LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,201 ;FETCH OR STORE FAILED + JUMPL AC+2,E200 ;LOOP ON ERROR SWITCH + + AC=2 + SAVEAC (1,1) + +E300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,301 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR ZERO + ER4 AC+1,301 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E300 ;LOOP ON ERROR SWITCH + +E400: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + ROTC AC,0 ;*ROTATE COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,401 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + ER4 AC+1,401 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E400 ;LOOP ON ERROR SWITCH +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF LSH, LSHC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL +;ZERO'S ALL ONE'S +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT SHIFTING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + AC=3 + SAVEAC (1,1) + +E500: SETZ AC, ;CLEAR AC + LSH AC,0 ;*SHIFT LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,501 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E500 ;LOOP ON ERROR SWITCH + +E600: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + LSH AC,0 ;*SHIFT LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR -1 + ER3 AC,601 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E600 ;LOOP ON ERROR SWITCH + + AC=14 + SAVEAC (1,1) + +E700: SETZB AC,AC+1 ;CLEAR AC,AC+1 + LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR 0 + ER3 AC,701 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR 0 + ER4 AC+1,701 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E700 ;LOOP ON ERROR SWITCH + +E1000: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + LSHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR -1 + ER3 AC,1001 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR -1 + ER4 AC+1,1001 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1000 ;LOOP ON ERROR SWITCH +;TEST FETCH,STORE AND DECODE +;TEST THE ABILITY OF ASH, ASHC TO FETCH AND STORE +;AC,AC+1 +;TESTING IS ACCOMPLISHED BY SHIFTING ZERO TIMES ALL +;ZERO'S ALL ONES +;OPERANDS SELECTED ARE LEAST AFFECTED BY +;INADVERTENT SHIFTING +;FAILURE OF A SC BIT TO SET,OR SC TO +;COUNT WILL RESULT IN LOOPING + + AC=13 + SAVEAC (1,1) + +E1100: SETZ AC, ;CLEAR AC + ASH AC,0 ;*SHIFT LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR ZERO + ER3 AC,1101 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E1100 ;LOOP ON ERROR SWITCH + +E1200: SETOB AC,AC-1 ;SET AC,AC-1 FOR COMPARE + ASH AC,0 ;*SHIFT LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,1201 ;FETCH OR STORE AC FAILED + JUMPL AC+2,E1200 ;LOOP ON ERROR SWITCH + + AC=12 + SAVEAC (1,1) + +E1300: SETZB AC,AC+1 ;CLEAR AC,AC+1 + ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + SKIPE AC ;TEST AC FOR 0 + ER3 AC,1301 ;FETCH OR STORE AC FAILED + SKIPE AC+1 ;TEST AC+1 FOR 0 + ER4 AC+1,1301 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1300 ;LOOP ON ERROR SWITCH + +E1400: SETO AC-1, ;SET UP FOR COMPARISON + SETOB AC,AC+1 ;SET AC,AC+1 + ASHC AC,0 ;*SHIFT COMBINED LEFT ZERO TIMES + CAME AC,AC-1 ;TEST AC FOR A -1 + ER3 AC,1401 ;FETCH OR STORE AC FAILED + CAME AC+1,AC-1 ;TEST AC+1 FOR A -1 + ER4 AC+1,1401 ;FETCH OR STORE AC+1 FAILED + JUMPL AC+2,E1400 ;LOOP ON ERROR SWITCH +SUBTTL DIAGNOSTIC SECTION - CHECK SIGN BIT OF AC+1 FOR ASHC + +;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC +;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. +;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. +;CHECK THIS WHEN THE SIGN BIT OF AC IS ZERO AND THE SIGN BIT OF AC+1 IS ONE. + + SR2 (443,0,0,-1,-1,0,0,-1,-1,ASHC,0) + +;VERIFY THAT THE SIGN BIT OF AC+1 IS NOT MADE TO AGREE WITH THE SIGN BIT OF AC +;WHEN THE 'E' FIELD OF ASHC SECIFIES A SHIFT OF ZERO BIT POSITIONS. +;HENCE, C(AC+1) IS NOT ALTERE BY 'ASHC AC,0'. +;CHECK THIS WHEN THE SIGN BIT OF AC IS ONE AND THE SIGN BIT OF AC+1 IS ZERO. + SR2 (444,-1,-1,0,0,-1,-1,0,0,ASHC,0) +SUBTTL DIAGNOSTIC SECTION - TEST MQ-ADDER GATING + + AC=10 + SAVEAC (1,1) + +SN=1500 + ZZ=0 + ;CHECK AC+1 RIGHT < +E1500: REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INTIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ ;TESTED BIT + IFE ZZ, + SETZM AC ;CLEAR AC + MOVEI AC+1,ZZ ;INITIALIZE AC+1 + ROTC AC,0 ;*ROT 0 BIT POSIOTIONS + CAIE AC+1,ZZ ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +ZZ=0 + ;CHECK AC+1 LEFT < + REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ONE ZERO POSITIONS IN AC+1 +;FIRST CLEAR AC; THEN, SET ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ ;TESTED BIT + IFE ZZ, + SETZM AC ;CLEAR AC + MOVSI AC+1,ZZ ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=7 + SAVEAC (1,1) + +SN=1600 + + ZZ=0 + + ;CHECK AC+1 RIGHT < +E1600: REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ZERO ZERO POSITIONS IN AC+1 +;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ+1 ;TESTED BIT + IFE ZZ, + SETOM AC ;INITIALIZE TO ALL ONES + HRROI AC+1,ZZ&777777 ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE +ZZ=0 + ;CHECK AC+1 LEFT < + REPEAT ^D18,< + +;VERIFY MQ-AD GATING +;ROTC A RIPPLED ZERO ZERO POSIOTIONS IN AC+1 +;FIRST SET AC TO ALL ONES; THEN, SET ALL BUT ONE BIT OF AC+1 +;REPEAT FOR ALL 36 BITS OF MQ +;RESULT IN AC+1 SHOULD BE SAME AS INITIALIZATION DATA +SN=SN+1 + ZZ=ZZ+ZZ+1 ;TESTED BIT + IFE ZZ, + SETOM AC ;INITIALIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;INITIALIZE AC+1 + MOVE AC-1,AC+1 ;SETUP FOR COMPARISON + ROTC AC,0 ;*ROT 0 BIT POSITIONS + CAME AC+1,AC-1 ;CHECK BIT (N) OF AC+1 + ER4 AC+1,SN ;MQ-AD GATE FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - BASIC SHIFT TEST (0,1,-1,-2 BIT POSITIONS) + +;BASIC SHIFT TEST +;TEST ABILITY TO SHIFT A BIT 0,1,-1 AND -2 POSITIONS + + AC=4 + SAVEAC (1,1) + +;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSH + SR1 (17,0,10,0,10,LSH,0) + +;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSH + SR1 (20,0,10,0,20,LSH,1) + +;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSH + SR1 (442,0,10,0,4,LSH,-1) + +;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSH + SR1 (21,0,10,0,2,LSH,-2) +PAGE +;TEST ABILITY TO SHIFT A BIT ZERO POSITIONS USING LSHC + SR2 (22,0,10,0,10,0,10,0,10,LSHC,0) + +;TEST ABILITY TO SHIFT A BIT LEFT ONE POSITION USING LSHC + SR2 (23,0,10,0,10,0,20,0,20,LSHC,1) + +;TEST ABILITY TO SHIFT A BIT RIGHT ONE POSITION USING LSHC + SR2 (24,0,10,0,10,0,4,0,4,LSHC,-1) + +;TEST ABILITY TO SHIFT A BIT RIGHT TWO POSITIONS USING LSHC + SR2 (25,0,10,0,10,0,2,0,2,LSHC,-2) +SUBTTL DIAGNOSTIC SECTION - TEST SAC FUNCTION + + AC=10 + SAVEAC (1,1) + +SN=2600 + ZZ=1 + + ;TEST SAC +E2600: REPEAT ^D3,< +SN=SN+1 +;FURTHER TEST OF SAC,SAC2 +;TEST FOR ASSERTION OF SAC INH +;TEST ASSUMES ABILITY TO ROTATE +;TO SOME DEGREE + ZZ=ZZ+ZZ + HRRZI AC,400000 ;SET BIT 18 + ROT AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + CAIN AC,400000 ;TEST FOR SAC + ER3 AC,SN ;STORE AC FAILED + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=2700 + ZZ=1 + + ;TEST SAC +E2700: REPEAT ^D3,< +SN=SN+1 +;FURTHER TEST OF SAC,SAC2 +;TEST FOR ASSERTION OF SAC INH +;TEST ASSUMES ABILITY TO ROTATE +;TO SOME DEGREE + + ZZ=ZZ+ZZ + SETZ AC, ;CLEAR AC + HRRZI AC+1,400000 ;SET BIT 18 + ROTC AC,ZZ ;*ROT LEFT (N) NUMBER OF TIMES + CAIN AC+1,400000 ;TEST FOR SAC + ER4 AC+1,SN ;STORE AC+1 FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - TEST SHIFT LOGIC GATES BETWEEN AD AND AR + +;TEST ROT LEFT ONE BIT POSITION USING ALL ZEROS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=11 + SAVEAC (1,1) + +E3000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,3001 ;AD-AR GATING FAILED + JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH + +;TEST ROT LEFT ONE BIT POSITION USING ALL ONES +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E3100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ONES + ER3 AC,3101 ;AD-AR GATING FAILED + JUMPL AC+2,E3100 ;LOOP ON ERROR SWITCH +SN=3200 + ZZ=0 + + ;TEST AC RIGHT HALF < +E3200: REPEAT ^D18,< +;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT +;IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,1 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC LEFT HALF < + REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFN ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,1 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=3300 + ZZ=0 + + ;TEST AC RIGHT HALF< +E3300: REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFN <&377777>,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE <&777777>,< + HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + ;TEST AC LEFT HALF< + REPEAT ^D18,<;TEST ROT LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFN <&777777>,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE <&777777>,< + HRROI AC-1,-2 ;SETUP FOR COMPARISON> + ROT AC,1 ;*ROTATE LEFT ONE + CAME AC,AC-1 ;TEST FOR BIT (N-1) OR ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + +;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD. +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=10 + SAVEAC (1,1) + +E3400: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,3401 ;AD-AR GATING FAILED + JUMPL AC+2,E3400 ;LOOP ON ERROR SWITCH + +;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E3500: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST AC FOR ALL ONES. + ER3 AC,3501 ;AD-AR GATING FAILED + JUMPL AC+2,E3500 ;LOOP ON ERROR SWITCH +SN=3600 + ZZ=0 + + ;TEST AC LEFT HALF< +E3600: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER +;BIT IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFN ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=3700 + ZZ=1 + + ;TEST AC LEFT HALF< +E3700: REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFN ,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFN ,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + ROT AC,-1 ;*ROTATE RIGHT ONE + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +;TEST ROT RIGHT TWO BIT POSITIONS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NON-ZERO AFTER ROTATING + + AC=7 + SAVEAC (1,1) + +E4000: SETZB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ZERO + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST AC FOR ALL ZEROS + ER3 AC,4001 ;AD-AR GATING FAILED + JUMPL AC+2,E4000 ;LOOP ON ERROR SWITCH + +;TEST ROT RIGHT TWO BIT POSITIONS +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF C(AC) IS NOT ALL ONES AFTER ROTATING + +E4100: SETOB AC,AC-1 ;INITIALIZE AC AND EXPECTED RESULT TO ALL ONES + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST AC FOR ALL ONES. + ER3 AC,4101 ;AD-AR GATING FAILED + JUMPL AC+2,E4100 ;LOOP ON ERROR SWITCH + +SN=4200 + ZZ=0 + + ;TEST AC LEFT HALF< +E4200: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE GHROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER +;BIT IS ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + MOVSI AC,ZZ ;SET BIT (N) OF AC LEFT + IFG ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC RIGHT HALF < + REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY OTHER BIT IS +;ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + MOVEI AC,ZZ ;SET BIT (N) OF AC RIGHT + IFG ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,200000 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ONE + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=4300 + ZZ=1 + + ;TEST AC LEFT HALF< +E4300: REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + HRLOI AC,ZZ&777777 ;CLEAR BIT (N) OF AC LEFT + IFL ,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + IFE ,< + HRROI AC-1,577777 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC RIGHT HALF< + REPEAT ^D18,<;TEST ROT RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE AR +;TEST SHIFT LOGIC GATES BETWEEN AR AND AD +;AN ERROR OCCURS IF THE TESTED BIT IS ONE AND/OR ANY OTHER BIT +;IS ZERO AFTER ROTATING. +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + HRROI AC,ZZ&777777 ;CLEAR BIT (N) OF AC RIGHT + IFL ,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,377777 ;SETUP FOR COMPARISON> + IFE ,< + HRLOI AC-1,577777 ;SETUP FOR COMPARISON> + ROT AC,-2 ;*ROTATE RIGHT TWO + CAME AC,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER3 AC,SN ;AD-AR GATE UNDER TEST FAILED + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - TEST MQ SHIFT LOGIC GATES + +;TEST ROTC LEFT ONE BIT POSITION USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=10 + SAVEAC (1,1) + +E4400: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,4401 ;MQ GATING FAILED + JUMPL AC+2,E4400 ;LOOP ON ERROR SWITCH + +;TEST ROTC LEFT ONE BIT POSITION USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + +E4500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,4501 ;MQ GATING FAILED + JUMPL AC+2,E4500 ;LOOP ON ERROR SWITCH +SN=4600 + ZZ=0 + + ;TEST AC+1 RIGHT HALF < +E4600: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITILAIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + IFN ,< + MOVEI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVSI AC-1,1 ;SETUP FOR COMPARISON> + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + + ZZ=0 + + ;TEST AC+1 LEFT HALF < + REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ+ZZ ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + MOVSI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=4700 + ZZ=0 + ;TEST AC+1 RIGHT HALF < +E4700: REPEAT ^D18,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IA A ONE AND/OR ANY +;OTHER BIT IA A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRROI AC+1,ZZ ;CLEAR BIT (N) OF AC+1 RIGHT + IFN &777777,< + HRROI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRLOI AC-1,-2 ;SETUP FOR COMPARISON> + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC+1 LEFT HALF < + REPEAT ^D17,<;TEST ROTC LEFT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED LEFT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS +;OF THE MQ + +SN=SN+1 + ZZ=ZZ+ZZ+1 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITAILIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRLOI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,1 ;*ROTATE LEFT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N-1) A ZERO + ER4 AC+1, ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +;TEST ROTC RIGHT ONE BIT POSITION USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=7 + SAVEAC (1,1) + +E5000: SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,5001 ;MQ GRTING FAILED + JUMPL AC+2,E5000 ;LOOP ON ERROR SWITCH + +;TEST ROTC,RIGHT ONE BIT POSITION USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NONZERO AFTER ROTATING + +E5100: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,5101 ;MQ GATING FAILED + JUMPL AC+2,E5100 ;LOOP ON ERROR SWITCH +SN=5200 + ZZ=0 + ;TEST AC+1 LEFT HALF< +E5200: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES + +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + IFN , < + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1, 400000 ;SETUP FOR COMPARISON> + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. +> +PAGE + ZZ=0 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + + YY=ZZ/2 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + MOVEI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=5300 + ZZ=1 + + ;TEST AC+1 LEFT HALF< +E5300: REPEAT ^D18,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL CNES + HRLOI AC+1,ZZ&777777 ;SETUP BIT (N) OF AC+1 LEFT + IFN &777777,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH. +> +PAGE + ZZ=1 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D17,<;TEST ROTC RIGHT ONE BIT POSITION +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT ONE BIT POSITION AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE, + YY=</2>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL CNES + HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRROI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-1 ;*ROTATE RIGHT ONE + CAME AC+1,AC-1 ;TEST FOR BIT (N+1) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ZEROS +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS NON-ZERO AFTER ROTATING + + AC=6 + SAVEAC (1,1) +E5400: + SETZB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ZEROS + SETZM AC-1 ;INITIALIZE RESULT TO ZERO + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ZEROS + ER4 AC+1,5401 ;MQ GATING FAILED + JUMPL AC+2,E5400 ;LOOP ON ERROR SWITCH + +;TEST ROTC RIGHT TWO BIT POSITIONS USING ALL ONES +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND +;AC+1 IS TESTED +;AN ERROR OCCURS IF C(AC+1) IS ZERO AFTER ROTATING + +E5500: SETOB AC,AC+1 ;INITIALIZE AC,AC+1 TO ALL ONES + SETOM AC-1 ;INITIALIZE RESULT TO ALL ONES + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST AC+1 FOR ALL ONES + ER4 AC+1,5501 ;MQ GATING FAILED + JUMPL AC+2,E5500 ;LOOP ON ERROR SWITCH +SN=5600 + ZZ=0 + + ;TEST AC+1 LEFT HALF< +E5600: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC,AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVSI AC+1,ZZ ;SET BIT (N) OF AC+1 LEFT + IFG ,< + MOVSI AC-1,YY ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,400000 ;SETUP FOR COMPARISON> + IFE ,< + MOVEI AC-1,200000 ;SETUP FOR COMPARISON> + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=0 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ONE THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS ZERO AND/OR ANY +;OTHER BIT IS A ONE AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ONE THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=ZZ/2 ;SELECTED BIT BEFORE ROTATION + IFE ZZ, + YY=ZZ/4 ;SELECTED BIT AFTER ROTATION + SETZ AC, ;INITIALIZE AC TO ALL ZEROS + MOVEI AC+1,ZZ ;SET BIT (N) OF AC+1 RIGHT + + MOVEI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ONE + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SN=5700 + ZZ=1 + + ;TEST AC+1 LEFT HALF < +E5700: REPEAT ^D18,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE, + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRLOI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 LEFT + IFG &777777,< + HRLOI AC-1,YY ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,377777 ;SETUP FOR COMPARISON> + IFE &777777,< + HRROI AC-1,577777 ;SETUP FOR COMPARISON> + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +PAGE + ZZ=1 + + ;TEST AC+1 RIGHT HALF< + REPEAT ^D16,<;TEST ROTC RIGHT TWO BIT POSITIONS +;TEST ABILITY TO ROTATE A ZERO THROUGH THE 36 BITS OF THE MQ +;TEST MQ SHIFT LOGIC GATES +;AC, AC+1 ARE ROTATED RIGHT TWO BIT POSITIONS AND AC+1 +;IS TESTED. +;AN ERROR OCCURS IF THE TESTED BIT IS A ONE AND/OR ANY +;OTHER BIT IS A ZERO AFTER ROTATING +;THIS TEST IS REPEATED 36 TIMES TO RIPPLE A ZERO THROUGH ALL 36 BITS OF THE MQ + +SN=SN+1 + ZZ=/2 ;SELECTED BIT BEFORE ROTATION + IFE , + YY=</4>&777777 ;SELECTED BIT AFTER ROTATION + SETOM AC ;INITIALIZE AC TO ALL ONES + HRROI AC+1,ZZ&777777 ;CLEAR BIT (N) OF AC+1 RIGHT + HRROI AC-1,YY ;SETUP FOR COMPARISON + ROTC AC,-2 ;*ROTATE RIGHT TWO + CAME AC+1,AC-1 ;TEST FOR BIT (N+2) A ZERO + ER4 AC+1,SN ;MQ GATE UNDER TEST FAILED + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROT) + +;END CONNECTIONS-ROT +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS ROTATED LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (60,400000,0,0,1,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (61,377777,-1,-1,-2,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (62,0,1,0,2,ROT,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (63,-1,-2,-1,-3,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (64,100000,0,200000,0,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (65,677777,-1,577777,-1,ROT,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (66,200000,0,400000,0,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ROT AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (67,577777,-1,377777,-1,ROT,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (70,0,1,400000,0,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (71,-1,-2,377777,-1,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (72,400000,0,200000,0,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (73,377777,-1,577777,-1,ROT,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (74,0,4,0,2,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (75,-1,-5,-1,-3,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (76,0,2,0,1,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROT AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (77,-1,-3,-1,-2,ROT,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (100,0,2,400000,0,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR1 (101,-1,-3,377777,-1,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (102,0,1,200000,0,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR1 (103,-1,-2,577777,-1,ROT,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (104,0,10,0,2,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR1 (105,-1,-11,-1,-3,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (106,0,4,0,1,ROT,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROT AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR1 (107,-1,-5,-1,-2,ROT,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSH) + +;END CONNECTIONS-LSH +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS SHIFTED LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (110,-1,-1,-1,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (111,0,1,0,2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (112,-1,-2,-1,-4,LSH,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (113,100000,0,200000,0,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (114,677777,-1,577777,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (115,200000,0,400000,0,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - LSH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (116,577777,-1,377777,-2,LSH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (117,-1,-1,377777,-1,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (120,400000,0,200000,0,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (121,377777,-1,177777,-1,LSH,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (122,0,4,0,2,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (123,-1,-5,377777,-3,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (124,0,2,0,1,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (125,-1,-3,377777,-2,LSH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (126,-1,-1,177777,-1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (127,-1,-1,177777,-1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (130,0,10,0,2,LSH,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (131,-1,-11,177777,-3,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (132,0,4,0,1,LSH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (133,-1,-5,177777,-2,LSH,-2) +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASH) + +;END CONNECTIONS-ASH +;TEST AR END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +;AC IS SHIFTD LEFT/RIGHT +;AND END BITS TESTED + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (134,-1,-1,-1,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (135,0,1,0,2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (136,-1,-2,-1,-4,ASH,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (137,100000,0,200000,0,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (140,677777,-1,577777,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (141,400000,0,400000,0,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ASH AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (142,377777,-1,377777,-2,ASH,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (143,400000,0,600000,0,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (144,377777,-1,177777,-1,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (145,400000,0,600000,0,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (146,377777,-1,177777,-1,ASH,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (147,0,4,0,2,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (150,-1,-5,-1,-3,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (151,0,2,0,1,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASH AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (152,-1,-3,-1,-2,ASH,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (153,400000,0,700000,0,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR1 (154,377777,-1,077777,-1,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (155,400000,0,700000,0,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR1 (156,377777,-1,077777,-1,ASH,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (157,0,10,0,2,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR1 (160,-1,-11,-1,-3,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (161,0,4,0,1,ASH,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASH AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR1 (162,-1,-5,-1,-2,ASH,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ROTC) + +;END CONNECTIONS-ROTC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF ROTATING 1,-1 AND -2 BIT POSITIONS CORRECTLY + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (163,400000,0,0,0,0,0,0,1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (164,377777,-1,-1,-1,-1,-1,-1,-2,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (165,0,0,0,1,0,0,0,2,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (166,-1,-1,-1,-2,-1,-1,-1,-3,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (167,0,0,100000,0,0,0,200000,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (170,-1,-1,677777,-1,-1,-1,577777,-1,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (171,0,0,200000,0,0,0,400000,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (172,-1,-1,577777,-1,-1,-1,377777,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (173,0,0,400000,0,0,1,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (174,-1,-1,377777,-1,-1,-2,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (175,0,1,0,0,0,2,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (176,-1,-2,-1,-1,-1,-3,-1,-1,ROTC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (177,100000,0,0,0,200000,0,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (200,677777,-1,-1,-1,577777,-1,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (201,200000,0,0,0,400000,0,0,0,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ROTC AC,1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (202,577777,-1,-1,-1,377777,-1,-1,-1,ROTC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (203,0,0,0,1,400000,0,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (204,-1,-1,-1,-2,377777,-1,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (205,400000,0,0,0,200000,0,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (206,377777,-1,-1,-1,577777,-1,-1,-1,ROTC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (207,0,4,0,0,0,2,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (210,-1,-5,-1,-1,-1,-3,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (211,0,2,0,0,0,1,0,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (212,-1,-3,-1,-1,-1,-2,-1,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (213,0,1,0,0,0,0,400000,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (214,-1,-2,-1,-1,-1,-1,377777,-1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (215,0,0,400000,0,0,0,200000,0,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (216,-1,-1,377777,-1,-1,-1,577777,-1,ROTC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (217,0,0,0,4,0,0,0,2,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (220,-1,-1,-1,-5,-1,-1,-1,-3,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (221,0,0,0,2,0,0,0,1,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-1 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (222,-1,-1,-1,-3,-1,-1,-1,-2,ROTC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (223,0,0,0,2,400000,0,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF AR + SR2 (224,-1,-1,-1,-3,377777,-1,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (225,0,0,0,1,200000,0,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF AR + SR2 (226,-1,-1,-1,-2,577777,-1,-1,-1,ROTC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (227,0,10,0,0,0,2,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF AR + SR2 (230,-1,-11,-1,-1,-1,-3,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (231,0,4,0,0,0,1,0,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF AR + SR2 (232,-1,-5,-1,-1,-1,-2,-1,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (233,0,2,0,0,0,0,400000,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 0 OF MQ + SR2 (234,-1,-3,-1,-1,-1,-1,377777,-1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (235,0,1,0,0,0,0,200000,0,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 1 OF MQ + SR2 (236,-1,-2,-1,-1,-1,-1,577777,-1,ROTC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (237,0,0,0,10,0,0,0,2,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 34 OF MQ + SR2 (240,-1,-1,-1,-11,-1,-1,-1,-3,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (241,0,0,0,4,0,0,0,1,ROTC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ROTC AC,-2 +;TEST ABILITY TO ROTATE INTO BIT 35 OF MQ + SR2 (242,-1,-1,-1,-5,-1,-1,-1,-2,ROTC,-2) + +LAST1: JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt b/apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt new file mode 100644 index 000000000..c824730bd --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt @@ -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,&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,&17 ;SETUP AC-2 FOR COMPARISON + MOVEI AC,XX ;SETUP AC RIGHT + HRLI AC,XX ;SETUP AC LEFT + MOVEM AC,&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> diff --git a/apps/pdp10/diags/klad/dakai/README.md b/apps/pdp10/diags/klad/dakai/README.md new file mode 100644 index 000000000..e1e0bf46a --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/README.md @@ -0,0 +1,457 @@ +--- +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 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. + +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 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 ,< + 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 ,< + 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 ** 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 %} diff --git a/apps/pdp10/diags/klad/dakaj/DAKAJ.LST.txt b/apps/pdp10/diags/klad/dakaj/DAKAJ.LST.txt new file mode 100644 index 000000000..23eba6cb4 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaj/DAKAJ.LST.txt @@ -0,0 +1,9412 @@ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +DAKAJT MAC 20-JAN-77 10:47 DIAGNOSTIC PARAMETERS SEQ 0011 + + 1 ;DAKAJ + 2 + 3 + 4 000000 MCNVER==0 + 5 000002 DECVER==2 + 6 + 7 XLIST + 8 LIST + 9 LALL + 10 + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 + 14 ^ + 15 + 16 ;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED) + 17 + 18 ;COPYRIGHT 1975,1977 + 19 ;DIGITAL EQUIPMENT CORPORATION + 20 ;MARLBORO, MASS. 01752 + 21 + 22 ;JOHN R. KIRCHOFF + 23 + 24 000137 LOC 137 + 25 000137 000000 000002 MCNVER,,DECVER + 26 + 27 NOSYM +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2 +DAKAJT MAC 20-JAN-77 10:47 DIAGNOSTIC PARAMETERS SEQ 0012 + + 28 SUBTTL DIAGNOSTIC PARAMETERS + 29 + 30 ;OPERATOR DEFINITIONS + 31 + 32 001000 000000 OPDEF ER1 [1B8] + 33 002000 000000 OPDEF ER2 [2B8] + 34 003000 000000 OPDEF ER3 [3B8] + 35 004000 000000 OPDEF ER4 [4B8] + 36 005000 000000 OPDEF ER5 [5B8] + 37 006000 000000 OPDEF ER6 [6B8] + 38 007000 000000 OPDEF ER7 [7B8] + 39 010000 000000 OPDEF ER10 [10B8] + 40 011000 000000 OPDEF ER11 [11B8] + 41 012000 000000 OPDEF ER12 [12B8] + 42 013000 000000 OPDEF ER13 [13B8] + 43 + 44 036404 LUUO1=ERRMES + 45 036404 LUUO2=ERRMES + 46 036404 LUUO3=ERRMES + 47 036404 LUUO4=ERRMES + 48 036404 LUUO5=ERRMES + 49 036404 LUUO6=ERRMES + 50 036404 LUUO7=ERRMES + 51 036404 LUUO10=ERRMES + 52 036404 LUUO11=ERRMES + 53 036404 LUUO12=ERRMES + 54 036404 LUUO13=ERRMES +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3 +DAKAJT MAC 20-JAN-77 10:47 DIAGNOSTIC PARAMETERS SEQ 0013 + + 55 ;SUBROUTINE ASSEMBLY DEFINITIONS + 56 + 57 000040 DEBUG=40 + 58 000001 EXCASB=1 + 59 000001 USRASB=1 + 60 000001 KA10=1 + 61 000001 KL10=1 + 62 000001 KL10P0=1 + 63 000001 PGMEND=1 + 64 000001 ERDIAG=1 + 65 + 66 ;SPECIAL FEATURE PARAMETERS + 67 + 68 030621 SADR1=START + 69 030621 SADR2=START + 70 030621 SADR3=START + 71 030621 SADR4=START + 72 254000 030621 SADR5=JRST START + 73 254000 030621 SADR6=JRST START + 74 254000 030621 SADR7=JRST START + 75 254000 030621 SADR8=JRST START + 76 254000 030621 SADR9=JRST START + 77 254000 030621 SADR10=JRST START + 78 254000 030621 SADR11=JRST START + 79 + 80 000000 PAREA0=0 + 81 000000 PAREA1=0 + 82 000000 PAREA2=0 + 83 444153 415200 PAREA3=SIXBIT/DAKAJ/ + 84 645560 000000 PAREA4=SIXBIT/TMP/ + 85 000000 PAREA5=0 + 86 000000 PAREA6=0 + 87 001000 ITERAT==1000 + 88 + 89 ;MACROS + 90 + 91 DEFINE SAVEAC (A,B)< + 92 MOVEI AC+2,. ;SETUP TESTPC + 93 MOVEM AC+2,TESTPC + 94 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 95 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> + 96 + 97 DEFINE SETACS (WW,XX)< + 98 MOVEI AC-1,WW ;SETUP AC-1 + 99 HRLI AC-1,WW ;FOR COMPARISION + 100 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 101 MOVEI AC,XX ;SETUP AC RIGHT + 102 HRLI AC,XX ;SETUP AC LEFT + 103 MOVEM AC,&17 ;SETUP AC2> +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4 +DAKAJT MAC 20-JAN-77 10:47 DIAGNOSTIC PARAMETERS SEQ 0014 + + 104 ;USER DEFINED MACROS + 105 + 106 DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)< + 107 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT + 108 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B] + 109 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 110 + 111 E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC + 112 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 113 OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS + 114 CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT? + 115 ER3 AC,T'01 ;RESULT IN AC IS INCORRECT + 116 CAME AC+1,[XWD 741703,607417] + 117 ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY + 118 JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH> + 119 + 120 + 121 DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)< + 122 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 123 ;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND + 124 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND + 125 ;[XWD R2A,R2B] + 126 + 127 E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC + 128 MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1 + 129 OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES + 130 CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT? + 131 ER3 AC,T'01 ;RESULT IN AC IS INCORRECT + 132 CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT? + 133 ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT + 134 JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH> +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015 + + 135 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 136 + 137 DEFINE S,<;*********************************************************************> + 138 + 139 S^;*********************************************************************^ + 140 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 141 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 142 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 143 S^;*********************************************************************^ + 144 + 145 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 146 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 147 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 148 + 149 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 150 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 151 010000 DING== 010000 ;RING BELL ON ERROR + 152 + 153 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 154 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 155 001000 PALERS==001000 ;PRINT ALL ERRORS + 156 + 157 000400 RELIAB==000400 ;RELIABILITY MODE + 158 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 159 000100 INHPAG==000100 ;INHIBIT PAGING + 160 + 161 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 162 000020 INHCSH==000020 ;INHIBIT CACHE + 163 000010 OPRSEL==000010 ;OPERATOR SELECTION + 164 + 165 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 166 + 167 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 168 + 169 ;SWITCH 17 RESERVED !!! +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016 + + 170 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 171 + 172 S^;*********************************************************************^ + 173 ;*SPECIAL SUBPROGRAM LINKAGES + 174 S^;*********************************************************************^ + 175 + 176 027772 FSELNK= 27772 ;FILE SELECT LINK + 177 027773 FRDLNK= 27773 ;FILE READ LINK + 178 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 179 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 180 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 181 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 182 + 183 S^;*********************************************************************^ + 184 ;*SPECIAL SUBROUTINE FATAL HALTS + 185 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 186 S^;*********************************************************************^ + 187 + 188 ;ADDRESS TAG REASON + 189 ;--------------------- + 190 + 191 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 192 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 193 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 194 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 195 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 196 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 197 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 198 ; 1017 EOPERR ;END OF PROGRAM ERROR + 199 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 200 + 201 S^;*********************************************************************^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017 + + 202 S^;*********************************************************************^ + 203 ;OPERATOR DEFINITIONS (NON-UUO'S) + 204 S^;*********************************************************************^ + 205 + 206 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 207 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 208 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 209 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 210 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 211 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 212 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 213 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 214 + 215 S^;*********************************************************************^ + 216 ;*SUBROUTINE INITIALIZATION CALL + 217 S^;*********************************************************************^ + 218 + 219 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 220 + 221 S^;*********************************************************************^ + 222 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 223 S^;*********************************************************************^ + 224 + 225 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 226 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 227 + 228 S^;*********************************************************************^ + 229 ;*TERMINAL INPUT UUO'S + 230 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 231 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 232 S^;*********************************************************************^ + 233 + 234 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 235 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 236 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 237 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 238 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 239 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 240 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 241 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 242 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 243 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018 + + 244 ;*TERMINAL OUTPUT UUO'S. + 245 + 246 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 247 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 248 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 249 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 250 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 251 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 252 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 253 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 254 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 255 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 256 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 257 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 258 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 259 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 260 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 261 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 262 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 263 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 264 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 265 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 266 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 267 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 268 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 269 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 270 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 271 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 272 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 273 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 274 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 275 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 276 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 277 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 278 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 279 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 280 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 281 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 282 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 283 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 284 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 285 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 286 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 287 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 288 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 289 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 290 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 291 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 292 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 293 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 294 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 295 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 296 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 297 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 298 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 + + 299 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 300 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 301 + 302 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 303 + 304 DEFINE PMSG (ARG),< + 305 PSIXM [SIXBIT\ARG'_\]> + 306 + 307 DEFINE PMSGF (ARG),< + 308 PSIXMF [SIXBIT\ARG'_\]> + 309 + 310 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 311 ;* CONSERVES CORE OVER ASCIZ + 312 + 313 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 314 + 315 ;*CONSOLE SWITCH INPUT UUO. + 316 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 317 ;* USER MODE. + 318 + 319 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 320 + 321 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 322 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 323 + 324 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 325 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 326 + 327 ;*KL10 ONLY CACHE OPERATION UUO'S + 328 + 329 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 330 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 331 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 + + 332 ;*END OF PASS/PROGRAM UUOS + 333 + 334 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 335 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 336 + 337 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 338 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 339 + 340 ;*MEMORY MANAGEMENT UUO'S + 341 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 342 ;*ADDRESS CONVERSION, ETC... + 343 + 344 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 345 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 346 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 347 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 348 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 349 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 350 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 351 + 352 ;*DEVICE CODE MODIFICATION UUO + 353 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 354 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 355 + 356 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 357 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 358 + 359 030000 IFNDEF MODDVL, + 360 030000 IFNDEF MODDVU, + 361 + 362 ;*"DIAMON" FILE SELECTION AND READ UUOS + 363 + 364 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 365 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 366 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 367 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 368 + 369 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 370 + 371 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 372 + 373 XLIST + 374 IFNDEF KLOLD, + 400 + 401 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 402 + 403 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 404 SALL + 405 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 406 CORECT,,ACTUAL + 407 [SIXBIT\D'_\],,ERR] + 408 XALL > + 409 + 410 >;END OF KLOLD CONDITIONAL + 411 + 412 XLIST + 413 LIST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 414 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 415 + 416 030000 LOC 30000 + 417 + 418 S^;*********************************************************************^ + 419 ;*PROGRAM STARTING ADDRESSES + 420 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 421 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 422 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 423 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 424 S^;*********************************************************************^ + 425 + 426 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 427 030001 254 00 0 00 030621 $START: JRST START ;MODE CHECK STARTING ADDRESS + 428 + 429 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 430 + 431 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 432 + 433 030004 254 00 0 00 030621 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 434 + 435 030005 254 00 0 00 030621 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 436 + 437 030006 254 00 0 00 030621 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 438 + 439 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 440 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 441 + 442 030010 254 00 0 00 030624 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 443 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 444 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 445 + 446 030013 254000 030621 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 447 030014 254000 030621 START2: SADR8 ; " + 448 030015 254000 030621 START3: SADR9 ; " + 449 030016 254000 030621 START4: SADR10 ; " + 450 030017 254000 030621 START5: SADR11 ; " +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 451 S^;*********************************************************************^ + 452 ;*PROGRAM FIXED PARAMETER AREA + 453 S^;*********************************************************************^ + 454 + 455 030020 444153 415200 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 456 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 457 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 458 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 459 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 460 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 461 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 462 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 463 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 464 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 465 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 466 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 467 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 468 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 469 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 470 + 471 S^;*********************************************************************^ + 472 ;*PROGRAM VARIABLE PARAMETER AREA + 473 S^;*********************************************************************^ + 474 + 475 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 476 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 477 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 478 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 479 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 480 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 481 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 482 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 483 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 484 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 485 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 486 030052 000000 000000 ERRPC: 0 ;ERROR PC + 487 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 488 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 489 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 490 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 491 S^;*********************************************************************^ + 492 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 493 S^;*********************************************************************^ + 494 + 495 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 496 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 497 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 498 030062 254000 030621 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 499 030063 254000 030621 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 500 030064 CPOPJ1: ;SKIP RETURN + 501 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 502 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 503 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 504 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 505 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 506 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 507 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 508 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 509 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 510 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 511 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 512 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 513 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 514 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 515 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 516 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 517 + 518 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 519 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 520 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 521 + 522 S^;*********************************************************************^ + 523 ;*PROCESSOR CONTROL STORAGE + 524 S^;*********************************************************************^ + 525 + 526 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 527 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 528 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 529 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 530 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 531 + 532 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 533 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 534 + 535 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 536 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 537 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 538 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 539 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 540 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 541 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 + + 542 S^;*********************************************************************^ + 543 ;*UUO DISPATCH TABLE + 544 S^;*********************************************************************^ + 545 XLIST + 546 LIST + 547 030124 036404 030070 UUODIS: LUUO1,,$UUOER + 548 030125 036404 036404 LUUO3,,LUUO2 + 549 030126 036404 036404 LUUO5,,LUUO4 + 550 030127 036404 036404 LUUO7,,LUUO6 + 551 030130 036404 036404 LUUO11,,LUUO10 + 552 030131 036404 036404 LUUO13,,LUUO12 + 553 030132 030070 030070 LUUO15,,LUUO14 + 554 030133 030070 030070 LUUO17,,LUUO16 + 555 030134 030070 030070 LUUO21,,LUUO20 + 556 030135 030070 030070 LUUO23,,LUUO22 + 557 030136 030070 030070 LUUO25,,LUUO24 + 558 030137 030070 030070 LUUO27,,LUUO26 + 559 030140 030070 030070 LUUO31,,LUUO30 + 560 030141 030070 030070 LUUO33,,LUUO32 + 561 + 562 S^;*********************************************************************^ + 563 ;*MEMORY MANAGMENT STORAGE + 564 S^;*********************************************************************^ + 565 + 566 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 567 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 568 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 569 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 570 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 571 + 572 S^;*********************************************************************^ + 573 ;*PRINT CONTROL STORAGE + 574 S^;*********************************************************************^ + 575 + 576 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 577 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 578 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 579 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 580 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 581 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 582 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 583 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 584 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 585 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 586 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 587 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 588 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 589 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 590 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 591 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 592 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 593 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 594 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 + + 595 S^;*********************************************************************^ + 596 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 597 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 598 ;* MOVEI NAME + 599 ;* PNTA ;OR PNTAF + 600 S^;*********************************************************************^ + 601 + 602 030242 CRLF: ASCII/ + 603 030242 015 012 000 000 000 / + 604 030243 CRLF2: ASCII/ + 605 + 606 030243 015 012 015 012 000 / + 607 030244 054 000 000 000 000 COMMA: ASCII/,/ + 608 030245 056 000 000 000 000 PERIOD: ASCII/./ + 609 030246 040 000 000 000 000 SPACE: ASCII/ / + 610 030247 011 000 000 000 000 TAB: ASCII/ / + 611 030250 MINUS: + 612 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 613 030251 053 000 000 000 000 PLUS: ASCII/+/ + 614 030252 052 000 000 000 000 AST: ASCII/*/ + 615 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 616 030254 050 000 000 000 000 LFP: ASCII/(/ + 617 030255 051 000 000 000 000 RTP: ASCII/)/ + 618 030256 007 0000000000 BELL: BYTE (7) 007 + 619 030257 077 000 000 000 000 QUEST: ASCII/?/ + 620 030260 057 000 000 000 000 SLASH: ASCII!/! + 621 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 622 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 623 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 624 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 625 + 626 S^;*********************************************************************^ + 627 ;*USER MODE OUTPUT FILE INFORMATION + 628 S^;*********************************************************************^ + 629 + 630 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 631 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 632 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 633 030272 BLOCK 2 + 634 + 635 S^;*********************************************************************^ + 636 ;*DISK UPDATE MODE FILE INFORMATION + 637 S^;*********************************************************************^ + 638 + 639 030274 $IBUF: BLOCK 3 + 640 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 641 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 642 030301 BLOCK 2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 + + 643 S^;*********************************************************************^ + 644 ;*PUSHDOWN LIST CONTROL INFORMATION + 645 S^;*********************************************************************^ + 646 + 647 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 648 030304 PLISTS: BLOCK 200 + 649 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 650 + 651 S^;*********************************************************************^ + 652 ;*POWER LINE CLOCK FREQUENCY FLAG + 653 S^;*********************************************************************^ + 654 + 655 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 656 + 657 S^;*********************************************************************^ + 658 ;*KL10 CACHE CONTROL FLAGS + 659 S^;*********************************************************************^ + 660 + 661 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 662 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 663 + 664 S^;*********************************************************************^ + 665 ;*NUMBER INPUT DIGIT FLAG + 666 S^;*********************************************************************^ + 667 + 668 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 669 + 670 S^;*********************************************************************^ + 671 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 672 S^;*********************************************************************^ + 673 + 674 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 675 + 676 S^;*********************************************************************^ + 677 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 678 S^;*********************************************************************^ + 679 + 680 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 681 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 682 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 683 + 684 S^;*********************************************************************^ + 685 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 686 S^;*********************************************************************^ + 687 + 688 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0028 + + 689 S^;*********************************************************************^ + 690 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 691 S^;*********************************************************************^ + 692 + 693 030516 000000 000000 KLTYP: 0 + 694 + 695 S^;*********************************************************************^ + 696 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 697 S^;*********************************************************************^ + 698 + 699 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 700 + 701 S^;*********************************************************************^ + 702 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 703 S^;*********************************************************************^ + 704 + 705 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 706 + 707 S^;*********************************************************************^ + 708 ;*"SWITCH" CALL USAGE CONTROL + 709 S^;*********************************************************************^ + 710 + 711 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 712 + 713 S^;*********************************************************************^ + 714 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 715 S^;*********************************************************************^ + 716 + 717 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 718 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 719 + 720 S^;*********************************************************************^ + 721 ;*SPECIAL FUTURE EXPANSION ROOM + 722 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 723 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 724 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 725 S^;*********************************************************************^ + 726 + 727 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 728 + 729 S^;*********************************************************************^ + 730 ;*END OF FIXED STORAGE + 731 S^;*********************************************************************^ + 732 + 733 030577 $ENDFX=&<777700>-1 + 734 030577 LOC $ENDFX + 735 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0029 + + 736 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) + 737 + 738 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + 739 030601 000000 030600 EXIT + 740 + 741 030602 PGMNAM: ASCIZ/ + 742 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #10 SHIFT-ROTATE [DAKAJ] + 743 030603 055 061 060 040 040 + 744 030604 113 101 061 060 040 + 745 030605 102 101 123 111 103 + 746 030606 040 111 116 123 124 + 747 030607 122 125 103 124 111 + 748 030610 117 116 040 104 111 + 749 030611 101 107 116 117 123 + 750 030612 124 111 103 040 043 + 751 030613 061 060 040 123 110 + 752 030614 111 106 124 055 122 + 753 030615 117 124 101 124 105 + 754 030616 040 133 104 101 113 + 755 030617 101 112 135 015 012 / + 756 030620 000 000 000 000 000 + 757 + 758 030621 265 00 0 00 030011 START: PGMINT + 759 030622 200 00 0 00 036575 MOVE [ASCIZ/AJ/] + 760 030623 202 00 0 00 036517 MOVEM TLET + 761 + 762 030624 254 00 0 00 030625 STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0030 + + 763 000001 AC=1 + 764 030625 E00: SAVEAC (1,1)^ + 765 030625 201 03 0 00 030625 MOVEI AC+2,. ;SETUP TESTPC + 766 030626 202 03 0 00 030051 MOVEM AC+2,TESTPC + 767 030627 201 03 0 00 000003 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 768 030630 202 03 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 769 + 770 ;END CONNECTIONS-LSHC + 771 ;TEST AR-MQ END BIT INPUT GATES + 772 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 773 ; MQ0,1,34,35 SHLT INP GATES + 774 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 775 ; MQ0,1,34,35 SHRT INPUT GATES + 776 ;AC,AC+1 ARE LOGICALLY SHIFTED LEFT/RIGHT AND + 777 ;END BITS ARE TESTED + 778 ;TEST ASSUMES BOTH REGISTERS ARE + 779 ;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY + 780 ;INPUT GATES PREVIOUSLY TESTED ARE AGAIN + 781 ;TESTED HERE + 782 ;AN ERROR IS MOST LIKELY DUE TO FAILURE + 783 ;OF LSHC TO BRING UP ENABLING LEVEL + 784 + 785 ;SHIFT CONNECTIONS TEST + 786 ;TEST MQ35 SHLT INP-ZERO'S - LSHC AC,1 + 787 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 788 SR2 (243,-1,-1,-1,-1,-1,-1,-1,-2,LSHC,1)^ + 789 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 790 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 791 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 792 ;[XWD -1,-2] + 793 + 794 030631 200 01 0 00 036576 E24300: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 795 030632 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 796 030633 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 797 030634 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 798 030635 003 01 0 00 024301 ER3 AC,24301 ;RESULT IN AC IS INCORRECT + 799 030636 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 800 030637 004 02 0 00 024301 ER4 AC+1,24301 ;RESULT IN AC+1 IS INCORRECT + 801 030640 321 03 0 00 030631 JUMPL AC+2,E24300 ;LOOP ON ERROR SWITCH^ + 802 + 803 ;SHIFT CONNECTIONS TEST + 804 ;TEST MQ34 SHLT INP-ONE'S - LSHC AC,1 + 805 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 806 SR2 (244,0,0,0,1,0,0,0,2,LSHC,1)^ + 807 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 808 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,1] 1 BIT POSITIONS AND + 809 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 810 ;[XWD 0,2] + 811 + 812 030641 200 01 0 00 036600 E24400: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 813 030642 200 02 0 00 036601 MOVE AC+1,[XWD 0,1] ;INITIALIZE AC+1 + 814 030643 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 815 030644 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 816 030645 003 01 0 00 024401 ER3 AC,24401 ;RESULT IN AC IS INCORRECT + 817 030646 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0031 + + 818 030647 004 02 0 00 024401 ER4 AC+1,24401 ;RESULT IN AC+1 IS INCORRECT + 819 030650 321 03 0 00 030641 JUMPL AC+2,E24400 ;LOOP ON ERROR SWITCH^ + 820 + 821 ;SHIFT CONNECTIONS TEST + 822 ;TEST MQ34 SHLT INP-ZERO'S - LSHC AC,1 + 823 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 824 SR2 (245,-1,-1,-1,-2,-1,-1,-1,-4,LSHC,1)^ + 825 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 826 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-2] 1 BIT POSITIONS AND + 827 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 828 ;[XWD -1,-4] + 829 + 830 030651 200 01 0 00 036576 E24500: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 831 030652 200 02 0 00 036577 MOVE AC+1,[XWD -1,-2] ;INITIALIZE AC+1 + 832 030653 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 833 030654 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 834 030655 003 01 0 00 024501 ER3 AC,24501 ;RESULT IN AC IS INCORRECT + 835 030656 312 02 0 00 036603 CAME AC+1,[XWD -1,-4] ;IS RESULT IN AC+1 CORRECT? + 836 030657 004 02 0 00 024501 ER4 AC+1,24501 ;RESULT IN AC+1 IS INCORRECT + 837 030660 321 03 0 00 030651 JUMPL AC+2,E24500 ;LOOP ON ERROR SWITCH^ + 838 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0032 + + 839 ;SHIFT CONNECTIONS TEST + 840 ;TEST MQ1 SHLT INP-ONE'S - LSHC AC,1 + 841 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 842 SR2 (246,0,0,100000,0,0,0,200000,0,LSHC,1)^ + 843 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 844 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 100000,0] 1 BIT POSITIONS AND + 845 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 846 ;[XWD 200000,0] + 847 + 848 030661 200 01 0 00 036600 E24600: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 849 030662 200 02 0 00 036604 MOVE AC+1,[XWD 100000,0] ;INITIALIZE AC+1 + 850 030663 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 851 030664 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 852 030665 003 01 0 00 024601 ER3 AC,24601 ;RESULT IN AC IS INCORRECT + 853 030666 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 854 030667 004 02 0 00 024601 ER4 AC+1,24601 ;RESULT IN AC+1 IS INCORRECT + 855 030670 321 03 0 00 030661 JUMPL AC+2,E24600 ;LOOP ON ERROR SWITCH^ + 856 + 857 ;SHIFT CONNECTIONS TEST + 858 ;TEST MQ1 SHLT INP-ZERO'S - LSHC AC,1 + 859 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 860 SR2 (247,-1,-1,677777,-1,-1,-1,577777,-2,LSHC,1)^ + 861 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 862 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 677777,-1] 1 BIT POSITIONS AND + 863 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 864 ;[XWD 577777,-2] + 865 + 866 030671 200 01 0 00 036576 E24700: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 867 030672 200 02 0 00 036606 MOVE AC+1,[XWD 677777,-1] ;INITIALIZE AC+1 + 868 030673 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 869 030674 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 870 030675 003 01 0 00 024701 ER3 AC,24701 ;RESULT IN AC IS INCORRECT + 871 030676 312 02 0 00 036607 CAME AC+1,[XWD 577777,-2] ;IS RESULT IN AC+1 CORRECT? + 872 030677 004 02 0 00 024701 ER4 AC+1,24701 ;RESULT IN AC+1 IS INCORRECT + 873 030700 321 03 0 00 030671 JUMPL AC+2,E24700 ;LOOP ON ERROR SWITCH^ + 874 + 875 ;SHIFT CONNECTIONS TEST + 876 ;TEST MQ0 SHLT INP-ONE'S - LSHC AC,1 + 877 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 878 SR2 (250,0,0,200000,0,0,0,400000,0,LSHC,1)^ + 879 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 880 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 200000,0] 1 BIT POSITIONS AND + 881 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 882 ;[XWD 400000,0] + 883 + 884 030701 200 01 0 00 036600 E25000: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 885 030702 200 02 0 00 036605 MOVE AC+1,[XWD 200000,0] ;INITIALIZE AC+1 + 886 030703 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 887 030704 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 888 030705 003 01 0 00 025001 ER3 AC,25001 ;RESULT IN AC IS INCORRECT + 889 030706 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 890 030707 004 02 0 00 025001 ER4 AC+1,25001 ;RESULT IN AC+1 IS INCORRECT + 891 030710 321 03 0 00 030701 JUMPL AC+2,E25000 ;LOOP ON ERROR SWITCH^ + 892 + 893 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 2-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0033 + + 894 ;TEST MQ0 SHLT INP-ZERO'S - LSHC AC,1 + 895 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 896 SR2 (251,-1,-1,577777,-1,-1,-1,377777,-2,LSHC,1)^ + 897 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 898 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 577777,-1] 1 BIT POSITIONS AND + 899 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 900 ;[XWD 377777,-2] + 901 + 902 030711 200 01 0 00 036576 E25100: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 903 030712 200 02 0 00 036611 MOVE AC+1,[XWD 577777,-1] ;INITIALIZE AC+1 + 904 030713 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 905 030714 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 906 030715 003 01 0 00 025101 ER3 AC,25101 ;RESULT IN AC IS INCORRECT + 907 030716 312 02 0 00 036612 CAME AC+1,[XWD 377777,-2] ;IS RESULT IN AC+1 CORRECT? + 908 030717 004 02 0 00 025101 ER4 AC+1,25101 ;RESULT IN AC+1 IS INCORRECT + 909 030720 321 03 0 00 030711 JUMPL AC+2,E25100 ;LOOP ON ERROR SWITCH^ + 910 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0034 + + 911 ;SHIFT CONNECTIONS TEST + 912 ;TEST AR35 SHLT INP-ONE'S - LSHC AC,1 + 913 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 914 SR2 (252,0,0,400000,0,0,1,0,0,LSHC,1)^ + 915 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 916 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 400000,0] 1 BIT POSITIONS AND + 917 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 918 ;[XWD 0,0] + 919 + 920 030721 200 01 0 00 036600 E25200: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 921 030722 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 922 030723 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 923 030724 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 924 030725 003 01 0 00 025201 ER3 AC,25201 ;RESULT IN AC IS INCORRECT + 925 030726 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 926 030727 004 02 0 00 025201 ER4 AC+1,25201 ;RESULT IN AC+1 IS INCORRECT + 927 030730 321 03 0 00 030721 JUMPL AC+2,E25200 ;LOOP ON ERROR SWITCH^ + 928 + 929 ;SHIFT CONNECTIONS TEST + 930 ;TEST AR35 SHLT INP-ZERO'S - LSHC AC,1 + 931 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 932 SR2 (253,-1,-1,377777,-1,-1,-2,-1,-2,LSHC,1)^ + 933 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 934 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 377777,-1] 1 BIT POSITIONS AND + 935 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 936 ;[XWD -1,-2] + 937 + 938 030731 200 01 0 00 036576 E25300: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 939 030732 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 940 030733 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 941 030734 312 01 0 00 036577 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 942 030735 003 01 0 00 025301 ER3 AC,25301 ;RESULT IN AC IS INCORRECT + 943 030736 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 944 030737 004 02 0 00 025301 ER4 AC+1,25301 ;RESULT IN AC+1 IS INCORRECT + 945 030740 321 03 0 00 030731 JUMPL AC+2,E25300 ;LOOP ON ERROR SWITCH^ + 946 + 947 ;SHIFT CONNECTIONS TEST + 948 ;TEST AR34 SHLT INP-ONE'S - LSHC AC,1 + 949 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 950 SR2 (254,0,1,0,0,0,2,0,0,LSHC,1)^ + 951 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 952 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] 1 BIT POSITIONS AND + 953 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 954 ;[XWD 0,0] + 955 + 956 030741 200 01 0 00 036601 E25400: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 957 030742 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 958 030743 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 959 030744 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 960 030745 003 01 0 00 025401 ER3 AC,25401 ;RESULT IN AC IS INCORRECT + 961 030746 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 962 030747 004 02 0 00 025401 ER4 AC+1,25401 ;RESULT IN AC+1 IS INCORRECT + 963 030750 321 03 0 00 030741 JUMPL AC+2,E25400 ;LOOP ON ERROR SWITCH^ + 964 + 965 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0035 + + 966 ;TEST AR34 SHLT INP-ZERO'S - LSHC AC,1 + 967 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 968 SR2 (255,-1,-2,-1,-1,-1,-3,-1,-2,LSHC,1)^ + 969 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 970 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] 1 BIT POSITIONS AND + 971 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 972 ;[XWD -1,-2] + 973 + 974 030751 200 01 0 00 036577 E25500: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 975 030752 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 976 030753 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 977 030754 312 01 0 00 036614 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 978 030755 003 01 0 00 025501 ER3 AC,25501 ;RESULT IN AC IS INCORRECT + 979 030756 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 980 030757 004 02 0 00 025501 ER4 AC+1,25501 ;RESULT IN AC+1 IS INCORRECT + 981 030760 321 03 0 00 030751 JUMPL AC+2,E25500 ;LOOP ON ERROR SWITCH^ + 982 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0036 + + 983 ;SHIFT CONNECTIONS TEST + 984 ;TEST AR1 SHLT INP-ONE'S - LSHC AC,1 + 985 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 986 SR2 (256,100000,0,0,0,200000,0,0,0,LSHC,1)^ + 987 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 988 ;DATA SPECIFIED IN [XWD 100000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 989 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 990 ;[XWD 0,0] + 991 + 992 030761 200 01 0 00 036604 E25600: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 993 030762 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 994 030763 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 995 030764 312 01 0 00 036605 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 996 030765 003 01 0 00 025601 ER3 AC,25601 ;RESULT IN AC IS INCORRECT + 997 030766 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 998 030767 004 02 0 00 025601 ER4 AC+1,25601 ;RESULT IN AC+1 IS INCORRECT + 999 030770 321 03 0 00 030761 JUMPL AC+2,E25600 ;LOOP ON ERROR SWITCH^ + 1000 + 1001 ;SHIFT CONNECTIONS TEST + 1002 ;TEST AR1 SHLT INP-ZERO'S - LSHC AC,1 + 1003 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1004 SR2 (257,677777,-1,-1,-1,577777,-1,-1,-2,LSHC,1)^ + 1005 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1006 ;DATA SPECIFIED IN [XWD 677777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1007 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 577777,-1] AND + 1008 ;[XWD -1,-2] + 1009 + 1010 030771 200 01 0 00 036606 E25700: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 1011 030772 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1012 030773 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1013 030774 312 01 0 00 036611 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 1014 030775 003 01 0 00 025701 ER3 AC,25701 ;RESULT IN AC IS INCORRECT + 1015 030776 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1016 030777 004 02 0 00 025701 ER4 AC+1,25701 ;RESULT IN AC+1 IS INCORRECT + 1017 031000 321 03 0 00 030771 JUMPL AC+2,E25700 ;LOOP ON ERROR SWITCH^ + 1018 + 1019 ;SHIFT CONNECTIONS TEST + 1020 ;TEST AR0 SHLT INP-ONE'S - LSHC AC,1 + 1021 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1022 SR2 (260,200000,0,0,0,400000,0,0,0,LSHC,1)^ + 1023 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1024 ;DATA SPECIFIED IN [XWD 200000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 1025 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 1026 ;[XWD 0,0] + 1027 + 1028 031001 200 01 0 00 036605 E26000: MOVE AC,[XWD 200000,0] ;INITIALIZE AC + 1029 031002 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1030 031003 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1031 031004 312 01 0 00 036610 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 1032 031005 003 01 0 00 026001 ER3 AC,26001 ;RESULT IN AC IS INCORRECT + 1033 031006 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1034 031007 004 02 0 00 026001 ER4 AC+1,26001 ;RESULT IN AC+1 IS INCORRECT + 1035 031010 321 03 0 00 031001 JUMPL AC+2,E26000 ;LOOP ON ERROR SWITCH^ + 1036 + 1037 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0037 + + 1038 ;TEST AR0 SHLT INP-ZERO'S - LSHC AC,1 + 1039 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1040 SR2 (261,577777,-1,-1,-1,377777,-1,-1,-2,LSHC,1)^ + 1041 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1042 ;DATA SPECIFIED IN [XWD 577777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1043 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1044 ;[XWD -1,-2] + 1045 + 1046 031011 200 01 0 00 036611 E26100: MOVE AC,[XWD 577777,-1] ;INITIALIZE AC + 1047 031012 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1048 031013 246 01 0 00 000001 LSHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1049 031014 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1050 031015 003 01 0 00 026101 ER3 AC,26101 ;RESULT IN AC IS INCORRECT + 1051 031016 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1052 031017 004 02 0 00 026101 ER4 AC+1,26101 ;RESULT IN AC+1 IS INCORRECT + 1053 031020 321 03 0 00 031011 JUMPL AC+2,E26100 ;LOOP ON ERROR SWITCH^ + 1054 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0038 + + 1055 ;SHIFT CONNECTIONS TEST + 1056 ;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-1 + 1057 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1058 SR2 (262,-1,-1,-1,-1,377777,-1,-1,-1,LSHC,-1)^ + 1059 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1060 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1061 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1062 ;[XWD -1,-1] + 1063 + 1064 031021 200 01 0 00 036576 E26200: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1065 031022 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1066 031023 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1067 031024 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1068 031025 003 01 0 00 026201 ER3 AC,26201 ;RESULT IN AC IS INCORRECT + 1069 031026 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1070 031027 004 02 0 00 026201 ER4 AC+1,26201 ;RESULT IN AC+1 IS INCORRECT + 1071 031030 321 03 0 00 031021 JUMPL AC+2,E26200 ;LOOP ON ERROR SWITCH^ + 1072 + 1073 ;SHIFT CONNECTIONS TEST + 1074 ;TEST AR1 SHRT INP-ONE'S - LSHC AC,-1 + 1075 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1076 SR2 (263,400000,0,0,0,200000,0,0,0,LSHC,-1)^ + 1077 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1078 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] -1 BIT POSITIONS AND + 1079 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 1080 ;[XWD 0,0] + 1081 + 1082 031031 200 01 0 00 036610 E26300: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 1083 031032 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1084 031033 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1085 031034 312 01 0 00 036605 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 1086 031035 003 01 0 00 026301 ER3 AC,26301 ;RESULT IN AC IS INCORRECT + 1087 031036 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1088 031037 004 02 0 00 026301 ER4 AC+1,26301 ;RESULT IN AC+1 IS INCORRECT + 1089 031040 321 03 0 00 031031 JUMPL AC+2,E26300 ;LOOP ON ERROR SWITCH^ + 1090 + 1091 ;SHIFT CONNECTIONS TEST + 1092 ;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-1 + 1093 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1094 SR2 (264,377777,-1,-1,-1,177777,-1,-1,-1,LSHC,-1)^ + 1095 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1096 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1097 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1098 ;[XWD -1,-1] + 1099 + 1100 031041 200 01 0 00 036613 E26400: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 1101 031042 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1102 031043 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1103 031044 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1104 031045 003 01 0 00 026401 ER3 AC,26401 ;RESULT IN AC IS INCORRECT + 1105 031046 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1106 031047 004 02 0 00 026401 ER4 AC+1,26401 ;RESULT IN AC+1 IS INCORRECT + 1107 031050 321 03 0 00 031041 JUMPL AC+2,E26400 ;LOOP ON ERROR SWITCH^ + 1108 + 1109 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0039 + + 1110 ;TEST AR34 SHRT INP-ONE'S - LSHC AC,-1 + 1111 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1112 SR2 (265,0,4,0,0,0,2,0,0,LSHC,-1)^ + 1113 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1114 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -1 BIT POSITIONS AND + 1115 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 1116 ;[XWD 0,0] + 1117 + 1118 031051 200 01 0 00 036616 E26500: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 1119 031052 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1120 031053 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1121 031054 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 1122 031055 003 01 0 00 026501 ER3 AC,26501 ;RESULT IN AC IS INCORRECT + 1123 031056 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1124 031057 004 02 0 00 026501 ER4 AC+1,26501 ;RESULT IN AC+1 IS INCORRECT + 1125 031060 321 03 0 00 031051 JUMPL AC+2,E26500 ;LOOP ON ERROR SWITCH^ + 1126 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 4-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0040 + + 1127 ;SHIFT CONNECTIONS TEST + 1128 ;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-1 + 1129 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1130 SR2 (266,-1,-5,-1,-1,377777,-3,-1,-1,LSHC,-1)^ + 1131 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1132 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1133 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-3] AND + 1134 ;[XWD -1,-1] + 1135 + 1136 031061 200 01 0 00 036617 E26600: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 1137 031062 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1138 031063 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1139 031064 312 01 0 00 036620 CAME AC,[XWD 377777,-3] ;IS RESULT IN AC CORRECT? + 1140 031065 003 01 0 00 026601 ER3 AC,26601 ;RESULT IN AC IS INCORRECT + 1141 031066 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1142 031067 004 02 0 00 026601 ER4 AC+1,26601 ;RESULT IN AC+1 IS INCORRECT + 1143 031070 321 03 0 00 031061 JUMPL AC+2,E26600 ;LOOP ON ERROR SWITCH^ + 1144 + 1145 ;SHIFT CONNECTIONS TEST + 1146 ;TEST AR35 SHRT INP-ONE'S - LSHC AC,-1 + 1147 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1148 SR2 (267,0,2,0,0,0,1,0,0,LSHC,-1)^ + 1149 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1150 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -1 BIT POSITIONS AND + 1151 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 1152 ;[XWD 0,0] + 1153 + 1154 031071 200 01 0 00 036602 E26700: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 1155 031072 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1156 031073 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1157 031074 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 1158 031075 003 01 0 00 026701 ER3 AC,26701 ;RESULT IN AC IS INCORRECT + 1159 031076 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1160 031077 004 02 0 00 026701 ER4 AC+1,26701 ;RESULT IN AC+1 IS INCORRECT + 1161 031100 321 03 0 00 031071 JUMPL AC+2,E26700 ;LOOP ON ERROR SWITCH^ + 1162 + 1163 ;SHIFT CONNECTIONS TEST + 1164 ;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-1 + 1165 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1166 SR2 (270,-1,-3,-1,-1,377777,-2,-1,-1,LSHC,-1)^ + 1167 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1168 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1169 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-2] AND + 1170 ;[XWD -1,-1] + 1171 + 1172 031101 200 01 0 00 036614 E27000: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 1173 031102 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1174 031103 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1175 031104 312 01 0 00 036612 CAME AC,[XWD 377777,-2] ;IS RESULT IN AC CORRECT? + 1176 031105 003 01 0 00 027001 ER3 AC,27001 ;RESULT IN AC IS INCORRECT + 1177 031106 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1178 031107 004 02 0 00 027001 ER4 AC+1,27001 ;RESULT IN AC+1 IS INCORRECT + 1179 031110 321 03 0 00 031101 JUMPL AC+2,E27000 ;LOOP ON ERROR SWITCH^ + 1180 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0041 + + 1181 ;SHIFT CONNECTIONS TEST + 1182 ;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-1 + 1183 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1184 SR2 (271,0,1,0,0,0,0,400000,0,LSHC,-1)^ + 1185 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1186 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] -1 BIT POSITIONS AND + 1187 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1188 ;[XWD 400000,0] + 1189 + 1190 031111 200 01 0 00 036601 E27100: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 1191 031112 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1192 031113 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1193 031114 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1194 031115 003 01 0 00 027101 ER3 AC,27101 ;RESULT IN AC IS INCORRECT + 1195 031116 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1196 031117 004 02 0 00 027101 ER4 AC+1,27101 ;RESULT IN AC+1 IS INCORRECT + 1197 031120 321 03 0 00 031111 JUMPL AC+2,E27100 ;LOOP ON ERROR SWITCH^ + 1198 + 1199 ;SHIFT CONNECTIONS TEST + 1200 ;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-1 + 1201 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1202 SR2 (272,-1,-2,-1,-1,377777,-1,377777,-1,LSHC,-1)^ + 1203 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1204 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1205 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1206 ;[XWD 377777,-1] + 1207 + 1208 031121 200 01 0 00 036577 E27200: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 1209 031122 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1210 031123 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1211 031124 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1212 031125 003 01 0 00 027201 ER3 AC,27201 ;RESULT IN AC IS INCORRECT + 1213 031126 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 1214 031127 004 02 0 00 027201 ER4 AC+1,27201 ;RESULT IN AC+1 IS INCORRECT + 1215 031130 321 03 0 00 031121 JUMPL AC+2,E27200 ;LOOP ON ERROR SWITCH^ + 1216 + 1217 ;SHIFT CONNECTIONS TEST + 1218 ;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-1 + 1219 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1220 SR2 (273,0,0,400000,0,0,0,200000,0,LSHC,-1)^ + 1221 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1222 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 400000,0] -1 BIT POSITIONS AND + 1223 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1224 ;[XWD 200000,0] + 1225 + 1226 031131 200 01 0 00 036600 E27300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1227 031132 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 1228 031133 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1229 031134 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1230 031135 003 01 0 00 027301 ER3 AC,27301 ;RESULT IN AC IS INCORRECT + 1231 031136 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 1232 031137 004 02 0 00 027301 ER4 AC+1,27301 ;RESULT IN AC+1 IS INCORRECT + 1233 031140 321 03 0 00 031131 JUMPL AC+2,E27300 ;LOOP ON ERROR SWITCH^ + 1234 + 1235 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0042 + + 1236 ;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-1 + 1237 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1238 SR2 (274,-1,-1,377777,-1,377777,-1,577777,-1,LSHC,-1)^ + 1239 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1240 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 377777,-1] -1 BIT POSITIONS AND + 1241 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1242 ;[XWD 577777,-1] + 1243 + 1244 031141 200 01 0 00 036576 E27400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1245 031142 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 1246 031143 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1247 031144 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1248 031145 003 01 0 00 027401 ER3 AC,27401 ;RESULT IN AC IS INCORRECT + 1249 031146 312 02 0 00 036611 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 1250 031147 004 02 0 00 027401 ER4 AC+1,27401 ;RESULT IN AC+1 IS INCORRECT + 1251 031150 321 03 0 00 031141 JUMPL AC+2,E27400 ;LOOP ON ERROR SWITCH^ + 1252 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0043 + + 1253 ;SHIFT CONNECTIONS TEST + 1254 ;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-1 + 1255 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1256 SR2 (275,0,0,0,4,0,0,0,2,LSHC,-1)^ + 1257 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1258 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -1 BIT POSITIONS AND + 1259 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1260 ;[XWD 0,2] + 1261 + 1262 031151 200 01 0 00 036600 E27500: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1263 031152 200 02 0 00 036616 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 1264 031153 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1265 031154 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1266 031155 003 01 0 00 027501 ER3 AC,27501 ;RESULT IN AC IS INCORRECT + 1267 031156 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 1268 031157 004 02 0 00 027501 ER4 AC+1,27501 ;RESULT IN AC+1 IS INCORRECT + 1269 031160 321 03 0 00 031151 JUMPL AC+2,E27500 ;LOOP ON ERROR SWITCH^ + 1270 + 1271 ;SHIFT CONNECTIONS TEST + 1272 ;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-1 + 1273 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1274 SR2 (276,-1,-1,-1,-5,377777,-1,-1,-3,LSHC,-1)^ + 1275 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1276 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -1 BIT POSITIONS AND + 1277 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1278 ;[XWD -1,-3] + 1279 + 1280 031161 200 01 0 00 036576 E27600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1281 031162 200 02 0 00 036617 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 1282 031163 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1283 031164 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1284 031165 003 01 0 00 027601 ER3 AC,27601 ;RESULT IN AC IS INCORRECT + 1285 031166 312 02 0 00 036614 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 1286 031167 004 02 0 00 027601 ER4 AC+1,27601 ;RESULT IN AC+1 IS INCORRECT + 1287 031170 321 03 0 00 031161 JUMPL AC+2,E27600 ;LOOP ON ERROR SWITCH^ + 1288 + 1289 ;SHIFT CONNECTIONS TEST + 1290 ;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-1 + 1291 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 1292 SR2 (277,0,0,0,2,0,0,0,1,LSHC,-1)^ + 1293 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1294 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,2] -1 BIT POSITIONS AND + 1295 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1296 ;[XWD 0,1] + 1297 + 1298 031171 200 01 0 00 036600 E27700: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1299 031172 200 02 0 00 036602 MOVE AC+1,[XWD 0,2] ;INITIALIZE AC+1 + 1300 031173 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1301 031174 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1302 031175 003 01 0 00 027701 ER3 AC,27701 ;RESULT IN AC IS INCORRECT + 1303 031176 312 02 0 00 036601 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 1304 031177 004 02 0 00 027701 ER4 AC+1,27701 ;RESULT IN AC+1 IS INCORRECT + 1305 031200 321 03 0 00 031171 JUMPL AC+2,E27700 ;LOOP ON ERROR SWITCH^ + 1306 + 1307 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 5-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0044 + + 1308 ;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-1 + 1309 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 1310 SR2 (300,-1,-1,-1,-3,377777,-1,-1,-2,LSHC,-1)^ + 1311 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1312 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-3] -1 BIT POSITIONS AND + 1313 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1314 ;[XWD -1,-2] + 1315 + 1316 031201 200 01 0 00 036576 E30000: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1317 031202 200 02 0 00 036614 MOVE AC+1,[XWD -1,-3] ;INITIALIZE AC+1 + 1318 031203 246 01 0 00 777777 LSHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1319 031204 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1320 031205 003 01 0 00 030001 ER3 AC,30001 ;RESULT IN AC IS INCORRECT + 1321 031206 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1322 031207 004 02 0 00 030001 ER4 AC+1,30001 ;RESULT IN AC+1 IS INCORRECT + 1323 031210 321 03 0 00 031201 JUMPL AC+2,E30000 ;LOOP ON ERROR SWITCH^ + 1324 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 6 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0045 + + 1325 ;SHIFT CONNECTIONS TEST + 1326 ;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-2 + 1327 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1328 SR2 (301,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2)^ + 1329 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1330 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1331 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1332 ;[XWD -1,-1] + 1333 + 1334 031211 200 01 0 00 036576 E30100: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1335 031212 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1336 031213 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1337 031214 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1338 031215 003 01 0 00 030101 ER3 AC,30101 ;RESULT IN AC IS INCORRECT + 1339 031216 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1340 031217 004 02 0 00 030101 ER4 AC+1,30101 ;RESULT IN AC+1 IS INCORRECT + 1341 031220 321 03 0 00 031211 JUMPL AC+2,E30100 ;LOOP ON ERROR SWITCH^ + 1342 + 1343 ;SHIFT CONNECTIONS TEST + 1344 ;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-2 + 1345 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1346 SR2 (302,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2)^ + 1347 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1348 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1349 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1350 ;[XWD -1,-1] + 1351 + 1352 031221 200 01 0 00 036576 E30200: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1353 031222 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1354 031223 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1355 031224 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1356 031225 003 01 0 00 030201 ER3 AC,30201 ;RESULT IN AC IS INCORRECT + 1357 031226 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1358 031227 004 02 0 00 030201 ER4 AC+1,30201 ;RESULT IN AC+1 IS INCORRECT + 1359 031230 321 03 0 00 031221 JUMPL AC+2,E30200 ;LOOP ON ERROR SWITCH^ + 1360 + 1361 ;SHIFT CONNECTIONS TEST + 1362 ;TEST AR34 SHRT INP-ONE'S - LSHC AC,-2 + 1363 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1364 SR2 (303,0,10,0,0,0,2,0,0,LSHC,-2)^ + 1365 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1366 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,0] -2 BIT POSITIONS AND + 1367 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 1368 ;[XWD 0,0] + 1369 + 1370 031231 200 01 0 00 036621 E30300: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 1371 031232 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1372 031233 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1373 031234 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 1374 031235 003 01 0 00 030301 ER3 AC,30301 ;RESULT IN AC IS INCORRECT + 1375 031236 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1376 031237 004 02 0 00 030301 ER4 AC+1,30301 ;RESULT IN AC+1 IS INCORRECT + 1377 031240 321 03 0 00 031231 JUMPL AC+2,E30300 ;LOOP ON ERROR SWITCH^ + 1378 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 6-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0046 + + 1379 ;SHIFT CONNECTIONS TEST + 1380 ;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-2 + 1381 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1382 SR2 (304,-1,-11,-1,-1,177777,-3,-1,-1,LSHC,-2)^ + 1383 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1384 ;DATA SPECIFIED IN [XWD -1,-11] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1385 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-3] AND + 1386 ;[XWD -1,-1] + 1387 + 1388 031241 200 01 0 00 036622 E30400: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 1389 031242 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1390 031243 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1391 031244 312 01 0 00 036623 CAME AC,[XWD 177777,-3] ;IS RESULT IN AC CORRECT? + 1392 031245 003 01 0 00 030401 ER3 AC,30401 ;RESULT IN AC IS INCORRECT + 1393 031246 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1394 031247 004 02 0 00 030401 ER4 AC+1,30401 ;RESULT IN AC+1 IS INCORRECT + 1395 031250 321 03 0 00 031241 JUMPL AC+2,E30400 ;LOOP ON ERROR SWITCH^ + 1396 + 1397 ;SHIFT CONNECTIONS TEST + 1398 ;TEST AR35 SHRT INP-ONE'S - LSHC AC,-2 + 1399 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1400 SR2 (305,0,4,0,0,0,1,0,0,LSHC,-2)^ + 1401 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1402 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -2 BIT POSITIONS AND + 1403 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 1404 ;[XWD 0,0] + 1405 + 1406 031251 200 01 0 00 036616 E30500: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 1407 031252 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1408 031253 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1409 031254 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 1410 031255 003 01 0 00 030501 ER3 AC,30501 ;RESULT IN AC IS INCORRECT + 1411 031256 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1412 031257 004 02 0 00 030501 ER4 AC+1,30501 ;RESULT IN AC+1 IS INCORRECT + 1413 031260 321 03 0 00 031251 JUMPL AC+2,E30500 ;LOOP ON ERROR SWITCH^ + 1414 + 1415 ;SHIFT CONNECTIONS TEST + 1416 ;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-2 + 1417 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1418 SR2 (306,-1,-5,-1,-1,177777,-2,-1,-1,LSHC,-2)^ + 1419 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1420 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1421 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-2] AND + 1422 ;[XWD -1,-1] + 1423 + 1424 031261 200 01 0 00 036617 E30600: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 1425 031262 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1426 031263 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1427 031264 312 01 0 00 036624 CAME AC,[XWD 177777,-2] ;IS RESULT IN AC CORRECT? + 1428 031265 003 01 0 00 030601 ER3 AC,30601 ;RESULT IN AC IS INCORRECT + 1429 031266 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1430 031267 004 02 0 00 030601 ER4 AC+1,30601 ;RESULT IN AC+1 IS INCORRECT + 1431 031270 321 03 0 00 031261 JUMPL AC+2,E30600 ;LOOP ON ERROR SWITCH^ + 1432 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 7 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0047 + + 1433 ;SHIFT CONNECTIONS TEST + 1434 ;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-2 + 1435 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1436 SR2 (307,0,2,0,0,0,0,400000,0,LSHC,-2)^ + 1437 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1438 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -2 BIT POSITIONS AND + 1439 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1440 ;[XWD 400000,0] + 1441 + 1442 031271 200 01 0 00 036602 E30700: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 1443 031272 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1444 031273 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1445 031274 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1446 031275 003 01 0 00 030701 ER3 AC,30701 ;RESULT IN AC IS INCORRECT + 1447 031276 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1448 031277 004 02 0 00 030701 ER4 AC+1,30701 ;RESULT IN AC+1 IS INCORRECT + 1449 031300 321 03 0 00 031271 JUMPL AC+2,E30700 ;LOOP ON ERROR SWITCH^ + 1450 + 1451 ;SHIFT CONNECTIONS TEST + 1452 ;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-2 + 1453 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1454 SR2 (310,-1,-3,-1,-1,177777,-1,377777,-1,LSHC,-2)^ + 1455 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1456 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1457 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1458 ;[XWD 377777,-1] + 1459 + 1460 031301 200 01 0 00 036614 E31000: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 1461 031302 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1462 031303 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1463 031304 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1464 031305 003 01 0 00 031001 ER3 AC,31001 ;RESULT IN AC IS INCORRECT + 1465 031306 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 1466 031307 004 02 0 00 031001 ER4 AC+1,31001 ;RESULT IN AC+1 IS INCORRECT + 1467 031310 321 03 0 00 031301 JUMPL AC+2,E31000 ;LOOP ON ERROR SWITCH^ + 1468 + 1469 ;SHIFT CONNECTIONS TEST + 1470 ;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-2 + 1471 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1472 SR2 (311,0,1,0,0,0,0,200000,0,LSHC,-2)^ + 1473 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1474 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] -2 BIT POSITIONS AND + 1475 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1476 ;[XWD 200000,0] + 1477 + 1478 031311 200 01 0 00 036601 E31100: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 1479 031312 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1480 031313 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1481 031314 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1482 031315 003 01 0 00 031101 ER3 AC,31101 ;RESULT IN AC IS INCORRECT + 1483 031316 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 1484 031317 004 02 0 00 031101 ER4 AC+1,31101 ;RESULT IN AC+1 IS INCORRECT + 1485 031320 321 03 0 00 031311 JUMPL AC+2,E31100 ;LOOP ON ERROR SWITCH^ + 1486 + 1487 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 7-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0048 + + 1488 ;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-2 + 1489 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1490 SR2 (312,-1,-2,-1,-1,177777,-1,577777,-1,LSHC,-2)^ + 1491 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1492 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] -2 BIT POSITIONS AND + 1493 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1494 ;[XWD 577777,-1] + 1495 + 1496 031321 200 01 0 00 036577 E31200: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 1497 031322 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1498 031323 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1499 031324 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1500 031325 003 01 0 00 031201 ER3 AC,31201 ;RESULT IN AC IS INCORRECT + 1501 031326 312 02 0 00 036611 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 1502 031327 004 02 0 00 031201 ER4 AC+1,31201 ;RESULT IN AC+1 IS INCORRECT + 1503 031330 321 03 0 00 031321 JUMPL AC+2,E31200 ;LOOP ON ERROR SWITCH^ + 1504 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 7-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0049 + + 1505 ;SHIFT CONNECTIONS TEST + 1506 ;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-2 + 1507 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1508 SR2 (313,0,0,0,10,0,0,0,2,LSHC,-2)^ + 1509 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1510 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,10] -2 BIT POSITIONS AND + 1511 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1512 ;[XWD 0,2] + 1513 + 1514 031331 200 01 0 00 036600 E31300: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1515 031332 200 02 0 00 036621 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 1516 031333 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1517 031334 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1518 031335 003 01 0 00 031301 ER3 AC,31301 ;RESULT IN AC IS INCORRECT + 1519 031336 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 1520 031337 004 02 0 00 031301 ER4 AC+1,31301 ;RESULT IN AC+1 IS INCORRECT + 1521 031340 321 03 0 00 031331 JUMPL AC+2,E31300 ;LOOP ON ERROR SWITCH^ + 1522 + 1523 ;SHIFT CONNECTIONS TEST + 1524 ;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-2 + 1525 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1526 SR2 (314,-1,-1,-1,-11,177777,-1,-1,-3,LSHC,-2)^ + 1527 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1528 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-11] -2 BIT POSITIONS AND + 1529 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1530 ;[XWD -1,-3] + 1531 + 1532 031341 200 01 0 00 036576 E31400: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1533 031342 200 02 0 00 036622 MOVE AC+1,[XWD -1,-11] ;INITIALIZE AC+1 + 1534 031343 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1535 031344 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1536 031345 003 01 0 00 031401 ER3 AC,31401 ;RESULT IN AC IS INCORRECT + 1537 031346 312 02 0 00 036614 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 1538 031347 004 02 0 00 031401 ER4 AC+1,31401 ;RESULT IN AC+1 IS INCORRECT + 1539 031350 321 03 0 00 031341 JUMPL AC+2,E31400 ;LOOP ON ERROR SWITCH^ + 1540 + 1541 ;SHIFT CONNECTIONS TEST + 1542 ;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-2 + 1543 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 1544 SR2 (315,0,0,0,4,0,0,0,1,LSHC,-2)^ + 1545 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1546 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -2 BIT POSITIONS AND + 1547 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1548 ;[XWD 0,1] + 1549 + 1550 031351 200 01 0 00 036600 E31500: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1551 031352 200 02 0 00 036616 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 1552 031353 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1553 031354 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1554 031355 003 01 0 00 031501 ER3 AC,31501 ;RESULT IN AC IS INCORRECT + 1555 031356 312 02 0 00 036601 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 1556 031357 004 02 0 00 031501 ER4 AC+1,31501 ;RESULT IN AC+1 IS INCORRECT + 1557 031360 321 03 0 00 031351 JUMPL AC+2,E31500 ;LOOP ON ERROR SWITCH^ + 1558 + 1559 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 7-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) SEQ 0050 + + 1560 ;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-2 + 1561 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 1562 SR2 (316,-1,-1,-1,-5,177777,-1,-1,-2,LSHC,-2)^ + 1563 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1564 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -2 BIT POSITIONS AND + 1565 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1566 ;[XWD -1,-2] + 1567 + 1568 031361 200 01 0 00 036576 E31600: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1569 031362 200 02 0 00 036617 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 1570 031363 246 01 0 00 777776 LSHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 1571 031364 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1572 031365 003 01 0 00 031601 ER3 AC,31601 ;RESULT IN AC IS INCORRECT + 1573 031366 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1574 031367 004 02 0 00 031601 ER4 AC+1,31601 ;RESULT IN AC+1 IS INCORRECT + 1575 031370 321 03 0 00 031361 JUMPL AC+2,E31600 ;LOOP ON ERROR SWITCH^ + 1576 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 8 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0051 + + 1577 SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) + 1578 + 1579 ;END CONNECTIONS-ASHC + 1580 ;TEST AR-MQ END BIT INPUT GATES + 1581 ;TEST LEFT-AR0,1,34,35 SHLT INP GATES + 1582 ; MQ0,1,34,35 SHLT INP GATES + 1583 ;TEST RIGHT-AR0,1,34,35 SHRT INP GATES + 1584 ; MQ0,1,34,35 SHRT INPUT GATES + 1585 ;AC,AC+1 ARE ARITHMETICALLY SHIFTED LEFT/RIGHT AND + 1586 ;END BITS ARE TESTED + 1587 ;TEST ASSUMES BOTH REGISTERS ARE + 1588 ;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY + 1589 + 1590 ;GATES PREVIOUSLY TESTED,ARE AGAIN TESTED + 1591 ;ERRORS MOST LIKELY DUE TO FAILURE OF + 1592 ;ASHC TO BRING UP ENABLING LEVELS + 1593 + 1594 ;SHIFT CONNECTIONS TEST + 1595 ;TEST MQ35 SHLT INP-ZERO'S - ASHC AC,1 + 1596 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 1597 SR2 (317,-1,-1,-1,-1,-1,-1,-1,-2,ASHC,1)^ + 1598 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1599 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1600 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 1601 ;[XWD -1,-2] + 1602 + 1603 031371 200 01 0 00 036576 E31700: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1604 031372 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1605 031373 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1606 031374 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 1607 031375 003 01 0 00 031701 ER3 AC,31701 ;RESULT IN AC IS INCORRECT + 1608 031376 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1609 031377 004 02 0 00 031701 ER4 AC+1,31701 ;RESULT IN AC+1 IS INCORRECT + 1610 031400 321 03 0 00 031371 JUMPL AC+2,E31700 ;LOOP ON ERROR SWITCH^ + 1611 + 1612 ;SHIFT CONNECTIONS TEST + 1613 ;TEST MQ34 SHLT INP-ONE'S - ASHC AC,1 + 1614 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1615 SR2 (320,0,0,0,1,0,0,0,2,ASHC,1)^ + 1616 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1617 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,1] 1 BIT POSITIONS AND + 1618 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1619 ;[XWD 0,2] + 1620 + 1621 031401 200 01 0 00 036600 E32000: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1622 031402 200 02 0 00 036601 MOVE AC+1,[XWD 0,1] ;INITIALIZE AC+1 + 1623 031403 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1624 031404 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1625 031405 003 01 0 00 032001 ER3 AC,32001 ;RESULT IN AC IS INCORRECT + 1626 031406 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 1627 031407 004 02 0 00 032001 ER4 AC+1,32001 ;RESULT IN AC+1 IS INCORRECT + 1628 031410 321 03 0 00 031401 JUMPL AC+2,E32000 ;LOOP ON ERROR SWITCH^ + 1629 + 1630 ;SHIFT CONNECTIONS TEST + 1631 ;TEST MQ34 SHLT INP-ZERO'S - ASHC AC,1 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 8-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0052 + + 1632 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 1633 SR2 (321,-1,-1,-1,-2,-1,-1,-1,-4,ASHC,1)^ + 1634 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1635 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-2] 1 BIT POSITIONS AND + 1636 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 1637 ;[XWD -1,-4] + 1638 + 1639 031411 200 01 0 00 036576 E32100: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1640 031412 200 02 0 00 036577 MOVE AC+1,[XWD -1,-2] ;INITIALIZE AC+1 + 1641 031413 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1642 031414 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 1643 031415 003 01 0 00 032101 ER3 AC,32101 ;RESULT IN AC IS INCORRECT + 1644 031416 312 02 0 00 036603 CAME AC+1,[XWD -1,-4] ;IS RESULT IN AC+1 CORRECT? + 1645 031417 004 02 0 00 032101 ER4 AC+1,32101 ;RESULT IN AC+1 IS INCORRECT + 1646 031420 321 03 0 00 031411 JUMPL AC+2,E32100 ;LOOP ON ERROR SWITCH^ + 1647 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 8-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0053 + + 1648 ;SHIFT CONNECTIONS TEST + 1649 ;TEST MQ1 SHLT INP-ONE'S - ASHC AC,1 + 1650 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1651 SR2 (322,0,0,100000,0,0,0,200000,0,ASHC,1)^ + 1652 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1653 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 100000,0] 1 BIT POSITIONS AND + 1654 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 1655 ;[XWD 200000,0] + 1656 + 1657 031421 200 01 0 00 036600 E32200: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1658 031422 200 02 0 00 036604 MOVE AC+1,[XWD 100000,0] ;INITIALIZE AC+1 + 1659 031423 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1660 031424 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 1661 031425 003 01 0 00 032201 ER3 AC,32201 ;RESULT IN AC IS INCORRECT + 1662 031426 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 1663 031427 004 02 0 00 032201 ER4 AC+1,32201 ;RESULT IN AC+1 IS INCORRECT + 1664 031430 321 03 0 00 031421 JUMPL AC+2,E32200 ;LOOP ON ERROR SWITCH^ + 1665 + 1666 ;SHIFT CONNECTIONS TEST + 1667 ;TEST MQ1 SHLT INP-ZERO'S - ASHC AC,1 + 1668 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 1669 SR2 (323,-1,-1,677777,-1,-1,-1,577777,-2,ASHC,1)^ + 1670 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1671 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 677777,-1] 1 BIT POSITIONS AND + 1672 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 1673 ;[XWD 577777,-2] + 1674 + 1675 031431 200 01 0 00 036576 E32300: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1676 031432 200 02 0 00 036606 MOVE AC+1,[XWD 677777,-1] ;INITIALIZE AC+1 + 1677 031433 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1678 031434 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 1679 031435 003 01 0 00 032301 ER3 AC,32301 ;RESULT IN AC IS INCORRECT + 1680 031436 312 02 0 00 036607 CAME AC+1,[XWD 577777,-2] ;IS RESULT IN AC+1 CORRECT? + 1681 031437 004 02 0 00 032301 ER4 AC+1,32301 ;RESULT IN AC+1 IS INCORRECT + 1682 031440 321 03 0 00 031431 JUMPL AC+2,E32300 ;LOOP ON ERROR SWITCH^ + 1683 + 1684 ;SHIFT CONNECTIONS TEST + 1685 ;TEST MQ0 SHLT INP-ONE'S - ASHC AC,1 + 1686 ;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 + 1687 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1688 SR2 (324,400000,0,0,0,400000,0,400000,0,ASHC,1)^ + 1689 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1690 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 1691 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 1692 ;[XWD 400000,0] + 1693 + 1694 031441 200 01 0 00 036610 E32400: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 1695 031442 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1696 031443 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1697 031444 312 01 0 00 036610 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 1698 031445 003 01 0 00 032401 ER3 AC,32401 ;RESULT IN AC IS INCORRECT + 1699 031446 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1700 031447 004 02 0 00 032401 ER4 AC+1,32401 ;RESULT IN AC+1 IS INCORRECT + 1701 031450 321 03 0 00 031441 JUMPL AC+2,E32400 ;LOOP ON ERROR SWITCH^ + 1702 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 8-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0054 + + 1703 ;SHIFT CONNECTIONS TEST + 1704 ;TEST MQ0 SHLT INP-ZERO'S - ASHC AC,1 + 1705 ;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 + 1706 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 1707 SR2 (325,377777,-1,-1,-1,377777,-1,377777,-2,ASHC,1)^ + 1708 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1709 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1710 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1711 ;[XWD 377777,-2] + 1712 + 1713 031451 200 01 0 00 036613 E32500: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 1714 031452 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1715 031453 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1716 031454 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1717 031455 003 01 0 00 032501 ER3 AC,32501 ;RESULT IN AC IS INCORRECT + 1718 031456 312 02 0 00 036612 CAME AC+1,[XWD 377777,-2] ;IS RESULT IN AC+1 CORRECT? + 1719 031457 004 02 0 00 032501 ER4 AC+1,32501 ;RESULT IN AC+1 IS INCORRECT + 1720 031460 321 03 0 00 031451 JUMPL AC+2,E32500 ;LOOP ON ERROR SWITCH^ + 1721 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 9 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0055 + + 1722 ;SHIFT CONNECTIONS TEST + 1723 ;TEST AR35 SHLT INP-ONE'S - ASHC AC,1 + 1724 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1725 SR2 (326,0,0,200000,0,0,1,0,0,ASHC,1)^ + 1726 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1727 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 200000,0] 1 BIT POSITIONS AND + 1728 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 1729 ;[XWD 0,0] + 1730 + 1731 031461 200 01 0 00 036600 E32600: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 1732 031462 200 02 0 00 036605 MOVE AC+1,[XWD 200000,0] ;INITIALIZE AC+1 + 1733 031463 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1734 031464 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 1735 031465 003 01 0 00 032601 ER3 AC,32601 ;RESULT IN AC IS INCORRECT + 1736 031466 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1737 031467 004 02 0 00 032601 ER4 AC+1,32601 ;RESULT IN AC+1 IS INCORRECT + 1738 031470 321 03 0 00 031461 JUMPL AC+2,E32600 ;LOOP ON ERROR SWITCH^ + 1739 + 1740 ;SHIFT CONNECTIONS TEST + 1741 ;TEST AR35 SHLT INP-ZERO'S - ASHC AC,1 + 1742 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1743 SR2 (327,-1,-1,577777,-1,-1,-2,-1,-2,ASHC,1)^ + 1744 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1745 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD 577777,-1] 1 BIT POSITIONS AND + 1746 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 1747 ;[XWD -1,-2] + 1748 + 1749 031471 200 01 0 00 036576 E32700: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 1750 031472 200 02 0 00 036611 MOVE AC+1,[XWD 577777,-1] ;INITIALIZE AC+1 + 1751 031473 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1752 031474 312 01 0 00 036577 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 1753 031475 003 01 0 00 032701 ER3 AC,32701 ;RESULT IN AC IS INCORRECT + 1754 031476 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1755 031477 004 02 0 00 032701 ER4 AC+1,32701 ;RESULT IN AC+1 IS INCORRECT + 1756 031500 321 03 0 00 031471 JUMPL AC+2,E32700 ;LOOP ON ERROR SWITCH^ + 1757 + 1758 ;SHIFT CONNECTIONS TEST + 1759 ;TEST AR34 SHLT INP-ONE'S - ASHC AC,1 + 1760 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1761 SR2 (330,0,1,0,0,0,2,0,0,ASHC,1)^ + 1762 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1763 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] 1 BIT POSITIONS AND + 1764 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 1765 ;[XWD 0,0] + 1766 + 1767 031501 200 01 0 00 036601 E33000: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 1768 031502 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1769 031503 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1770 031504 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 1771 031505 003 01 0 00 033001 ER3 AC,33001 ;RESULT IN AC IS INCORRECT + 1772 031506 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1773 031507 004 02 0 00 033001 ER4 AC+1,33001 ;RESULT IN AC+1 IS INCORRECT + 1774 031510 321 03 0 00 031501 JUMPL AC+2,E33000 ;LOOP ON ERROR SWITCH^ + 1775 + 1776 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 9-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0056 + + 1777 ;TEST AR34 SHLT INP-ZERO'S - ASHC AC,1 + 1778 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1779 SR2 (331,-1,-2,-1,-1,-1,-3,-1,-2,ASHC,1)^ + 1780 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1781 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1782 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 1783 ;[XWD -1,-2] + 1784 + 1785 031511 200 01 0 00 036577 E33100: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 1786 031512 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1787 031513 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1788 031514 312 01 0 00 036614 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 1789 031515 003 01 0 00 033101 ER3 AC,33101 ;RESULT IN AC IS INCORRECT + 1790 031516 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1791 031517 004 02 0 00 033101 ER4 AC+1,33101 ;RESULT IN AC+1 IS INCORRECT + 1792 031520 321 03 0 00 031511 JUMPL AC+2,E33100 ;LOOP ON ERROR SWITCH^ + 1793 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 9-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0057 + + 1794 ;SHIFT CONNECTIONS TEST + 1795 ;TEST AR1 SHLT INP-ONE'S - ASHC AC,1 + 1796 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1797 SR2 (332,100000,0,0,0,200000,0,0,0,ASHC,1)^ + 1798 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1799 ;DATA SPECIFIED IN [XWD 100000,0] AND [XWD 0,0] 1 BIT POSITIONS AND + 1800 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 200000,0] AND + 1801 ;[XWD 0,0] + 1802 + 1803 031521 200 01 0 00 036604 E33200: MOVE AC,[XWD 100000,0] ;INITIALIZE AC + 1804 031522 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1805 031523 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1806 031524 312 01 0 00 036605 CAME AC,[XWD 200000,0] ;IS RESULT IN AC CORRECT? + 1807 031525 003 01 0 00 033201 ER3 AC,33201 ;RESULT IN AC IS INCORRECT + 1808 031526 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1809 031527 004 02 0 00 033201 ER4 AC+1,33201 ;RESULT IN AC+1 IS INCORRECT + 1810 031530 321 03 0 00 031521 JUMPL AC+2,E33200 ;LOOP ON ERROR SWITCH^ + 1811 + 1812 ;SHIFT CONNECTIONS TEST + 1813 ;TEST AR1 SHLT INP-ZERO'S - ASHC AC,1 + 1814 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1815 SR2 (333,677777,-1,-1,-1,577777,-1,-1,-2,ASHC,1)^ + 1816 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1817 ;DATA SPECIFIED IN [XWD 677777,-1] AND [XWD -1,-1] 1 BIT POSITIONS AND + 1818 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 577777,-1] AND + 1819 ;[XWD -1,-2] + 1820 + 1821 031531 200 01 0 00 036606 E33300: MOVE AC,[XWD 677777,-1] ;INITIALIZE AC + 1822 031532 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1823 031533 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1824 031534 312 01 0 00 036611 CAME AC,[XWD 577777,-1] ;IS RESULT IN AC CORRECT? + 1825 031535 003 01 0 00 033301 ER3 AC,33301 ;RESULT IN AC IS INCORRECT + 1826 031536 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 1827 031537 004 02 0 00 033301 ER4 AC+1,33301 ;RESULT IN AC+1 IS INCORRECT + 1828 031540 321 03 0 00 031531 JUMPL AC+2,E33300 ;LOOP ON ERROR SWITCH^ + 1829 + 1830 ;SHIFT CONNECTIONS TEST + 1831 ;TEST AR0 SHLT INP-ONE'S - ASHC AC,1 + 1832 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1833 SR2 (334,400000,0,400000,0,400000,0,400000,0,ASHC,1)^ + 1834 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1835 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 400000,0] 1 BIT POSITIONS AND + 1836 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 400000,0] AND + 1837 ;[XWD 400000,0] + 1838 + 1839 031541 200 01 0 00 036610 E33400: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 1840 031542 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 1841 031543 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1842 031544 312 01 0 00 036610 CAME AC,[XWD 400000,0] ;IS RESULT IN AC CORRECT? + 1843 031545 003 01 0 00 033401 ER3 AC,33401 ;RESULT IN AC IS INCORRECT + 1844 031546 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1845 031547 004 02 0 00 033401 ER4 AC+1,33401 ;RESULT IN AC+1 IS INCORRECT + 1846 031550 321 03 0 00 031541 JUMPL AC+2,E33400 ;LOOP ON ERROR SWITCH^ + 1847 + 1848 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 9-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0058 + + 1849 ;TEST AR0 SHLT INP-ZERO'S - ASHC AC,1 + 1850 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1851 SR2 (335,377777,-1,377777,-1,377777,-1,377777,-2,ASHC,1)^ + 1852 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1853 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD 377777,-1] 1 BIT POSITIONS AND + 1854 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 377777,-1] AND + 1855 ;[XWD 377777,-2] + 1856 + 1857 031551 200 01 0 00 036613 E33500: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 1858 031552 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 1859 031553 244 01 0 00 000001 ASHC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 1860 031554 312 01 0 00 036613 CAME AC,[XWD 377777,-1] ;IS RESULT IN AC CORRECT? + 1861 031555 003 01 0 00 033501 ER3 AC,33501 ;RESULT IN AC IS INCORRECT + 1862 031556 312 02 0 00 036612 CAME AC+1,[XWD 377777,-2] ;IS RESULT IN AC+1 CORRECT? + 1863 031557 004 02 0 00 033501 ER4 AC+1,33501 ;RESULT IN AC+1 IS INCORRECT + 1864 031560 321 03 0 00 031551 JUMPL AC+2,E33500 ;LOOP ON ERROR SWITCH^ + 1865 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 10 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0059 + + 1866 ;SHIFT CONNECTIONS TEST + 1867 ;TEST AR0 SHRT INP-ONE'S - ASHC AC,-1 + 1868 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1869 SR2 (336,400000,0,400000,0,600000,0,400000,0,ASHC,-1)^ + 1870 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1871 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 400000,0] -1 BIT POSITIONS AND + 1872 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 600000,0] AND + 1873 ;[XWD 400000,0] + 1874 + 1875 031561 200 01 0 00 036610 E33600: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 1876 031562 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 1877 031563 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1878 031564 312 01 0 00 036625 CAME AC,[XWD 600000,0] ;IS RESULT IN AC CORRECT? + 1879 031565 003 01 0 00 033601 ER3 AC,33601 ;RESULT IN AC IS INCORRECT + 1880 031566 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1881 031567 004 02 0 00 033601 ER4 AC+1,33601 ;RESULT IN AC+1 IS INCORRECT + 1882 031570 321 03 0 00 031561 JUMPL AC+2,E33600 ;LOOP ON ERROR SWITCH^ + 1883 + 1884 ;SHIFT CONNECTIONS TEST + 1885 ;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-1 + 1886 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 1887 SR2 (337,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1)^ + 1888 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1889 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD 377777,-1] -1 BIT POSITIONS AND + 1890 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1891 ;[XWD 377777,-1] + 1892 + 1893 031571 200 01 0 00 036613 E33700: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 1894 031572 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 1895 031573 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1896 031574 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1897 031575 003 01 0 00 033701 ER3 AC,33701 ;RESULT IN AC IS INCORRECT + 1898 031576 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 1899 031577 004 02 0 00 033701 ER4 AC+1,33701 ;RESULT IN AC+1 IS INCORRECT + 1900 031600 321 03 0 00 031571 JUMPL AC+2,E33700 ;LOOP ON ERROR SWITCH^ + 1901 + 1902 ;SHIFT CONNECTIONS TEST + 1903 ;TEST AR1 SHRT INP-ONE'S - ASHC AC,-1 + 1904 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1905 SR2 (340,400000,0,400000,0,600000,0,400000,0,ASHC,-1)^ + 1906 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1907 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 400000,0] -1 BIT POSITIONS AND + 1908 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 600000,0] AND + 1909 ;[XWD 400000,0] + 1910 + 1911 031601 200 01 0 00 036610 E34000: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 1912 031602 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 1913 031603 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1914 031604 312 01 0 00 036625 CAME AC,[XWD 600000,0] ;IS RESULT IN AC CORRECT? + 1915 031605 003 01 0 00 034001 ER3 AC,34001 ;RESULT IN AC IS INCORRECT + 1916 031606 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 1917 031607 004 02 0 00 034001 ER4 AC+1,34001 ;RESULT IN AC+1 IS INCORRECT + 1918 031610 321 03 0 00 031601 JUMPL AC+2,E34000 ;LOOP ON ERROR SWITCH^ + 1919 + 1920 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 10-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0060 + + 1921 ;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-1 + 1922 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 1923 SR2 (341,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1)^ + 1924 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1925 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD 377777,-1] -1 BIT POSITIONS AND + 1926 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 1927 ;[XWD 377777,-1] + 1928 + 1929 031611 200 01 0 00 036613 E34100: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 1930 031612 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 1931 031613 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1932 031614 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 1933 031615 003 01 0 00 034101 ER3 AC,34101 ;RESULT IN AC IS INCORRECT + 1934 031616 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 1935 031617 004 02 0 00 034101 ER4 AC+1,34101 ;RESULT IN AC+1 IS INCORRECT + 1936 031620 321 03 0 00 031611 JUMPL AC+2,E34100 ;LOOP ON ERROR SWITCH^ + 1937 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 10-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0061 + + 1938 ;SHIFT CONNECTIONS TEST + 1939 ;TEST AR34 SHRT INP-ONE'S - ASHC AC,-1 + 1940 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1941 SR2 (342,0,4,0,0,0,2,0,0,ASHC,-1)^ + 1942 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1943 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -1 BIT POSITIONS AND + 1944 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 1945 ;[XWD 0,0] + 1946 + 1947 031621 200 01 0 00 036616 E34200: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 1948 031622 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1949 031623 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1950 031624 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 1951 031625 003 01 0 00 034201 ER3 AC,34201 ;RESULT IN AC IS INCORRECT + 1952 031626 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1953 031627 004 02 0 00 034201 ER4 AC+1,34201 ;RESULT IN AC+1 IS INCORRECT + 1954 031630 321 03 0 00 031621 JUMPL AC+2,E34200 ;LOOP ON ERROR SWITCH^ + 1955 + 1956 ;SHIFT CONNECTIONS TEST + 1957 ;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-1 + 1958 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 1959 SR2 (343,-1,-5,-1,-1,-1,-3,-1,-1,ASHC,-1)^ + 1960 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1961 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1962 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 1963 ;[XWD -1,-1] + 1964 + 1965 031631 200 01 0 00 036617 E34300: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 1966 031632 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 1967 031633 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1968 031634 312 01 0 00 036614 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 1969 031635 003 01 0 00 034301 ER3 AC,34301 ;RESULT IN AC IS INCORRECT + 1970 031636 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 1971 031637 004 02 0 00 034301 ER4 AC+1,34301 ;RESULT IN AC+1 IS INCORRECT + 1972 031640 321 03 0 00 031631 JUMPL AC+2,E34300 ;LOOP ON ERROR SWITCH^ + 1973 + 1974 ;SHIFT CONNECTIONS TEST + 1975 ;TEST AR35 SHRT INP-ONE'S - ASHC AC,-1 + 1976 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1977 SR2 (344,0,2,0,0,0,1,0,0,ASHC,-1)^ + 1978 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1979 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -1 BIT POSITIONS AND + 1980 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 1981 ;[XWD 0,0] + 1982 + 1983 031641 200 01 0 00 036602 E34400: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 1984 031642 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 1985 031643 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 1986 031644 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 1987 031645 003 01 0 00 034401 ER3 AC,34401 ;RESULT IN AC IS INCORRECT + 1988 031646 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 1989 031647 004 02 0 00 034401 ER4 AC+1,34401 ;RESULT IN AC+1 IS INCORRECT + 1990 031650 321 03 0 00 031641 JUMPL AC+2,E34400 ;LOOP ON ERROR SWITCH^ + 1991 + 1992 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 10-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0062 + + 1993 ;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-1 + 1994 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 1995 SR2 (345,-1,-3,-1,-1,-1,-2,-1,-1,ASHC,-1)^ + 1996 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 1997 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -1 BIT POSITIONS AND + 1998 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 1999 ;[XWD -1,-1] + 2000 + 2001 031651 200 01 0 00 036614 E34500: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 2002 031652 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2003 031653 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2004 031654 312 01 0 00 036577 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 2005 031655 003 01 0 00 034501 ER3 AC,34501 ;RESULT IN AC IS INCORRECT + 2006 031656 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 2007 031657 004 02 0 00 034501 ER4 AC+1,34501 ;RESULT IN AC+1 IS INCORRECT + 2008 031660 321 03 0 00 031651 JUMPL AC+2,E34500 ;LOOP ON ERROR SWITCH^ + 2009 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 11 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0063 + + 2010 ;SHIFT CONNECTIONS TEST + 2011 ;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-1 + 2012 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 2013 SR2 (346,400000,0,0,0,600000,0,400000,0,ASHC,-1)^ + 2014 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2015 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] -1 BIT POSITIONS AND + 2016 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 600000,0] AND + 2017 ;[XWD 400000,0] + 2018 + 2019 031661 200 01 0 00 036610 E34600: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 2020 031662 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2021 031663 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2022 031664 312 01 0 00 036625 CAME AC,[XWD 600000,0] ;IS RESULT IN AC CORRECT? + 2023 031665 003 01 0 00 034601 ER3 AC,34601 ;RESULT IN AC IS INCORRECT + 2024 031666 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 2025 031667 004 02 0 00 034601 ER4 AC+1,34601 ;RESULT IN AC+1 IS INCORRECT + 2026 031670 321 03 0 00 031661 JUMPL AC+2,E34600 ;LOOP ON ERROR SWITCH^ + 2027 + 2028 ;SHIFT CONNECTIONS TEST + 2029 ;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-1 + 2030 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 2031 SR2 (347,377777,-1,-1,-1,177777,-1,377777,-1,ASHC,-1)^ + 2032 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2033 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] -1 BIT POSITIONS AND + 2034 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 177777,-1] AND + 2035 ;[XWD 377777,-1] + 2036 + 2037 031671 200 01 0 00 036613 E34700: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 2038 031672 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2039 031673 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2040 031674 312 01 0 00 036615 CAME AC,[XWD 177777,-1] ;IS RESULT IN AC CORRECT? + 2041 031675 003 01 0 00 034701 ER3 AC,34701 ;RESULT IN AC IS INCORRECT + 2042 031676 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 2043 031677 004 02 0 00 034701 ER4 AC+1,34701 ;RESULT IN AC+1 IS INCORRECT + 2044 031700 321 03 0 00 031671 JUMPL AC+2,E34700 ;LOOP ON ERROR SWITCH^ + 2045 + 2046 ;SHIFT CONNECTIONS TEST + 2047 ;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-1 + 2048 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 2049 SR2 (350,0,1,0,0,0,0,200000,0,ASHC,-1)^ + 2050 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2051 ;DATA SPECIFIED IN [XWD 0,1] AND [XWD 0,0] -1 BIT POSITIONS AND + 2052 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2053 ;[XWD 200000,0] + 2054 + 2055 031701 200 01 0 00 036601 E35000: MOVE AC,[XWD 0,1] ;INITIALIZE AC + 2056 031702 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2057 031703 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2058 031704 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2059 031705 003 01 0 00 035001 ER3 AC,35001 ;RESULT IN AC IS INCORRECT + 2060 031706 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 2061 031707 004 02 0 00 035001 ER4 AC+1,35001 ;RESULT IN AC+1 IS INCORRECT + 2062 031710 321 03 0 00 031701 JUMPL AC+2,E35000 ;LOOP ON ERROR SWITCH^ + 2063 + 2064 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 11-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0064 + + 2065 ;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-1 + 2066 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 2067 SR2 (351,-1,-2,-1,-1,-1,-1,577777,-1,ASHC,-1)^ + 2068 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2069 ;DATA SPECIFIED IN [XWD -1,-2] AND [XWD -1,-1] -1 BIT POSITIONS AND + 2070 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2071 ;[XWD 577777,-1] + 2072 + 2073 031711 200 01 0 00 036577 E35100: MOVE AC,[XWD -1,-2] ;INITIALIZE AC + 2074 031712 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2075 031713 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2076 031714 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2077 031715 003 01 0 00 035101 ER3 AC,35101 ;RESULT IN AC IS INCORRECT + 2078 031716 312 02 0 00 036611 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 2079 031717 004 02 0 00 035101 ER4 AC+1,35101 ;RESULT IN AC+1 IS INCORRECT + 2080 031720 321 03 0 00 031711 JUMPL AC+2,E35100 ;LOOP ON ERROR SWITCH^ + 2081 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 11-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0065 + + 2082 ;SHIFT CONNECTIONS TEST + 2083 ;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-1 + 2084 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 2085 SR2 (352,0,0,0,4,0,0,0,2,ASHC,-1)^ + 2086 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2087 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -1 BIT POSITIONS AND + 2088 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2089 ;[XWD 0,2] + 2090 + 2091 031721 200 01 0 00 036600 E35200: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 2092 031722 200 02 0 00 036616 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 2093 031723 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2094 031724 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2095 031725 003 01 0 00 035201 ER3 AC,35201 ;RESULT IN AC IS INCORRECT + 2096 031726 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 2097 031727 004 02 0 00 035201 ER4 AC+1,35201 ;RESULT IN AC+1 IS INCORRECT + 2098 031730 321 03 0 00 031721 JUMPL AC+2,E35200 ;LOOP ON ERROR SWITCH^ + 2099 + 2100 ;SHIFT CONNECTIONS TEST + 2101 ;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-1 + 2102 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 2103 SR2 (353,-1,-1,-1,-5,-1,-1,-1,-3,ASHC,-1)^ + 2104 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2105 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -1 BIT POSITIONS AND + 2106 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2107 ;[XWD -1,-3] + 2108 + 2109 031731 200 01 0 00 036576 E35300: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 2110 031732 200 02 0 00 036617 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 2111 031733 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2112 031734 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2113 031735 003 01 0 00 035301 ER3 AC,35301 ;RESULT IN AC IS INCORRECT + 2114 031736 312 02 0 00 036614 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 2115 031737 004 02 0 00 035301 ER4 AC+1,35301 ;RESULT IN AC+1 IS INCORRECT + 2116 031740 321 03 0 00 031731 JUMPL AC+2,E35300 ;LOOP ON ERROR SWITCH^ + 2117 + 2118 ;SHIFT CONNECTIONS TEST + 2119 ;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-1 + 2120 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 2121 SR2 (354,0,0,0,2,0,0,0,1,ASHC,-1)^ + 2122 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2123 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,2] -1 BIT POSITIONS AND + 2124 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2125 ;[XWD 0,1] + 2126 + 2127 031741 200 01 0 00 036600 E35400: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 2128 031742 200 02 0 00 036602 MOVE AC+1,[XWD 0,2] ;INITIALIZE AC+1 + 2129 031743 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2130 031744 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2131 031745 003 01 0 00 035401 ER3 AC,35401 ;RESULT IN AC IS INCORRECT + 2132 031746 312 02 0 00 036601 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 2133 031747 004 02 0 00 035401 ER4 AC+1,35401 ;RESULT IN AC+1 IS INCORRECT + 2134 031750 321 03 0 00 031741 JUMPL AC+2,E35400 ;LOOP ON ERROR SWITCH^ + 2135 + 2136 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 11-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0066 + + 2137 ;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-1 + 2138 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 2139 SR2 (355,-1,-1,-1,-3,-1,-1,-1,-2,ASHC,-1)^ + 2140 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2141 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-3] -1 BIT POSITIONS AND + 2142 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2143 ;[XWD -1,-2] + 2144 + 2145 031751 200 01 0 00 036576 E35500: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 2146 031752 200 02 0 00 036614 MOVE AC+1,[XWD -1,-3] ;INITIALIZE AC+1 + 2147 031753 244 01 0 00 777777 ASHC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2148 031754 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2149 031755 003 01 0 00 035501 ER3 AC,35501 ;RESULT IN AC IS INCORRECT + 2150 031756 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 2151 031757 004 02 0 00 035501 ER4 AC+1,35501 ;RESULT IN AC+1 IS INCORRECT + 2152 031760 321 03 0 00 031751 JUMPL AC+2,E35500 ;LOOP ON ERROR SWITCH^ + 2153 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 12 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0067 + + 2154 ;SHIFT CONNECTIONS TEST + 2155 ;TEST AR0 SHRT INP-ONE'S - ASHC AC,-2 + 2156 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 2157 SR2 (356,400000,0,400000,0,700000,0,400000,0,ASHC,-2)^ + 2158 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2159 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 400000,0] -2 BIT POSITIONS AND + 2160 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 700000,0] AND + 2161 ;[XWD 400000,0] + 2162 + 2163 031761 200 01 0 00 036610 E35600: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 2164 031762 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 2165 031763 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2166 031764 312 01 0 00 036626 CAME AC,[XWD 700000,0] ;IS RESULT IN AC CORRECT? + 2167 031765 003 01 0 00 035601 ER3 AC,35601 ;RESULT IN AC IS INCORRECT + 2168 031766 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 2169 031767 004 02 0 00 035601 ER4 AC+1,35601 ;RESULT IN AC+1 IS INCORRECT + 2170 031770 321 03 0 00 031761 JUMPL AC+2,E35600 ;LOOP ON ERROR SWITCH^ + 2171 + 2172 ;SHIFT CONNECTIONS TEST + 2173 ;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-2 + 2174 ;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + 2175 SR2 (357,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2)^ + 2176 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2177 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD 377777,-1] -2 BIT POSITIONS AND + 2178 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 077777,-1] AND + 2179 ;[XWD 377777,-1] + 2180 + 2181 031771 200 01 0 00 036613 E35700: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 2182 031772 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 2183 031773 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2184 031774 312 01 0 00 036627 CAME AC,[XWD 077777,-1] ;IS RESULT IN AC CORRECT? + 2185 031775 003 01 0 00 035701 ER3 AC,35701 ;RESULT IN AC IS INCORRECT + 2186 031776 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 2187 031777 004 02 0 00 035701 ER4 AC+1,35701 ;RESULT IN AC+1 IS INCORRECT + 2188 032000 321 03 0 00 031771 JUMPL AC+2,E35700 ;LOOP ON ERROR SWITCH^ + 2189 + 2190 ;SHIFT CONNECTIONS TEST + 2191 ;TEST AR1 SHRT INP-ONE'S - ASHC AC,-2 + 2192 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 2193 SR2 (360,400000,0,400000,0,700000,0,400000,0,ASHC,-2)^ + 2194 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2195 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 400000,0] -2 BIT POSITIONS AND + 2196 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 700000,0] AND + 2197 ;[XWD 400000,0] + 2198 + 2199 032001 200 01 0 00 036610 E36000: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 2200 032002 200 02 0 00 036610 MOVE AC+1,[XWD 400000,0] ;INITIALIZE AC+1 + 2201 032003 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2202 032004 312 01 0 00 036626 CAME AC,[XWD 700000,0] ;IS RESULT IN AC CORRECT? + 2203 032005 003 01 0 00 036001 ER3 AC,36001 ;RESULT IN AC IS INCORRECT + 2204 032006 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 2205 032007 004 02 0 00 036001 ER4 AC+1,36001 ;RESULT IN AC+1 IS INCORRECT + 2206 032010 321 03 0 00 032001 JUMPL AC+2,E36000 ;LOOP ON ERROR SWITCH^ + 2207 + 2208 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 12-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0068 + + 2209 ;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-2 + 2210 ;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + 2211 SR2 (361,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2)^ + 2212 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2213 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD 377777,-1] -2 BIT POSITIONS AND + 2214 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 077777,-1] AND + 2215 ;[XWD 377777,-1] + 2216 + 2217 032011 200 01 0 00 036613 E36100: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 2218 032012 200 02 0 00 036613 MOVE AC+1,[XWD 377777,-1] ;INITIALIZE AC+1 + 2219 032013 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2220 032014 312 01 0 00 036627 CAME AC,[XWD 077777,-1] ;IS RESULT IN AC CORRECT? + 2221 032015 003 01 0 00 036101 ER3 AC,36101 ;RESULT IN AC IS INCORRECT + 2222 032016 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 2223 032017 004 02 0 00 036101 ER4 AC+1,36101 ;RESULT IN AC+1 IS INCORRECT + 2224 032020 321 03 0 00 032011 JUMPL AC+2,E36100 ;LOOP ON ERROR SWITCH^ + 2225 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 12-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0069 + + 2226 ;SHIFT CONNECTIONS TEST + 2227 ;TEST AR34 SHRT INP-ONE'S - ASHC AC,-2 + 2228 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 2229 SR2 (362,0,10,0,0,0,2,0,0,ASHC,-2)^ + 2230 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2231 ;DATA SPECIFIED IN [XWD 0,10] AND [XWD 0,0] -2 BIT POSITIONS AND + 2232 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,2] AND + 2233 ;[XWD 0,0] + 2234 + 2235 032021 200 01 0 00 036621 E36200: MOVE AC,[XWD 0,10] ;INITIALIZE AC + 2236 032022 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2237 032023 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2238 032024 312 01 0 00 036602 CAME AC,[XWD 0,2] ;IS RESULT IN AC CORRECT? + 2239 032025 003 01 0 00 036201 ER3 AC,36201 ;RESULT IN AC IS INCORRECT + 2240 032026 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 2241 032027 004 02 0 00 036201 ER4 AC+1,36201 ;RESULT IN AC+1 IS INCORRECT + 2242 032030 321 03 0 00 032021 JUMPL AC+2,E36200 ;LOOP ON ERROR SWITCH^ + 2243 + 2244 ;SHIFT CONNECTIONS TEST + 2245 ;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-2 + 2246 ;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + 2247 SR2 (363,-1,-11,-1,-1,-1,-3,-1,-1,ASHC,-2)^ + 2248 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2249 ;DATA SPECIFIED IN [XWD -1,-11] AND [XWD -1,-1] -2 BIT POSITIONS AND + 2250 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-3] AND + 2251 ;[XWD -1,-1] + 2252 + 2253 032031 200 01 0 00 036622 E36300: MOVE AC,[XWD -1,-11] ;INITIALIZE AC + 2254 032032 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2255 032033 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2256 032034 312 01 0 00 036614 CAME AC,[XWD -1,-3] ;IS RESULT IN AC CORRECT? + 2257 032035 003 01 0 00 036301 ER3 AC,36301 ;RESULT IN AC IS INCORRECT + 2258 032036 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 2259 032037 004 02 0 00 036301 ER4 AC+1,36301 ;RESULT IN AC+1 IS INCORRECT + 2260 032040 321 03 0 00 032031 JUMPL AC+2,E36300 ;LOOP ON ERROR SWITCH^ + 2261 + 2262 ;SHIFT CONNECTIONS TEST + 2263 ;TEST AR35 SHRT INP-ONE'S - ASHC AC,-2 + 2264 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 2265 SR2 (364,0,4,0,0,0,1,0,0,ASHC,-2)^ + 2266 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2267 ;DATA SPECIFIED IN [XWD 0,4] AND [XWD 0,0] -2 BIT POSITIONS AND + 2268 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,1] AND + 2269 ;[XWD 0,0] + 2270 + 2271 032041 200 01 0 00 036616 E36400: MOVE AC,[XWD 0,4] ;INITIALIZE AC + 2272 032042 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2273 032043 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2274 032044 312 01 0 00 036601 CAME AC,[XWD 0,1] ;IS RESULT IN AC CORRECT? + 2275 032045 003 01 0 00 036401 ER3 AC,36401 ;RESULT IN AC IS INCORRECT + 2276 032046 312 02 0 00 036600 CAME AC+1,[XWD 0,0] ;IS RESULT IN AC+1 CORRECT? + 2277 032047 004 02 0 00 036401 ER4 AC+1,36401 ;RESULT IN AC+1 IS INCORRECT + 2278 032050 321 03 0 00 032041 JUMPL AC+2,E36400 ;LOOP ON ERROR SWITCH^ + 2279 + 2280 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 12-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0070 + + 2281 ;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-2 + 2282 ;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + 2283 SR2 (365,-1,-5,-1,-1,-1,-2,-1,-1,ASHC,-2)^ + 2284 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2285 ;DATA SPECIFIED IN [XWD -1,-5] AND [XWD -1,-1] -2 BIT POSITIONS AND + 2286 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-2] AND + 2287 ;[XWD -1,-1] + 2288 + 2289 032051 200 01 0 00 036617 E36500: MOVE AC,[XWD -1,-5] ;INITIALIZE AC + 2290 032052 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2291 032053 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2292 032054 312 01 0 00 036577 CAME AC,[XWD -1,-2] ;IS RESULT IN AC CORRECT? + 2293 032055 003 01 0 00 036501 ER3 AC,36501 ;RESULT IN AC IS INCORRECT + 2294 032056 312 02 0 00 036576 CAME AC+1,[XWD -1,-1] ;IS RESULT IN AC+1 CORRECT? + 2295 032057 004 02 0 00 036501 ER4 AC+1,36501 ;RESULT IN AC+1 IS INCORRECT + 2296 032060 321 03 0 00 032051 JUMPL AC+2,E36500 ;LOOP ON ERROR SWITCH^ + 2297 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 13 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0071 + + 2298 ;SHIFT CONNECTIONS TEST + 2299 ;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-2 + 2300 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 2301 SR2 (366,400000,0,0,0,700000,0,400000,0,ASHC,-2)^ + 2302 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2303 ;DATA SPECIFIED IN [XWD 400000,0] AND [XWD 0,0] -2 BIT POSITIONS AND + 2304 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 700000,0] AND + 2305 ;[XWD 400000,0] + 2306 + 2307 032061 200 01 0 00 036610 E36600: MOVE AC,[XWD 400000,0] ;INITIALIZE AC + 2308 032062 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2309 032063 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2310 032064 312 01 0 00 036626 CAME AC,[XWD 700000,0] ;IS RESULT IN AC CORRECT? + 2311 032065 003 01 0 00 036601 ER3 AC,36601 ;RESULT IN AC IS INCORRECT + 2312 032066 312 02 0 00 036610 CAME AC+1,[XWD 400000,0] ;IS RESULT IN AC+1 CORRECT? + 2313 032067 004 02 0 00 036601 ER4 AC+1,36601 ;RESULT IN AC+1 IS INCORRECT + 2314 032070 321 03 0 00 032061 JUMPL AC+2,E36600 ;LOOP ON ERROR SWITCH^ + 2315 + 2316 ;SHIFT CONNECTIONS TEST + 2317 ;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-2 + 2318 ;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + 2319 SR2 (367,377777,-1,-1,-1,077777,-1,377777,-1,ASHC,-2)^ + 2320 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2321 ;DATA SPECIFIED IN [XWD 377777,-1] AND [XWD -1,-1] -2 BIT POSITIONS AND + 2322 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 077777,-1] AND + 2323 ;[XWD 377777,-1] + 2324 + 2325 032071 200 01 0 00 036613 E36700: MOVE AC,[XWD 377777,-1] ;INITIALIZE AC + 2326 032072 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2327 032073 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2328 032074 312 01 0 00 036627 CAME AC,[XWD 077777,-1] ;IS RESULT IN AC CORRECT? + 2329 032075 003 01 0 00 036701 ER3 AC,36701 ;RESULT IN AC IS INCORRECT + 2330 032076 312 02 0 00 036613 CAME AC+1,[XWD 377777,-1] ;IS RESULT IN AC+1 CORRECT? + 2331 032077 004 02 0 00 036701 ER4 AC+1,36701 ;RESULT IN AC+1 IS INCORRECT + 2332 032100 321 03 0 00 032071 JUMPL AC+2,E36700 ;LOOP ON ERROR SWITCH^ + 2333 + 2334 ;SHIFT CONNECTIONS TEST + 2335 ;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-2 + 2336 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 2337 SR2 (370,0,2,0,0,0,0,200000,0,ASHC,-2)^ + 2338 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2339 ;DATA SPECIFIED IN [XWD 0,2] AND [XWD 0,0] -2 BIT POSITIONS AND + 2340 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2341 ;[XWD 200000,0] + 2342 + 2343 032101 200 01 0 00 036602 E37000: MOVE AC,[XWD 0,2] ;INITIALIZE AC + 2344 032102 200 02 0 00 036600 MOVE AC+1,[XWD 0,0] ;INITIALIZE AC+1 + 2345 032103 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2346 032104 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2347 032105 003 01 0 00 037001 ER3 AC,37001 ;RESULT IN AC IS INCORRECT + 2348 032106 312 02 0 00 036605 CAME AC+1,[XWD 200000,0] ;IS RESULT IN AC+1 CORRECT? + 2349 032107 004 02 0 00 037001 ER4 AC+1,37001 ;RESULT IN AC+1 IS INCORRECT + 2350 032110 321 03 0 00 032101 JUMPL AC+2,E37000 ;LOOP ON ERROR SWITCH^ + 2351 + 2352 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 13-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0072 + + 2353 ;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-2 + 2354 ;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + 2355 SR2 (371,-1,-3,-1,-1,-1,-1,577777,-1,ASHC,-2)^ + 2356 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2357 ;DATA SPECIFIED IN [XWD -1,-3] AND [XWD -1,-1] -2 BIT POSITIONS AND + 2358 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2359 ;[XWD 577777,-1] + 2360 + 2361 032111 200 01 0 00 036614 E37100: MOVE AC,[XWD -1,-3] ;INITIALIZE AC + 2362 032112 200 02 0 00 036576 MOVE AC+1,[XWD -1,-1] ;INITIALIZE AC+1 + 2363 032113 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2364 032114 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2365 032115 003 01 0 00 037101 ER3 AC,37101 ;RESULT IN AC IS INCORRECT + 2366 032116 312 02 0 00 036611 CAME AC+1,[XWD 577777,-1] ;IS RESULT IN AC+1 CORRECT? + 2367 032117 004 02 0 00 037101 ER4 AC+1,37101 ;RESULT IN AC+1 IS INCORRECT + 2368 032120 321 03 0 00 032111 JUMPL AC+2,E37100 ;LOOP ON ERROR SWITCH^ + 2369 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 13-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0073 + + 2370 ;SHIFT CONNECTIONS TEST + 2371 ;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-2 + 2372 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 2373 SR2 (372,0,0,0,10,0,0,0,2,ASHC,-2)^ + 2374 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2375 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,10] -2 BIT POSITIONS AND + 2376 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2377 ;[XWD 0,2] + 2378 + 2379 032121 200 01 0 00 036600 E37200: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 2380 032122 200 02 0 00 036621 MOVE AC+1,[XWD 0,10] ;INITIALIZE AC+1 + 2381 032123 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2382 032124 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2383 032125 003 01 0 00 037201 ER3 AC,37201 ;RESULT IN AC IS INCORRECT + 2384 032126 312 02 0 00 036602 CAME AC+1,[XWD 0,2] ;IS RESULT IN AC+1 CORRECT? + 2385 032127 004 02 0 00 037201 ER4 AC+1,37201 ;RESULT IN AC+1 IS INCORRECT + 2386 032130 321 03 0 00 032121 JUMPL AC+2,E37200 ;LOOP ON ERROR SWITCH^ + 2387 + 2388 ;SHIFT CONNECTIONS TEST + 2389 ;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-2 + 2390 ;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + 2391 SR2 (373,-1,-1,-1,-11,-1,-1,-1,-3,ASHC,-2)^ + 2392 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2393 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-11] -2 BIT POSITIONS AND + 2394 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2395 ;[XWD -1,-3] + 2396 + 2397 032131 200 01 0 00 036576 E37300: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 2398 032132 200 02 0 00 036622 MOVE AC+1,[XWD -1,-11] ;INITIALIZE AC+1 + 2399 032133 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2400 032134 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2401 032135 003 01 0 00 037301 ER3 AC,37301 ;RESULT IN AC IS INCORRECT + 2402 032136 312 02 0 00 036614 CAME AC+1,[XWD -1,-3] ;IS RESULT IN AC+1 CORRECT? + 2403 032137 004 02 0 00 037301 ER4 AC+1,37301 ;RESULT IN AC+1 IS INCORRECT + 2404 032140 321 03 0 00 032131 JUMPL AC+2,E37300 ;LOOP ON ERROR SWITCH^ + 2405 + 2406 ;SHIFT CONNECTIONS TEST + 2407 ;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-2 + 2408 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 2409 SR2 (374,0,0,0,4,0,0,0,1,ASHC,-2)^ + 2410 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2411 ;DATA SPECIFIED IN [XWD 0,0] AND [XWD 0,4] -2 BIT POSITIONS AND + 2412 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 0,0] AND + 2413 ;[XWD 0,1] + 2414 + 2415 032141 200 01 0 00 036600 E37400: MOVE AC,[XWD 0,0] ;INITIALIZE AC + 2416 032142 200 02 0 00 036616 MOVE AC+1,[XWD 0,4] ;INITIALIZE AC+1 + 2417 032143 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2418 032144 312 01 0 00 036600 CAME AC,[XWD 0,0] ;IS RESULT IN AC CORRECT? + 2419 032145 003 01 0 00 037401 ER3 AC,37401 ;RESULT IN AC IS INCORRECT + 2420 032146 312 02 0 00 036601 CAME AC+1,[XWD 0,1] ;IS RESULT IN AC+1 CORRECT? + 2421 032147 004 02 0 00 037401 ER4 AC+1,37401 ;RESULT IN AC+1 IS INCORRECT + 2422 032150 321 03 0 00 032141 JUMPL AC+2,E37400 ;LOOP ON ERROR SWITCH^ + 2423 + 2424 ;SHIFT CONNECTIONS TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 13-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) SEQ 0074 + + 2425 ;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-2 + 2426 ;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + 2427 SR2 (375,-1,-1,-1,-5,-1,-1,-1,-2,ASHC,-2)^ + 2428 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2429 ;DATA SPECIFIED IN [XWD -1,-1] AND [XWD -1,-5] -2 BIT POSITIONS AND + 2430 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD -1,-1] AND + 2431 ;[XWD -1,-2] + 2432 + 2433 032151 200 01 0 00 036576 E37500: MOVE AC,[XWD -1,-1] ;INITIALIZE AC + 2434 032152 200 02 0 00 036617 MOVE AC+1,[XWD -1,-5] ;INITIALIZE AC+1 + 2435 032153 244 01 0 00 777776 ASHC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2436 032154 312 01 0 00 036576 CAME AC,[XWD -1,-1] ;IS RESULT IN AC CORRECT? + 2437 032155 003 01 0 00 037501 ER3 AC,37501 ;RESULT IN AC IS INCORRECT + 2438 032156 312 02 0 00 036577 CAME AC+1,[XWD -1,-2] ;IS RESULT IN AC+1 CORRECT? + 2439 032157 004 02 0 00 037501 ER4 AC+1,37501 ;RESULT IN AC+1 IS INCORRECT + 2440 032160 321 03 0 00 032151 JUMPL AC+2,E37500 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0075 + + 2441 SUBTTL DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST + 2442 + 2443 ;BIT POSITION RELIABILITY TEST + 2444 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2445 SR1 (445,252525,252525,525252,525252,ROT,1)^ + 2446 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 252525,252525] 1 BIT + 2447 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 525252,525252] + 2448 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2449 + 2450 032161 200 01 0 00 036630 E44500: MOVE AC,[XWD 252525,252525] ;INITIALIZE AC + 2451 032162 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2452 032163 241 01 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 2453 032164 312 01 0 00 036632 CAME AC,[XWD 525252,525252] ;IS RESULT IN AC CORRECT? + 2454 032165 003 01 0 00 044501 ER3 AC,44501 ;RESULT IN AC IS INCORRECT + 2455 032166 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2456 032167 004 02 0 00 044501 ER4 AC+1,44501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2457 032170 321 03 0 00 032161 JUMPL AC+2,E44500 ;LOOP ON ERROR SWITCH^ + 2458 + 2459 ;BIT POSITION RELIABILITY TEST + 2460 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2461 SR1 (446,525252,525252,252525,252525,ROT,1)^ + 2462 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 525252,525252] 1 BIT + 2463 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 252525,252525] + 2464 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2465 + 2466 032171 200 01 0 00 036632 E44600: MOVE AC,[XWD 525252,525252] ;INITIALIZE AC + 2467 032172 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2468 032173 241 01 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 2469 032174 312 01 0 00 036630 CAME AC,[XWD 252525,252525] ;IS RESULT IN AC CORRECT? + 2470 032175 003 01 0 00 044601 ER3 AC,44601 ;RESULT IN AC IS INCORRECT + 2471 032176 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2472 032177 004 02 0 00 044601 ER4 AC+1,44601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2473 032200 321 03 0 00 032171 JUMPL AC+2,E44600 ;LOOP ON ERROR SWITCH^ + 2474 + 2475 ;BIT POSITION RELIABILITY TEST + 2476 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2477 SR1 (447,252525,252525,525252,525252,ROT,-1)^ + 2478 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 252525,252525] -1 BIT + 2479 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 525252,525252] + 2480 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2481 + 2482 032201 200 01 0 00 036630 E44700: MOVE AC,[XWD 252525,252525] ;INITIALIZE AC + 2483 032202 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2484 032203 241 01 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 2485 032204 312 01 0 00 036632 CAME AC,[XWD 525252,525252] ;IS RESULT IN AC CORRECT? + 2486 032205 003 01 0 00 044701 ER3 AC,44701 ;RESULT IN AC IS INCORRECT + 2487 032206 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2488 032207 004 02 0 00 044701 ER4 AC+1,44701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2489 032210 321 03 0 00 032201 JUMPL AC+2,E44700 ;LOOP ON ERROR SWITCH^ + 2490 + 2491 ;BIT POSITION RELIABILITY TEST + 2492 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2493 SR1 (450,525252,525252,252525,252525,ROT,-1)^ + 2494 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 525252,525252] -1 BIT + 2495 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 252525,252525] +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0076 + + 2496 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2497 + 2498 032211 200 01 0 00 036632 E45000: MOVE AC,[XWD 525252,525252] ;INITIALIZE AC + 2499 032212 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2500 032213 241 01 0 00 777777 ROT AC,-1 ;*SHIFT/ROTATE -1 BIT POSITIONS + 2501 032214 312 01 0 00 036630 CAME AC,[XWD 252525,252525] ;IS RESULT IN AC CORRECT? + 2502 032215 003 01 0 00 045001 ER3 AC,45001 ;RESULT IN AC IS INCORRECT + 2503 032216 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2504 032217 004 02 0 00 045001 ER4 AC+1,45001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2505 032220 321 03 0 00 032211 JUMPL AC+2,E45000 ;LOOP ON ERROR SWITCH^ + 2506 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0077 + + 2507 ;BIT POSITION RELIABILITY TEST + 2508 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2509 SR1 (451,146314,631463,631463,146314,ROT,-2)^ + 2510 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 146314,631463] -2 BIT + 2511 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 631463,146314] + 2512 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2513 + 2514 032221 200 01 0 00 036633 E45100: MOVE AC,[XWD 146314,631463] ;INITIALIZE AC + 2515 032222 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2516 032223 241 01 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 2517 032224 312 01 0 00 036634 CAME AC,[XWD 631463,146314] ;IS RESULT IN AC CORRECT? + 2518 032225 003 01 0 00 045101 ER3 AC,45101 ;RESULT IN AC IS INCORRECT + 2519 032226 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2520 032227 004 02 0 00 045101 ER4 AC+1,45101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2521 032230 321 03 0 00 032221 JUMPL AC+2,E45100 ;LOOP ON ERROR SWITCH^ + 2522 + 2523 ;BIT POSITION RELIABILITY TEST + 2524 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2525 SR1 (452,631463,146314,146314,631463,ROT,-2)^ + 2526 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 631463,146314] -2 BIT + 2527 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 146314,631463] + 2528 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 2529 + 2530 032231 200 01 0 00 036634 E45200: MOVE AC,[XWD 631463,146314] ;INITIALIZE AC + 2531 032232 200 02 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 2532 032233 241 01 0 00 777776 ROT AC,-2 ;*SHIFT/ROTATE -2 BIT POSITIONS + 2533 032234 312 01 0 00 036633 CAME AC,[XWD 146314,631463] ;IS RESULT IN AC CORRECT? + 2534 032235 003 01 0 00 045201 ER3 AC,45201 ;RESULT IN AC IS INCORRECT + 2535 032236 312 02 0 00 036631 CAME AC+1,[XWD 741703,607417] + 2536 032237 004 02 0 00 045201 ER4 AC+1,45201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 2537 032240 321 03 0 00 032231 JUMPL AC+2,E45200 ;LOOP ON ERROR SWITCH^ + 2538 + 2539 ;BIT POSITION RELIABILITY TEST + 2540 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2541 SR2 (453,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,1)^ + 2542 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2543 ;DATA SPECIFIED IN [XWD 252525,252525] AND [XWD 252525,252525] 1 BIT POSITIONS AND + 2544 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 525252,525252] AND + 2545 ;[XWD 525252,525252] + 2546 + 2547 032241 200 01 0 00 036630 E45300: MOVE AC,[XWD 252525,252525] ;INITIALIZE AC + 2548 032242 200 02 0 00 036630 MOVE AC+1,[XWD 252525,252525] ;INITIALIZE AC+1 + 2549 032243 245 01 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 2550 032244 312 01 0 00 036632 CAME AC,[XWD 525252,525252] ;IS RESULT IN AC CORRECT? + 2551 032245 003 01 0 00 045301 ER3 AC,45301 ;RESULT IN AC IS INCORRECT + 2552 032246 312 02 0 00 036632 CAME AC+1,[XWD 525252,525252] ;IS RESULT IN AC+1 CORRECT? + 2553 032247 004 02 0 00 045301 ER4 AC+1,45301 ;RESULT IN AC+1 IS INCORRECT + 2554 032250 321 03 0 00 032241 JUMPL AC+2,E45300 ;LOOP ON ERROR SWITCH^ + 2555 + 2556 ;BIT POSITION RELIABILITY TEST + 2557 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2558 SR2 (454,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,1)^ + 2559 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2560 ;DATA SPECIFIED IN [XWD 525252,525252] AND [XWD 525252,525252] 1 BIT POSITIONS AND + 2561 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 252525,252525] AND +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0078 + + 2562 ;[XWD 252525,252525] + 2563 + 2564 032251 200 01 0 00 036632 E45400: MOVE AC,[XWD 525252,525252] ;INITIALIZE AC + 2565 032252 200 02 0 00 036632 MOVE AC+1,[XWD 525252,525252] ;INITIALIZE AC+1 + 2566 032253 245 01 0 00 000001 ROTC AC,1 ;*SHIFT/ROTATE COMBINED 1 PLACES + 2567 032254 312 01 0 00 036630 CAME AC,[XWD 252525,252525] ;IS RESULT IN AC CORRECT? + 2568 032255 003 01 0 00 045401 ER3 AC,45401 ;RESULT IN AC IS INCORRECT + 2569 032256 312 02 0 00 036630 CAME AC+1,[XWD 252525,252525] ;IS RESULT IN AC+1 CORRECT? + 2570 032257 004 02 0 00 045401 ER4 AC+1,45401 ;RESULT IN AC+1 IS INCORRECT + 2571 032260 321 03 0 00 032251 JUMPL AC+2,E45400 ;LOOP ON ERROR SWITCH^ + 2572 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0079 + + 2573 ;BIT POSITION RELIABILITY TEST + 2574 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2575 SR2 (455,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,-1)^ + 2576 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2577 ;DATA SPECIFIED IN [XWD 252525,252525] AND [XWD 252525,252525] -1 BIT POSITIONS AND + 2578 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 525252,525252] AND + 2579 ;[XWD 525252,525252] + 2580 + 2581 032261 200 01 0 00 036630 E45500: MOVE AC,[XWD 252525,252525] ;INITIALIZE AC + 2582 032262 200 02 0 00 036630 MOVE AC+1,[XWD 252525,252525] ;INITIALIZE AC+1 + 2583 032263 245 01 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2584 032264 312 01 0 00 036632 CAME AC,[XWD 525252,525252] ;IS RESULT IN AC CORRECT? + 2585 032265 003 01 0 00 045501 ER3 AC,45501 ;RESULT IN AC IS INCORRECT + 2586 032266 312 02 0 00 036632 CAME AC+1,[XWD 525252,525252] ;IS RESULT IN AC+1 CORRECT? + 2587 032267 004 02 0 00 045501 ER4 AC+1,45501 ;RESULT IN AC+1 IS INCORRECT + 2588 032270 321 03 0 00 032261 JUMPL AC+2,E45500 ;LOOP ON ERROR SWITCH^ + 2589 + 2590 ;BIT POSITION RELIABILITY TEST + 2591 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2592 SR2 (456,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,-1)^ + 2593 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2594 ;DATA SPECIFIED IN [XWD 525252,525252] AND [XWD 525252,525252] -1 BIT POSITIONS AND + 2595 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 252525,252525] AND + 2596 ;[XWD 252525,252525] + 2597 + 2598 032271 200 01 0 00 036632 E45600: MOVE AC,[XWD 525252,525252] ;INITIALIZE AC + 2599 032272 200 02 0 00 036632 MOVE AC+1,[XWD 525252,525252] ;INITIALIZE AC+1 + 2600 032273 245 01 0 00 777777 ROTC AC,-1 ;*SHIFT/ROTATE COMBINED -1 PLACES + 2601 032274 312 01 0 00 036630 CAME AC,[XWD 252525,252525] ;IS RESULT IN AC CORRECT? + 2602 032275 003 01 0 00 045601 ER3 AC,45601 ;RESULT IN AC IS INCORRECT + 2603 032276 312 02 0 00 036630 CAME AC+1,[XWD 252525,252525] ;IS RESULT IN AC+1 CORRECT? + 2604 032277 004 02 0 00 045601 ER4 AC+1,45601 ;RESULT IN AC+1 IS INCORRECT + 2605 032300 321 03 0 00 032271 JUMPL AC+2,E45600 ;LOOP ON ERROR SWITCH^ + 2606 + 2607 ;BIT POSITION RELIABILITY TEST + 2608 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2609 SR2 (457,146314,631463,146314,631463,631463,146314,631463,146314,ROTC,-2)^ + 2610 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 2611 ;DATA SPECIFIED IN [XWD 146314,631463] AND [XWD 146314,631463] -2 BIT POSITIONS AND + 2612 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 631463,146314] AND + 2613 ;[XWD 631463,146314] + 2614 + 2615 032301 200 01 0 00 036633 E45700: MOVE AC,[XWD 146314,631463] ;INITIALIZE AC + 2616 032302 200 02 0 00 036633 MOVE AC+1,[XWD 146314,631463] ;INITIALIZE AC+1 + 2617 032303 245 01 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2618 032304 312 01 0 00 036634 CAME AC,[XWD 631463,146314] ;IS RESULT IN AC CORRECT? + 2619 032305 003 01 0 00 045701 ER3 AC,45701 ;RESULT IN AC IS INCORRECT + 2620 032306 312 02 0 00 036634 CAME AC+1,[XWD 631463,146314] ;IS RESULT IN AC+1 CORRECT? + 2621 032307 004 02 0 00 045701 ER4 AC+1,45701 ;RESULT IN AC+1 IS INCORRECT + 2622 032310 321 03 0 00 032301 JUMPL AC+2,E45700 ;LOOP ON ERROR SWITCH^ + 2623 + 2624 ;BIT POSITION RELIABILITY TEST + 2625 ;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + 2626 SR2 (460,631463,146314,631463,146314,146314,631463,146314,631463,ROTC,-2)^ + 2627 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 14-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST SEQ 0080 + + 2628 ;DATA SPECIFIED IN [XWD 631463,146314] AND [XWD 631463,146314] -2 BIT POSITIONS AND + 2629 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 146314,631463] AND + 2630 ;[XWD 146314,631463] + 2631 + 2632 032311 200 01 0 00 036634 E46000: MOVE AC,[XWD 631463,146314] ;INITIALIZE AC + 2633 032312 200 02 0 00 036634 MOVE AC+1,[XWD 631463,146314] ;INITIALIZE AC+1 + 2634 032313 245 01 0 00 777776 ROTC AC,-2 ;*SHIFT/ROTATE COMBINED -2 PLACES + 2635 032314 312 01 0 00 036633 CAME AC,[XWD 146314,631463] ;IS RESULT IN AC CORRECT? + 2636 032315 003 01 0 00 046001 ER3 AC,46001 ;RESULT IN AC IS INCORRECT + 2637 032316 312 02 0 00 036633 CAME AC+1,[XWD 146314,631463] ;IS RESULT IN AC+1 CORRECT? + 2638 032317 004 02 0 00 046001 ER4 AC+1,46001 ;RESULT IN AC+1 IS INCORRECT + 2639 032320 321 03 0 00 032311 JUMPL AC+2,E46000 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 15 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC GATING TEST SEQ 0081 + + 2640 SUBTTL DIAGNOSTIC SECTION - SC GATING TEST + 2641 + 2642 000005 AC=5 + 2643 SAVEAC (1,1)^ + 2644 032321 201 07 0 00 032321 MOVEI AC+2,. ;SETUP TESTPC + 2645 032322 202 07 0 00 030051 MOVEM AC+2,TESTPC + 2646 032323 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2647 032324 202 07 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2648 + 2649 037600 SN=37600 + 2650 000017 ZZ=17 + 2651 + 2652 ;SHIFT LEFT + 2653 E37600: REPEAT ^D3,< + 2654 ;TEST SC HIGH ORDER BITS + 2655 ;TEST THE ABILITY TO SET THE FOUR MOST + 2656 ;SIGNIFICANT BITS + 2657 ;AC IS LOGICALLY SHIFTED LEFT + 2658 ;AND TESTED + 2659 ;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT + 2660 ;AN ERROR WILL OCCUR IF AC EQUALS ZERO + 2661 ;FOLLOWING A SHIFT + 2662 ;FAILURE TO SET SC BIT 1,2 OR + 2663 ;3 WILL RESULT IN EXCESSIVE SHIFTING + 2664 + 2665 SN=SN+1 + 2666 ZZ=ZZ+1 + 2667 MOVEI AC,1 ;SET BIT 35 + 2668 LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + 2669 CAIN AC,1 ;TEST FOR SHIFT + 2670 ER3 AC,SN ;SC BIT 0 FAILED TO SET + 2671 SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + 2672 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2673 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2674 > + 2675 + 2676 ;TEST SC HIGH ORDER BITS + 2677 ;TEST THE ABILITY TO SET THE FOUR MOST + 2678 ;SIGNIFICANT BITS + 2679 ;AC IS LOGICALLY SHIFTED LEFT + 2680 ;AND TESTED + 2681 ;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT + 2682 ;AN ERROR WILL OCCUR IF AC EQUALS ZERO + 2683 ;FOLLOWING A SHIFT + 2684 ;FAILURE TO SET SC BIT 1,2 OR + 2685 ;3 WILL RESULT IN EXCESSIVE SHIFTING + 2686 + 2687 037601 SN=SN+1 + 2688 000020 ZZ=ZZ+1 + 2689 032325 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2690 032326 242 05 0 00 000020 LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + 2691 032327 306 05 0 00 000001 CAIN AC,1 ;TEST FOR SHIFT + 2692 032330 003 05 0 00 037601 ER3 AC,SN ;SC BIT 0 FAILED TO SET + 2693 032331 336 00 0 00 000005 SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + 2694 032332 003 05 0 00 037601 ER3 AC,SN ;SC BIT (N) FAILED TO SET +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 15-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC GATING TEST SEQ 0082 + + 2695 032333 321 07 0 00 032325 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2696 + 2697 + 2698 ;TEST SC HIGH ORDER BITS + 2699 ;TEST THE ABILITY TO SET THE FOUR MOST + 2700 ;SIGNIFICANT BITS + 2701 ;AC IS LOGICALLY SHIFTED LEFT + 2702 ;AND TESTED + 2703 ;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT + 2704 ;AN ERROR WILL OCCUR IF AC EQUALS ZERO + 2705 ;FOLLOWING A SHIFT + 2706 ;FAILURE TO SET SC BIT 1,2 OR + 2707 ;3 WILL RESULT IN EXCESSIVE SHIFTING + 2708 + 2709 037602 SN=SN+1 + 2710 000021 ZZ=ZZ+1 + 2711 032334 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2712 032335 242 05 0 00 000021 LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + 2713 032336 306 05 0 00 000001 CAIN AC,1 ;TEST FOR SHIFT + 2714 032337 003 05 0 00 037602 ER3 AC,SN ;SC BIT 0 FAILED TO SET + 2715 032340 336 00 0 00 000005 SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + 2716 032341 003 05 0 00 037602 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2717 032342 321 07 0 00 032334 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2718 + 2719 + 2720 ;TEST SC HIGH ORDER BITS + 2721 ;TEST THE ABILITY TO SET THE FOUR MOST + 2722 ;SIGNIFICANT BITS + 2723 ;AC IS LOGICALLY SHIFTED LEFT + 2724 ;AND TESTED + 2725 ;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT + 2726 ;AN ERROR WILL OCCUR IF AC EQUALS ZERO + 2727 ;FOLLOWING A SHIFT + 2728 ;FAILURE TO SET SC BIT 1,2 OR + 2729 ;3 WILL RESULT IN EXCESSIVE SHIFTING + 2730 + 2731 037603 SN=SN+1 + 2732 000022 ZZ=ZZ+1 + 2733 032343 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2734 032344 242 05 0 00 000022 LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + 2735 032345 306 05 0 00 000001 CAIN AC,1 ;TEST FOR SHIFT + 2736 032346 003 05 0 00 037603 ER3 AC,SN ;SC BIT 0 FAILED TO SET + 2737 032347 336 00 0 00 000005 SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + 2738 032350 003 05 0 00 037603 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2739 032351 321 07 0 00 032343 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH + 2740 + 2741 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 16 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0083 + + 2742 SUBTTL DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST + 2743 + 2744 ;TEST SC AR EN + 2745 ;TEST THE ABILITY OF SC AR EN TO + 2746 ;AFFECT A TRANSFER BETWEEN SC AND AR + 2747 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2748 ;WILL AFFECT TEST + 2749 ;AC IS ROTATED LEFT/RIGHT AND TESTED FOR + 2750 ;EVIDENCE OF ROTATE + 2751 + 2752 000007 AC=7 + 2753 SAVEAC (1,1)^ + 2754 032352 201 11 0 00 032352 MOVEI AC+2,. ;SETUP TESTPC + 2755 032353 202 11 0 00 030051 MOVEM AC+2,TESTPC + 2756 032354 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2757 032355 202 11 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2758 + 2759 032356 201 07 0 00 000001 E37700: MOVEI AC,1 ;SET BIT 35 + 2760 032357 241 07 0 00 777773 ROT AC,-5 ;*ROTATE RIGHT + 2761 032360 241 07 0 00 000007 ROT AC,7 ;*ROTATE LEFT + 2762 032361 306 07 0 00 000001 CAIN AC,1 ;TEST FOR PRESENCE + 2763 032362 003 07 0 00 037701 ER3 AC,37701 ;OF PULSE + 2764 032363 321 11 0 00 032356 JUMPL AC+2,E37700 ;LOOP ON ERROR SWITCH + 2765 + 2766 ;TEST PULSE WITH SC BITS 5-8 + 2767 032364 201 07 0 00 000001 E40000: MOVEI AC,1 ;SET BIT 35 + 2768 032365 241 07 0 00 000017 ROT AC,17 ;*ROTATE LEFT + 2769 032366 306 07 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE LEFT + 2770 032367 003 07 0 00 040001 ER3 AC,40001 ;SC AR EN FAILED + 2771 032370 321 11 0 00 032364 JUMPL AC+2,E40000 ;LOOP ON ERROR SWITCH + 2772 + 2773 ;TEST PULSE WITH SC BITS 4-8 + 2774 032371 201 07 0 00 000001 E40100: MOVEI AC,1 ;SET BIT 35 + 2775 032372 241 07 0 00 000037 ROT AC,37 ;*ROTATE LEFT + 2776 032373 306 07 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE LEFT + 2777 032374 003 07 0 00 040101 ER3 AC,40101 ;TEST FOR ROTATE LEFT + 2778 032375 321 11 0 00 032371 JUMPL AC+2,E40100 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 17 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0084 + + 2779 000006 AC=6 + 2780 SAVEAC (1,1)^ + 2781 032376 201 10 0 00 032376 MOVEI AC+2,. ;SETUP TESTPC + 2782 032377 202 10 0 00 030051 MOVEM AC+2,TESTPC + 2783 032400 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2784 032401 202 10 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2785 + 2786 040200 SN=40200 + 2787 000000 ZZ=0 + 2788 + 2789 E40200: REPEAT ^D8, < + 2790 ;TEST SC-AR CONNECTION-ONE'S + 2791 ;TEST THE ABILITY OF SC AR EN + 2792 ;TO TRANSFER ONE'S TO SC + 2793 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2794 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2795 ;WILL AFFECT TEST + 2796 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2797 ;RESULTS IN NO ROTATE + 2798 + 2799 SN=SN+1 + 2800 ZZ=ZZ+ZZ + 2801 IFE ZZ, + 2802 MOVEI AC,1 ;SET BIT 35 + 2803 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2804 CAIN AC,1 ;TEST FOR ROTATE + 2805 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2806 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2807 > + 2808 + 2809 ;TEST SC-AR CONNECTION-ONE'S + 2810 ;TEST THE ABILITY OF SC AR EN + 2811 ;TO TRANSFER ONE'S TO SC + 2812 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2813 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2814 ;WILL AFFECT TEST + 2815 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2816 ;RESULTS IN NO ROTATE + 2817 + 2818 040201 SN=SN+1 + 2819 000000 ZZ=ZZ+ZZ + 2820 000001 IFE ZZ, + 2821 032402 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2822 032403 241 06 0 00 000001 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2823 032404 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2824 032405 003 06 0 00 040201 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2825 032406 321 10 0 00 032402 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2826 + 2827 + 2828 ;TEST SC-AR CONNECTION-ONE'S + 2829 ;TEST THE ABILITY OF SC AR EN + 2830 ;TO TRANSFER ONE'S TO SC + 2831 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2832 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2833 ;WILL AFFECT TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 17-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0085 + + 2834 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2835 ;RESULTS IN NO ROTATE + 2836 + 2837 040202 SN=SN+1 + 2838 000002 ZZ=ZZ+ZZ + 2839 IFE ZZ, + 2840 032407 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2841 032410 241 06 0 00 000002 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2842 032411 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2843 032412 003 06 0 00 040202 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2844 032413 321 10 0 00 032407 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2845 + 2846 + 2847 ;TEST SC-AR CONNECTION-ONE'S + 2848 ;TEST THE ABILITY OF SC AR EN + 2849 ;TO TRANSFER ONE'S TO SC + 2850 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2851 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2852 ;WILL AFFECT TEST + 2853 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2854 ;RESULTS IN NO ROTATE + 2855 + 2856 040203 SN=SN+1 + 2857 000004 ZZ=ZZ+ZZ + 2858 IFE ZZ, + 2859 032414 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2860 032415 241 06 0 00 000004 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2861 032416 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2862 032417 003 06 0 00 040203 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2863 032420 321 10 0 00 032414 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2864 + 2865 + 2866 ;TEST SC-AR CONNECTION-ONE'S + 2867 ;TEST THE ABILITY OF SC AR EN + 2868 ;TO TRANSFER ONE'S TO SC + 2869 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2870 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2871 ;WILL AFFECT TEST + 2872 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2873 ;RESULTS IN NO ROTATE + 2874 + 2875 040204 SN=SN+1 + 2876 000010 ZZ=ZZ+ZZ + 2877 IFE ZZ, + 2878 032421 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2879 032422 241 06 0 00 000010 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2880 032423 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2881 032424 003 06 0 00 040204 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2882 032425 321 10 0 00 032421 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2883 + 2884 + 2885 ;TEST SC-AR CONNECTION-ONE'S + 2886 ;TEST THE ABILITY OF SC AR EN + 2887 ;TO TRANSFER ONE'S TO SC + 2888 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 17-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0086 + + 2889 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2890 ;WILL AFFECT TEST + 2891 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2892 ;RESULTS IN NO ROTATE + 2893 + 2894 040205 SN=SN+1 + 2895 000020 ZZ=ZZ+ZZ + 2896 IFE ZZ, + 2897 032426 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2898 032427 241 06 0 00 000020 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2899 032430 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2900 032431 003 06 0 00 040205 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2901 032432 321 10 0 00 032426 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2902 + 2903 + 2904 ;TEST SC-AR CONNECTION-ONE'S + 2905 ;TEST THE ABILITY OF SC AR EN + 2906 ;TO TRANSFER ONE'S TO SC + 2907 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2908 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2909 ;WILL AFFECT TEST + 2910 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2911 ;RESULTS IN NO ROTATE + 2912 + 2913 040206 SN=SN+1 + 2914 000040 ZZ=ZZ+ZZ + 2915 IFE ZZ, + 2916 032433 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2917 032434 241 06 0 00 000040 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2918 032435 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2919 032436 003 06 0 00 040206 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2920 032437 321 10 0 00 032433 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2921 + 2922 + 2923 ;TEST SC-AR CONNECTION-ONE'S + 2924 ;TEST THE ABILITY OF SC AR EN + 2925 ;TO TRANSFER ONE'S TO SC + 2926 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2927 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2928 ;WILL AFFECT TEST + 2929 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2930 ;RESULTS IN NO ROTATE + 2931 + 2932 040207 SN=SN+1 + 2933 000100 ZZ=ZZ+ZZ + 2934 IFE ZZ, + 2935 032440 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2936 032441 241 06 0 00 000100 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2937 032442 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2938 032443 003 06 0 00 040207 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2939 032444 321 10 0 00 032440 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2940 + 2941 + 2942 ;TEST SC-AR CONNECTION-ONE'S + 2943 ;TEST THE ABILITY OF SC AR EN +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 17-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0087 + + 2944 ;TO TRANSFER ONE'S TO SC + 2945 ;SC BITS EIGHT THROUGH ONE ARE SET IN TURN + 2946 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 2947 ;WILL AFFECT TEST + 2948 ;FAILURE OF A SHIFT COUNTER BIT TO SET + 2949 ;RESULTS IN NO ROTATE + 2950 + 2951 040210 SN=SN+1 + 2952 000200 ZZ=ZZ+ZZ + 2953 IFE ZZ, + 2954 032445 201 06 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 2955 032446 241 06 0 00 000200 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 2956 032447 306 06 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 2957 032450 003 06 0 00 040210 ER3 AC,SN ;SC BIT (N) FAILED TO SET + 2958 032451 321 10 0 00 032445 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 2959 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 18 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0088 + + 2960 000005 AC=5 + 2961 SAVEAC (1,1)^ + 2962 032452 201 07 0 00 032452 MOVEI AC+2,. ;SETUP TESTPC + 2963 032453 202 07 0 00 030051 MOVEM AC+2,TESTPC + 2964 032454 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2965 032455 202 07 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2966 + 2967 040300 SN=40300 + 2968 000000 XX=0 + 2969 777777 777777 ZZ=-1 + 2970 + 2971 E40300: REPEAT ^D6, < + 2972 ;TEST SC AR CONNETION-ZERO'S + 2973 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 2974 ;A ZERO WHEN TRANSFERRING BR TO SC + 2975 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 2976 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 2977 ;MALFUNTION OF SCAD OR SC COUNT GATES + 2978 ;WILL AFFECT TEST + 2979 + 2980 SN=SN+1 + 2981 XX=XX+XX + 2982 ZZ=ZZ+ZZ + 2983 IFE XX, + 2984 MOVEI AC,1 ;SET BIT 35 + 2985 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 2986 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 2987 CAIN AC,1 ;TEST FOR ROTATE + 2988 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 2989 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 2990 > + 2991 + 2992 ;TEST SC AR CONNETION-ZERO'S + 2993 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 2994 ;A ZERO WHEN TRANSFERRING BR TO SC + 2995 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 2996 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 2997 ;MALFUNTION OF SCAD OR SC COUNT GATES + 2998 ;WILL AFFECT TEST + 2999 + 3000 040301 SN=SN+1 + 3001 000000 XX=XX+XX + 3002 777777 777776 ZZ=ZZ+ZZ + 3003 000001 IFE XX, + 3004 032456 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3005 032457 241 05 0 00 777776 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3006 032460 241 05 0 00 000001 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3007 032461 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3008 032462 003 05 0 00 040301 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3009 032463 321 07 0 00 032456 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3010 + 3011 + 3012 ;TEST SC AR CONNETION-ZERO'S + 3013 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 3014 ;A ZERO WHEN TRANSFERRING BR TO SC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 18-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0089 + + 3015 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 3016 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 3017 ;MALFUNTION OF SCAD OR SC COUNT GATES + 3018 ;WILL AFFECT TEST + 3019 + 3020 040302 SN=SN+1 + 3021 000002 XX=XX+XX + 3022 777777 777774 ZZ=ZZ+ZZ + 3023 IFE XX, + 3024 032464 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3025 032465 241 05 0 00 777774 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3026 032466 241 05 0 00 000002 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3027 032467 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3028 032470 003 05 0 00 040302 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3029 032471 321 07 0 00 032464 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3030 + 3031 + 3032 ;TEST SC AR CONNETION-ZERO'S + 3033 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 3034 ;A ZERO WHEN TRANSFERRING BR TO SC + 3035 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 3036 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 3037 ;MALFUNTION OF SCAD OR SC COUNT GATES + 3038 ;WILL AFFECT TEST + 3039 + 3040 040303 SN=SN+1 + 3041 000004 XX=XX+XX + 3042 777777 777770 ZZ=ZZ+ZZ + 3043 IFE XX, + 3044 032472 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3045 032473 241 05 0 00 777770 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3046 032474 241 05 0 00 000004 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3047 032475 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3048 032476 003 05 0 00 040303 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3049 032477 321 07 0 00 032472 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3050 + 3051 + 3052 ;TEST SC AR CONNETION-ZERO'S + 3053 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 3054 ;A ZERO WHEN TRANSFERRING BR TO SC + 3055 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 3056 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 3057 ;MALFUNTION OF SCAD OR SC COUNT GATES + 3058 ;WILL AFFECT TEST + 3059 + 3060 040304 SN=SN+1 + 3061 000010 XX=XX+XX + 3062 777777 777760 ZZ=ZZ+ZZ + 3063 IFE XX, + 3064 032500 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3065 032501 241 05 0 00 777760 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3066 032502 241 05 0 00 000010 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3067 032503 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3068 032504 003 05 0 00 040304 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3069 032505 321 07 0 00 032500 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 18-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST SEQ 0090 + + 3070 + 3071 + 3072 ;TEST SC AR CONNETION-ZERO'S + 3073 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 3074 ;A ZERO WHEN TRANSFERRING BR TO SC + 3075 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 3076 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 3077 ;MALFUNTION OF SCAD OR SC COUNT GATES + 3078 ;WILL AFFECT TEST + 3079 + 3080 040305 SN=SN+1 + 3081 000020 XX=XX+XX + 3082 777777 777740 ZZ=ZZ+ZZ + 3083 IFE XX, + 3084 032506 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3085 032507 241 05 0 00 777740 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3086 032510 241 05 0 00 000020 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3087 032511 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3088 032512 003 05 0 00 040305 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3089 032513 321 07 0 00 032506 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3090 + 3091 + 3092 ;TEST SC AR CONNETION-ZERO'S + 3093 ;TEST THE ABILITY OF A SC BIT TO REMAIN + 3094 ;A ZERO WHEN TRANSFERRING BR TO SC + 3095 ;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE + 3096 ;TEST BY ROTATING RIGHT TWO,LEFT ONE + 3097 ;MALFUNTION OF SCAD OR SC COUNT GATES + 3098 ;WILL AFFECT TEST + 3099 + 3100 040306 SN=SN+1 + 3101 000040 XX=XX+XX + 3102 777777 777700 ZZ=ZZ+ZZ + 3103 IFE XX, + 3104 032514 201 05 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3105 032515 241 05 0 00 777700 ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + 3106 032516 241 05 0 00 000040 ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + 3107 032517 306 05 0 00 000001 CAIN AC,1 ;TEST FOR ROTATE + 3108 032520 003 05 0 00 040306 ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + 3109 032521 321 07 0 00 032514 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3110 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 19 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0091 + + 3111 SUBTTL DIAGNOSTIC SECTION - SC-SCAD GATING TEST + 3112 + 3113 ;TEST DIRECTION + 3114 ;TEST THE ABILITY TO ROTATE IN THE + 3115 ;SPECIFIED DIRECTION + 3116 ;FAILURE OF AC TO ROTATE OR ROTATING IN THE + 3117 ;WRONG DIRECTION WILL CAUSE AN ERROR + 3118 ;MALFUNCTION OF SCAD OR SC COUNT GATES WILL + 3119 ;CAUSE AN ERROR + 3120 + 3121 000004 AC=4 + 3122 SAVEAC (1,1)^ + 3123 032522 201 06 0 00 032522 MOVEI AC+2,. ;SETUP TESTPC + 3124 032523 202 06 0 00 030051 MOVEM AC+2,TESTPC + 3125 032524 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3126 032525 202 06 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3127 + 3128 ;TEST LEFT + 3129 032526 201 04 0 00 400000 E40400: MOVEI AC,400000 ;SET AC BIT 18 + 3130 032527 205 03 0 00 777777 MOVSI AC-1,-1 ;SET LEFT,CLEAR RIGHT + 3131 032530 241 04 0 00 000003 ROT AC,3 ;*ROTATE LEFT + 3132 032531 616 04 0 00 000003 TDNN AC,AC-1 ;TEST DIRECTION + 3133 032532 003 04 0 00 040401 ER3 AC,40401 ;FAILED OR WRONG DIRECTION + 3134 032533 321 06 0 00 032526 JUMPL AC+2,E40400 ;LOOP ON ERROR SWITCH + 3135 + 3136 ;TEST RIGHT + 3137 032534 205 04 0 00 000001 E40500: MOVSI AC,1 ;SET AC BIT 17 + 3138 032535 201 03 0 00 777777 MOVEI AC-1,-1 ;CLEAR LEFT,SET RIGHT + 3139 032536 241 04 0 00 777775 ROT AC,-3 ;*ROTATE RIGHT + 3140 032537 616 04 0 00 000003 TDNN AC,AC-1 ;TEST DIRECTION + 3141 032540 003 04 0 00 040501 ER3 AC,40501 ;FAILED OR WRONG DIRECTION + 3142 032541 321 06 0 00 032534 JUMPL AC+2,E40500 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0092 + + 3143 000003 AC=3 + 3144 SAVEAC (1,1)^ + 3145 032542 201 05 0 00 032542 MOVEI AC+2,. ;SETUP TESTPC + 3146 032543 202 05 0 00 030051 MOVEM AC+2,TESTPC + 3147 032544 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3148 032545 202 05 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3149 + 3150 040600 SN=40600 + 3151 000000 ZZ=0 + 3152 + 3153 ;TEST FOR NO ROTATE + 3154 E40600: REPEAT ^D8,< + 3155 ;SCAD-SC NEGATE SET UP TEST + 3156 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3157 ;TEST SC+1 ENABLE + 3158 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3159 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3160 ;IN ROT LEFT ONE + 3161 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3162 ;WILL AFFECT TEST + 3163 + 3164 SN=SN+1 + 3165 ZZ=ZZ+ZZ + 3166 IFE ZZ, + 3167 MOVEI AC,1 ;SET BIT 35 + 3168 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3169 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3170 ER3 AC,SN ;ON NEGATE + 3171 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3172 > + 3173 + 3174 ;SCAD-SC NEGATE SET UP TEST + 3175 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3176 ;TEST SC+1 ENABLE + 3177 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3178 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3179 ;IN ROT LEFT ONE + 3180 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3181 ;WILL AFFECT TEST + 3182 + 3183 040601 SN=SN+1 + 3184 000000 ZZ=ZZ+ZZ + 3185 000001 IFE ZZ, + 3186 032546 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3187 032547 241 03 0 00 000001 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3188 032550 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3189 032551 003 03 0 00 040601 ER3 AC,SN ;ON NEGATE + 3190 032552 321 05 0 00 032546 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3191 + 3192 + 3193 ;SCAD-SC NEGATE SET UP TEST + 3194 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3195 ;TEST SC+1 ENABLE + 3196 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3197 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0093 + + 3198 ;IN ROT LEFT ONE + 3199 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3200 ;WILL AFFECT TEST + 3201 + 3202 040602 SN=SN+1 + 3203 000002 ZZ=ZZ+ZZ + 3204 IFE ZZ, + 3205 032553 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3206 032554 241 03 0 00 000002 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3207 032555 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3208 032556 003 03 0 00 040602 ER3 AC,SN ;ON NEGATE + 3209 032557 321 05 0 00 032553 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3210 + 3211 + 3212 ;SCAD-SC NEGATE SET UP TEST + 3213 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3214 ;TEST SC+1 ENABLE + 3215 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3216 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3217 ;IN ROT LEFT ONE + 3218 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3219 ;WILL AFFECT TEST + 3220 + 3221 040603 SN=SN+1 + 3222 000004 ZZ=ZZ+ZZ + 3223 IFE ZZ, + 3224 032560 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3225 032561 241 03 0 00 000004 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3226 032562 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3227 032563 003 03 0 00 040603 ER3 AC,SN ;ON NEGATE + 3228 032564 321 05 0 00 032560 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3229 + 3230 + 3231 ;SCAD-SC NEGATE SET UP TEST + 3232 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3233 ;TEST SC+1 ENABLE + 3234 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3235 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3236 ;IN ROT LEFT ONE + 3237 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3238 ;WILL AFFECT TEST + 3239 + 3240 040604 SN=SN+1 + 3241 000010 ZZ=ZZ+ZZ + 3242 IFE ZZ, + 3243 032565 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3244 032566 241 03 0 00 000010 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3245 032567 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3246 032570 003 03 0 00 040604 ER3 AC,SN ;ON NEGATE + 3247 032571 321 05 0 00 032565 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3248 + 3249 + 3250 ;SCAD-SC NEGATE SET UP TEST + 3251 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3252 ;TEST SC+1 ENABLE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0094 + + 3253 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3254 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3255 ;IN ROT LEFT ONE + 3256 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3257 ;WILL AFFECT TEST + 3258 + 3259 040605 SN=SN+1 + 3260 000020 ZZ=ZZ+ZZ + 3261 IFE ZZ, + 3262 032572 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3263 032573 241 03 0 00 000020 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3264 032574 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3265 032575 003 03 0 00 040605 ER3 AC,SN ;ON NEGATE + 3266 032576 321 05 0 00 032572 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3267 + 3268 + 3269 ;SCAD-SC NEGATE SET UP TEST + 3270 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3271 ;TEST SC+1 ENABLE + 3272 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3273 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3274 ;IN ROT LEFT ONE + 3275 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3276 ;WILL AFFECT TEST + 3277 + 3278 040606 SN=SN+1 + 3279 000040 ZZ=ZZ+ZZ + 3280 IFE ZZ, + 3281 032577 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3282 032600 241 03 0 00 000040 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3283 032601 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3284 032602 003 03 0 00 040606 ER3 AC,SN ;ON NEGATE + 3285 032603 321 05 0 00 032577 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3286 + 3287 + 3288 ;SCAD-SC NEGATE SET UP TEST + 3289 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3290 ;TEST SC+1 ENABLE + 3291 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3292 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3293 ;IN ROT LEFT ONE + 3294 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3295 ;WILL AFFECT TEST + 3296 + 3297 040607 SN=SN+1 + 3298 000100 ZZ=ZZ+ZZ + 3299 IFE ZZ, + 3300 032604 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3301 032605 241 03 0 00 000100 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3302 032606 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3303 032607 003 03 0 00 040607 ER3 AC,SN ;ON NEGATE + 3304 032610 321 05 0 00 032604 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3305 + 3306 + 3307 ;SCAD-SC NEGATE SET UP TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0095 + + 3308 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3309 ;TEST SC+1 ENABLE + 3310 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3311 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3312 ;IN ROT LEFT ONE + 3313 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3314 ;WILL AFFECT TEST + 3315 + 3316 040610 SN=SN+1 + 3317 000200 ZZ=ZZ+ZZ + 3318 IFE ZZ, + 3319 032611 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3320 032612 241 03 0 00 000200 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3321 032613 306 03 0 00 000001 CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + 3322 032614 003 03 0 00 040610 ER3 AC,SN ;ON NEGATE + 3323 032615 321 05 0 00 032611 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3324 + 3325 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0096 + + 3326 040700 SN=40700 + 3327 000001 ZZ=1 + 3328 + 3329 ;TEST FOR ROTATE LEFT ONE + 3330 E40700: REPEAT ^D7,< + 3331 ;SCAD-SC NEGATE SET UP TEST + 3332 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3333 ;TEST SC+1 ENABLE + 3334 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3335 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3336 ;IN ROT LEFT ONE + 3337 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3338 ;WILL AFFECT TEST + 3339 + 3340 SN=SN+1 + 3341 ZZ=ZZ+ZZ + 3342 MOVEI AC,1 ;SET BIT 35 + 3343 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3344 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3345 ER3 AC,SN ;AND SC+1 FAILED + 3346 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3347 > + 3348 + 3349 ;SCAD-SC NEGATE SET UP TEST + 3350 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3351 ;TEST SC+1 ENABLE + 3352 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3353 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3354 ;IN ROT LEFT ONE + 3355 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3356 ;WILL AFFECT TEST + 3357 + 3358 040701 SN=SN+1 + 3359 000002 ZZ=ZZ+ZZ + 3360 032616 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3361 032617 241 03 0 00 000002 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3362 032620 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3363 032621 003 03 0 00 040701 ER3 AC,SN ;AND SC+1 FAILED + 3364 032622 321 05 0 00 032616 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3365 + 3366 + 3367 ;SCAD-SC NEGATE SET UP TEST + 3368 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3369 ;TEST SC+1 ENABLE + 3370 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3371 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3372 ;IN ROT LEFT ONE + 3373 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3374 ;WILL AFFECT TEST + 3375 + 3376 040702 SN=SN+1 + 3377 000004 ZZ=ZZ+ZZ + 3378 032623 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3379 032624 241 03 0 00 000004 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3380 032625 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0097 + + 3381 032626 003 03 0 00 040702 ER3 AC,SN ;AND SC+1 FAILED + 3382 032627 321 05 0 00 032623 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3383 + 3384 + 3385 ;SCAD-SC NEGATE SET UP TEST + 3386 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3387 ;TEST SC+1 ENABLE + 3388 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3389 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3390 ;IN ROT LEFT ONE + 3391 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3392 ;WILL AFFECT TEST + 3393 + 3394 040703 SN=SN+1 + 3395 000010 ZZ=ZZ+ZZ + 3396 032630 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3397 032631 241 03 0 00 000010 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3398 032632 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3399 032633 003 03 0 00 040703 ER3 AC,SN ;AND SC+1 FAILED + 3400 032634 321 05 0 00 032630 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3401 + 3402 + 3403 ;SCAD-SC NEGATE SET UP TEST + 3404 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3405 ;TEST SC+1 ENABLE + 3406 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3407 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3408 ;IN ROT LEFT ONE + 3409 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3410 ;WILL AFFECT TEST + 3411 + 3412 040704 SN=SN+1 + 3413 000020 ZZ=ZZ+ZZ + 3414 032635 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3415 032636 241 03 0 00 000020 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3416 032637 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3417 032640 003 03 0 00 040704 ER3 AC,SN ;AND SC+1 FAILED + 3418 032641 321 05 0 00 032635 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3419 + 3420 + 3421 ;SCAD-SC NEGATE SET UP TEST + 3422 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3423 ;TEST SC+1 ENABLE + 3424 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3425 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3426 ;IN ROT LEFT ONE + 3427 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3428 ;WILL AFFECT TEST + 3429 + 3430 040705 SN=SN+1 + 3431 000040 ZZ=ZZ+ZZ + 3432 032642 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3433 032643 241 03 0 00 000040 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3434 032644 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3435 032645 003 03 0 00 040705 ER3 AC,SN ;AND SC+1 FAILED +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 20-6 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0098 + + 3436 032646 321 05 0 00 032642 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3437 + 3438 + 3439 ;SCAD-SC NEGATE SET UP TEST + 3440 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3441 ;TEST SC+1 ENABLE + 3442 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3443 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3444 ;IN ROT LEFT ONE + 3445 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3446 ;WILL AFFECT TEST + 3447 + 3448 040706 SN=SN+1 + 3449 000100 ZZ=ZZ+ZZ + 3450 032647 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3451 032650 241 03 0 00 000100 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3452 032651 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3453 032652 003 03 0 00 040706 ER3 AC,SN ;AND SC+1 FAILED + 3454 032653 321 05 0 00 032647 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3455 + 3456 + 3457 ;SCAD-SC NEGATE SET UP TEST + 3458 ;TEST A BIT FAILING TO CLEAR ON COMPLEMENT + 3459 ;TEST SC+1 ENABLE + 3460 ;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE + 3461 ;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS + 3462 ;IN ROT LEFT ONE + 3463 ;MALFUNCTION OF SCAD OR SC COUNT GATES + 3464 ;WILL AFFECT TEST + 3465 + 3466 040707 SN=SN+1 + 3467 000200 ZZ=ZZ+ZZ + 3468 032654 201 03 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3469 032655 241 03 0 00 000200 ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + 3470 032656 306 03 0 00 000002 CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + 3471 032657 003 03 0 00 040707 ER3 AC,SN ;AND SC+1 FAILED + 3472 032660 321 05 0 00 032654 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3473 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0099 + + 3474 000002 AC=2 + 3475 SAVEAC (1,1)^ + 3476 032661 201 04 0 00 032661 MOVEI AC+2,. ;SETUP TESTPC + 3477 032662 202 04 0 00 030051 MOVEM AC+2,TESTPC + 3478 032663 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3479 032664 202 04 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3480 + 3481 041000 SN=41000 + 3482 000001 XX=1 + 3483 000000 ZZ=0 + 3484 + 3485 ;ROTATE FROM 3 TO 17 TIMES + 3486 E41000: REPEAT ^D5,< + 3487 ;SCAD SC COUNT TEST + 3488 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3489 ;COUNT THE SHIFT COUNTER + 3490 ;TEST SC-SCAD CONNECTION + 3491 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3492 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3493 ;THE CORRECT NUMBER OF BITS + 3494 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3495 ;LOGIC + 3496 + 3497 SN=SN+1 + 3498 XX=XX*10 + 3499 ZZ=ZZ+3 + 3500 MOVEI AC,1 ;SET BIT 35 + 3501 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3502 CAIE AC,XX ;TEST AC + 3503 ER3 AC,SN ;INCORRECT ROTATE + 3504 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3505 > + 3506 + 3507 ;SCAD SC COUNT TEST + 3508 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3509 ;COUNT THE SHIFT COUNTER + 3510 ;TEST SC-SCAD CONNECTION + 3511 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3512 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3513 ;THE CORRECT NUMBER OF BITS + 3514 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3515 ;LOGIC + 3516 + 3517 041001 SN=SN+1 + 3518 000010 XX=XX*10 + 3519 000003 ZZ=ZZ+3 + 3520 032665 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3521 032666 241 02 0 00 000003 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3522 032667 302 02 0 00 000010 CAIE AC,XX ;TEST AC + 3523 032670 003 02 0 00 041001 ER3 AC,SN ;INCORRECT ROTATE + 3524 032671 321 04 0 00 032665 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3525 + 3526 + 3527 ;SCAD SC COUNT TEST + 3528 ;TEST THE ABILITY OF SCAD TO PROPERLY +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0100 + + 3529 ;COUNT THE SHIFT COUNTER + 3530 ;TEST SC-SCAD CONNECTION + 3531 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3532 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3533 ;THE CORRECT NUMBER OF BITS + 3534 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3535 ;LOGIC + 3536 + 3537 041002 SN=SN+1 + 3538 000100 XX=XX*10 + 3539 000006 ZZ=ZZ+3 + 3540 032672 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3541 032673 241 02 0 00 000006 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3542 032674 302 02 0 00 000100 CAIE AC,XX ;TEST AC + 3543 032675 003 02 0 00 041002 ER3 AC,SN ;INCORRECT ROTATE + 3544 032676 321 04 0 00 032672 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3545 + 3546 + 3547 ;SCAD SC COUNT TEST + 3548 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3549 ;COUNT THE SHIFT COUNTER + 3550 ;TEST SC-SCAD CONNECTION + 3551 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3552 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3553 ;THE CORRECT NUMBER OF BITS + 3554 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3555 ;LOGIC + 3556 + 3557 041003 SN=SN+1 + 3558 001000 XX=XX*10 + 3559 000011 ZZ=ZZ+3 + 3560 032677 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3561 032700 241 02 0 00 000011 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3562 032701 302 02 0 00 001000 CAIE AC,XX ;TEST AC + 3563 032702 003 02 0 00 041003 ER3 AC,SN ;INCORRECT ROTATE + 3564 032703 321 04 0 00 032677 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3565 + 3566 + 3567 ;SCAD SC COUNT TEST + 3568 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3569 ;COUNT THE SHIFT COUNTER + 3570 ;TEST SC-SCAD CONNECTION + 3571 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3572 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3573 ;THE CORRECT NUMBER OF BITS + 3574 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3575 ;LOGIC + 3576 + 3577 041004 SN=SN+1 + 3578 010000 XX=XX*10 + 3579 000014 ZZ=ZZ+3 + 3580 032704 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3581 032705 241 02 0 00 000014 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3582 032706 302 02 0 00 010000 CAIE AC,XX ;TEST AC + 3583 032707 003 02 0 00 041004 ER3 AC,SN ;INCORRECT ROTATE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0101 + + 3584 032710 321 04 0 00 032704 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3585 + 3586 + 3587 ;SCAD SC COUNT TEST + 3588 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3589 ;COUNT THE SHIFT COUNTER + 3590 ;TEST SC-SCAD CONNECTION + 3591 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3592 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3593 ;THE CORRECT NUMBER OF BITS + 3594 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3595 ;LOGIC + 3596 + 3597 041005 SN=SN+1 + 3598 100000 XX=XX*10 + 3599 000017 ZZ=ZZ+3 + 3600 032711 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3601 032712 241 02 0 00 000017 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3602 032713 302 02 0 00 100000 CAIE AC,XX ;TEST AC + 3603 032714 003 02 0 00 041005 ER3 AC,SN ;INCORRECT ROTATE + 3604 032715 321 04 0 00 032711 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3605 + 3606 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0102 + + 3607 041100 SN=41100 + 3608 000000 XX=0 + 3609 + 3610 ;ROTATE FROM 22 TO 41 TIMES + 3611 E41100: REPEAT ^D6,< + 3612 ;SCAD SC COUNT TEST + 3613 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3614 ;COUNT THE SHIFT COUNTER + 3615 ;TEST SC-SCAD CONNECTION + 3616 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3617 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3618 ;THE CORRECT NUMBER OF BITS + 3619 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3620 ;LOGIC + 3621 + 3622 SN=SN+1 + 3623 XX=XX*10 + 3624 ZZ=ZZ+3 + 3625 IFE XX, + 3626 MOVEI AC,1 ;SET BIT 35 + 3627 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3628 MOVSS AC ;SWAP CONTENTS OF AC + 3629 CAIE AC,XX ;TEST AC + 3630 ER3 AC,SN ;INCORRECT ROTATE + 3631 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3632 > + 3633 + 3634 ;SCAD SC COUNT TEST + 3635 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3636 ;COUNT THE SHIFT COUNTER + 3637 ;TEST SC-SCAD CONNECTION + 3638 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3639 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3640 ;THE CORRECT NUMBER OF BITS + 3641 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3642 ;LOGIC + 3643 + 3644 041101 SN=SN+1 + 3645 000000 XX=XX*10 + 3646 000022 ZZ=ZZ+3 + 3647 000001 IFE XX, + 3648 032716 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3649 032717 241 02 0 00 000022 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3650 032720 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3651 032721 302 02 0 00 000001 CAIE AC,XX ;TEST AC + 3652 032722 003 02 0 00 041101 ER3 AC,SN ;INCORRECT ROTATE + 3653 032723 321 04 0 00 032716 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3654 + 3655 + 3656 ;SCAD SC COUNT TEST + 3657 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3658 ;COUNT THE SHIFT COUNTER + 3659 ;TEST SC-SCAD CONNECTION + 3660 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3661 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0103 + + 3662 ;THE CORRECT NUMBER OF BITS + 3663 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3664 ;LOGIC + 3665 + 3666 041102 SN=SN+1 + 3667 000010 XX=XX*10 + 3668 000025 ZZ=ZZ+3 + 3669 IFE XX, + 3670 032724 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3671 032725 241 02 0 00 000025 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3672 032726 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3673 032727 302 02 0 00 000010 CAIE AC,XX ;TEST AC + 3674 032730 003 02 0 00 041102 ER3 AC,SN ;INCORRECT ROTATE + 3675 032731 321 04 0 00 032724 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3676 + 3677 + 3678 ;SCAD SC COUNT TEST + 3679 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3680 ;COUNT THE SHIFT COUNTER + 3681 ;TEST SC-SCAD CONNECTION + 3682 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3683 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3684 ;THE CORRECT NUMBER OF BITS + 3685 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3686 ;LOGIC + 3687 + 3688 041103 SN=SN+1 + 3689 000100 XX=XX*10 + 3690 000030 ZZ=ZZ+3 + 3691 IFE XX, + 3692 032732 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3693 032733 241 02 0 00 000030 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3694 032734 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3695 032735 302 02 0 00 000100 CAIE AC,XX ;TEST AC + 3696 032736 003 02 0 00 041103 ER3 AC,SN ;INCORRECT ROTATE + 3697 032737 321 04 0 00 032732 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3698 + 3699 + 3700 ;SCAD SC COUNT TEST + 3701 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3702 ;COUNT THE SHIFT COUNTER + 3703 ;TEST SC-SCAD CONNECTION + 3704 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3705 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3706 ;THE CORRECT NUMBER OF BITS + 3707 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3708 ;LOGIC + 3709 + 3710 041104 SN=SN+1 + 3711 001000 XX=XX*10 + 3712 000033 ZZ=ZZ+3 + 3713 IFE XX, + 3714 032740 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3715 032741 241 02 0 00 000033 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3716 032742 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 21-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0104 + + 3717 032743 302 02 0 00 001000 CAIE AC,XX ;TEST AC + 3718 032744 003 02 0 00 041104 ER3 AC,SN ;INCORRECT ROTATE + 3719 032745 321 04 0 00 032740 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3720 + 3721 + 3722 ;SCAD SC COUNT TEST + 3723 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3724 ;COUNT THE SHIFT COUNTER + 3725 ;TEST SC-SCAD CONNECTION + 3726 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3727 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3728 ;THE CORRECT NUMBER OF BITS + 3729 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3730 ;LOGIC + 3731 + 3732 041105 SN=SN+1 + 3733 010000 XX=XX*10 + 3734 000036 ZZ=ZZ+3 + 3735 IFE XX, + 3736 032746 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3737 032747 241 02 0 00 000036 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3738 032750 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3739 032751 302 02 0 00 010000 CAIE AC,XX ;TEST AC + 3740 032752 003 02 0 00 041105 ER3 AC,SN ;INCORRECT ROTATE + 3741 032753 321 04 0 00 032746 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3742 + 3743 + 3744 ;SCAD SC COUNT TEST + 3745 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3746 ;COUNT THE SHIFT COUNTER + 3747 ;TEST SC-SCAD CONNECTION + 3748 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3749 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3750 ;THE CORRECT NUMBER OF BITS + 3751 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3752 ;LOGIC + 3753 + 3754 041106 SN=SN+1 + 3755 100000 XX=XX*10 + 3756 000041 ZZ=ZZ+3 + 3757 IFE XX, + 3758 032754 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3759 032755 241 02 0 00 000041 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3760 032756 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3761 032757 302 02 0 00 100000 CAIE AC,XX ;TEST AC + 3762 032760 003 02 0 00 041106 ER3 AC,SN ;INCORRECT ROTATE + 3763 032761 321 04 0 00 032754 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3764 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0105 + + 3765 041200 SN=41200 + 3766 000000 XX=0 + 3767 + 3768 ;ROTATE FROM 44 TO 36 TIMES + 3769 E41200: REPEAT ^D6,< + 3770 ;SCAD SC COUNT TEST + 3771 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3772 ;COUNT THE SHIFT COUNTER + 3773 ;TEST SC-SCAD CONNECTION + 3774 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3775 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3776 ;THE CORRECT NUMBER OF BITS + 3777 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3778 ;LOGIC + 3779 + 3780 SN=SN+1 + 3781 XX=XX*10 + 3782 ZZ=ZZ+3 + 3783 IFE XX, + 3784 MOVEI AC,1 ;SET BIT 35 + 3785 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3786 CAIE AC,XX ;TEST AC + 3787 ER3 AC,SN ;INCORRECT ROTATE + 3788 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3789 > + 3790 + 3791 ;SCAD SC COUNT TEST + 3792 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3793 ;COUNT THE SHIFT COUNTER + 3794 ;TEST SC-SCAD CONNECTION + 3795 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3796 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3797 ;THE CORRECT NUMBER OF BITS + 3798 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3799 ;LOGIC + 3800 + 3801 041201 SN=SN+1 + 3802 000000 XX=XX*10 + 3803 000044 ZZ=ZZ+3 + 3804 000001 IFE XX, + 3805 032762 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3806 032763 241 02 0 00 000044 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3807 032764 302 02 0 00 000001 CAIE AC,XX ;TEST AC + 3808 032765 003 02 0 00 041201 ER3 AC,SN ;INCORRECT ROTATE + 3809 032766 321 04 0 00 032762 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3810 + 3811 + 3812 ;SCAD SC COUNT TEST + 3813 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3814 ;COUNT THE SHIFT COUNTER + 3815 ;TEST SC-SCAD CONNECTION + 3816 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3817 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3818 ;THE CORRECT NUMBER OF BITS + 3819 ;ROTATING TO THE LEFT EXERCISES MAXIMUM +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0106 + + 3820 ;LOGIC + 3821 + 3822 041202 SN=SN+1 + 3823 000010 XX=XX*10 + 3824 000047 ZZ=ZZ+3 + 3825 IFE XX, + 3826 032767 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3827 032770 241 02 0 00 000047 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3828 032771 302 02 0 00 000010 CAIE AC,XX ;TEST AC + 3829 032772 003 02 0 00 041202 ER3 AC,SN ;INCORRECT ROTATE + 3830 032773 321 04 0 00 032767 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3831 + 3832 + 3833 ;SCAD SC COUNT TEST + 3834 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3835 ;COUNT THE SHIFT COUNTER + 3836 ;TEST SC-SCAD CONNECTION + 3837 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3838 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3839 ;THE CORRECT NUMBER OF BITS + 3840 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3841 ;LOGIC + 3842 + 3843 041203 SN=SN+1 + 3844 000100 XX=XX*10 + 3845 000052 ZZ=ZZ+3 + 3846 IFE XX, + 3847 032774 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3848 032775 241 02 0 00 000052 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3849 032776 302 02 0 00 000100 CAIE AC,XX ;TEST AC + 3850 032777 003 02 0 00 041203 ER3 AC,SN ;INCORRECT ROTATE + 3851 033000 321 04 0 00 032774 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3852 + 3853 + 3854 ;SCAD SC COUNT TEST + 3855 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3856 ;COUNT THE SHIFT COUNTER + 3857 ;TEST SC-SCAD CONNECTION + 3858 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3859 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3860 ;THE CORRECT NUMBER OF BITS + 3861 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3862 ;LOGIC + 3863 + 3864 041204 SN=SN+1 + 3865 001000 XX=XX*10 + 3866 000055 ZZ=ZZ+3 + 3867 IFE XX, + 3868 033001 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3869 033002 241 02 0 00 000055 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3870 033003 302 02 0 00 001000 CAIE AC,XX ;TEST AC + 3871 033004 003 02 0 00 041204 ER3 AC,SN ;INCORRECT ROTATE + 3872 033005 321 04 0 00 033001 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3873 + 3874 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0107 + + 3875 ;SCAD SC COUNT TEST + 3876 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3877 ;COUNT THE SHIFT COUNTER + 3878 ;TEST SC-SCAD CONNECTION + 3879 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3880 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3881 ;THE CORRECT NUMBER OF BITS + 3882 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3883 ;LOGIC + 3884 + 3885 041205 SN=SN+1 + 3886 010000 XX=XX*10 + 3887 000060 ZZ=ZZ+3 + 3888 IFE XX, + 3889 033006 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3890 033007 241 02 0 00 000060 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3891 033010 302 02 0 00 010000 CAIE AC,XX ;TEST AC + 3892 033011 003 02 0 00 041205 ER3 AC,SN ;INCORRECT ROTATE + 3893 033012 321 04 0 00 033006 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3894 + 3895 + 3896 ;SCAD SC COUNT TEST + 3897 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3898 ;COUNT THE SHIFT COUNTER + 3899 ;TEST SC-SCAD CONNECTION + 3900 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3901 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3902 ;THE CORRECT NUMBER OF BITS + 3903 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3904 ;LOGIC + 3905 + 3906 041206 SN=SN+1 + 3907 100000 XX=XX*10 + 3908 000063 ZZ=ZZ+3 + 3909 IFE XX, + 3910 033013 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3911 033014 241 02 0 00 000063 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3912 033015 302 02 0 00 100000 CAIE AC,XX ;TEST AC + 3913 033016 003 02 0 00 041206 ER3 AC,SN ;INCORRECT ROTATE + 3914 033017 321 04 0 00 033013 JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH + 3915 + 3916 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0108 + + 3917 041300 SN=41300 + 3918 000000 XX=0 + 3919 + 3920 ;ROTATE FROM 66 TO 105 TIMES + 3921 E41300: REPEAT ^D6,< + 3922 ;SCAD SC COUNT TEST + 3923 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3924 ;COUNT THE SHIFT COUNTER + 3925 ;TEST SC-SCAD CONNECTION + 3926 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3927 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3928 ;THE CORRECT NUMBER OF BITS + 3929 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3930 ;LOGIC + 3931 + 3932 SN=SN+1 + 3933 XX=XX*10 + 3934 ZZ=ZZ+3 + 3935 IFE XX, + 3936 MOVEI AC,1 ;SET BIT 35 + 3937 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3938 MOVSS AC ;SWAP CONTENTS OF AC + 3939 CAIE AC,XX ;TEST AC + 3940 ER3 AC,SN ;INCORRECT ROTATE + 3941 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3942 > + 3943 + 3944 ;SCAD SC COUNT TEST + 3945 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3946 ;COUNT THE SHIFT COUNTER + 3947 ;TEST SC-SCAD CONNECTION + 3948 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3949 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3950 ;THE CORRECT NUMBER OF BITS + 3951 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3952 ;LOGIC + 3953 + 3954 041301 SN=SN+1 + 3955 000000 XX=XX*10 + 3956 000066 ZZ=ZZ+3 + 3957 000001 IFE XX, + 3958 033020 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3959 033021 241 02 0 00 000066 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3960 033022 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3961 033023 302 02 0 00 000001 CAIE AC,XX ;TEST AC + 3962 033024 003 02 0 00 041301 ER3 AC,SN ;INCORRECT ROTATE + 3963 033025 321 04 0 00 033020 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3964 + 3965 + 3966 ;SCAD SC COUNT TEST + 3967 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3968 ;COUNT THE SHIFT COUNTER + 3969 ;TEST SC-SCAD CONNECTION + 3970 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3971 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0109 + + 3972 ;THE CORRECT NUMBER OF BITS + 3973 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3974 ;LOGIC + 3975 + 3976 041302 SN=SN+1 + 3977 000010 XX=XX*10 + 3978 000071 ZZ=ZZ+3 + 3979 IFE XX, + 3980 033026 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 3981 033027 241 02 0 00 000071 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 3982 033030 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 3983 033031 302 02 0 00 000010 CAIE AC,XX ;TEST AC + 3984 033032 003 02 0 00 041302 ER3 AC,SN ;INCORRECT ROTATE + 3985 033033 321 04 0 00 033026 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 3986 + 3987 + 3988 ;SCAD SC COUNT TEST + 3989 ;TEST THE ABILITY OF SCAD TO PROPERLY + 3990 ;COUNT THE SHIFT COUNTER + 3991 ;TEST SC-SCAD CONNECTION + 3992 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 3993 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 3994 ;THE CORRECT NUMBER OF BITS + 3995 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 3996 ;LOGIC + 3997 + 3998 041303 SN=SN+1 + 3999 000100 XX=XX*10 + 4000 000074 ZZ=ZZ+3 + 4001 IFE XX, + 4002 033034 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 4003 033035 241 02 0 00 000074 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 4004 033036 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 4005 033037 302 02 0 00 000100 CAIE AC,XX ;TEST AC + 4006 033040 003 02 0 00 041303 ER3 AC,SN ;INCORRECT ROTATE + 4007 033041 321 04 0 00 033034 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4008 + 4009 + 4010 ;SCAD SC COUNT TEST + 4011 ;TEST THE ABILITY OF SCAD TO PROPERLY + 4012 ;COUNT THE SHIFT COUNTER + 4013 ;TEST SC-SCAD CONNECTION + 4014 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 4015 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 4016 ;THE CORRECT NUMBER OF BITS + 4017 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 4018 ;LOGIC + 4019 + 4020 041304 SN=SN+1 + 4021 001000 XX=XX*10 + 4022 000077 ZZ=ZZ+3 + 4023 IFE XX, + 4024 033042 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 4025 033043 241 02 0 00 000077 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 4026 033044 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 22-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SC-SCAD GATING TEST SEQ 0110 + + 4027 033045 302 02 0 00 001000 CAIE AC,XX ;TEST AC + 4028 033046 003 02 0 00 041304 ER3 AC,SN ;INCORRECT ROTATE + 4029 033047 321 04 0 00 033042 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4030 + 4031 + 4032 ;SCAD SC COUNT TEST + 4033 ;TEST THE ABILITY OF SCAD TO PROPERLY + 4034 ;COUNT THE SHIFT COUNTER + 4035 ;TEST SC-SCAD CONNECTION + 4036 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 4037 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 4038 ;THE CORRECT NUMBER OF BITS + 4039 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 4040 ;LOGIC + 4041 + 4042 041305 SN=SN+1 + 4043 010000 XX=XX*10 + 4044 000102 ZZ=ZZ+3 + 4045 IFE XX, + 4046 033050 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 4047 033051 241 02 0 00 000102 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 4048 033052 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 4049 033053 302 02 0 00 010000 CAIE AC,XX ;TEST AC + 4050 033054 003 02 0 00 041305 ER3 AC,SN ;INCORRECT ROTATE + 4051 033055 321 04 0 00 033050 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4052 + 4053 + 4054 ;SCAD SC COUNT TEST + 4055 ;TEST THE ABILITY OF SCAD TO PROPERLY + 4056 ;COUNT THE SHIFT COUNTER + 4057 ;TEST SC-SCAD CONNECTION + 4058 ;AC IS ROTATED FROM 3 THROUGH 105 TIMES + 4059 ;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE + 4060 ;THE CORRECT NUMBER OF BITS + 4061 ;ROTATING TO THE LEFT EXERCISES MAXIMUM + 4062 ;LOGIC + 4063 + 4064 041306 SN=SN+1 + 4065 100000 XX=XX*10 + 4066 000105 ZZ=ZZ+3 + 4067 IFE XX, + 4068 033056 201 02 0 00 000001 MOVEI AC,1 ;SET BIT 35 + 4069 033057 241 02 0 00 000105 ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 4070 033060 207 00 0 00 000002 MOVSS AC ;SWAP CONTENTS OF AC + 4071 033061 302 02 0 00 100000 CAIE AC,XX ;TEST AC + 4072 033062 003 02 0 00 041306 ER3 AC,SN ;INCORRECT ROTATE + 4073 033063 321 04 0 00 033056 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 4074 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0111 + + 4075 SUBTTL DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST + 4076 + 4077 ;SHIFT COUNTER TEST + 4078 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4079 SR1 (461,230703,603700,230703,603700,ROT,0)^ + 4080 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 0 BIT + 4081 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4082 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4083 + 4084 033064 200 02 0 00 036635 E46100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4085 033065 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4086 033066 241 02 0 00 000000 ROT AC,0 ;*SHIFT/ROTATE 0 BIT POSITIONS + 4087 033067 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4088 033070 003 02 0 00 046101 ER3 AC,46101 ;RESULT IN AC IS INCORRECT + 4089 033071 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4090 033072 004 03 0 00 046101 ER4 AC+1,46101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4091 033073 321 04 0 00 033064 JUMPL AC+2,E46100 ;LOOP ON ERROR SWITCH^ + 4092 + 4093 ;SHIFT COUNTER TEST + 4094 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4095 SR1 (462,230703,603700,700230,703603,ROT,77)^ + 4096 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 77 BIT + 4097 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 700230,703603] + 4098 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4099 + 4100 033074 200 02 0 00 036635 E46200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4101 033075 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4102 033076 241 02 0 00 000077 ROT AC,77 ;*SHIFT/ROTATE 77 BIT POSITIONS + 4103 033077 312 02 0 00 036636 CAME AC,[XWD 700230,703603] ;IS RESULT IN AC CORRECT? + 4104 033100 003 02 0 00 046201 ER3 AC,46201 ;RESULT IN AC IS INCORRECT + 4105 033101 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4106 033102 004 03 0 00 046201 ER4 AC+1,46201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4107 033103 321 04 0 00 033074 JUMPL AC+2,E46200 ;LOOP ON ERROR SWITCH^ + 4108 + 4109 ;SHIFT COUNTER TEST + 4110 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4111 SR1 (463,230703,603700,740114,341701,ROT,76)^ + 4112 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 76 BIT + 4113 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 740114,341701] + 4114 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4115 + 4116 033104 200 02 0 00 036635 E46300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4117 033105 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4118 033106 241 02 0 00 000076 ROT AC,76 ;*SHIFT/ROTATE 76 BIT POSITIONS + 4119 033107 312 02 0 00 036637 CAME AC,[XWD 740114,341701] ;IS RESULT IN AC CORRECT? + 4120 033110 003 02 0 00 046301 ER3 AC,46301 ;RESULT IN AC IS INCORRECT + 4121 033111 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4122 033112 004 03 0 00 046301 ER4 AC+1,46301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4123 033113 321 04 0 00 033104 JUMPL AC+2,E46300 ;LOOP ON ERROR SWITCH^ + 4124 + 4125 ;SHIFT COUNTER TEST + 4126 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4127 SR1 (464,230703,603700,370023,070360,ROT,74)^ + 4128 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 74 BIT + 4129 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 370023,070360] +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0112 + + 4130 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4131 + 4132 033114 200 02 0 00 036635 E46400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4133 033115 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4134 033116 241 02 0 00 000074 ROT AC,74 ;*SHIFT/ROTATE 74 BIT POSITIONS + 4135 033117 312 02 0 00 036640 CAME AC,[XWD 370023,070360] ;IS RESULT IN AC CORRECT? + 4136 033120 003 02 0 00 046401 ER3 AC,46401 ;RESULT IN AC IS INCORRECT + 4137 033121 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4138 033122 004 03 0 00 046401 ER4 AC+1,46401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4139 033123 321 04 0 00 033114 JUMPL AC+2,E46400 ;LOOP ON ERROR SWITCH^ + 4140 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0113 + + 4141 ;SHIFT COUNTER TEST + 4142 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4143 SR1 (465,230703,603700,017401,143417,ROT,70)^ + 4144 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 70 BIT + 4145 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 017401,143417] + 4146 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4147 + 4148 033124 200 02 0 00 036635 E46500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4149 033125 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4150 033126 241 02 0 00 000070 ROT AC,70 ;*SHIFT/ROTATE 70 BIT POSITIONS + 4151 033127 312 02 0 00 036641 CAME AC,[XWD 017401,143417] ;IS RESULT IN AC CORRECT? + 4152 033130 003 02 0 00 046501 ER3 AC,46501 ;RESULT IN AC IS INCORRECT + 4153 033131 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4154 033132 004 03 0 00 046501 ER4 AC+1,46501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4155 033133 321 04 0 00 033124 JUMPL AC+2,E46500 ;LOOP ON ERROR SWITCH^ + 4156 + 4157 ;SHIFT COUNTER TEST + 4158 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4159 SR1 (466,230703,603700,036037,002307,ROT,60)^ + 4160 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 60 BIT + 4161 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 036037,002307] + 4162 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4163 + 4164 033134 200 02 0 00 036635 E46600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4165 033135 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4166 033136 241 02 0 00 000060 ROT AC,60 ;*SHIFT/ROTATE 60 BIT POSITIONS + 4167 033137 312 02 0 00 036642 CAME AC,[XWD 036037,002307] ;IS RESULT IN AC CORRECT? + 4168 033140 003 02 0 00 046601 ER3 AC,46601 ;RESULT IN AC IS INCORRECT + 4169 033141 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4170 033142 004 03 0 00 046601 ER4 AC+1,46601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4171 033143 321 04 0 00 033134 JUMPL AC+2,E46600 ;LOOP ON ERROR SWITCH^ + 4172 + 4173 ;SHIFT COUNTER TEST + 4174 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4175 SR1 (467,230703,603700,011434,170174,ROT,40)^ + 4176 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 40 BIT + 4177 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 011434,170174] + 4178 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4179 + 4180 033144 200 02 0 00 036635 E46700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4181 033145 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4182 033146 241 02 0 00 000040 ROT AC,40 ;*SHIFT/ROTATE 40 BIT POSITIONS + 4183 033147 312 02 0 00 036643 CAME AC,[XWD 011434,170174] ;IS RESULT IN AC CORRECT? + 4184 033150 003 02 0 00 046701 ER3 AC,46701 ;RESULT IN AC IS INCORRECT + 4185 033151 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4186 033152 004 03 0 00 046701 ER4 AC+1,46701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4187 033153 321 04 0 00 033144 JUMPL AC+2,E46700 ;LOOP ON ERROR SWITCH^ + 4188 + 4189 ;SHIFT COUNTER TEST + 4190 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4191 SR1 (470,230703,603700,600461,607407,ROT,100)^ + 4192 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 100 BIT + 4193 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 600461,607407] + 4194 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4195 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0114 + + 4196 033154 200 02 0 00 036635 E47000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4197 033155 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4198 033156 241 02 0 00 000100 ROT AC,100 ;*SHIFT/ROTATE 100 BIT POSITIONS + 4199 033157 312 02 0 00 036644 CAME AC,[XWD 600461,607407] ;IS RESULT IN AC CORRECT? + 4200 033160 003 02 0 00 047001 ER3 AC,47001 ;RESULT IN AC IS INCORRECT + 4201 033161 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4202 033162 004 03 0 00 047001 ER4 AC+1,47001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4203 033163 321 04 0 00 033154 JUMPL AC+2,E47000 ;LOOP ON ERROR SWITCH^ + 4204 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0115 + + 4205 ;SHIFT COUNTER TEST + 4206 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4207 SR1 (471,230703,603700,461607,407600,ROT,1)^ + 4208 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 1 BIT + 4209 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4210 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4211 + 4212 033164 200 02 0 00 036635 E47100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4213 033165 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4214 033166 241 02 0 00 000001 ROT AC,1 ;*SHIFT/ROTATE 1 BIT POSITIONS + 4215 033167 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4216 033170 003 02 0 00 047101 ER3 AC,47101 ;RESULT IN AC IS INCORRECT + 4217 033171 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4218 033172 004 03 0 00 047101 ER4 AC+1,47101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4219 033173 321 04 0 00 033164 JUMPL AC+2,E47100 ;LOOP ON ERROR SWITCH^ + 4220 + 4221 ;SHIFT COUNTER TEST + 4222 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4223 SR1 (472,230703,603700,143417,017401,ROT,2)^ + 4224 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 2 BIT + 4225 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 143417,017401] + 4226 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4227 + 4228 033174 200 02 0 00 036635 E47200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4229 033175 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4230 033176 241 02 0 00 000002 ROT AC,2 ;*SHIFT/ROTATE 2 BIT POSITIONS + 4231 033177 312 02 0 00 036646 CAME AC,[XWD 143417,017401] ;IS RESULT IN AC CORRECT? + 4232 033200 003 02 0 00 047201 ER3 AC,47201 ;RESULT IN AC IS INCORRECT + 4233 033201 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4234 033202 004 03 0 00 047201 ER4 AC+1,47201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4235 033203 321 04 0 00 033174 JUMPL AC+2,E47200 ;LOOP ON ERROR SWITCH^ + 4236 + 4237 ;SHIFT COUNTER TEST + 4238 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4239 SR1 (473,230703,603700,307036,037002,ROT,3)^ + 4240 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 3 BIT + 4241 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 307036,037002] + 4242 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4243 + 4244 033204 200 02 0 00 036635 E47300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4245 033205 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4246 033206 241 02 0 00 000003 ROT AC,3 ;*SHIFT/ROTATE 3 BIT POSITIONS + 4247 033207 312 02 0 00 036647 CAME AC,[XWD 307036,037002] ;IS RESULT IN AC CORRECT? + 4248 033210 003 02 0 00 047301 ER3 AC,47301 ;RESULT IN AC IS INCORRECT + 4249 033211 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4250 033212 004 03 0 00 047301 ER4 AC+1,47301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4251 033213 321 04 0 00 033204 JUMPL AC+2,E47300 ;LOOP ON ERROR SWITCH^ + 4252 + 4253 ;SHIFT COUNTER TEST + 4254 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4255 SR1 (474,230703,603700,434170,174011,ROT,5)^ + 4256 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 5 BIT + 4257 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 434170,174011] + 4258 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4259 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 23-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0116 + + 4260 033214 200 02 0 00 036635 E47400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4261 033215 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4262 033216 241 02 0 00 000005 ROT AC,5 ;*SHIFT/ROTATE 5 BIT POSITIONS + 4263 033217 312 02 0 00 036650 CAME AC,[XWD 434170,174011] ;IS RESULT IN AC CORRECT? + 4264 033220 003 02 0 00 047401 ER3 AC,47401 ;RESULT IN AC IS INCORRECT + 4265 033221 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4266 033222 004 03 0 00 047401 ER4 AC+1,47401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4267 033223 321 04 0 00 033214 JUMPL AC+2,E47400 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 24 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0117 + + 4268 ;SHIFT COUNTER TEST + 4269 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4270 SR1 (475,230703,603700,703603,700230,ROT,11)^ + 4271 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 11 BIT + 4272 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 703603,700230] + 4273 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4274 + 4275 033224 200 02 0 00 036635 E47500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4276 033225 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4277 033226 241 02 0 00 000011 ROT AC,11 ;*SHIFT/ROTATE 11 BIT POSITIONS + 4278 033227 312 02 0 00 036651 CAME AC,[XWD 703603,700230] ;IS RESULT IN AC CORRECT? + 4279 033230 003 02 0 00 047501 ER3 AC,47501 ;RESULT IN AC IS INCORRECT + 4280 033231 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4281 033232 004 03 0 00 047501 ER4 AC+1,47501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4282 033233 321 04 0 00 033224 JUMPL AC+2,E47500 ;LOOP ON ERROR SWITCH^ + 4283 + 4284 ;SHIFT COUNTER TEST + 4285 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4286 SR1 (476,230703,603700,701740,114341,ROT,21)^ + 4287 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 21 BIT + 4288 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 701740,114341] + 4289 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4290 + 4291 033234 200 02 0 00 036635 E47600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4292 033235 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4293 033236 241 02 0 00 000021 ROT AC,21 ;*SHIFT/ROTATE 21 BIT POSITIONS + 4294 033237 312 02 0 00 036652 CAME AC,[XWD 701740,114341] ;IS RESULT IN AC CORRECT? + 4295 033240 003 02 0 00 047601 ER3 AC,47601 ;RESULT IN AC IS INCORRECT + 4296 033241 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4297 033242 004 03 0 00 047601 ER4 AC+1,47601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4298 033243 321 04 0 00 033234 JUMPL AC+2,E47600 ;LOOP ON ERROR SWITCH^ + 4299 + 4300 ;SHIFT COUNTER TEST + 4301 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4302 SR1 (477,230703,603700,023070,360370,ROT,41)^ + 4303 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 41 BIT + 4304 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 023070,360370] + 4305 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4306 + 4307 033244 200 02 0 00 036635 E47700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4308 033245 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4309 033246 241 02 0 00 000041 ROT AC,41 ;*SHIFT/ROTATE 41 BIT POSITIONS + 4310 033247 312 02 0 00 036653 CAME AC,[XWD 023070,360370] ;IS RESULT IN AC CORRECT? + 4311 033250 003 02 0 00 047701 ER3 AC,47701 ;RESULT IN AC IS INCORRECT + 4312 033251 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4313 033252 004 03 0 00 047701 ER4 AC+1,47701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4314 033253 321 04 0 00 033244 JUMPL AC+2,E47700 ;LOOP ON ERROR SWITCH^ + 4315 + 4316 ;SHIFT COUNTER TEST + 4317 ;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + 4318 SR1 (500,230703,603700,401143,417017,ROT,101)^ + 4319 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 101 BIT + 4320 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 401143,417017] + 4321 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4322 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 24-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST SEQ 0118 + + 4323 033254 200 02 0 00 036635 E50000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4324 033255 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4325 033256 241 02 0 00 000101 ROT AC,101 ;*SHIFT/ROTATE 101 BIT POSITIONS + 4326 033257 312 02 0 00 036654 CAME AC,[XWD 401143,417017] ;IS RESULT IN AC CORRECT? + 4327 033260 003 02 0 00 050001 ER3 AC,50001 ;RESULT IN AC IS INCORRECT + 4328 033261 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4329 033262 004 03 0 00 050001 ER4 AC+1,50001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4330 033263 321 04 0 00 033254 JUMPL AC+2,E50000 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0119 + + 4331 SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST + 4332 + 4333 000476 ADR=501-3 + 4334 777777 777340 N=-374-44 + 4335 + 4336 REPEAT ^D15, < + 4337 ADR=ADR+3 + 4338 N=N+44 + 4339 + 4340 ;SHIFT COUNTER TEST + 4341 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4342 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1) + 4343 + 4344 ;SHIFT COUNTER TEST + 4345 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4346 SR1 (\,230703,603700,230703,603700,ROT,N) + 4347 + 4348 ;SHIFT COUNTER TEST + 4349 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4350 SR1 (\,230703,603700,461607,407600,ROT,N+1) + 4351 PAGE> + 4352 + 4353 000501 ADR=ADR+3 + 4354 777777 777404 N=N+44 + 4355 + 4356 ;SHIFT COUNTER TEST + 4357 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4358 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4359 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4360 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4361 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4362 + 4363 033264 200 02 0 00 036635 E50100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4364 033265 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4365 033266 241 02 0 00 777403 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4366 033267 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4367 033270 003 02 0 00 050101 ER3 AC,50101 ;RESULT IN AC IS INCORRECT + 4368 033271 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4369 033272 004 03 0 00 050101 ER4 AC+1,50101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4370 033273 321 04 0 00 033264 JUMPL AC+2,E50100 ;LOOP ON ERROR SWITCH^ + 4371 + 4372 ;SHIFT COUNTER TEST + 4373 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4374 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4375 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4376 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4377 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4378 + 4379 033274 200 02 0 00 036635 E50200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4380 033275 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4381 033276 241 02 0 00 777404 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4382 033277 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4383 033300 003 02 0 00 050201 ER3 AC,50201 ;RESULT IN AC IS INCORRECT + 4384 033301 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4385 033302 004 03 0 00 050201 ER4 AC+1,50201 ;C(AC+1) WAS MODIFIED INCORRECTLY +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0120 + + 4386 033303 321 04 0 00 033274 JUMPL AC+2,E50200 ;LOOP ON ERROR SWITCH^ + 4387 + 4388 ;SHIFT COUNTER TEST + 4389 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4390 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4391 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4392 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4393 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4394 + 4395 033304 200 02 0 00 036635 E50300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4396 033305 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4397 033306 241 02 0 00 777405 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4398 033307 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4399 033310 003 02 0 00 050301 ER3 AC,50301 ;RESULT IN AC IS INCORRECT + 4400 033311 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4401 033312 004 03 0 00 050301 ER4 AC+1,50301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4402 033313 321 04 0 00 033304 JUMPL AC+2,E50300 ;LOOP ON ERROR SWITCH^ + 4403 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0121 + + 4404 + 4405 000504 ADR=ADR+3 + 4406 777777 777450 N=N+44 + 4407 + 4408 ;SHIFT COUNTER TEST + 4409 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4410 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4411 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4412 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4413 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4414 + 4415 033314 200 02 0 00 036635 E50400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4416 033315 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4417 033316 241 02 0 00 777447 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4418 033317 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4419 033320 003 02 0 00 050401 ER3 AC,50401 ;RESULT IN AC IS INCORRECT + 4420 033321 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4421 033322 004 03 0 00 050401 ER4 AC+1,50401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4422 033323 321 04 0 00 033314 JUMPL AC+2,E50400 ;LOOP ON ERROR SWITCH^ + 4423 + 4424 ;SHIFT COUNTER TEST + 4425 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4426 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4427 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4428 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4429 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4430 + 4431 033324 200 02 0 00 036635 E50500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4432 033325 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4433 033326 241 02 0 00 777450 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4434 033327 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4435 033330 003 02 0 00 050501 ER3 AC,50501 ;RESULT IN AC IS INCORRECT + 4436 033331 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4437 033332 004 03 0 00 050501 ER4 AC+1,50501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4438 033333 321 04 0 00 033324 JUMPL AC+2,E50500 ;LOOP ON ERROR SWITCH^ + 4439 + 4440 ;SHIFT COUNTER TEST + 4441 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4442 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4443 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4444 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4445 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4446 + 4447 033334 200 02 0 00 036635 E50600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4448 033335 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4449 033336 241 02 0 00 777451 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4450 033337 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4451 033340 003 02 0 00 050601 ER3 AC,50601 ;RESULT IN AC IS INCORRECT + 4452 033341 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4453 033342 004 03 0 00 050601 ER4 AC+1,50601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4454 033343 321 04 0 00 033334 JUMPL AC+2,E50600 ;LOOP ON ERROR SWITCH^ + 4455 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0122 + + 4456 + 4457 000507 ADR=ADR+3 + 4458 777777 777514 N=N+44 + 4459 + 4460 ;SHIFT COUNTER TEST + 4461 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4462 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4463 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4464 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4465 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4466 + 4467 033344 200 02 0 00 036635 E50700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4468 033345 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4469 033346 241 02 0 00 777513 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4470 033347 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4471 033350 003 02 0 00 050701 ER3 AC,50701 ;RESULT IN AC IS INCORRECT + 4472 033351 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4473 033352 004 03 0 00 050701 ER4 AC+1,50701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4474 033353 321 04 0 00 033344 JUMPL AC+2,E50700 ;LOOP ON ERROR SWITCH^ + 4475 + 4476 ;SHIFT COUNTER TEST + 4477 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4478 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4479 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4480 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4481 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4482 + 4483 033354 200 02 0 00 036635 E51000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4484 033355 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4485 033356 241 02 0 00 777514 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4486 033357 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4487 033360 003 02 0 00 051001 ER3 AC,51001 ;RESULT IN AC IS INCORRECT + 4488 033361 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4489 033362 004 03 0 00 051001 ER4 AC+1,51001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4490 033363 321 04 0 00 033354 JUMPL AC+2,E51000 ;LOOP ON ERROR SWITCH^ + 4491 + 4492 ;SHIFT COUNTER TEST + 4493 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4494 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4495 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4496 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4497 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4498 + 4499 033364 200 02 0 00 036635 E51100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4500 033365 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4501 033366 241 02 0 00 777515 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4502 033367 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4503 033370 003 02 0 00 051101 ER3 AC,51101 ;RESULT IN AC IS INCORRECT + 4504 033371 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4505 033372 004 03 0 00 051101 ER4 AC+1,51101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4506 033373 321 04 0 00 033364 JUMPL AC+2,E51100 ;LOOP ON ERROR SWITCH^ + 4507 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0123 + + 4508 + 4509 000512 ADR=ADR+3 + 4510 777777 777560 N=N+44 + 4511 + 4512 ;SHIFT COUNTER TEST + 4513 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4514 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4515 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4516 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4517 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4518 + 4519 033374 200 02 0 00 036635 E51200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4520 033375 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4521 033376 241 02 0 00 777557 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4522 033377 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4523 033400 003 02 0 00 051201 ER3 AC,51201 ;RESULT IN AC IS INCORRECT + 4524 033401 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4525 033402 004 03 0 00 051201 ER4 AC+1,51201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4526 033403 321 04 0 00 033374 JUMPL AC+2,E51200 ;LOOP ON ERROR SWITCH^ + 4527 + 4528 ;SHIFT COUNTER TEST + 4529 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4530 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4531 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4532 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4533 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4534 + 4535 033404 200 02 0 00 036635 E51300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4536 033405 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4537 033406 241 02 0 00 777560 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4538 033407 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4539 033410 003 02 0 00 051301 ER3 AC,51301 ;RESULT IN AC IS INCORRECT + 4540 033411 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4541 033412 004 03 0 00 051301 ER4 AC+1,51301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4542 033413 321 04 0 00 033404 JUMPL AC+2,E51300 ;LOOP ON ERROR SWITCH^ + 4543 + 4544 ;SHIFT COUNTER TEST + 4545 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4546 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4547 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4548 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4549 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4550 + 4551 033414 200 02 0 00 036635 E51400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4552 033415 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4553 033416 241 02 0 00 777561 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4554 033417 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4555 033420 003 02 0 00 051401 ER3 AC,51401 ;RESULT IN AC IS INCORRECT + 4556 033421 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4557 033422 004 03 0 00 051401 ER4 AC+1,51401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4558 033423 321 04 0 00 033414 JUMPL AC+2,E51400 ;LOOP ON ERROR SWITCH^ + 4559 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0124 + + 4560 + 4561 000515 ADR=ADR+3 + 4562 777777 777624 N=N+44 + 4563 + 4564 ;SHIFT COUNTER TEST + 4565 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4566 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4567 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4568 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4569 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4570 + 4571 033424 200 02 0 00 036635 E51500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4572 033425 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4573 033426 241 02 0 00 777623 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4574 033427 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4575 033430 003 02 0 00 051501 ER3 AC,51501 ;RESULT IN AC IS INCORRECT + 4576 033431 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4577 033432 004 03 0 00 051501 ER4 AC+1,51501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4578 033433 321 04 0 00 033424 JUMPL AC+2,E51500 ;LOOP ON ERROR SWITCH^ + 4579 + 4580 ;SHIFT COUNTER TEST + 4581 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4582 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4583 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4584 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4585 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4586 + 4587 033434 200 02 0 00 036635 E51600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4588 033435 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4589 033436 241 02 0 00 777624 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4590 033437 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4591 033440 003 02 0 00 051601 ER3 AC,51601 ;RESULT IN AC IS INCORRECT + 4592 033441 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4593 033442 004 03 0 00 051601 ER4 AC+1,51601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4594 033443 321 04 0 00 033434 JUMPL AC+2,E51600 ;LOOP ON ERROR SWITCH^ + 4595 + 4596 ;SHIFT COUNTER TEST + 4597 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4598 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4599 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4600 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4601 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4602 + 4603 033444 200 02 0 00 036635 E51700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4604 033445 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4605 033446 241 02 0 00 777625 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4606 033447 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4607 033450 003 02 0 00 051701 ER3 AC,51701 ;RESULT IN AC IS INCORRECT + 4608 033451 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4609 033452 004 03 0 00 051701 ER4 AC+1,51701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4610 033453 321 04 0 00 033444 JUMPL AC+2,E51700 ;LOOP ON ERROR SWITCH^ + 4611 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-6 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0125 + + 4612 + 4613 000520 ADR=ADR+3 + 4614 777777 777670 N=N+44 + 4615 + 4616 ;SHIFT COUNTER TEST + 4617 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4618 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4619 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4620 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4621 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4622 + 4623 033454 200 02 0 00 036635 E52000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4624 033455 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4625 033456 241 02 0 00 777667 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4626 033457 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4627 033460 003 02 0 00 052001 ER3 AC,52001 ;RESULT IN AC IS INCORRECT + 4628 033461 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4629 033462 004 03 0 00 052001 ER4 AC+1,52001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4630 033463 321 04 0 00 033454 JUMPL AC+2,E52000 ;LOOP ON ERROR SWITCH^ + 4631 + 4632 ;SHIFT COUNTER TEST + 4633 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4634 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4635 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4636 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4637 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4638 + 4639 033464 200 02 0 00 036635 E52100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4640 033465 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4641 033466 241 02 0 00 777670 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4642 033467 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4643 033470 003 02 0 00 052101 ER3 AC,52101 ;RESULT IN AC IS INCORRECT + 4644 033471 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4645 033472 004 03 0 00 052101 ER4 AC+1,52101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4646 033473 321 04 0 00 033464 JUMPL AC+2,E52100 ;LOOP ON ERROR SWITCH^ + 4647 + 4648 ;SHIFT COUNTER TEST + 4649 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4650 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4651 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4652 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4653 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4654 + 4655 033474 200 02 0 00 036635 E52200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4656 033475 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4657 033476 241 02 0 00 777671 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4658 033477 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4659 033500 003 02 0 00 052201 ER3 AC,52201 ;RESULT IN AC IS INCORRECT + 4660 033501 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4661 033502 004 03 0 00 052201 ER4 AC+1,52201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4662 033503 321 04 0 00 033474 JUMPL AC+2,E52200 ;LOOP ON ERROR SWITCH^ + 4663 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-7 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0126 + + 4664 + 4665 000523 ADR=ADR+3 + 4666 777777 777734 N=N+44 + 4667 + 4668 ;SHIFT COUNTER TEST + 4669 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4670 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4671 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4672 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4673 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4674 + 4675 033504 200 02 0 00 036635 E52300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4676 033505 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4677 033506 241 02 0 00 777733 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4678 033507 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4679 033510 003 02 0 00 052301 ER3 AC,52301 ;RESULT IN AC IS INCORRECT + 4680 033511 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4681 033512 004 03 0 00 052301 ER4 AC+1,52301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4682 033513 321 04 0 00 033504 JUMPL AC+2,E52300 ;LOOP ON ERROR SWITCH^ + 4683 + 4684 ;SHIFT COUNTER TEST + 4685 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4686 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4687 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4688 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4689 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4690 + 4691 033514 200 02 0 00 036635 E52400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4692 033515 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4693 033516 241 02 0 00 777734 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4694 033517 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4695 033520 003 02 0 00 052401 ER3 AC,52401 ;RESULT IN AC IS INCORRECT + 4696 033521 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4697 033522 004 03 0 00 052401 ER4 AC+1,52401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4698 033523 321 04 0 00 033514 JUMPL AC+2,E52400 ;LOOP ON ERROR SWITCH^ + 4699 + 4700 ;SHIFT COUNTER TEST + 4701 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4702 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4703 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4704 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4705 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4706 + 4707 033524 200 02 0 00 036635 E52500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4708 033525 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4709 033526 241 02 0 00 777735 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4710 033527 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4711 033530 003 02 0 00 052501 ER3 AC,52501 ;RESULT IN AC IS INCORRECT + 4712 033531 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4713 033532 004 03 0 00 052501 ER4 AC+1,52501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4714 033533 321 04 0 00 033524 JUMPL AC+2,E52500 ;LOOP ON ERROR SWITCH^ + 4715 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-8 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0127 + + 4716 + 4717 000526 ADR=ADR+3 + 4718 000000 N=N+44 + 4719 + 4720 ;SHIFT COUNTER TEST + 4721 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4722 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4723 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4724 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4725 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4726 + 4727 033534 200 02 0 00 036635 E52600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4728 033535 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4729 033536 241 02 0 00 777777 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4730 033537 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4731 033540 003 02 0 00 052601 ER3 AC,52601 ;RESULT IN AC IS INCORRECT + 4732 033541 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4733 033542 004 03 0 00 052601 ER4 AC+1,52601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4734 033543 321 04 0 00 033534 JUMPL AC+2,E52600 ;LOOP ON ERROR SWITCH^ + 4735 + 4736 ;SHIFT COUNTER TEST + 4737 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4738 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4739 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4740 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4741 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4742 + 4743 033544 200 02 0 00 036635 E52700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4744 033545 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4745 033546 241 02 0 00 000000 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4746 033547 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4747 033550 003 02 0 00 052701 ER3 AC,52701 ;RESULT IN AC IS INCORRECT + 4748 033551 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4749 033552 004 03 0 00 052701 ER4 AC+1,52701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4750 033553 321 04 0 00 033544 JUMPL AC+2,E52700 ;LOOP ON ERROR SWITCH^ + 4751 + 4752 ;SHIFT COUNTER TEST + 4753 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4754 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4755 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4756 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4757 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4758 + 4759 033554 200 02 0 00 036635 E53000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4760 033555 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4761 033556 241 02 0 00 000001 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4762 033557 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4763 033560 003 02 0 00 053001 ER3 AC,53001 ;RESULT IN AC IS INCORRECT + 4764 033561 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4765 033562 004 03 0 00 053001 ER4 AC+1,53001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4766 033563 321 04 0 00 033554 JUMPL AC+2,E53000 ;LOOP ON ERROR SWITCH^ + 4767 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-9 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0128 + + 4768 + 4769 000531 ADR=ADR+3 + 4770 000044 N=N+44 + 4771 + 4772 ;SHIFT COUNTER TEST + 4773 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4774 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4775 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4776 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4777 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4778 + 4779 033564 200 02 0 00 036635 E53100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4780 033565 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4781 033566 241 02 0 00 000043 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4782 033567 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4783 033570 003 02 0 00 053101 ER3 AC,53101 ;RESULT IN AC IS INCORRECT + 4784 033571 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4785 033572 004 03 0 00 053101 ER4 AC+1,53101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4786 033573 321 04 0 00 033564 JUMPL AC+2,E53100 ;LOOP ON ERROR SWITCH^ + 4787 + 4788 ;SHIFT COUNTER TEST + 4789 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4790 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4791 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4792 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4793 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4794 + 4795 033574 200 02 0 00 036635 E53200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4796 033575 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4797 033576 241 02 0 00 000044 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4798 033577 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4799 033600 003 02 0 00 053201 ER3 AC,53201 ;RESULT IN AC IS INCORRECT + 4800 033601 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4801 033602 004 03 0 00 053201 ER4 AC+1,53201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4802 033603 321 04 0 00 033574 JUMPL AC+2,E53200 ;LOOP ON ERROR SWITCH^ + 4803 + 4804 ;SHIFT COUNTER TEST + 4805 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4806 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4807 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4808 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4809 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4810 + 4811 033604 200 02 0 00 036635 E53300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4812 033605 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4813 033606 241 02 0 00 000045 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4814 033607 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4815 033610 003 02 0 00 053301 ER3 AC,53301 ;RESULT IN AC IS INCORRECT + 4816 033611 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4817 033612 004 03 0 00 053301 ER4 AC+1,53301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4818 033613 321 04 0 00 033604 JUMPL AC+2,E53300 ;LOOP ON ERROR SWITCH^ + 4819 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-10 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0129 + + 4820 + 4821 000534 ADR=ADR+3 + 4822 000110 N=N+44 + 4823 + 4824 ;SHIFT COUNTER TEST + 4825 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4826 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4827 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4828 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4829 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4830 + 4831 033614 200 02 0 00 036635 E53400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4832 033615 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4833 033616 241 02 0 00 000107 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4834 033617 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4835 033620 003 02 0 00 053401 ER3 AC,53401 ;RESULT IN AC IS INCORRECT + 4836 033621 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4837 033622 004 03 0 00 053401 ER4 AC+1,53401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4838 033623 321 04 0 00 033614 JUMPL AC+2,E53400 ;LOOP ON ERROR SWITCH^ + 4839 + 4840 ;SHIFT COUNTER TEST + 4841 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4842 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4843 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4844 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4845 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4846 + 4847 033624 200 02 0 00 036635 E53500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4848 033625 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4849 033626 241 02 0 00 000110 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4850 033627 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4851 033630 003 02 0 00 053501 ER3 AC,53501 ;RESULT IN AC IS INCORRECT + 4852 033631 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4853 033632 004 03 0 00 053501 ER4 AC+1,53501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4854 033633 321 04 0 00 033624 JUMPL AC+2,E53500 ;LOOP ON ERROR SWITCH^ + 4855 + 4856 ;SHIFT COUNTER TEST + 4857 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4858 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4859 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4860 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4861 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4862 + 4863 033634 200 02 0 00 036635 E53600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4864 033635 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4865 033636 241 02 0 00 000111 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4866 033637 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4867 033640 003 02 0 00 053601 ER3 AC,53601 ;RESULT IN AC IS INCORRECT + 4868 033641 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4869 033642 004 03 0 00 053601 ER4 AC+1,53601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4870 033643 321 04 0 00 033634 JUMPL AC+2,E53600 ;LOOP ON ERROR SWITCH^ + 4871 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-11 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0130 + + 4872 + 4873 000537 ADR=ADR+3 + 4874 000154 N=N+44 + 4875 + 4876 ;SHIFT COUNTER TEST + 4877 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4878 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4879 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4880 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4881 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4882 + 4883 033644 200 02 0 00 036635 E53700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4884 033645 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4885 033646 241 02 0 00 000153 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4886 033647 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4887 033650 003 02 0 00 053701 ER3 AC,53701 ;RESULT IN AC IS INCORRECT + 4888 033651 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4889 033652 004 03 0 00 053701 ER4 AC+1,53701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4890 033653 321 04 0 00 033644 JUMPL AC+2,E53700 ;LOOP ON ERROR SWITCH^ + 4891 + 4892 ;SHIFT COUNTER TEST + 4893 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4894 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4895 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4896 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4897 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4898 + 4899 033654 200 02 0 00 036635 E54000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4900 033655 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4901 033656 241 02 0 00 000154 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4902 033657 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4903 033660 003 02 0 00 054001 ER3 AC,54001 ;RESULT IN AC IS INCORRECT + 4904 033661 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4905 033662 004 03 0 00 054001 ER4 AC+1,54001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4906 033663 321 04 0 00 033654 JUMPL AC+2,E54000 ;LOOP ON ERROR SWITCH^ + 4907 + 4908 ;SHIFT COUNTER TEST + 4909 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4910 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4911 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4912 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4913 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4914 + 4915 033664 200 02 0 00 036635 E54100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4916 033665 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4917 033666 241 02 0 00 000155 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4918 033667 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4919 033670 003 02 0 00 054101 ER3 AC,54101 ;RESULT IN AC IS INCORRECT + 4920 033671 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4921 033672 004 03 0 00 054101 ER4 AC+1,54101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4922 033673 321 04 0 00 033664 JUMPL AC+2,E54100 ;LOOP ON ERROR SWITCH^ + 4923 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-12 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0131 + + 4924 + 4925 000542 ADR=ADR+3 + 4926 000220 N=N+44 + 4927 + 4928 ;SHIFT COUNTER TEST + 4929 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4930 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4931 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4932 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4933 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4934 + 4935 033674 200 02 0 00 036635 E54200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4936 033675 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4937 033676 241 02 0 00 000217 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4938 033677 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4939 033700 003 02 0 00 054201 ER3 AC,54201 ;RESULT IN AC IS INCORRECT + 4940 033701 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4941 033702 004 03 0 00 054201 ER4 AC+1,54201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4942 033703 321 04 0 00 033674 JUMPL AC+2,E54200 ;LOOP ON ERROR SWITCH^ + 4943 + 4944 ;SHIFT COUNTER TEST + 4945 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4946 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4947 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 4948 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 4949 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4950 + 4951 033704 200 02 0 00 036635 E54300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4952 033705 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4953 033706 241 02 0 00 000220 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 4954 033707 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 4955 033710 003 02 0 00 054301 ER3 AC,54301 ;RESULT IN AC IS INCORRECT + 4956 033711 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4957 033712 004 03 0 00 054301 ER4 AC+1,54301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4958 033713 321 04 0 00 033704 JUMPL AC+2,E54300 ;LOOP ON ERROR SWITCH^ + 4959 + 4960 ;SHIFT COUNTER TEST + 4961 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 4962 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 4963 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 4964 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 4965 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4966 + 4967 033714 200 02 0 00 036635 E54400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4968 033715 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4969 033716 241 02 0 00 000221 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 4970 033717 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 4971 033720 003 02 0 00 054401 ER3 AC,54401 ;RESULT IN AC IS INCORRECT + 4972 033721 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4973 033722 004 03 0 00 054401 ER4 AC+1,54401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4974 033723 321 04 0 00 033714 JUMPL AC+2,E54400 ;LOOP ON ERROR SWITCH^ + 4975 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-13 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0132 + + 4976 + 4977 000545 ADR=ADR+3 + 4978 000264 N=N+44 + 4979 + 4980 ;SHIFT COUNTER TEST + 4981 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 4982 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 4983 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 4984 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 4985 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 4986 + 4987 033724 200 02 0 00 036635 E54500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 4988 033725 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 4989 033726 241 02 0 00 000263 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 4990 033727 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 4991 033730 003 02 0 00 054501 ER3 AC,54501 ;RESULT IN AC IS INCORRECT + 4992 033731 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 4993 033732 004 03 0 00 054501 ER4 AC+1,54501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 4994 033733 321 04 0 00 033724 JUMPL AC+2,E54500 ;LOOP ON ERROR SWITCH^ + 4995 + 4996 ;SHIFT COUNTER TEST + 4997 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 4998 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 4999 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 5000 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 5001 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5002 + 5003 033734 200 02 0 00 036635 E54600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5004 033735 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5005 033736 241 02 0 00 000264 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 5006 033737 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5007 033740 003 02 0 00 054601 ER3 AC,54601 ;RESULT IN AC IS INCORRECT + 5008 033741 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5009 033742 004 03 0 00 054601 ER4 AC+1,54601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5010 033743 321 04 0 00 033734 JUMPL AC+2,E54600 ;LOOP ON ERROR SWITCH^ + 5011 + 5012 ;SHIFT COUNTER TEST + 5013 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5014 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 5015 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 5016 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 5017 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5018 + 5019 033744 200 02 0 00 036635 E54700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5020 033745 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5021 033746 241 02 0 00 000265 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 5022 033747 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 5023 033750 003 02 0 00 054701 ER3 AC,54701 ;RESULT IN AC IS INCORRECT + 5024 033751 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5025 033752 004 03 0 00 054701 ER4 AC+1,54701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5026 033753 321 04 0 00 033744 JUMPL AC+2,E54700 ;LOOP ON ERROR SWITCH^ + 5027 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-14 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0133 + + 5028 + 5029 000550 ADR=ADR+3 + 5030 000330 N=N+44 + 5031 + 5032 ;SHIFT COUNTER TEST + 5033 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5034 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 5035 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 5036 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 5037 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5038 + 5039 033754 200 02 0 00 036635 E55000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5040 033755 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5041 033756 241 02 0 00 000327 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 5042 033757 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 5043 033760 003 02 0 00 055001 ER3 AC,55001 ;RESULT IN AC IS INCORRECT + 5044 033761 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5045 033762 004 03 0 00 055001 ER4 AC+1,55001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5046 033763 321 04 0 00 033754 JUMPL AC+2,E55000 ;LOOP ON ERROR SWITCH^ + 5047 + 5048 ;SHIFT COUNTER TEST + 5049 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5050 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 5051 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 5052 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 5053 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5054 + 5055 033764 200 02 0 00 036635 E55100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5056 033765 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5057 033766 241 02 0 00 000330 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 5058 033767 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5059 033770 003 02 0 00 055101 ER3 AC,55101 ;RESULT IN AC IS INCORRECT + 5060 033771 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5061 033772 004 03 0 00 055101 ER4 AC+1,55101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5062 033773 321 04 0 00 033764 JUMPL AC+2,E55100 ;LOOP ON ERROR SWITCH^ + 5063 + 5064 ;SHIFT COUNTER TEST + 5065 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5066 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 5067 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 5068 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 5069 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5070 + 5071 033774 200 02 0 00 036635 E55200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5072 033775 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5073 033776 241 02 0 00 000331 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 5074 033777 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 5075 034000 003 02 0 00 055201 ER3 AC,55201 ;RESULT IN AC IS INCORRECT + 5076 034001 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5077 034002 004 03 0 00 055201 ER4 AC+1,55201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5078 034003 321 04 0 00 033774 JUMPL AC+2,E55200 ;LOOP ON ERROR SWITCH^ + 5079 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 25-15 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0134 + + 5080 + 5081 000553 ADR=ADR+3 + 5082 000374 N=N+44 + 5083 + 5084 ;SHIFT COUNTER TEST + 5085 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5086 SR1 (\ADR,230703,603700,114341,701740,ROT,N-1)^ + 5087 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N-1 BIT + 5088 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 114341,701740] + 5089 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5090 + 5091 034004 200 02 0 00 036635 E55300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5092 034005 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5093 034006 241 02 0 00 000373 ROT AC,N-1 ;*SHIFT/ROTATE N-1 BIT POSITIONS + 5094 034007 312 02 0 00 036655 CAME AC,[XWD 114341,701740] ;IS RESULT IN AC CORRECT? + 5095 034010 003 02 0 00 055301 ER3 AC,55301 ;RESULT IN AC IS INCORRECT + 5096 034011 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5097 034012 004 03 0 00 055301 ER4 AC+1,55301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5098 034013 321 04 0 00 034004 JUMPL AC+2,E55300 ;LOOP ON ERROR SWITCH^ + 5099 + 5100 ;SHIFT COUNTER TEST + 5101 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5102 SR1 (\,230703,603700,230703,603700,ROT,N)^ + 5103 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N BIT + 5104 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 5105 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5106 + 5107 034014 200 02 0 00 036635 E55400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5108 034015 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5109 034016 241 02 0 00 000374 ROT AC,N ;*SHIFT/ROTATE N BIT POSITIONS + 5110 034017 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5111 034020 003 02 0 00 055401 ER3 AC,55401 ;RESULT IN AC IS INCORRECT + 5112 034021 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5113 034022 004 03 0 00 055401 ER4 AC+1,55401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5114 034023 321 04 0 00 034014 JUMPL AC+2,E55400 ;LOOP ON ERROR SWITCH^ + 5115 + 5116 ;SHIFT COUNTER TEST + 5117 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5118 SR1 (\,230703,603700,461607,407600,ROT,N+1)^ + 5119 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] N+1 BIT + 5120 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 461607,407600] + 5121 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 5122 + 5123 034024 200 02 0 00 036635 E55500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5124 034025 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 5125 034026 241 02 0 00 000375 ROT AC,N+1 ;*SHIFT/ROTATE N+1 BIT POSITIONS + 5126 034027 312 02 0 00 036645 CAME AC,[XWD 461607,407600] ;IS RESULT IN AC CORRECT? + 5127 034030 003 02 0 00 055501 ER3 AC,55501 ;RESULT IN AC IS INCORRECT + 5128 034031 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 5129 034032 004 03 0 00 055501 ER4 AC+1,55501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 5130 034033 321 04 0 00 034024 JUMPL AC+2,E55500 ;LOOP ON ERROR SWITCH^ + 5131 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 26 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0135 + + 5132 777777 777340 N=-374-44 + 5133 + 5134 REPEAT ^D1, < + 5135 000556 ADR=ADR+3 + 5136 777777 777404 N=N+44 + 5137 + 5138 ;SHIFT COUNTER TEST + 5139 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5140 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5141 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5142 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5143 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5144 ;[XWD 514341,701740] + 5145 + 5146 034034 200 02 0 00 036635 E55600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5147 034035 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5148 034036 245 02 0 00 777403 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5149 034037 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5150 034040 003 02 0 00 055601 ER3 AC,55601 ;RESULT IN AC IS INCORRECT + 5151 034041 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5152 034042 004 03 0 00 055601 ER4 AC+1,55601 ;RESULT IN AC+1 IS INCORRECT + 5153 034043 321 04 0 00 034034 JUMPL AC+2,E55600 ;LOOP ON ERROR SWITCH^ + 5154 + 5155 ;SHIFT COUNTER TEST + 5156 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5157 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5158 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5159 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5160 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5161 ;[XWD 230703,603700] + 5162 + 5163 034044 200 02 0 00 036635 E55700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5164 034045 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5165 034046 245 02 0 00 777404 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5166 034047 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5167 034050 003 02 0 00 055701 ER3 AC,55701 ;RESULT IN AC IS INCORRECT + 5168 034051 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5169 034052 004 03 0 00 055701 ER4 AC+1,55701 ;RESULT IN AC+1 IS INCORRECT + 5170 034053 321 04 0 00 034044 JUMPL AC+2,E55700 ;LOOP ON ERROR SWITCH^ + 5171 + 5172 ;SHIFT COUNTER TEST + 5173 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5174 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5175 ^ + 5176 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5177 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5178 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5179 ;[XWD 461607,407601] + 5180 + 5181 034054 200 02 0 00 036635 E56000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5182 034055 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5183 034056 245 02 0 00 777405 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5184 034057 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5185 034060 003 02 0 00 056001 ER3 AC,56001 ;RESULT IN AC IS INCORRECT + 5186 034061 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 26-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0136 + + 5187 034062 004 03 0 00 056001 ER4 AC+1,56001 ;RESULT IN AC+1 IS INCORRECT + 5188 034063 321 04 0 00 034054 JUMPL AC+2,E56000 ;LOOP ON ERROR SWITCH^ + 5189 PAGE> +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 27 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0137 + + 5190 REPEAT ^D7, < + 5191 ADR=ADR+3 + 5192 N=N+44 + 5193 + 5194 ;SHIFT COUNTER TEST + 5195 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5196 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1) + 5197 + 5198 ;SHIFT COUNTER TEST + 5199 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5200 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N) + 5201 + 5202 ;SHIFT COUNTER TEST + 5203 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5204 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5205 + 5206 PAGE + 5207 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 28 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0138 + + 5208 ADR=ADR+3 + 5209 N=N+44 + 5210 + 5211 ;SHIFT COUNTER TEST + 5212 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5213 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1) + 5214 + 5215 ;SHIFT COUNTER TEST + 5216 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5217 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N) + 5218 + 5219 ;SHIFT COUNTER TEST + 5220 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5221 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5222 + 5223 PAGE> + 5224 + 5225 000561 ADR=ADR+3 + 5226 777777 777450 N=N+44 + 5227 + 5228 ;SHIFT COUNTER TEST + 5229 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5230 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5231 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5232 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5233 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5234 ;[XWD 374017,700177] + 5235 + 5236 034064 200 02 0 00 036635 E56100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5237 034065 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5238 034066 245 02 0 00 777447 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5239 034067 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5240 034070 003 02 0 00 056101 ER3 AC,56101 ;RESULT IN AC IS INCORRECT + 5241 034071 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5242 034072 004 03 0 00 056101 ER4 AC+1,56101 ;RESULT IN AC+1 IS INCORRECT + 5243 034073 321 04 0 00 034064 JUMPL AC+2,E56100 ;LOOP ON ERROR SWITCH^ + 5244 + 5245 ;SHIFT COUNTER TEST + 5246 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5247 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5248 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5249 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5250 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5251 ;[XWD 770037,600377] + 5252 + 5253 034074 200 02 0 00 036635 E56200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5254 034075 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5255 034076 245 02 0 00 777450 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5256 034077 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5257 034100 003 02 0 00 056201 ER3 AC,56201 ;RESULT IN AC IS INCORRECT + 5258 034101 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5259 034102 004 03 0 00 056201 ER4 AC+1,56201 ;RESULT IN AC+1 IS INCORRECT + 5260 034103 321 04 0 00 034074 JUMPL AC+2,E56200 ;LOOP ON ERROR SWITCH^ + 5261 + 5262 ;SHIFT COUNTER TEST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 28-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0139 + + 5263 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5264 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5265 ^ + 5266 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5267 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5268 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5269 ;[XWD 760077,400776] + 5270 + 5271 034104 200 02 0 00 036635 E56300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5272 034105 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5273 034106 245 02 0 00 777451 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5274 034107 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5275 034110 003 02 0 00 056301 ER3 AC,56301 ;RESULT IN AC IS INCORRECT + 5276 034111 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5277 034112 004 03 0 00 056301 ER4 AC+1,56301 ;RESULT IN AC+1 IS INCORRECT + 5278 034113 321 04 0 00 034104 JUMPL AC+2,E56300 ;LOOP ON ERROR SWITCH^ + 5279 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 29 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0140 + + 5280 000564 ADR=ADR+3 + 5281 777777 777514 N=N+44 + 5282 + 5283 ;SHIFT COUNTER TEST + 5284 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5285 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5286 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5287 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5288 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5289 ;[XWD 514341,701740] + 5290 + 5291 034114 200 02 0 00 036635 E56400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5292 034115 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5293 034116 245 02 0 00 777513 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5294 034117 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5295 034120 003 02 0 00 056401 ER3 AC,56401 ;RESULT IN AC IS INCORRECT + 5296 034121 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5297 034122 004 03 0 00 056401 ER4 AC+1,56401 ;RESULT IN AC+1 IS INCORRECT + 5298 034123 321 04 0 00 034114 JUMPL AC+2,E56400 ;LOOP ON ERROR SWITCH^ + 5299 + 5300 ;SHIFT COUNTER TEST + 5301 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5302 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5303 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5304 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5305 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5306 ;[XWD 230703,603700] + 5307 + 5308 034124 200 02 0 00 036635 E56500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5309 034125 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5310 034126 245 02 0 00 777514 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5311 034127 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5312 034130 003 02 0 00 056501 ER3 AC,56501 ;RESULT IN AC IS INCORRECT + 5313 034131 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5314 034132 004 03 0 00 056501 ER4 AC+1,56501 ;RESULT IN AC+1 IS INCORRECT + 5315 034133 321 04 0 00 034124 JUMPL AC+2,E56500 ;LOOP ON ERROR SWITCH^ + 5316 + 5317 ;SHIFT COUNTER TEST + 5318 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5319 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5320 ^ + 5321 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5322 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5323 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5324 ;[XWD 461607,407601] + 5325 + 5326 034134 200 02 0 00 036635 E56600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5327 034135 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5328 034136 245 02 0 00 777515 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5329 034137 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5330 034140 003 02 0 00 056601 ER3 AC,56601 ;RESULT IN AC IS INCORRECT + 5331 034141 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5332 034142 004 03 0 00 056601 ER4 AC+1,56601 ;RESULT IN AC+1 IS INCORRECT + 5333 034143 321 04 0 00 034134 JUMPL AC+2,E56600 ;LOOP ON ERROR SWITCH^ + 5334 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 29-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0141 + + 5335 + 5336 000567 ADR=ADR+3 + 5337 777777 777560 N=N+44 + 5338 + 5339 ;SHIFT COUNTER TEST + 5340 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5341 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5342 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5343 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5344 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5345 ;[XWD 374017,700177] + 5346 + 5347 034144 200 02 0 00 036635 E56700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5348 034145 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5349 034146 245 02 0 00 777557 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5350 034147 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5351 034150 003 02 0 00 056701 ER3 AC,56701 ;RESULT IN AC IS INCORRECT + 5352 034151 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5353 034152 004 03 0 00 056701 ER4 AC+1,56701 ;RESULT IN AC+1 IS INCORRECT + 5354 034153 321 04 0 00 034144 JUMPL AC+2,E56700 ;LOOP ON ERROR SWITCH^ + 5355 + 5356 ;SHIFT COUNTER TEST + 5357 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5358 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5359 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5360 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5361 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5362 ;[XWD 770037,600377] + 5363 + 5364 034154 200 02 0 00 036635 E57000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5365 034155 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5366 034156 245 02 0 00 777560 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5367 034157 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5368 034160 003 02 0 00 057001 ER3 AC,57001 ;RESULT IN AC IS INCORRECT + 5369 034161 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5370 034162 004 03 0 00 057001 ER4 AC+1,57001 ;RESULT IN AC+1 IS INCORRECT + 5371 034163 321 04 0 00 034154 JUMPL AC+2,E57000 ;LOOP ON ERROR SWITCH^ + 5372 + 5373 ;SHIFT COUNTER TEST + 5374 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5375 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5376 ^ + 5377 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5378 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5379 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5380 ;[XWD 760077,400776] + 5381 + 5382 034164 200 02 0 00 036635 E57100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5383 034165 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5384 034166 245 02 0 00 777561 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5385 034167 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5386 034170 003 02 0 00 057101 ER3 AC,57101 ;RESULT IN AC IS INCORRECT + 5387 034171 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5388 034172 004 03 0 00 057101 ER4 AC+1,57101 ;RESULT IN AC+1 IS INCORRECT + 5389 034173 321 04 0 00 034164 JUMPL AC+2,E57100 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 29-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0142 + + 5390 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 30 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0143 + + 5391 000572 ADR=ADR+3 + 5392 777777 777624 N=N+44 + 5393 + 5394 ;SHIFT COUNTER TEST + 5395 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5396 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5397 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5398 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5399 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5400 ;[XWD 514341,701740] + 5401 + 5402 034174 200 02 0 00 036635 E57200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5403 034175 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5404 034176 245 02 0 00 777623 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5405 034177 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5406 034200 003 02 0 00 057201 ER3 AC,57201 ;RESULT IN AC IS INCORRECT + 5407 034201 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5408 034202 004 03 0 00 057201 ER4 AC+1,57201 ;RESULT IN AC+1 IS INCORRECT + 5409 034203 321 04 0 00 034174 JUMPL AC+2,E57200 ;LOOP ON ERROR SWITCH^ + 5410 + 5411 ;SHIFT COUNTER TEST + 5412 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5413 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5414 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5415 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5416 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5417 ;[XWD 230703,603700] + 5418 + 5419 034204 200 02 0 00 036635 E57300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5420 034205 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5421 034206 245 02 0 00 777624 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5422 034207 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5423 034210 003 02 0 00 057301 ER3 AC,57301 ;RESULT IN AC IS INCORRECT + 5424 034211 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5425 034212 004 03 0 00 057301 ER4 AC+1,57301 ;RESULT IN AC+1 IS INCORRECT + 5426 034213 321 04 0 00 034204 JUMPL AC+2,E57300 ;LOOP ON ERROR SWITCH^ + 5427 + 5428 ;SHIFT COUNTER TEST + 5429 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5430 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5431 ^ + 5432 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5433 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5434 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5435 ;[XWD 461607,407601] + 5436 + 5437 034214 200 02 0 00 036635 E57400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5438 034215 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5439 034216 245 02 0 00 777625 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5440 034217 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5441 034220 003 02 0 00 057401 ER3 AC,57401 ;RESULT IN AC IS INCORRECT + 5442 034221 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5443 034222 004 03 0 00 057401 ER4 AC+1,57401 ;RESULT IN AC+1 IS INCORRECT + 5444 034223 321 04 0 00 034214 JUMPL AC+2,E57400 ;LOOP ON ERROR SWITCH^ + 5445 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 30-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0144 + + 5446 + 5447 000575 ADR=ADR+3 + 5448 777777 777670 N=N+44 + 5449 + 5450 ;SHIFT COUNTER TEST + 5451 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5452 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5453 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5454 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5455 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5456 ;[XWD 374017,700177] + 5457 + 5458 034224 200 02 0 00 036635 E57500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5459 034225 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5460 034226 245 02 0 00 777667 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5461 034227 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5462 034230 003 02 0 00 057501 ER3 AC,57501 ;RESULT IN AC IS INCORRECT + 5463 034231 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5464 034232 004 03 0 00 057501 ER4 AC+1,57501 ;RESULT IN AC+1 IS INCORRECT + 5465 034233 321 04 0 00 034224 JUMPL AC+2,E57500 ;LOOP ON ERROR SWITCH^ + 5466 + 5467 ;SHIFT COUNTER TEST + 5468 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5469 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5470 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5471 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5472 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5473 ;[XWD 770037,600377] + 5474 + 5475 034234 200 02 0 00 036635 E57600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5476 034235 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5477 034236 245 02 0 00 777670 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5478 034237 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5479 034240 003 02 0 00 057601 ER3 AC,57601 ;RESULT IN AC IS INCORRECT + 5480 034241 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5481 034242 004 03 0 00 057601 ER4 AC+1,57601 ;RESULT IN AC+1 IS INCORRECT + 5482 034243 321 04 0 00 034234 JUMPL AC+2,E57600 ;LOOP ON ERROR SWITCH^ + 5483 + 5484 ;SHIFT COUNTER TEST + 5485 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5486 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5487 ^ + 5488 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5489 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5490 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5491 ;[XWD 760077,400776] + 5492 + 5493 034244 200 02 0 00 036635 E57700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5494 034245 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5495 034246 245 02 0 00 777671 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5496 034247 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5497 034250 003 02 0 00 057701 ER3 AC,57701 ;RESULT IN AC IS INCORRECT + 5498 034251 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5499 034252 004 03 0 00 057701 ER4 AC+1,57701 ;RESULT IN AC+1 IS INCORRECT + 5500 034253 321 04 0 00 034244 JUMPL AC+2,E57700 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 30-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0145 + + 5501 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 31 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0146 + + 5502 000600 ADR=ADR+3 + 5503 777777 777734 N=N+44 + 5504 + 5505 ;SHIFT COUNTER TEST + 5506 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5507 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5508 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5509 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5510 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5511 ;[XWD 514341,701740] + 5512 + 5513 034254 200 02 0 00 036635 E60000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5514 034255 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5515 034256 245 02 0 00 777733 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5516 034257 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5517 034260 003 02 0 00 060001 ER3 AC,60001 ;RESULT IN AC IS INCORRECT + 5518 034261 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5519 034262 004 03 0 00 060001 ER4 AC+1,60001 ;RESULT IN AC+1 IS INCORRECT + 5520 034263 321 04 0 00 034254 JUMPL AC+2,E60000 ;LOOP ON ERROR SWITCH^ + 5521 + 5522 ;SHIFT COUNTER TEST + 5523 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5524 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5525 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5526 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5527 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5528 ;[XWD 230703,603700] + 5529 + 5530 034264 200 02 0 00 036635 E60100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5531 034265 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5532 034266 245 02 0 00 777734 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5533 034267 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5534 034270 003 02 0 00 060101 ER3 AC,60101 ;RESULT IN AC IS INCORRECT + 5535 034271 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5536 034272 004 03 0 00 060101 ER4 AC+1,60101 ;RESULT IN AC+1 IS INCORRECT + 5537 034273 321 04 0 00 034264 JUMPL AC+2,E60100 ;LOOP ON ERROR SWITCH^ + 5538 + 5539 ;SHIFT COUNTER TEST + 5540 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5541 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5542 ^ + 5543 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5544 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5545 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5546 ;[XWD 461607,407601] + 5547 + 5548 034274 200 02 0 00 036635 E60200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5549 034275 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5550 034276 245 02 0 00 777735 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5551 034277 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5552 034300 003 02 0 00 060201 ER3 AC,60201 ;RESULT IN AC IS INCORRECT + 5553 034301 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5554 034302 004 03 0 00 060201 ER4 AC+1,60201 ;RESULT IN AC+1 IS INCORRECT + 5555 034303 321 04 0 00 034274 JUMPL AC+2,E60200 ;LOOP ON ERROR SWITCH^ + 5556 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 31-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0147 + + 5557 + 5558 000603 ADR=ADR+3 + 5559 000000 N=N+44 + 5560 + 5561 ;SHIFT COUNTER TEST + 5562 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5563 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5564 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5565 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5566 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5567 ;[XWD 374017,700177] + 5568 + 5569 034304 200 02 0 00 036635 E60300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5570 034305 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5571 034306 245 02 0 00 777777 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5572 034307 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5573 034310 003 02 0 00 060301 ER3 AC,60301 ;RESULT IN AC IS INCORRECT + 5574 034311 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5575 034312 004 03 0 00 060301 ER4 AC+1,60301 ;RESULT IN AC+1 IS INCORRECT + 5576 034313 321 04 0 00 034304 JUMPL AC+2,E60300 ;LOOP ON ERROR SWITCH^ + 5577 + 5578 ;SHIFT COUNTER TEST + 5579 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5580 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5581 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5582 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5583 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5584 ;[XWD 770037,600377] + 5585 + 5586 034314 200 02 0 00 036635 E60400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5587 034315 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5588 034316 245 02 0 00 000000 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5589 034317 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5590 034320 003 02 0 00 060401 ER3 AC,60401 ;RESULT IN AC IS INCORRECT + 5591 034321 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5592 034322 004 03 0 00 060401 ER4 AC+1,60401 ;RESULT IN AC+1 IS INCORRECT + 5593 034323 321 04 0 00 034314 JUMPL AC+2,E60400 ;LOOP ON ERROR SWITCH^ + 5594 + 5595 ;SHIFT COUNTER TEST + 5596 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5597 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5598 ^ + 5599 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5600 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5601 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5602 ;[XWD 760077,400776] + 5603 + 5604 034324 200 02 0 00 036635 E60500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5605 034325 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5606 034326 245 02 0 00 000001 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5607 034327 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5608 034330 003 02 0 00 060501 ER3 AC,60501 ;RESULT IN AC IS INCORRECT + 5609 034331 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5610 034332 004 03 0 00 060501 ER4 AC+1,60501 ;RESULT IN AC+1 IS INCORRECT + 5611 034333 321 04 0 00 034324 JUMPL AC+2,E60500 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 31-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0148 + + 5612 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 32 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0149 + + 5613 000606 ADR=ADR+3 + 5614 000044 N=N+44 + 5615 + 5616 ;SHIFT COUNTER TEST + 5617 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5618 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5619 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5620 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5621 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5622 ;[XWD 514341,701740] + 5623 + 5624 034334 200 02 0 00 036635 E60600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5625 034335 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5626 034336 245 02 0 00 000043 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5627 034337 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5628 034340 003 02 0 00 060601 ER3 AC,60601 ;RESULT IN AC IS INCORRECT + 5629 034341 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5630 034342 004 03 0 00 060601 ER4 AC+1,60601 ;RESULT IN AC+1 IS INCORRECT + 5631 034343 321 04 0 00 034334 JUMPL AC+2,E60600 ;LOOP ON ERROR SWITCH^ + 5632 + 5633 ;SHIFT COUNTER TEST + 5634 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5635 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5636 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5637 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5638 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5639 ;[XWD 230703,603700] + 5640 + 5641 034344 200 02 0 00 036635 E60700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5642 034345 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5643 034346 245 02 0 00 000044 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5644 034347 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5645 034350 003 02 0 00 060701 ER3 AC,60701 ;RESULT IN AC IS INCORRECT + 5646 034351 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5647 034352 004 03 0 00 060701 ER4 AC+1,60701 ;RESULT IN AC+1 IS INCORRECT + 5648 034353 321 04 0 00 034344 JUMPL AC+2,E60700 ;LOOP ON ERROR SWITCH^ + 5649 + 5650 ;SHIFT COUNTER TEST + 5651 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5652 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5653 ^ + 5654 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5655 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5656 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5657 ;[XWD 461607,407601] + 5658 + 5659 034354 200 02 0 00 036635 E61000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5660 034355 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5661 034356 245 02 0 00 000045 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5662 034357 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5663 034360 003 02 0 00 061001 ER3 AC,61001 ;RESULT IN AC IS INCORRECT + 5664 034361 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5665 034362 004 03 0 00 061001 ER4 AC+1,61001 ;RESULT IN AC+1 IS INCORRECT + 5666 034363 321 04 0 00 034354 JUMPL AC+2,E61000 ;LOOP ON ERROR SWITCH^ + 5667 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 32-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0150 + + 5668 + 5669 000611 ADR=ADR+3 + 5670 000110 N=N+44 + 5671 + 5672 ;SHIFT COUNTER TEST + 5673 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5674 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5675 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5676 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5677 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5678 ;[XWD 374017,700177] + 5679 + 5680 034364 200 02 0 00 036635 E61100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5681 034365 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5682 034366 245 02 0 00 000107 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5683 034367 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5684 034370 003 02 0 00 061101 ER3 AC,61101 ;RESULT IN AC IS INCORRECT + 5685 034371 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5686 034372 004 03 0 00 061101 ER4 AC+1,61101 ;RESULT IN AC+1 IS INCORRECT + 5687 034373 321 04 0 00 034364 JUMPL AC+2,E61100 ;LOOP ON ERROR SWITCH^ + 5688 + 5689 ;SHIFT COUNTER TEST + 5690 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5691 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5692 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5693 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5694 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5695 ;[XWD 770037,600377] + 5696 + 5697 034374 200 02 0 00 036635 E61200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5698 034375 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5699 034376 245 02 0 00 000110 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5700 034377 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5701 034400 003 02 0 00 061201 ER3 AC,61201 ;RESULT IN AC IS INCORRECT + 5702 034401 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5703 034402 004 03 0 00 061201 ER4 AC+1,61201 ;RESULT IN AC+1 IS INCORRECT + 5704 034403 321 04 0 00 034374 JUMPL AC+2,E61200 ;LOOP ON ERROR SWITCH^ + 5705 + 5706 ;SHIFT COUNTER TEST + 5707 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5708 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5709 ^ + 5710 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5711 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5712 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5713 ;[XWD 760077,400776] + 5714 + 5715 034404 200 02 0 00 036635 E61300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5716 034405 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5717 034406 245 02 0 00 000111 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5718 034407 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5719 034410 003 02 0 00 061301 ER3 AC,61301 ;RESULT IN AC IS INCORRECT + 5720 034411 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5721 034412 004 03 0 00 061301 ER4 AC+1,61301 ;RESULT IN AC+1 IS INCORRECT + 5722 034413 321 04 0 00 034404 JUMPL AC+2,E61300 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 32-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0151 + + 5723 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 33 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0152 + + 5724 000614 ADR=ADR+3 + 5725 000154 N=N+44 + 5726 + 5727 ;SHIFT COUNTER TEST + 5728 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5729 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5730 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5731 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5732 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5733 ;[XWD 514341,701740] + 5734 + 5735 034414 200 02 0 00 036635 E61400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5736 034415 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5737 034416 245 02 0 00 000153 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5738 034417 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5739 034420 003 02 0 00 061401 ER3 AC,61401 ;RESULT IN AC IS INCORRECT + 5740 034421 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5741 034422 004 03 0 00 061401 ER4 AC+1,61401 ;RESULT IN AC+1 IS INCORRECT + 5742 034423 321 04 0 00 034414 JUMPL AC+2,E61400 ;LOOP ON ERROR SWITCH^ + 5743 + 5744 ;SHIFT COUNTER TEST + 5745 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5746 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5747 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5748 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5749 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5750 ;[XWD 230703,603700] + 5751 + 5752 034424 200 02 0 00 036635 E61500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5753 034425 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5754 034426 245 02 0 00 000154 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5755 034427 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5756 034430 003 02 0 00 061501 ER3 AC,61501 ;RESULT IN AC IS INCORRECT + 5757 034431 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5758 034432 004 03 0 00 061501 ER4 AC+1,61501 ;RESULT IN AC+1 IS INCORRECT + 5759 034433 321 04 0 00 034424 JUMPL AC+2,E61500 ;LOOP ON ERROR SWITCH^ + 5760 + 5761 ;SHIFT COUNTER TEST + 5762 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5763 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5764 ^ + 5765 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5766 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5767 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5768 ;[XWD 461607,407601] + 5769 + 5770 034434 200 02 0 00 036635 E61600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5771 034435 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5772 034436 245 02 0 00 000155 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5773 034437 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5774 034440 003 02 0 00 061601 ER3 AC,61601 ;RESULT IN AC IS INCORRECT + 5775 034441 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5776 034442 004 03 0 00 061601 ER4 AC+1,61601 ;RESULT IN AC+1 IS INCORRECT + 5777 034443 321 04 0 00 034434 JUMPL AC+2,E61600 ;LOOP ON ERROR SWITCH^ + 5778 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 33-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0153 + + 5779 + 5780 000617 ADR=ADR+3 + 5781 000220 N=N+44 + 5782 + 5783 ;SHIFT COUNTER TEST + 5784 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5785 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5786 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5787 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5788 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5789 ;[XWD 374017,700177] + 5790 + 5791 034444 200 02 0 00 036635 E61700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5792 034445 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5793 034446 245 02 0 00 000217 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5794 034447 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5795 034450 003 02 0 00 061701 ER3 AC,61701 ;RESULT IN AC IS INCORRECT + 5796 034451 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5797 034452 004 03 0 00 061701 ER4 AC+1,61701 ;RESULT IN AC+1 IS INCORRECT + 5798 034453 321 04 0 00 034444 JUMPL AC+2,E61700 ;LOOP ON ERROR SWITCH^ + 5799 + 5800 ;SHIFT COUNTER TEST + 5801 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5802 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5803 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5804 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5805 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5806 ;[XWD 770037,600377] + 5807 + 5808 034454 200 02 0 00 036635 E62000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5809 034455 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5810 034456 245 02 0 00 000220 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5811 034457 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5812 034460 003 02 0 00 062001 ER3 AC,62001 ;RESULT IN AC IS INCORRECT + 5813 034461 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5814 034462 004 03 0 00 062001 ER4 AC+1,62001 ;RESULT IN AC+1 IS INCORRECT + 5815 034463 321 04 0 00 034454 JUMPL AC+2,E62000 ;LOOP ON ERROR SWITCH^ + 5816 + 5817 ;SHIFT COUNTER TEST + 5818 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5819 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5820 ^ + 5821 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5822 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5823 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5824 ;[XWD 760077,400776] + 5825 + 5826 034464 200 02 0 00 036635 E62100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5827 034465 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5828 034466 245 02 0 00 000221 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5829 034467 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5830 034470 003 02 0 00 062101 ER3 AC,62101 ;RESULT IN AC IS INCORRECT + 5831 034471 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5832 034472 004 03 0 00 062101 ER4 AC+1,62101 ;RESULT IN AC+1 IS INCORRECT + 5833 034473 321 04 0 00 034464 JUMPL AC+2,E62100 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 33-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0154 + + 5834 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 34 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0155 + + 5835 000622 ADR=ADR+3 + 5836 000264 N=N+44 + 5837 + 5838 ;SHIFT COUNTER TEST + 5839 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5840 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5841 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5842 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5843 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5844 ;[XWD 514341,701740] + 5845 + 5846 034474 200 02 0 00 036635 E62200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5847 034475 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5848 034476 245 02 0 00 000263 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5849 034477 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5850 034500 003 02 0 00 062201 ER3 AC,62201 ;RESULT IN AC IS INCORRECT + 5851 034501 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5852 034502 004 03 0 00 062201 ER4 AC+1,62201 ;RESULT IN AC+1 IS INCORRECT + 5853 034503 321 04 0 00 034474 JUMPL AC+2,E62200 ;LOOP ON ERROR SWITCH^ + 5854 + 5855 ;SHIFT COUNTER TEST + 5856 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5857 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5858 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5859 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5860 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5861 ;[XWD 230703,603700] + 5862 + 5863 034504 200 02 0 00 036635 E62300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5864 034505 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5865 034506 245 02 0 00 000264 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5866 034507 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5867 034510 003 02 0 00 062301 ER3 AC,62301 ;RESULT IN AC IS INCORRECT + 5868 034511 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5869 034512 004 03 0 00 062301 ER4 AC+1,62301 ;RESULT IN AC+1 IS INCORRECT + 5870 034513 321 04 0 00 034504 JUMPL AC+2,E62300 ;LOOP ON ERROR SWITCH^ + 5871 + 5872 ;SHIFT COUNTER TEST + 5873 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5874 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5875 ^ + 5876 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5877 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5878 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5879 ;[XWD 461607,407601] + 5880 + 5881 034514 200 02 0 00 036635 E62400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5882 034515 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5883 034516 245 02 0 00 000265 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5884 034517 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5885 034520 003 02 0 00 062401 ER3 AC,62401 ;RESULT IN AC IS INCORRECT + 5886 034521 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5887 034522 004 03 0 00 062401 ER4 AC+1,62401 ;RESULT IN AC+1 IS INCORRECT + 5888 034523 321 04 0 00 034514 JUMPL AC+2,E62400 ;LOOP ON ERROR SWITCH^ + 5889 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 34-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0156 + + 5890 + 5891 000625 ADR=ADR+3 + 5892 000330 N=N+44 + 5893 + 5894 ;SHIFT COUNTER TEST + 5895 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5896 SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1)^ + 5897 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5898 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5899 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 514341,701740] AND + 5900 ;[XWD 374017,700177] + 5901 + 5902 034524 200 02 0 00 036635 E62500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5903 034525 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5904 034526 245 02 0 00 000327 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5905 034527 312 02 0 00 036660 CAME AC,[XWD 514341,701740] ;IS RESULT IN AC CORRECT? + 5906 034530 003 02 0 00 062501 ER3 AC,62501 ;RESULT IN AC IS INCORRECT + 5907 034531 312 03 0 00 036657 CAME AC+1,[XWD 374017,700177] ;IS RESULT IN AC+1 CORRECT? + 5908 034532 004 03 0 00 062501 ER4 AC+1,62501 ;RESULT IN AC+1 IS INCORRECT + 5909 034533 321 04 0 00 034524 JUMPL AC+2,E62500 ;LOOP ON ERROR SWITCH^ + 5910 + 5911 ;SHIFT COUNTER TEST + 5912 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5913 SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N)^ + 5914 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5915 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5916 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 230703,603700] AND + 5917 ;[XWD 770037,600377] + 5918 + 5919 034534 200 02 0 00 036635 E62600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5920 034535 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5921 034536 245 02 0 00 000330 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5922 034537 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 5923 034540 003 02 0 00 062601 ER3 AC,62601 ;RESULT IN AC IS INCORRECT + 5924 034541 312 03 0 00 036656 CAME AC+1,[XWD 770037,600377] ;IS RESULT IN AC+1 CORRECT? + 5925 034542 004 03 0 00 062601 ER4 AC+1,62601 ;RESULT IN AC+1 IS INCORRECT + 5926 034543 321 04 0 00 034534 JUMPL AC+2,E62600 ;LOOP ON ERROR SWITCH^ + 5927 + 5928 ;SHIFT COUNTER TEST + 5929 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5930 SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) + 5931 ^ + 5932 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5933 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5934 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 461607,407601] AND + 5935 ;[XWD 760077,400776] + 5936 + 5937 034544 200 02 0 00 036635 E62700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5938 034545 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5939 034546 245 02 0 00 000331 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5940 034547 312 02 0 00 036662 CAME AC,[XWD 461607,407601] ;IS RESULT IN AC CORRECT? + 5941 034550 003 02 0 00 062701 ER3 AC,62701 ;RESULT IN AC IS INCORRECT + 5942 034551 312 03 0 00 036661 CAME AC+1,[XWD 760077,400776] ;IS RESULT IN AC+1 CORRECT? + 5943 034552 004 03 0 00 062701 ER4 AC+1,62701 ;RESULT IN AC+1 IS INCORRECT + 5944 034553 321 04 0 00 034544 JUMPL AC+2,E62700 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 34-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0157 + + 5945 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 35 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0158 + + 5946 000630 ADR=ADR+3 + 5947 000374 N=N+44 + 5948 + 5949 ;SHIFT COUNTER TEST + 5950 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + 5951 SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1)^ + 5952 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5953 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N-1 BIT POSITIONS AND + 5954 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 374017,700177] AND + 5955 ;[XWD 514341,701740] + 5956 + 5957 034554 200 02 0 00 036635 E63000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5958 034555 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5959 034556 245 02 0 00 000373 ROTC AC,N-1 ;*SHIFT/ROTATE COMBINED N-1 PLACES + 5960 034557 312 02 0 00 036657 CAME AC,[XWD 374017,700177] ;IS RESULT IN AC CORRECT? + 5961 034560 003 02 0 00 063001 ER3 AC,63001 ;RESULT IN AC IS INCORRECT + 5962 034561 312 03 0 00 036660 CAME AC+1,[XWD 514341,701740] ;IS RESULT IN AC+1 CORRECT? + 5963 034562 004 03 0 00 063001 ER4 AC+1,63001 ;RESULT IN AC+1 IS INCORRECT + 5964 034563 321 04 0 00 034554 JUMPL AC+2,E63000 ;LOOP ON ERROR SWITCH^ + 5965 + 5966 ;SHIFT COUNTER TEST + 5967 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + 5968 SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N)^ + 5969 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5970 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N BIT POSITIONS AND + 5971 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 770037,600377] AND + 5972 ;[XWD 230703,603700] + 5973 + 5974 034564 200 02 0 00 036635 E63100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5975 034565 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5976 034566 245 02 0 00 000374 ROTC AC,N ;*SHIFT/ROTATE COMBINED N PLACES + 5977 034567 312 02 0 00 036656 CAME AC,[XWD 770037,600377] ;IS RESULT IN AC CORRECT? + 5978 034570 003 02 0 00 063101 ER3 AC,63101 ;RESULT IN AC IS INCORRECT + 5979 034571 312 03 0 00 036635 CAME AC+1,[XWD 230703,603700] ;IS RESULT IN AC+1 CORRECT? + 5980 034572 004 03 0 00 063101 ER4 AC+1,63101 ;RESULT IN AC+1 IS INCORRECT + 5981 034573 321 04 0 00 034564 JUMPL AC+2,E63100 ;LOOP ON ERROR SWITCH^ + 5982 + 5983 ;SHIFT COUNTER TEST + 5984 ;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + 5985 SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) + 5986 ^ + 5987 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 5988 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] N+1 BIT POSITIONS AND + 5989 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 760077,400776] AND + 5990 ;[XWD 461607,407601] + 5991 + 5992 034574 200 02 0 00 036635 E63200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 5993 034575 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 5994 034576 245 02 0 00 000375 ROTC AC,N+1 ;*SHIFT/ROTATE COMBINED N+1 PLACES + 5995 034577 312 02 0 00 036661 CAME AC,[XWD 760077,400776] ;IS RESULT IN AC CORRECT? + 5996 034600 003 02 0 00 063201 ER3 AC,63201 ;RESULT IN AC IS INCORRECT + 5997 034601 312 03 0 00 036662 CAME AC+1,[XWD 461607,407601] ;IS RESULT IN AC+1 CORRECT? + 5998 034602 004 03 0 00 063201 ER4 AC+1,63201 ;RESULT IN AC+1 IS INCORRECT + 5999 034603 321 04 0 00 034574 JUMPL AC+2,E63200 ;LOOP ON ERROR SWITCH^ + 6000 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 36 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0159 + + 6001 ;SHIFT COUNTER TEST + 6002 ;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + 6003 SR1 (633,230703,603700,307036,037002,ROT,377)^ + 6004 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 377 BIT + 6005 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 307036,037002] + 6006 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6007 + 6008 034604 200 02 0 00 036635 E63300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6009 034605 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6010 034606 241 02 0 00 000377 ROT AC,377 ;*SHIFT/ROTATE 377 BIT POSITIONS + 6011 034607 312 02 0 00 036647 CAME AC,[XWD 307036,037002] ;IS RESULT IN AC CORRECT? + 6012 034610 003 02 0 00 063301 ER3 AC,63301 ;RESULT IN AC IS INCORRECT + 6013 034611 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6014 034612 004 03 0 00 063301 ER4 AC+1,63301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6015 034613 321 04 0 00 034604 JUMPL AC+2,E63300 ;LOOP ON ERROR SWITCH^ + 6016 + 6017 ;SHIFT COUNTER TEST + 6018 ;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + 6019 SR1 (634,230703,603700,023070,360370,ROT,-377)^ + 6020 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] -377 BIT + 6021 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 023070,360370] + 6022 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6023 + 6024 034614 200 02 0 00 036635 E63400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6025 034615 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6026 034616 241 02 0 00 777401 ROT AC,-377 ;*SHIFT/ROTATE -377 BIT POSITIONS + 6027 034617 312 02 0 00 036653 CAME AC,[XWD 023070,360370] ;IS RESULT IN AC CORRECT? + 6028 034620 003 02 0 00 063401 ER3 AC,63401 ;RESULT IN AC IS INCORRECT + 6029 034621 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6030 034622 004 03 0 00 063401 ER4 AC+1,63401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6031 034623 321 04 0 00 034614 JUMPL AC+2,E63400 ;LOOP ON ERROR SWITCH^ + 6032 + 6033 ;SHIFT COUNTER TEST + 6034 ;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + 6035 SR2 (635,230703,603700,770037,600377,700376,003772,307036,037007,ROTC,377)^ + 6036 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 6037 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] 377 BIT POSITIONS AND + 6038 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 700376,003772] AND + 6039 ;[XWD 307036,037007] + 6040 + 6041 034624 200 02 0 00 036635 E63500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6042 034625 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 6043 034626 245 02 0 00 000377 ROTC AC,377 ;*SHIFT/ROTATE COMBINED 377 PLACES + 6044 034627 312 02 0 00 036663 CAME AC,[XWD 700376,003772] ;IS RESULT IN AC CORRECT? + 6045 034630 003 02 0 00 063501 ER3 AC,63501 ;RESULT IN AC IS INCORRECT + 6046 034631 312 03 0 00 036664 CAME AC+1,[XWD 307036,037007] ;IS RESULT IN AC+1 CORRECT? + 6047 034632 004 03 0 00 063501 ER4 AC+1,63501 ;RESULT IN AC+1 IS INCORRECT + 6048 034633 321 04 0 00 034624 JUMPL AC+2,E63500 ;LOOP ON ERROR SWITCH^ + 6049 + 6050 ;SHIFT COUNTER TEST + 6051 ;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + 6052 SR2 (636,230703,603700,770037,600377,077003,760037,723070,360370,ROTC,-377)^ + 6053 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 6054 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] -377 BIT POSITIONS AND + 6055 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 077003,760037] AND +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 36-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0160 + + 6056 ;[XWD 723070,360370] + 6057 + 6058 034634 200 02 0 00 036635 E63600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6059 034635 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 6060 034636 245 02 0 00 777401 ROTC AC,-377 ;*SHIFT/ROTATE COMBINED -377 PLACES + 6061 034637 312 02 0 00 036665 CAME AC,[XWD 077003,760037] ;IS RESULT IN AC CORRECT? + 6062 034640 003 02 0 00 063601 ER3 AC,63601 ;RESULT IN AC IS INCORRECT + 6063 034641 312 03 0 00 036666 CAME AC+1,[XWD 723070,360370] ;IS RESULT IN AC+1 CORRECT? + 6064 034642 004 03 0 00 063601 ER4 AC+1,63601 ;RESULT IN AC+1 IS INCORRECT + 6065 034643 321 04 0 00 034634 JUMPL AC+2,E63600 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 37 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0161 + + 6066 ;SHIFT COUNTER TEST + 6067 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6068 ;RESULT SHOULD INDICATE NO ROTATION + 6069 SR1 (637,230703,603700,230703,603700,ROT,400)^ + 6070 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 400 BIT + 6071 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6072 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6073 + 6074 034644 200 02 0 00 036635 E63700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6075 034645 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6076 034646 241 02 0 00 000400 ROT AC,400 ;*SHIFT/ROTATE 400 BIT POSITIONS + 6077 034647 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6078 034650 003 02 0 00 063701 ER3 AC,63701 ;RESULT IN AC IS INCORRECT + 6079 034651 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6080 034652 004 03 0 00 063701 ER4 AC+1,63701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6081 034653 321 04 0 00 034644 JUMPL AC+2,E63700 ;LOOP ON ERROR SWITCH^ + 6082 + 6083 ;SHIFT COUNTER TEST + 6084 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6085 ;RESULT SHOULD INDICATE NO ROTATION + 6086 SR1 (640,230703,603700,230703,603700,ROT,1000)^ + 6087 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 1000 BIT + 6088 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6089 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6090 + 6091 034654 200 02 0 00 036635 E64000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6092 034655 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6093 034656 241 02 0 00 001000 ROT AC,1000 ;*SHIFT/ROTATE 1000 BIT POSITIONS + 6094 034657 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6095 034660 003 02 0 00 064001 ER3 AC,64001 ;RESULT IN AC IS INCORRECT + 6096 034661 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6097 034662 004 03 0 00 064001 ER4 AC+1,64001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6098 034663 321 04 0 00 034654 JUMPL AC+2,E64000 ;LOOP ON ERROR SWITCH^ + 6099 + 6100 ;SHIFT COUNTER TEST + 6101 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6102 ;RESULT SHOULD INDICATE NO ROTATION + 6103 SR1 (641,230703,603700,230703,603700,ROT,2000)^ + 6104 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 2000 BIT + 6105 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6106 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6107 + 6108 034664 200 02 0 00 036635 E64100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6109 034665 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6110 034666 241 02 0 00 002000 ROT AC,2000 ;*SHIFT/ROTATE 2000 BIT POSITIONS + 6111 034667 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6112 034670 003 02 0 00 064101 ER3 AC,64101 ;RESULT IN AC IS INCORRECT + 6113 034671 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6114 034672 004 03 0 00 064101 ER4 AC+1,64101 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6115 034673 321 04 0 00 034664 JUMPL AC+2,E64100 ;LOOP ON ERROR SWITCH^ + 6116 + 6117 ;SHIFT COUNTER TEST + 6118 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6119 ;RESULT SHOULD INDICATE NO ROTATION + 6120 SR1 (642,230703,603700,230703,603700,ROT,4000)^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 37-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0162 + + 6121 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 4000 BIT + 6122 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6123 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6124 + 6125 034674 200 02 0 00 036635 E64200: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6126 034675 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6127 034676 241 02 0 00 004000 ROT AC,4000 ;*SHIFT/ROTATE 4000 BIT POSITIONS + 6128 034677 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6129 034700 003 02 0 00 064201 ER3 AC,64201 ;RESULT IN AC IS INCORRECT + 6130 034701 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6131 034702 004 03 0 00 064201 ER4 AC+1,64201 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6132 034703 321 04 0 00 034674 JUMPL AC+2,E64200 ;LOOP ON ERROR SWITCH^ + 6133 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 37-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0163 + + 6134 ;SHIFT COUNTER TEST + 6135 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6136 ;RESULT SHOULD INDICATE NO ROTATION + 6137 SR1 (643,230703,603700,230703,603700,ROT,10000)^ + 6138 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 10000 BIT + 6139 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6140 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6141 + 6142 034704 200 02 0 00 036635 E64300: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6143 034705 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6144 034706 241 02 0 00 010000 ROT AC,10000 ;*SHIFT/ROTATE 10000 BIT POSITIONS + 6145 034707 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6146 034710 003 02 0 00 064301 ER3 AC,64301 ;RESULT IN AC IS INCORRECT + 6147 034711 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6148 034712 004 03 0 00 064301 ER4 AC+1,64301 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6149 034713 321 04 0 00 034704 JUMPL AC+2,E64300 ;LOOP ON ERROR SWITCH^ + 6150 + 6151 ;SHIFT COUNTER TEST + 6152 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6153 ;RESULT SHOULD INDICATE NO ROTATION + 6154 SR1 (644,230703,603700,230703,603700,ROT,20000)^ + 6155 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 20000 BIT + 6156 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6157 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6158 + 6159 034714 200 02 0 00 036635 E64400: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6160 034715 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6161 034716 241 02 0 00 020000 ROT AC,20000 ;*SHIFT/ROTATE 20000 BIT POSITIONS + 6162 034717 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6163 034720 003 02 0 00 064401 ER3 AC,64401 ;RESULT IN AC IS INCORRECT + 6164 034721 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6165 034722 004 03 0 00 064401 ER4 AC+1,64401 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6166 034723 321 04 0 00 034714 JUMPL AC+2,E64400 ;LOOP ON ERROR SWITCH^ + 6167 + 6168 ;SHIFT COUNTER TEST + 6169 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6170 ;RESULT SHOULD INDICATE NO ROTATION + 6171 SR1 (645,230703,603700,230703,603700,ROT,40000)^ + 6172 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 40000 BIT + 6173 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6174 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6175 + 6176 034724 200 02 0 00 036635 E64500: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6177 034725 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6178 034726 241 02 0 00 040000 ROT AC,40000 ;*SHIFT/ROTATE 40000 BIT POSITIONS + 6179 034727 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6180 034730 003 02 0 00 064501 ER3 AC,64501 ;RESULT IN AC IS INCORRECT + 6181 034731 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6182 034732 004 03 0 00 064501 ER4 AC+1,64501 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6183 034733 321 04 0 00 034724 JUMPL AC+2,E64500 ;LOOP ON ERROR SWITCH^ + 6184 + 6185 ;SHIFT COUNTER TEST + 6186 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6187 ;RESULT SHOULD INDICATE NO ROTATION + 6188 SR1 (646,230703,603700,230703,603700,ROT,100000)^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 37-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0164 + + 6189 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 100000 BIT + 6190 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6191 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6192 + 6193 034734 200 02 0 00 036635 E64600: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6194 034735 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6195 034736 241 02 0 00 100000 ROT AC,100000 ;*SHIFT/ROTATE 100000 BIT POSITIONS + 6196 034737 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6197 034740 003 02 0 00 064601 ER3 AC,64601 ;RESULT IN AC IS INCORRECT + 6198 034741 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6199 034742 004 03 0 00 064601 ER4 AC+1,64601 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6200 034743 321 04 0 00 034734 JUMPL AC+2,E64600 ;LOOP ON ERROR SWITCH^ + 6201 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 37-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST SEQ 0165 + + 6202 ;SHIFT COUNTER TEST + 6203 ;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR + 6204 ;RESULT SHOULD INDICATE NO ROTATION + 6205 SR1 (647,230703,603700,230703,603700,ROT,200000)^ + 6206 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 200000 BIT + 6207 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 230703,603700] + 6208 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6209 + 6210 034744 200 02 0 00 036635 E64700: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6211 034745 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6212 034746 241 02 0 00 200000 ROT AC,200000 ;*SHIFT/ROTATE 200000 BIT POSITIONS + 6213 034747 312 02 0 00 036635 CAME AC,[XWD 230703,603700] ;IS RESULT IN AC CORRECT? + 6214 034750 003 02 0 00 064701 ER3 AC,64701 ;RESULT IN AC IS INCORRECT + 6215 034751 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6216 034752 004 03 0 00 064701 ER4 AC+1,64701 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6217 034753 321 04 0 00 034744 JUMPL AC+2,E64700 ;LOOP ON ERROR SWITCH^ + 6218 + 6219 ;SHIFT COUNTER TEST + 6220 ;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + 6221 SR1 (650,230703,603700,011434,170174,ROT,400000)^ + 6222 ;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD 230703,603700] 400000 BIT + 6223 ;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD 011434,170174] + 6224 ;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED + 6225 + 6226 034754 200 02 0 00 036635 E65000: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6227 034755 200 03 0 00 036631 MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1 + 6228 034756 241 02 0 00 400000 ROT AC,400000 ;*SHIFT/ROTATE 400000 BIT POSITIONS + 6229 034757 312 02 0 00 036643 CAME AC,[XWD 011434,170174] ;IS RESULT IN AC CORRECT? + 6230 034760 003 02 0 00 065001 ER3 AC,65001 ;RESULT IN AC IS INCORRECT + 6231 034761 312 03 0 00 036631 CAME AC+1,[XWD 741703,607417] + 6232 034762 004 03 0 00 065001 ER4 AC+1,65001 ;C(AC+1) WAS MODIFIED INCORRECTLY + 6233 034763 321 04 0 00 034754 JUMPL AC+2,E65000 ;LOOP ON ERROR SWITCH^ + 6234 + 6235 ;SHIFT COUNTER TEST + 6236 ;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + 6237 SR2 (651,230703,603700,770037,600377,037401,770017,751434,170174,ROTC,400000)^ + 6238 + 6239 ;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE + 6240 ;DATA SPECIFIED IN [XWD 230703,603700] AND [XWD 770037,600377] 400000 BIT POSITIONS AND + 6241 ;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD 037401,770017] AND + 6242 ;[XWD 751434,170174] + 6243 + 6244 034764 200 02 0 00 036635 E65100: MOVE AC,[XWD 230703,603700] ;INITIALIZE AC + 6245 034765 200 03 0 00 036656 MOVE AC+1,[XWD 770037,600377] ;INITIALIZE AC+1 + 6246 034766 245 02 0 00 400000 ROTC AC,400000 ;*SHIFT/ROTATE COMBINED 400000 PLACES + 6247 034767 312 02 0 00 036667 CAME AC,[XWD 037401,770017] ;IS RESULT IN AC CORRECT? + 6248 034770 003 02 0 00 065101 ER3 AC,65101 ;RESULT IN AC IS INCORRECT + 6249 034771 312 03 0 00 036670 CAME AC+1,[XWD 751434,170174] ;IS RESULT IN AC+1 CORRECT? + 6250 034772 004 03 0 00 065101 ER4 AC+1,65101 ;RESULT IN AC+1 IS INCORRECT + 6251 034773 321 04 0 00 034764 JUMPL AC+2,E65100 ;LOOP ON ERROR SWITCH^ +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 38 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0166 + + 6252 SUBTTL DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST + 6253 + 6254 ;TEST ACCUMULATOR ADDRESSING + 6255 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6256 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6257 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6258 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6259 ;LEFT ZERO TIMES + 6260 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6261 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6262 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6263 ;IS IN AC + 6264 ;INADVERTENT SHIFTING OR PICKING UP OF + 6265 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6266 + 6267 777777 777776 AC=-2 + 6268 777777 777776 ZZ=-2 + 6269 ;SET UP ACCUMULATOR'S + 6270 REPEAT ^D7,< + 6271 ZZ=ZZ+2 + 6272 AC=AC+2 + 6273 MOVEI AC,ZZ ;AC NUMBER TO AC + 6274 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6275 > + 6276 + 6277 000000 ZZ=ZZ+2 + 6278 000000 AC=AC+2 + 6279 034774 201 00 0 00 000000 MOVEI AC,ZZ ;AC NUMBER TO AC + 6280 034775 201 01 0 00 000001 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6281 + 6282 + 6283 000002 ZZ=ZZ+2 + 6284 000002 AC=AC+2 + 6285 034776 201 02 0 00 000002 MOVEI AC,ZZ ;AC NUMBER TO AC + 6286 034777 201 03 0 00 000003 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6287 + 6288 + 6289 000004 ZZ=ZZ+2 + 6290 000004 AC=AC+2 + 6291 035000 201 04 0 00 000004 MOVEI AC,ZZ ;AC NUMBER TO AC + 6292 035001 201 05 0 00 000005 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6293 + 6294 + 6295 000006 ZZ=ZZ+2 + 6296 000006 AC=AC+2 + 6297 035002 201 06 0 00 000006 MOVEI AC,ZZ ;AC NUMBER TO AC + 6298 035003 201 07 0 00 000007 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6299 + 6300 + 6301 000010 ZZ=ZZ+2 + 6302 000010 AC=AC+2 + 6303 035004 201 10 0 00 000010 MOVEI AC,ZZ ;AC NUMBER TO AC + 6304 035005 201 11 0 00 000011 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6305 + 6306 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 38-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0167 + + 6307 000012 ZZ=ZZ+2 + 6308 000012 AC=AC+2 + 6309 035006 201 12 0 00 000012 MOVEI AC,ZZ ;AC NUMBER TO AC + 6310 035007 201 13 0 00 000013 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6311 + 6312 + 6313 000014 ZZ=ZZ+2 + 6314 000014 AC=AC+2 + 6315 035010 201 14 0 00 000014 MOVEI AC,ZZ ;AC NUMBER TO AC + 6316 035011 201 15 0 00 000015 MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 + 6317 + 6318 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 38-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0168 + + 6319 000001 AC=1 + 6320 SAVEAC (1,1)^ + 6321 035012 201 03 0 00 035012 MOVEI AC+2,. ;SETUP TESTPC + 6322 035013 202 03 0 00 030051 MOVEM AC+2,TESTPC + 6323 035014 201 03 0 00 000003 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6324 035015 202 03 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6325 + 6326 041400 SN=41400 + 6327 000014 AC=14 + 6328 000014 ZZ=14 + 6329 + 6330 ;TEST ROTC-ACCUMULATOR'S 7-14 + 6331 E41400: REPEAT ^D5,< + 6332 ;TEST ACCUMULATOR ADDRESSING + 6333 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6334 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6335 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6336 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6337 ;LEFT ZERO TIMES + 6338 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6339 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6340 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6341 ;IS IN AC + 6342 ;INADVERTENT SHIFTING OR PICKING UP OF + 6343 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6344 + 6345 SN=SN+1 + 6346 ZZ=ZZ-1 + 6347 AC=AC-1 + 6348 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6349 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6350 ER3 AC,SN ;INCORRECT AC + 6351 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6352 ER4 AC,SN ;INCORRECT AC+1 + 6353 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6354 > + 6355 + 6356 ;TEST ACCUMULATOR ADDRESSING + 6357 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6358 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6359 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6360 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6361 ;LEFT ZERO TIMES + 6362 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6363 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6364 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6365 ;IS IN AC + 6366 ;INADVERTENT SHIFTING OR PICKING UP OF + 6367 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6368 + 6369 041401 SN=SN+1 + 6370 000013 ZZ=ZZ-1 + 6371 000013 AC=AC-1 + 6372 035016 245 13 0 00 000000 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6373 035017 302 13 0 00 000013 CAIE AC,ZZ ;TEST FOR CORRECT AC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 38-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0169 + + 6374 035020 003 13 0 00 041401 ER3 AC,SN ;INCORRECT AC + 6375 035021 302 14 0 00 000014 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6376 035022 004 13 0 00 041401 ER4 AC,SN ;INCORRECT AC+1 + 6377 035023 321 15 0 00 035016 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6378 + 6379 + 6380 ;TEST ACCUMULATOR ADDRESSING + 6381 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6382 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6383 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6384 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6385 ;LEFT ZERO TIMES + 6386 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6387 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6388 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6389 ;IS IN AC + 6390 ;INADVERTENT SHIFTING OR PICKING UP OF + 6391 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6392 + 6393 041402 SN=SN+1 + 6394 000012 ZZ=ZZ-1 + 6395 000012 AC=AC-1 + 6396 035024 245 12 0 00 000000 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6397 035025 302 12 0 00 000012 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6398 035026 003 12 0 00 041402 ER3 AC,SN ;INCORRECT AC + 6399 035027 302 13 0 00 000013 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6400 035030 004 12 0 00 041402 ER4 AC,SN ;INCORRECT AC+1 + 6401 035031 321 14 0 00 035024 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6402 + 6403 + 6404 ;TEST ACCUMULATOR ADDRESSING + 6405 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6406 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6407 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6408 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6409 ;LEFT ZERO TIMES + 6410 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6411 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6412 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6413 ;IS IN AC + 6414 ;INADVERTENT SHIFTING OR PICKING UP OF + 6415 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6416 + 6417 041403 SN=SN+1 + 6418 000011 ZZ=ZZ-1 + 6419 000011 AC=AC-1 + 6420 035032 245 11 0 00 000000 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6421 035033 302 11 0 00 000011 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6422 035034 003 11 0 00 041403 ER3 AC,SN ;INCORRECT AC + 6423 035035 302 12 0 00 000012 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6424 035036 004 11 0 00 041403 ER4 AC,SN ;INCORRECT AC+1 + 6425 035037 321 13 0 00 035032 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6426 + 6427 + 6428 ;TEST ACCUMULATOR ADDRESSING +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 38-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0170 + + 6429 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6430 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6431 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6432 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6433 ;LEFT ZERO TIMES + 6434 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6435 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6436 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6437 ;IS IN AC + 6438 ;INADVERTENT SHIFTING OR PICKING UP OF + 6439 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6440 + 6441 041404 SN=SN+1 + 6442 000010 ZZ=ZZ-1 + 6443 000010 AC=AC-1 + 6444 035040 245 10 0 00 000000 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6445 035041 302 10 0 00 000010 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6446 035042 003 10 0 00 041404 ER3 AC,SN ;INCORRECT AC + 6447 035043 302 11 0 00 000011 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6448 035044 004 10 0 00 041404 ER4 AC,SN ;INCORRECT AC+1 + 6449 035045 321 12 0 00 035040 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6450 + 6451 + 6452 ;TEST ACCUMULATOR ADDRESSING + 6453 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6454 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6455 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6456 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6457 ;LEFT ZERO TIMES + 6458 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6459 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6460 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6461 ;IS IN AC + 6462 ;INADVERTENT SHIFTING OR PICKING UP OF + 6463 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6464 + 6465 041405 SN=SN+1 + 6466 000007 ZZ=ZZ-1 + 6467 000007 AC=AC-1 + 6468 035046 245 07 0 00 000000 ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + 6469 035047 302 07 0 00 000007 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6470 035050 003 07 0 00 041405 ER3 AC,SN ;INCORRECT AC + 6471 035051 302 10 0 00 000010 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6472 035052 004 07 0 00 041405 ER4 AC,SN ;INCORRECT AC+1 + 6473 035053 321 11 0 00 035046 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6474 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 39 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0171 + + 6475 000011 AC=11 + 6476 SAVEAC (1,1)^ + 6477 035054 201 13 0 00 035054 MOVEI AC+2,. ;SETUP TESTPC + 6478 035055 202 13 0 00 030051 MOVEM AC+2,TESTPC + 6479 035056 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6480 035057 202 13 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6481 + 6482 041500 SN=41500 + 6483 000012 AC=12 + 6484 000012 ZZ=12 + 6485 + 6486 ;TEST LSHC-ACCUMULATORS 5-12 + 6487 E41500: REPEAT ^D5,< + 6488 ;TEST ACCUMULATOR ADDRESSING + 6489 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6490 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6491 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6492 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6493 ;LEFT ZERO TIMES + 6494 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6495 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6496 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6497 ;IS IN AC + 6498 ;INADVERTENT SHIFTING OR PICKING UP OF + 6499 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6500 + 6501 SN=SN+1 + 6502 ZZ=ZZ-1 + 6503 AC=AC-1 + 6504 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6505 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6506 ER3 AC,SN ;INCORRECT AC + 6507 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6508 ER4 AC,SN ;INCORRECT AC+1 + 6509 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6510 > + 6511 + 6512 ;TEST ACCUMULATOR ADDRESSING + 6513 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6514 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6515 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6516 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6517 ;LEFT ZERO TIMES + 6518 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6519 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6520 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6521 ;IS IN AC + 6522 ;INADVERTENT SHIFTING OR PICKING UP OF + 6523 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6524 + 6525 041501 SN=SN+1 + 6526 000011 ZZ=ZZ-1 + 6527 000011 AC=AC-1 + 6528 035060 246 11 0 00 000000 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6529 035061 302 11 0 00 000011 CAIE AC,ZZ ;TEST FOR CORRECT AC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 39-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0172 + + 6530 035062 003 11 0 00 041501 ER3 AC,SN ;INCORRECT AC + 6531 035063 302 12 0 00 000012 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6532 035064 004 11 0 00 041501 ER4 AC,SN ;INCORRECT AC+1 + 6533 035065 321 13 0 00 035060 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6534 + 6535 + 6536 ;TEST ACCUMULATOR ADDRESSING + 6537 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6538 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6539 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6540 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6541 ;LEFT ZERO TIMES + 6542 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6543 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6544 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6545 ;IS IN AC + 6546 ;INADVERTENT SHIFTING OR PICKING UP OF + 6547 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6548 + 6549 041502 SN=SN+1 + 6550 000010 ZZ=ZZ-1 + 6551 000010 AC=AC-1 + 6552 035066 246 10 0 00 000000 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6553 035067 302 10 0 00 000010 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6554 035070 003 10 0 00 041502 ER3 AC,SN ;INCORRECT AC + 6555 035071 302 11 0 00 000011 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6556 035072 004 10 0 00 041502 ER4 AC,SN ;INCORRECT AC+1 + 6557 035073 321 12 0 00 035066 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6558 + 6559 + 6560 ;TEST ACCUMULATOR ADDRESSING + 6561 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6562 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6563 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6564 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6565 ;LEFT ZERO TIMES + 6566 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6567 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6568 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6569 ;IS IN AC + 6570 ;INADVERTENT SHIFTING OR PICKING UP OF + 6571 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6572 + 6573 041503 SN=SN+1 + 6574 000007 ZZ=ZZ-1 + 6575 000007 AC=AC-1 + 6576 035074 246 07 0 00 000000 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6577 035075 302 07 0 00 000007 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6578 035076 003 07 0 00 041503 ER3 AC,SN ;INCORRECT AC + 6579 035077 302 10 0 00 000010 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6580 035100 004 07 0 00 041503 ER4 AC,SN ;INCORRECT AC+1 + 6581 035101 321 11 0 00 035074 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6582 + 6583 + 6584 ;TEST ACCUMULATOR ADDRESSING +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 39-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0173 + + 6585 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6586 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6587 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6588 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6589 ;LEFT ZERO TIMES + 6590 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6591 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6592 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6593 ;IS IN AC + 6594 ;INADVERTENT SHIFTING OR PICKING UP OF + 6595 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6596 + 6597 041504 SN=SN+1 + 6598 000006 ZZ=ZZ-1 + 6599 000006 AC=AC-1 + 6600 035102 246 06 0 00 000000 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6601 035103 302 06 0 00 000006 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6602 035104 003 06 0 00 041504 ER3 AC,SN ;INCORRECT AC + 6603 035105 302 07 0 00 000007 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6604 035106 004 06 0 00 041504 ER4 AC,SN ;INCORRECT AC+1 + 6605 035107 321 10 0 00 035102 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6606 + 6607 + 6608 ;TEST ACCUMULATOR ADDRESSING + 6609 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6610 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6611 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6612 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6613 ;LEFT ZERO TIMES + 6614 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6615 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6616 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6617 ;IS IN AC + 6618 ;INADVERTENT SHIFTING OR PICKING UP OF + 6619 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6620 + 6621 041505 SN=SN+1 + 6622 000005 ZZ=ZZ-1 + 6623 000005 AC=AC-1 + 6624 035110 246 05 0 00 000000 LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6625 035111 302 05 0 00 000005 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6626 035112 003 05 0 00 041505 ER3 AC,SN ;INCORRECT AC + 6627 035113 302 06 0 00 000006 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6628 035114 004 05 0 00 041505 ER4 AC,SN ;INCORRECT AC+1 + 6629 035115 321 07 0 00 035110 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6630 + 6631 + 6632 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 40 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0174 + + 6633 000004 AC=4 + 6634 SAVEAC (1,1)^ + 6635 035116 201 06 0 00 035116 MOVEI AC+2,. ;SETUP TESTPC + 6636 035117 202 06 0 00 030051 MOVEM AC+2,TESTPC + 6637 035120 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6638 035121 202 06 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6639 + 6640 041600 SN=41600 + 6641 000005 AC=5 + 6642 000005 ZZ=5 + 6643 + 6644 ;TEST ASHC-ACCUMULATORS 0-5 + 6645 E41600: REPEAT ^D5,< + 6646 ;TEST ACCUMULATOR ADDRESSING + 6647 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6648 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6649 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6650 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6651 ;LEFT ZERO TIMES + 6652 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6653 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6654 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6655 ;IS IN AC + 6656 ;INADVERTENT SHIFTING OR PICKING UP OF + 6657 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6658 + 6659 SN=SN+1 + 6660 ZZ=ZZ-1 + 6661 AC=AC-1 + 6662 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6663 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6664 ER3 AC,SN ;INCORRECT AC + 6665 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6666 ER4 AC+1,SN ;INCORRECT AC+1 + 6667 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6668 > + 6669 + 6670 ;TEST ACCUMULATOR ADDRESSING + 6671 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6672 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6673 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6674 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6675 ;LEFT ZERO TIMES + 6676 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6677 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6678 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6679 ;IS IN AC + 6680 ;INADVERTENT SHIFTING OR PICKING UP OF + 6681 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6682 + 6683 041601 SN=SN+1 + 6684 000004 ZZ=ZZ-1 + 6685 000004 AC=AC-1 + 6686 035122 244 04 0 00 000000 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6687 035123 302 04 0 00 000004 CAIE AC,ZZ ;TEST FOR CORRECT AC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 40-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0175 + + 6688 035124 003 04 0 00 041601 ER3 AC,SN ;INCORRECT AC + 6689 035125 302 05 0 00 000005 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6690 035126 004 05 0 00 041601 ER4 AC+1,SN ;INCORRECT AC+1 + 6691 035127 321 06 0 00 035122 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6692 + 6693 + 6694 ;TEST ACCUMULATOR ADDRESSING + 6695 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6696 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6697 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6698 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6699 ;LEFT ZERO TIMES + 6700 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6701 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6702 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6703 ;IS IN AC + 6704 ;INADVERTENT SHIFTING OR PICKING UP OF + 6705 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6706 + 6707 041602 SN=SN+1 + 6708 000003 ZZ=ZZ-1 + 6709 000003 AC=AC-1 + 6710 035130 244 03 0 00 000000 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6711 035131 302 03 0 00 000003 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6712 035132 003 03 0 00 041602 ER3 AC,SN ;INCORRECT AC + 6713 035133 302 04 0 00 000004 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6714 035134 004 04 0 00 041602 ER4 AC+1,SN ;INCORRECT AC+1 + 6715 035135 321 05 0 00 035130 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6716 + 6717 + 6718 ;TEST ACCUMULATOR ADDRESSING + 6719 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6720 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6721 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6722 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6723 ;LEFT ZERO TIMES + 6724 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6725 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6726 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6727 ;IS IN AC + 6728 ;INADVERTENT SHIFTING OR PICKING UP OF + 6729 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6730 + 6731 041603 SN=SN+1 + 6732 000002 ZZ=ZZ-1 + 6733 000002 AC=AC-1 + 6734 035136 244 02 0 00 000000 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6735 035137 302 02 0 00 000002 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6736 035140 003 02 0 00 041603 ER3 AC,SN ;INCORRECT AC + 6737 035141 302 03 0 00 000003 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6738 035142 004 03 0 00 041603 ER4 AC+1,SN ;INCORRECT AC+1 + 6739 035143 321 04 0 00 035136 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6740 + 6741 + 6742 ;TEST ACCUMULATOR ADDRESSING +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 40-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0176 + + 6743 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6744 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6745 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6746 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6747 ;LEFT ZERO TIMES + 6748 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6749 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6750 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6751 ;IS IN AC + 6752 ;INADVERTENT SHIFTING OR PICKING UP OF + 6753 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6754 + 6755 041604 SN=SN+1 + 6756 000001 ZZ=ZZ-1 + 6757 000001 AC=AC-1 + 6758 035144 244 01 0 00 000000 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6759 035145 302 01 0 00 000001 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6760 035146 003 01 0 00 041604 ER3 AC,SN ;INCORRECT AC + 6761 035147 302 02 0 00 000002 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6762 035150 004 02 0 00 041604 ER4 AC+1,SN ;INCORRECT AC+1 + 6763 035151 321 03 0 00 035144 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6764 + 6765 + 6766 ;TEST ACCUMULATOR ADDRESSING + 6767 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6768 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6769 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6770 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6771 ;LEFT ZERO TIMES + 6772 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6773 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6774 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6775 ;IS IN AC + 6776 ;INADVERTENT SHIFTING OR PICKING UP OF + 6777 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6778 + 6779 041605 SN=SN+1 + 6780 000000 ZZ=ZZ-1 + 6781 000000 AC=AC-1 + 6782 035152 244 00 0 00 000000 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6783 035153 302 00 0 00 000000 CAIE AC,ZZ ;TEST FOR CORRECT AC + 6784 035154 003 00 0 00 041605 ER3 AC,SN ;INCORRECT AC + 6785 035155 302 01 0 00 000001 CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + 6786 035156 004 01 0 00 041605 ER4 AC+1,SN ;INCORRECT AC+1 + 6787 035157 321 02 0 00 035152 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6788 + 6789 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 40-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST SEQ 0177 + + 6790 ; AC=17 + 6791 ; SAVEAC (1,1) + 6792 + 6793 041700 SN=41700 + 6794 + 6795 ;TEST ASHC-ACUMMULATORS 17-0 + 6796 E41700: REPEAT ^D0,< + 6797 ;TEST ACCUMULATOR ADDRESSING + 6798 ;TEST THE ABILITY OF ROTC,LSHC,ASHC + 6799 ;TO ADDRESS THE CORRECT ACCUMULATORS + 6800 ;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS + 6801 ;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING + 6802 ;LEFT ZERO TIMES + 6803 ;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER + 6804 ;FROM AC'S ADDRESSED BY INSTRUCTION + 6805 ;THE NUMBER OF THE AC REFERENCED IN ERROR + 6806 ;IS IN AC + 6807 ;INADVERTENT SHIFTING OR PICKING UP OF + 6808 ;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + 6809 + 6810 SN=SN+1 + 6811 ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + 6812 CAIE AC,17 ;TEST FOR CORRECT AC + 6813 ER3 AC,SN ;INCORRECT AC + 6814 CAIE AC+1,0 ;TEST FOR CORRECT AC+1 + 6815 ER4 AC+1,SN ;INCORRECT AC+1 + 6816 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH + 6817 > +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0178 + + 6818 SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST + 6819 + 6820 000012 AC=12 + 6821 SAVEAC (1,1)^ + 6822 035160 201 14 0 00 035160 MOVEI AC+2,. ;SETUP TESTPC + 6823 035161 202 14 0 00 030051 MOVEM AC+2,TESTPC + 6824 035162 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6825 035163 202 14 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6826 + 6827 042000 SN=42000 + 6828 030303 WW=030303 ;USED FOR COMPARISON + 6829 030303 XX=030303 ;SELECTED PATTERN + 6830 000000 ZZ=0 + 6831 + 6832 ;ROT LEFT (011)-TEST AC,AC+1 + 6833 E42000: REPEAT ^D4,< + 6834 ;TEST SELECTED BIT CONFIGURATIONS + 6835 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6836 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6837 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6838 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6839 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6840 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6841 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 6842 ; AC CONTAINS BIT(S) THAT FAILED + 6843 + 6844 SN=SN+1 + 6845 WW=WW+WW + 6846 ZZ=ZZ+1 + 6847 SETACS (WW,XX) ;SET UP ACCUMULATORS + 6848 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 6849 XOR AC-1,AC ;COMPARE AC + 6850 SKIPE &17 ;SHOULD =0 + 6851 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 6852 XOR AC-2,&17 ;COMPARE AC+1 + 6853 SKIPE &17 ;SHOULD =0 + 6854 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 6855 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 6856 > + 6857 + 6858 ;TEST SELECTED BIT CONFIGURATIONS + 6859 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6860 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6861 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6862 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6863 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6864 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6865 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 6866 ; AC CONTAINS BIT(S) THAT FAILED + 6867 + 6868 042001 SN=SN+1 + 6869 060606 WW=WW+WW + 6870 000001 ZZ=ZZ+1 + 6871 SETACS (WW,XX)^ + 6872 035164 201 11 0 00 060606 MOVEI AC-1,WW ;SETUP AC-1 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0179 + + 6873 035165 505 11 0 00 060606 HRLI AC-1,WW ;FOR COMPARISION + 6874 035166 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 6875 035167 201 12 0 00 030303 MOVEI AC,XX ;SETUP AC RIGHT + 6876 035170 505 12 0 00 030303 HRLI AC,XX ;SETUP AC LEFT + 6877 035171 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ ;SET UP ACCUMULATORS + 6878 035172 245 12 0 00 000001 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 6879 035173 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 6880 035174 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 6881 035175 003 12 0 00 042001 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 6882 035176 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 6883 035177 332 00 0 00 000010 SKIPE &17 ;SHOULD =0 + 6884 035200 004 13 0 00 042001 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 6885 035201 321 14 0 00 035164 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 6886 + 6887 + 6888 ;TEST SELECTED BIT CONFIGURATIONS + 6889 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6890 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6891 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6892 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6893 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6894 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6895 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 6896 ; AC CONTAINS BIT(S) THAT FAILED + 6897 + 6898 042002 SN=SN+1 + 6899 141414 WW=WW+WW + 6900 000002 ZZ=ZZ+1 + 6901 SETACS (WW,XX)^ + 6902 035202 201 11 0 00 141414 MOVEI AC-1,WW ;SETUP AC-1 + 6903 035203 505 11 0 00 141414 HRLI AC-1,WW ;FOR COMPARISION + 6904 035204 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 6905 035205 201 12 0 00 030303 MOVEI AC,XX ;SETUP AC RIGHT + 6906 035206 505 12 0 00 030303 HRLI AC,XX ;SETUP AC LEFT + 6907 035207 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ ;SET UP ACCUMULATORS + 6908 035210 245 12 0 00 000002 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 6909 035211 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 6910 035212 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 6911 035213 003 12 0 00 042002 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 6912 035214 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 6913 035215 332 00 0 00 000010 SKIPE &17 ;SHOULD =0 + 6914 035216 004 13 0 00 042002 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 6915 035217 321 14 0 00 035202 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 6916 + 6917 + 6918 ;TEST SELECTED BIT CONFIGURATIONS + 6919 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6920 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6921 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6922 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6923 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6924 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6925 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 6926 ; AC CONTAINS BIT(S) THAT FAILED + 6927 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0180 + + 6928 042003 SN=SN+1 + 6929 303030 WW=WW+WW + 6930 000003 ZZ=ZZ+1 + 6931 SETACS (WW,XX)^ + 6932 035220 201 11 0 00 303030 MOVEI AC-1,WW ;SETUP AC-1 + 6933 035221 505 11 0 00 303030 HRLI AC-1,WW ;FOR COMPARISION + 6934 035222 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 6935 035223 201 12 0 00 030303 MOVEI AC,XX ;SETUP AC RIGHT + 6936 035224 505 12 0 00 030303 HRLI AC,XX ;SETUP AC LEFT + 6937 035225 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ ;SET UP ACCUMULATORS + 6938 035226 245 12 0 00 000003 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 6939 035227 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 6940 035230 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 6941 035231 003 12 0 00 042003 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 6942 035232 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 6943 035233 332 00 0 00 000010 SKIPE &17 ;SHOULD =0 + 6944 035234 004 13 0 00 042003 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 6945 035235 321 14 0 00 035220 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 6946 + 6947 + 6948 ;TEST SELECTED BIT CONFIGURATIONS + 6949 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6950 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6951 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6952 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6953 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6954 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6955 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 6956 ; AC CONTAINS BIT(S) THAT FAILED + 6957 + 6958 042004 SN=SN+1 + 6959 606060 WW=WW+WW + 6960 000004 ZZ=ZZ+1 + 6961 SETACS (WW,XX)^ + 6962 035236 201 11 0 00 606060 MOVEI AC-1,WW ;SETUP AC-1 + 6963 035237 505 11 0 00 606060 HRLI AC-1,WW ;FOR COMPARISION + 6964 035240 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 6965 035241 201 12 0 00 030303 MOVEI AC,XX ;SETUP AC RIGHT + 6966 035242 505 12 0 00 030303 HRLI AC,XX ;SETUP AC LEFT + 6967 035243 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ ;SET UP ACCUMULATORS + 6968 035244 245 12 0 00 000004 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 6969 035245 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 6970 035246 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 6971 035247 003 12 0 00 042004 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 6972 035250 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 6973 035251 332 00 0 00 000010 SKIPE &17 ;SHOULD =0 + 6974 035252 004 13 0 00 042004 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 6975 035253 321 14 0 00 035236 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 6976 + 6977 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0181 + + 6978 000014 AC=14 + 6979 SAVEAC (1,1)^ + 6980 035254 201 16 0 00 035254 MOVEI AC+2,. ;SETUP TESTPC + 6981 035255 202 16 0 00 030051 MOVEM AC+2,TESTPC + 6982 035256 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6983 035257 202 16 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6984 + 6985 042100 SN=42100 + 6986 606060 WW=606060 ;USED FOR COMPARISON + 6987 606060 XX=606060 ;SELECTED PATTERN + 6988 000000 ZZ=0 + 6989 + 6990 ;ROT RIGHT (110)-TEST AC,AC+1 + 6991 E42100: REPEAT ^D4,< + 6992 ;TEST SELECTED BIT CONFIGURATIONS + 6993 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 6994 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 6995 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 6996 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 6997 ; AC-1 CONTAINS BIT(S) THAT FAILED + 6998 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 6999 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7000 ; AC CONTAINS BIT(S) THAT FAILED + 7001 + 7002 SN=SN+1 + 7003 WW=WW/2 + 7004 ZZ=ZZ-1 + 7005 SETACS (WW,XX) + 7006 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7007 XOR AC-1,AC ;COMPARE AC + 7008 SKIPE &17 ;SHOULD =0 + 7009 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7010 XOR AC-2,&17 ;COMPARE AC+1 + 7011 SKIPE &17 ;SHOULD =0 + 7012 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7013 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7014 > + 7015 + 7016 ;TEST SELECTED BIT CONFIGURATIONS + 7017 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7018 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7019 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7020 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7021 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7022 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7023 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7024 ; AC CONTAINS BIT(S) THAT FAILED + 7025 + 7026 042101 SN=SN+1 + 7027 303030 WW=WW/2 + 7028 777777 777777 ZZ=ZZ-1 + 7029 SETACS (WW,XX)^ + 7030 035260 201 13 0 00 303030 MOVEI AC-1,WW ;SETUP AC-1 + 7031 035261 505 13 0 00 303030 HRLI AC-1,WW ;FOR COMPARISION + 7032 035262 200 12 0 00 000013 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0182 + + 7033 035263 201 14 0 00 606060 MOVEI AC,XX ;SETUP AC RIGHT + 7034 035264 505 14 0 00 606060 HRLI AC,XX ;SETUP AC LEFT + 7035 035265 202 14 0 00 000015 MOVEM AC,&17 ;SETUP AC2^ + 7036 035266 245 14 0 00 777777 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7037 035267 430 13 0 00 000014 XOR AC-1,AC ;COMPARE AC + 7038 035270 332 00 0 00 000013 SKIPE &17 ;SHOULD =0 + 7039 035271 003 14 0 00 042101 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7040 035272 430 12 0 00 000015 XOR AC-2,&17 ;COMPARE AC+1 + 7041 035273 332 00 0 00 000012 SKIPE &17 ;SHOULD =0 + 7042 035274 004 15 0 00 042101 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7043 035275 321 16 0 00 035260 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7044 + 7045 + 7046 ;TEST SELECTED BIT CONFIGURATIONS + 7047 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7048 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7049 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7050 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7051 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7052 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7053 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7054 ; AC CONTAINS BIT(S) THAT FAILED + 7055 + 7056 042102 SN=SN+1 + 7057 141414 WW=WW/2 + 7058 777777 777776 ZZ=ZZ-1 + 7059 SETACS (WW,XX)^ + 7060 035276 201 13 0 00 141414 MOVEI AC-1,WW ;SETUP AC-1 + 7061 035277 505 13 0 00 141414 HRLI AC-1,WW ;FOR COMPARISION + 7062 035300 200 12 0 00 000013 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7063 035301 201 14 0 00 606060 MOVEI AC,XX ;SETUP AC RIGHT + 7064 035302 505 14 0 00 606060 HRLI AC,XX ;SETUP AC LEFT + 7065 035303 202 14 0 00 000015 MOVEM AC,&17 ;SETUP AC2^ + 7066 035304 245 14 0 00 777776 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7067 035305 430 13 0 00 000014 XOR AC-1,AC ;COMPARE AC + 7068 035306 332 00 0 00 000013 SKIPE &17 ;SHOULD =0 + 7069 035307 003 14 0 00 042102 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7070 035310 430 12 0 00 000015 XOR AC-2,&17 ;COMPARE AC+1 + 7071 035311 332 00 0 00 000012 SKIPE &17 ;SHOULD =0 + 7072 035312 004 15 0 00 042102 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7073 035313 321 16 0 00 035276 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7074 + 7075 + 7076 ;TEST SELECTED BIT CONFIGURATIONS + 7077 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7078 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7079 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7080 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7081 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7082 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7083 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7084 ; AC CONTAINS BIT(S) THAT FAILED + 7085 + 7086 042103 SN=SN+1 + 7087 060606 WW=WW/2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 41-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0183 + + 7088 777777 777775 ZZ=ZZ-1 + 7089 SETACS (WW,XX)^ + 7090 035314 201 13 0 00 060606 MOVEI AC-1,WW ;SETUP AC-1 + 7091 035315 505 13 0 00 060606 HRLI AC-1,WW ;FOR COMPARISION + 7092 035316 200 12 0 00 000013 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7093 035317 201 14 0 00 606060 MOVEI AC,XX ;SETUP AC RIGHT + 7094 035320 505 14 0 00 606060 HRLI AC,XX ;SETUP AC LEFT + 7095 035321 202 14 0 00 000015 MOVEM AC,&17 ;SETUP AC2^ + 7096 035322 245 14 0 00 777775 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7097 035323 430 13 0 00 000014 XOR AC-1,AC ;COMPARE AC + 7098 035324 332 00 0 00 000013 SKIPE &17 ;SHOULD =0 + 7099 035325 003 14 0 00 042103 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7100 035326 430 12 0 00 000015 XOR AC-2,&17 ;COMPARE AC+1 + 7101 035327 332 00 0 00 000012 SKIPE &17 ;SHOULD =0 + 7102 035330 004 15 0 00 042103 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7103 035331 321 16 0 00 035314 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7104 + 7105 + 7106 ;TEST SELECTED BIT CONFIGURATIONS + 7107 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7108 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7109 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7110 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7111 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7112 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7113 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7114 ; AC CONTAINS BIT(S) THAT FAILED + 7115 + 7116 042104 SN=SN+1 + 7117 030303 WW=WW/2 + 7118 777777 777774 ZZ=ZZ-1 + 7119 SETACS (WW,XX)^ + 7120 035332 201 13 0 00 030303 MOVEI AC-1,WW ;SETUP AC-1 + 7121 035333 505 13 0 00 030303 HRLI AC-1,WW ;FOR COMPARISION + 7122 035334 200 12 0 00 000013 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7123 035335 201 14 0 00 606060 MOVEI AC,XX ;SETUP AC RIGHT + 7124 035336 505 14 0 00 606060 HRLI AC,XX ;SETUP AC LEFT + 7125 035337 202 14 0 00 000015 MOVEM AC,&17 ;SETUP AC2^ + 7126 035340 245 14 0 00 777774 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7127 035341 430 13 0 00 000014 XOR AC-1,AC ;COMPARE AC + 7128 035342 332 00 0 00 000013 SKIPE &17 ;SHOULD =0 + 7129 035343 003 14 0 00 042104 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7130 035344 430 12 0 00 000015 XOR AC-2,&17 ;COMPARE AC+1 + 7131 035345 332 00 0 00 000012 SKIPE &17 ;SHOULD =0 + 7132 035346 004 15 0 00 042104 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7133 035347 321 16 0 00 035332 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7134 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0184 + + 7135 000013 AC=13 + 7136 SAVEAC (1,1)^ + 7137 035350 201 15 0 00 035350 MOVEI AC+2,. ;SETUP TESTPC + 7138 035351 202 15 0 00 030051 MOVEM AC+2,TESTPC + 7139 035352 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7140 035353 202 15 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7141 + 7142 042200 SN=42200 + 7143 050505 WW=050505 ;USED FOR COMPARISON + 7144 050505 XX=050505 ;SELECTED PATTERN + 7145 000000 ZZ=0 + 7146 + 7147 ;ROT LEFT (101)-TEST AC,AC+1 + 7148 E42200: REPEAT ^D3,< + 7149 ;TEST SELECTED BIT CONFIGURATIONS + 7150 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7151 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7152 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7153 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7154 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7155 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7156 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7157 ; AC CONTAINS BIT(S) THAT FAILED + 7158 + 7159 SN=SN+1 + 7160 WW=WW+WW + 7161 ZZ=ZZ+1 + 7162 SETACS (WW,XX) + 7163 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7164 XOR AC-1,AC ;COMPARE AC + 7165 SKIPE &17 ;SHOULD = 0 + 7166 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7167 XOR AC-2,&17 ;COMPARE AC+1 + 7168 SKIPE &17 ;SHOULD = 0 + 7169 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7170 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7171 > + 7172 + 7173 ;TEST SELECTED BIT CONFIGURATIONS + 7174 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7175 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7176 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7177 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7178 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7179 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7180 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7181 ; AC CONTAINS BIT(S) THAT FAILED + 7182 + 7183 042201 SN=SN+1 + 7184 121212 WW=WW+WW + 7185 000001 ZZ=ZZ+1 + 7186 SETACS (WW,XX)^ + 7187 035354 201 12 0 00 121212 MOVEI AC-1,WW ;SETUP AC-1 + 7188 035355 505 12 0 00 121212 HRLI AC-1,WW ;FOR COMPARISION + 7189 035356 200 11 0 00 000012 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0185 + + 7190 035357 201 13 0 00 050505 MOVEI AC,XX ;SETUP AC RIGHT + 7191 035360 505 13 0 00 050505 HRLI AC,XX ;SETUP AC LEFT + 7192 035361 202 13 0 00 000014 MOVEM AC,&17 ;SETUP AC2^ + 7193 035362 245 13 0 00 000001 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7194 035363 430 12 0 00 000013 XOR AC-1,AC ;COMPARE AC + 7195 035364 332 00 0 00 000012 SKIPE &17 ;SHOULD = 0 + 7196 035365 003 13 0 00 042201 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7197 035366 430 11 0 00 000014 XOR AC-2,&17 ;COMPARE AC+1 + 7198 035367 332 00 0 00 000011 SKIPE &17 ;SHOULD = 0 + 7199 035370 004 14 0 00 042201 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7200 035371 321 15 0 00 035354 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7201 + 7202 + 7203 ;TEST SELECTED BIT CONFIGURATIONS + 7204 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7205 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7206 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7207 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7208 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7209 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7210 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7211 ; AC CONTAINS BIT(S) THAT FAILED + 7212 + 7213 042202 SN=SN+1 + 7214 242424 WW=WW+WW + 7215 000002 ZZ=ZZ+1 + 7216 SETACS (WW,XX)^ + 7217 035372 201 12 0 00 242424 MOVEI AC-1,WW ;SETUP AC-1 + 7218 035373 505 12 0 00 242424 HRLI AC-1,WW ;FOR COMPARISION + 7219 035374 200 11 0 00 000012 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7220 035375 201 13 0 00 050505 MOVEI AC,XX ;SETUP AC RIGHT + 7221 035376 505 13 0 00 050505 HRLI AC,XX ;SETUP AC LEFT + 7222 035377 202 13 0 00 000014 MOVEM AC,&17 ;SETUP AC2^ + 7223 035400 245 13 0 00 000002 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7224 035401 430 12 0 00 000013 XOR AC-1,AC ;COMPARE AC + 7225 035402 332 00 0 00 000012 SKIPE &17 ;SHOULD = 0 + 7226 035403 003 13 0 00 042202 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7227 035404 430 11 0 00 000014 XOR AC-2,&17 ;COMPARE AC+1 + 7228 035405 332 00 0 00 000011 SKIPE &17 ;SHOULD = 0 + 7229 035406 004 14 0 00 042202 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7230 035407 321 15 0 00 035372 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7231 + 7232 + 7233 ;TEST SELECTED BIT CONFIGURATIONS + 7234 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7235 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7236 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7237 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7238 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7239 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7240 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7241 ; AC CONTAINS BIT(S) THAT FAILED + 7242 + 7243 042203 SN=SN+1 + 7244 505050 WW=WW+WW +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0186 + + 7245 000003 ZZ=ZZ+1 + 7246 SETACS (WW,XX)^ + 7247 035410 201 12 0 00 505050 MOVEI AC-1,WW ;SETUP AC-1 + 7248 035411 505 12 0 00 505050 HRLI AC-1,WW ;FOR COMPARISION + 7249 035412 200 11 0 00 000012 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7250 035413 201 13 0 00 050505 MOVEI AC,XX ;SETUP AC RIGHT + 7251 035414 505 13 0 00 050505 HRLI AC,XX ;SETUP AC LEFT + 7252 035415 202 13 0 00 000014 MOVEM AC,&17 ;SETUP AC2^ + 7253 035416 245 13 0 00 000003 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7254 035417 430 12 0 00 000013 XOR AC-1,AC ;COMPARE AC + 7255 035420 332 00 0 00 000012 SKIPE &17 ;SHOULD = 0 + 7256 035421 003 13 0 00 042203 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7257 035422 430 11 0 00 000014 XOR AC-2,&17 ;COMPARE AC+1 + 7258 035423 332 00 0 00 000011 SKIPE &17 ;SHOULD = 0 + 7259 035424 004 14 0 00 042203 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7260 035425 321 15 0 00 035410 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7261 + 7262 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0187 + + 7263 000012 AC=12 + 7264 SAVEAC (1,1)^ + 7265 035426 201 14 0 00 035426 MOVEI AC+2,. ;SETUP TESTPC + 7266 035427 202 14 0 00 030051 MOVEM AC+2,TESTPC + 7267 035430 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7268 035431 202 14 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7269 + 7270 042300 SN=42300 + 7271 505050 WW=505050 ;USED FOR COMPARISON + 7272 505050 XX=505050 ;SELECTED PATTERN + 7273 000000 ZZ=0 + 7274 + 7275 ;ROT RIGHT (101)-TEST AC,AC+1 + 7276 E42300: REPEAT ^D3,< + 7277 ;TEST SELECTED BIT CONFIGURATIONS + 7278 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7279 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7280 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7281 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7282 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7283 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7284 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7285 ; AC CONTAINS BIT(S) THAT FAILED + 7286 + 7287 SN=SN+1 + 7288 WW=WW/2 + 7289 ZZ=ZZ-1 + 7290 SETACS (WW,XX) + 7291 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7292 XOR AC-1,AC ;COMPARE AC + 7293 SKIPE &17 ;SHOULD =0 + 7294 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7295 XOR AC-2,&17 ;COMPARE AC+1 + 7296 SKIPE &17 ;SHOULD = 0 + 7297 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7298 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7299 > + 7300 + 7301 ;TEST SELECTED BIT CONFIGURATIONS + 7302 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7303 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7304 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7305 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7306 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7307 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7308 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7309 ; AC CONTAINS BIT(S) THAT FAILED + 7310 + 7311 042301 SN=SN+1 + 7312 242424 WW=WW/2 + 7313 777777 777777 ZZ=ZZ-1 + 7314 SETACS (WW,XX)^ + 7315 035432 201 11 0 00 242424 MOVEI AC-1,WW ;SETUP AC-1 + 7316 035433 505 11 0 00 242424 HRLI AC-1,WW ;FOR COMPARISION + 7317 035434 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0188 + + 7318 035435 201 12 0 00 505050 MOVEI AC,XX ;SETUP AC RIGHT + 7319 035436 505 12 0 00 505050 HRLI AC,XX ;SETUP AC LEFT + 7320 035437 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ + 7321 035440 245 12 0 00 777777 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7322 035441 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 7323 035442 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 7324 035443 003 12 0 00 042301 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7325 035444 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 7326 035445 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7327 035446 004 13 0 00 042301 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7328 035447 321 14 0 00 035432 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7329 + 7330 + 7331 ;TEST SELECTED BIT CONFIGURATIONS + 7332 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7333 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7334 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7335 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7336 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7337 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7338 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7339 ; AC CONTAINS BIT(S) THAT FAILED + 7340 + 7341 042302 SN=SN+1 + 7342 121212 WW=WW/2 + 7343 777777 777776 ZZ=ZZ-1 + 7344 SETACS (WW,XX)^ + 7345 035450 201 11 0 00 121212 MOVEI AC-1,WW ;SETUP AC-1 + 7346 035451 505 11 0 00 121212 HRLI AC-1,WW ;FOR COMPARISION + 7347 035452 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7348 035453 201 12 0 00 505050 MOVEI AC,XX ;SETUP AC RIGHT + 7349 035454 505 12 0 00 505050 HRLI AC,XX ;SETUP AC LEFT + 7350 035455 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ + 7351 035456 245 12 0 00 777776 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7352 035457 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 7353 035460 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 7354 035461 003 12 0 00 042302 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7355 035462 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 7356 035463 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7357 035464 004 13 0 00 042302 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7358 035465 321 14 0 00 035450 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7359 + 7360 + 7361 ;TEST SELECTED BIT CONFIGURATIONS + 7362 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7363 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7364 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7365 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7366 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7367 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7368 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7369 ; AC CONTAINS BIT(S) THAT FAILED + 7370 + 7371 042303 SN=SN+1 + 7372 050505 WW=WW/2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 42-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0189 + + 7373 777777 777775 ZZ=ZZ-1 + 7374 SETACS (WW,XX)^ + 7375 035466 201 11 0 00 050505 MOVEI AC-1,WW ;SETUP AC-1 + 7376 035467 505 11 0 00 050505 HRLI AC-1,WW ;FOR COMPARISION + 7377 035470 200 10 0 00 000011 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7378 035471 201 12 0 00 505050 MOVEI AC,XX ;SETUP AC RIGHT + 7379 035472 505 12 0 00 505050 HRLI AC,XX ;SETUP AC LEFT + 7380 035473 202 12 0 00 000013 MOVEM AC,&17 ;SETUP AC2^ + 7381 035474 245 12 0 00 777775 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7382 035475 430 11 0 00 000012 XOR AC-1,AC ;COMPARE AC + 7383 035476 332 00 0 00 000011 SKIPE &17 ;SHOULD =0 + 7384 035477 003 12 0 00 042303 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7385 035500 430 10 0 00 000013 XOR AC-2,&17 ;COMPARE AC+1 + 7386 035501 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7387 035502 004 13 0 00 042303 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7388 035503 321 14 0 00 035466 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7389 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0190 + + 7390 000011 AC=11 + 7391 SAVEAC (1,1)^ + 7392 035504 201 13 0 00 035504 MOVEI AC+2,. ;SETUP TESTPC + 7393 035505 202 13 0 00 030051 MOVEM AC+2,TESTPC + 7394 035506 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7395 035507 202 13 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7396 + 7397 042400 SN=42400 + 7398 070707 WW=070707 ;USED FOR COMPARISON + 7399 070707 XX=070707 ;SELECTED PATTERN + 7400 000000 ZZ=0 + 7401 + 7402 ;ROT LEFT (111)-TEST AC,AC+1 + 7403 E42400: REPEAT ^D3,< + 7404 ;TEST SELECTED BIT CONFIGURATIONS + 7405 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7406 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7407 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7408 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7409 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7410 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7411 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7412 ; AC CONTAINS BIT(S) THAT FAILED + 7413 + 7414 SN=SN+1 + 7415 WW=WW+WW + 7416 ZZ=ZZ+1 + 7417 SETACS (WW,XX) + 7418 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7419 XOR AC-1,AC ;COMPARE AC + 7420 SKIPE &17 ;SHOULD = 0 + 7421 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7422 XOR AC-2,&17 ;COMPARE AC+1 + 7423 SKIPE &17 ;SHOULD = 0 + 7424 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7425 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7426 > + 7427 + 7428 ;TEST SELECTED BIT CONFIGURATIONS + 7429 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7430 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7431 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7432 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7433 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7434 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7435 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7436 ; AC CONTAINS BIT(S) THAT FAILED + 7437 + 7438 042401 SN=SN+1 + 7439 161616 WW=WW+WW + 7440 000001 ZZ=ZZ+1 + 7441 SETACS (WW,XX)^ + 7442 035510 201 10 0 00 161616 MOVEI AC-1,WW ;SETUP AC-1 + 7443 035511 505 10 0 00 161616 HRLI AC-1,WW ;FOR COMPARISION + 7444 035512 200 07 0 00 000010 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0191 + + 7445 035513 201 11 0 00 070707 MOVEI AC,XX ;SETUP AC RIGHT + 7446 035514 505 11 0 00 070707 HRLI AC,XX ;SETUP AC LEFT + 7447 035515 202 11 0 00 000012 MOVEM AC,&17 ;SETUP AC2^ + 7448 035516 245 11 0 00 000001 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7449 035517 430 10 0 00 000011 XOR AC-1,AC ;COMPARE AC + 7450 035520 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7451 035521 003 11 0 00 042401 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7452 035522 430 07 0 00 000012 XOR AC-2,&17 ;COMPARE AC+1 + 7453 035523 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7454 035524 004 12 0 00 042401 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7455 035525 321 13 0 00 035510 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7456 + 7457 + 7458 ;TEST SELECTED BIT CONFIGURATIONS + 7459 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7460 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7461 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7462 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7463 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7464 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7465 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7466 ; AC CONTAINS BIT(S) THAT FAILED + 7467 + 7468 042402 SN=SN+1 + 7469 343434 WW=WW+WW + 7470 000002 ZZ=ZZ+1 + 7471 SETACS (WW,XX)^ + 7472 035526 201 10 0 00 343434 MOVEI AC-1,WW ;SETUP AC-1 + 7473 035527 505 10 0 00 343434 HRLI AC-1,WW ;FOR COMPARISION + 7474 035530 200 07 0 00 000010 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7475 035531 201 11 0 00 070707 MOVEI AC,XX ;SETUP AC RIGHT + 7476 035532 505 11 0 00 070707 HRLI AC,XX ;SETUP AC LEFT + 7477 035533 202 11 0 00 000012 MOVEM AC,&17 ;SETUP AC2^ + 7478 035534 245 11 0 00 000002 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7479 035535 430 10 0 00 000011 XOR AC-1,AC ;COMPARE AC + 7480 035536 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7481 035537 003 11 0 00 042402 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7482 035540 430 07 0 00 000012 XOR AC-2,&17 ;COMPARE AC+1 + 7483 035541 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7484 035542 004 12 0 00 042402 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7485 035543 321 13 0 00 035526 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7486 + 7487 + 7488 ;TEST SELECTED BIT CONFIGURATIONS + 7489 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7490 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7491 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7492 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7493 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7494 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7495 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7496 ; AC CONTAINS BIT(S) THAT FAILED + 7497 + 7498 042403 SN=SN+1 + 7499 707070 WW=WW+WW +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0192 + + 7500 000003 ZZ=ZZ+1 + 7501 SETACS (WW,XX)^ + 7502 035544 201 10 0 00 707070 MOVEI AC-1,WW ;SETUP AC-1 + 7503 035545 505 10 0 00 707070 HRLI AC-1,WW ;FOR COMPARISION + 7504 035546 200 07 0 00 000010 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7505 035547 201 11 0 00 070707 MOVEI AC,XX ;SETUP AC RIGHT + 7506 035550 505 11 0 00 070707 HRLI AC,XX ;SETUP AC LEFT + 7507 035551 202 11 0 00 000012 MOVEM AC,&17 ;SETUP AC2^ + 7508 035552 245 11 0 00 000003 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7509 035553 430 10 0 00 000011 XOR AC-1,AC ;COMPARE AC + 7510 035554 332 00 0 00 000010 SKIPE &17 ;SHOULD = 0 + 7511 035555 003 11 0 00 042403 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7512 035556 430 07 0 00 000012 XOR AC-2,&17 ;COMPARE AC+1 + 7513 035557 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7514 035560 004 12 0 00 042403 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7515 035561 321 13 0 00 035544 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7516 + 7517 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0193 + + 7518 000010 AC=10 + 7519 SAVEAC (1,1)^ + 7520 035562 201 12 0 00 035562 MOVEI AC+2,. ;SETUP TESTPC + 7521 035563 202 12 0 00 030051 MOVEM AC+2,TESTPC + 7522 035564 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7523 035565 202 12 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7524 + 7525 042500 SN=42500 + 7526 707070 WW=707070 ;USED FOR COMPARISON + 7527 707070 XX=707070 ;SELECTED PATTERN + 7528 000000 ZZ=0 + 7529 + 7530 ;ROT RIGHT (111)-TEST AC,AC+1 + 7531 E42500: REPEAT ^D3,< + 7532 ;TEST SELECTED BIT CONFIGURATIONS + 7533 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7534 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7535 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7536 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7537 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7538 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7539 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7540 ; AC CONTAINS BIT(S) THAT FAILED + 7541 + 7542 SN=SN+1 + 7543 WW=WW/2 + 7544 ZZ=ZZ-1 + 7545 SETACS (WW,XX) + 7546 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7547 XOR AC-1,AC ;COMPARE + 7548 SKIPE &17 ;SHOULD = 0 + 7549 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7550 XOR AC-2,&17 ;COMPARE AC+1 + 7551 SKIPE &17 ;SHOULD = 0 + 7552 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7553 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7554 > + 7555 + 7556 ;TEST SELECTED BIT CONFIGURATIONS + 7557 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7558 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7559 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7560 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7561 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7562 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7563 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7564 ; AC CONTAINS BIT(S) THAT FAILED + 7565 + 7566 042501 SN=SN+1 + 7567 343434 WW=WW/2 + 7568 777777 777777 ZZ=ZZ-1 + 7569 SETACS (WW,XX)^ + 7570 035566 201 07 0 00 343434 MOVEI AC-1,WW ;SETUP AC-1 + 7571 035567 505 07 0 00 343434 HRLI AC-1,WW ;FOR COMPARISION + 7572 035570 200 06 0 00 000007 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0194 + + 7573 035571 201 10 0 00 707070 MOVEI AC,XX ;SETUP AC RIGHT + 7574 035572 505 10 0 00 707070 HRLI AC,XX ;SETUP AC LEFT + 7575 035573 202 10 0 00 000011 MOVEM AC,&17 ;SETUP AC2^ + 7576 035574 245 10 0 00 777777 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7577 035575 430 07 0 00 000010 XOR AC-1,AC ;COMPARE + 7578 035576 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7579 035577 003 10 0 00 042501 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7580 035600 430 06 0 00 000011 XOR AC-2,&17 ;COMPARE AC+1 + 7581 035601 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7582 035602 004 11 0 00 042501 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7583 035603 321 12 0 00 035566 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7584 + 7585 + 7586 ;TEST SELECTED BIT CONFIGURATIONS + 7587 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7588 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7589 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7590 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7591 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7592 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7593 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7594 ; AC CONTAINS BIT(S) THAT FAILED + 7595 + 7596 042502 SN=SN+1 + 7597 161616 WW=WW/2 + 7598 777777 777776 ZZ=ZZ-1 + 7599 SETACS (WW,XX)^ + 7600 035604 201 07 0 00 161616 MOVEI AC-1,WW ;SETUP AC-1 + 7601 035605 505 07 0 00 161616 HRLI AC-1,WW ;FOR COMPARISION + 7602 035606 200 06 0 00 000007 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7603 035607 201 10 0 00 707070 MOVEI AC,XX ;SETUP AC RIGHT + 7604 035610 505 10 0 00 707070 HRLI AC,XX ;SETUP AC LEFT + 7605 035611 202 10 0 00 000011 MOVEM AC,&17 ;SETUP AC2^ + 7606 035612 245 10 0 00 777776 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7607 035613 430 07 0 00 000010 XOR AC-1,AC ;COMPARE + 7608 035614 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7609 035615 003 10 0 00 042502 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7610 035616 430 06 0 00 000011 XOR AC-2,&17 ;COMPARE AC+1 + 7611 035617 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7612 035620 004 11 0 00 042502 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7613 035621 321 12 0 00 035604 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7614 + 7615 + 7616 ;TEST SELECTED BIT CONFIGURATIONS + 7617 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7618 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7619 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7620 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7621 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7622 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7623 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7624 ; AC CONTAINS BIT(S) THAT FAILED + 7625 + 7626 042503 SN=SN+1 + 7627 070707 WW=WW/2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 43-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0195 + + 7628 777777 777775 ZZ=ZZ-1 + 7629 SETACS (WW,XX)^ + 7630 035622 201 07 0 00 070707 MOVEI AC-1,WW ;SETUP AC-1 + 7631 035623 505 07 0 00 070707 HRLI AC-1,WW ;FOR COMPARISION + 7632 035624 200 06 0 00 000007 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7633 035625 201 10 0 00 707070 MOVEI AC,XX ;SETUP AC RIGHT + 7634 035626 505 10 0 00 707070 HRLI AC,XX ;SETUP AC LEFT + 7635 035627 202 10 0 00 000011 MOVEM AC,&17 ;SETUP AC2^ + 7636 035630 245 10 0 00 777775 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7637 035631 430 07 0 00 000010 XOR AC-1,AC ;COMPARE + 7638 035632 332 00 0 00 000007 SKIPE &17 ;SHOULD = 0 + 7639 035633 003 10 0 00 042503 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7640 035634 430 06 0 00 000011 XOR AC-2,&17 ;COMPARE AC+1 + 7641 035635 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7642 035636 004 11 0 00 042503 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7643 035637 321 12 0 00 035622 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7644 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0196 + + 7645 000007 AC=7 + 7646 SAVEAC (1,1)^ + 7647 035640 201 11 0 00 035640 MOVEI AC+2,. ;SETUP TESTPC + 7648 035641 202 11 0 00 030051 MOVEM AC+2,TESTPC + 7649 035642 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7650 035643 202 11 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7651 + 7652 042600 SN=42600 + 7653 025025 WW=025025 ;USED FOR COMPARISON + 7654 025025 XX=025025 ;SELECTED PATTERN + 7655 000000 ZZ=0 + 7656 + 7657 ;ROT LEFT (010101)-TEST AC,AC+1 + 7658 E42600: REPEAT ^D4,< + 7659 ;TEST SELECTED BIT CONFIGURATIONS + 7660 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7661 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7662 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7663 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7664 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7665 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7666 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7667 ; AC CONTAINS BIT(S) THAT FAILED + 7668 + 7669 SN=SN+1 + 7670 WW=WW+WW + 7671 ZZ=ZZ+1 + 7672 SETACS (WW,XX) + 7673 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7674 XOR AC-1,AC ;COMPARE AC + 7675 SKIPE &17 ;SHOULD = 0 + 7676 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7677 XOR AC-2,&17 ;COMPARE AC+1 + 7678 SKIPE &17 ;SHOULD = 0 + 7679 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7680 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7681 > + 7682 + 7683 ;TEST SELECTED BIT CONFIGURATIONS + 7684 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7685 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7686 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7687 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7688 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7689 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7690 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7691 ; AC CONTAINS BIT(S) THAT FAILED + 7692 + 7693 042601 SN=SN+1 + 7694 052052 WW=WW+WW + 7695 000001 ZZ=ZZ+1 + 7696 SETACS (WW,XX)^ + 7697 035644 201 06 0 00 052052 MOVEI AC-1,WW ;SETUP AC-1 + 7698 035645 505 06 0 00 052052 HRLI AC-1,WW ;FOR COMPARISION + 7699 035646 200 05 0 00 000006 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0197 + + 7700 035647 201 07 0 00 025025 MOVEI AC,XX ;SETUP AC RIGHT + 7701 035650 505 07 0 00 025025 HRLI AC,XX ;SETUP AC LEFT + 7702 035651 202 07 0 00 000010 MOVEM AC,&17 ;SETUP AC2^ + 7703 035652 245 07 0 00 000001 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7704 035653 430 06 0 00 000007 XOR AC-1,AC ;COMPARE AC + 7705 035654 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7706 035655 003 07 0 00 042601 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7707 035656 430 05 0 00 000010 XOR AC-2,&17 ;COMPARE AC+1 + 7708 035657 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7709 035660 004 10 0 00 042601 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7710 035661 321 11 0 00 035644 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7711 + 7712 + 7713 ;TEST SELECTED BIT CONFIGURATIONS + 7714 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7715 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7716 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7717 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7718 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7719 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7720 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7721 ; AC CONTAINS BIT(S) THAT FAILED + 7722 + 7723 042602 SN=SN+1 + 7724 124124 WW=WW+WW + 7725 000002 ZZ=ZZ+1 + 7726 SETACS (WW,XX)^ + 7727 035662 201 06 0 00 124124 MOVEI AC-1,WW ;SETUP AC-1 + 7728 035663 505 06 0 00 124124 HRLI AC-1,WW ;FOR COMPARISION + 7729 035664 200 05 0 00 000006 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7730 035665 201 07 0 00 025025 MOVEI AC,XX ;SETUP AC RIGHT + 7731 035666 505 07 0 00 025025 HRLI AC,XX ;SETUP AC LEFT + 7732 035667 202 07 0 00 000010 MOVEM AC,&17 ;SETUP AC2^ + 7733 035670 245 07 0 00 000002 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7734 035671 430 06 0 00 000007 XOR AC-1,AC ;COMPARE AC + 7735 035672 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7736 035673 003 07 0 00 042602 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7737 035674 430 05 0 00 000010 XOR AC-2,&17 ;COMPARE AC+1 + 7738 035675 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7739 035676 004 10 0 00 042602 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7740 035677 321 11 0 00 035662 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7741 + 7742 + 7743 ;TEST SELECTED BIT CONFIGURATIONS + 7744 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7745 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7746 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7747 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7748 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7749 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7750 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7751 ; AC CONTAINS BIT(S) THAT FAILED + 7752 + 7753 042603 SN=SN+1 + 7754 250250 WW=WW+WW +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0198 + + 7755 000003 ZZ=ZZ+1 + 7756 SETACS (WW,XX)^ + 7757 035700 201 06 0 00 250250 MOVEI AC-1,WW ;SETUP AC-1 + 7758 035701 505 06 0 00 250250 HRLI AC-1,WW ;FOR COMPARISION + 7759 035702 200 05 0 00 000006 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7760 035703 201 07 0 00 025025 MOVEI AC,XX ;SETUP AC RIGHT + 7761 035704 505 07 0 00 025025 HRLI AC,XX ;SETUP AC LEFT + 7762 035705 202 07 0 00 000010 MOVEM AC,&17 ;SETUP AC2^ + 7763 035706 245 07 0 00 000003 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7764 035707 430 06 0 00 000007 XOR AC-1,AC ;COMPARE AC + 7765 035710 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7766 035711 003 07 0 00 042603 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7767 035712 430 05 0 00 000010 XOR AC-2,&17 ;COMPARE AC+1 + 7768 035713 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7769 035714 004 10 0 00 042603 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7770 035715 321 11 0 00 035700 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7771 + 7772 + 7773 ;TEST SELECTED BIT CONFIGURATIONS + 7774 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7775 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7776 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7777 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7778 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7779 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7780 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7781 ; AC CONTAINS BIT(S) THAT FAILED + 7782 + 7783 042604 SN=SN+1 + 7784 520520 WW=WW+WW + 7785 000004 ZZ=ZZ+1 + 7786 SETACS (WW,XX)^ + 7787 035716 201 06 0 00 520520 MOVEI AC-1,WW ;SETUP AC-1 + 7788 035717 505 06 0 00 520520 HRLI AC-1,WW ;FOR COMPARISION + 7789 035720 200 05 0 00 000006 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7790 035721 201 07 0 00 025025 MOVEI AC,XX ;SETUP AC RIGHT + 7791 035722 505 07 0 00 025025 HRLI AC,XX ;SETUP AC LEFT + 7792 035723 202 07 0 00 000010 MOVEM AC,&17 ;SETUP AC2^ + 7793 035724 245 07 0 00 000004 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7794 035725 430 06 0 00 000007 XOR AC-1,AC ;COMPARE AC + 7795 035726 332 00 0 00 000006 SKIPE &17 ;SHOULD = 0 + 7796 035727 003 07 0 00 042604 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7797 035730 430 05 0 00 000010 XOR AC-2,&17 ;COMPARE AC+1 + 7798 035731 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7799 035732 004 10 0 00 042604 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7800 035733 321 11 0 00 035716 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7801 + 7802 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0199 + + 7803 000006 AC=6 + 7804 SAVEAC (1,1)^ + 7805 035734 201 10 0 00 035734 MOVEI AC+2,. ;SETUP TESTPC + 7806 035735 202 10 0 00 030051 MOVEM AC+2,TESTPC + 7807 035736 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7808 035737 202 10 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7809 + 7810 042700 SN=42700 + 7811 520520 WW=520520 ;USED FOR COMPARISON + 7812 520520 XX=520520 ;SELECTED PATTERN + 7813 000000 ZZ=0 + 7814 + 7815 ;ROT RIGHT (101010)-TEST AC,AC+1 + 7816 E42700: REPEAT ^D4,< + 7817 ;TEST SELECTED BIT CONFIGURATIONS + 7818 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7819 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7820 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7821 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7822 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7823 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7824 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7825 ; AC CONTAINS BIT(S) THAT FAILED + 7826 + 7827 SN=SN+1 + 7828 WW=WW/2 + 7829 ZZ=ZZ-1 + 7830 SETACS (WW,XX) + 7831 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7832 XOR AC-1,AC ;COMPARE AC + 7833 SKIPE &17 ;SHOULD = 0 + 7834 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7835 XOR AC-2,&17 ;COMPARE AC+1 + 7836 SKIPE &17 ;SHOULD = 0 + 7837 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7838 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7839 > + 7840 + 7841 ;TEST SELECTED BIT CONFIGURATIONS + 7842 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7843 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7844 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7845 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7846 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7847 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7848 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7849 ; AC CONTAINS BIT(S) THAT FAILED + 7850 + 7851 042701 SN=SN+1 + 7852 250250 WW=WW/2 + 7853 777777 777777 ZZ=ZZ-1 + 7854 SETACS (WW,XX)^ + 7855 035740 201 05 0 00 250250 MOVEI AC-1,WW ;SETUP AC-1 + 7856 035741 505 05 0 00 250250 HRLI AC-1,WW ;FOR COMPARISION + 7857 035742 200 04 0 00 000005 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0200 + + 7858 035743 201 06 0 00 520520 MOVEI AC,XX ;SETUP AC RIGHT + 7859 035744 505 06 0 00 520520 HRLI AC,XX ;SETUP AC LEFT + 7860 035745 202 06 0 00 000007 MOVEM AC,&17 ;SETUP AC2^ + 7861 035746 245 06 0 00 777777 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7862 035747 430 05 0 00 000006 XOR AC-1,AC ;COMPARE AC + 7863 035750 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7864 035751 003 06 0 00 042701 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7865 035752 430 04 0 00 000007 XOR AC-2,&17 ;COMPARE AC+1 + 7866 035753 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 7867 035754 004 07 0 00 042701 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7868 035755 321 10 0 00 035740 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7869 + 7870 + 7871 ;TEST SELECTED BIT CONFIGURATIONS + 7872 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7873 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7874 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7875 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7876 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7877 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7878 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7879 ; AC CONTAINS BIT(S) THAT FAILED + 7880 + 7881 042702 SN=SN+1 + 7882 124124 WW=WW/2 + 7883 777777 777776 ZZ=ZZ-1 + 7884 SETACS (WW,XX)^ + 7885 035756 201 05 0 00 124124 MOVEI AC-1,WW ;SETUP AC-1 + 7886 035757 505 05 0 00 124124 HRLI AC-1,WW ;FOR COMPARISION + 7887 035760 200 04 0 00 000005 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7888 035761 201 06 0 00 520520 MOVEI AC,XX ;SETUP AC RIGHT + 7889 035762 505 06 0 00 520520 HRLI AC,XX ;SETUP AC LEFT + 7890 035763 202 06 0 00 000007 MOVEM AC,&17 ;SETUP AC2^ + 7891 035764 245 06 0 00 777776 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7892 035765 430 05 0 00 000006 XOR AC-1,AC ;COMPARE AC + 7893 035766 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7894 035767 003 06 0 00 042702 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7895 035770 430 04 0 00 000007 XOR AC-2,&17 ;COMPARE AC+1 + 7896 035771 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 7897 035772 004 07 0 00 042702 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7898 035773 321 10 0 00 035756 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7899 + 7900 + 7901 ;TEST SELECTED BIT CONFIGURATIONS + 7902 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7903 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7904 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7905 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7906 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7907 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7908 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7909 ; AC CONTAINS BIT(S) THAT FAILED + 7910 + 7911 042703 SN=SN+1 + 7912 052052 WW=WW/2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 44-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0201 + + 7913 777777 777775 ZZ=ZZ-1 + 7914 SETACS (WW,XX)^ + 7915 035774 201 05 0 00 052052 MOVEI AC-1,WW ;SETUP AC-1 + 7916 035775 505 05 0 00 052052 HRLI AC-1,WW ;FOR COMPARISION + 7917 035776 200 04 0 00 000005 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7918 035777 201 06 0 00 520520 MOVEI AC,XX ;SETUP AC RIGHT + 7919 036000 505 06 0 00 520520 HRLI AC,XX ;SETUP AC LEFT + 7920 036001 202 06 0 00 000007 MOVEM AC,&17 ;SETUP AC2^ + 7921 036002 245 06 0 00 777775 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7922 036003 430 05 0 00 000006 XOR AC-1,AC ;COMPARE AC + 7923 036004 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7924 036005 003 06 0 00 042703 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7925 036006 430 04 0 00 000007 XOR AC-2,&17 ;COMPARE AC+1 + 7926 036007 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 7927 036010 004 07 0 00 042703 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7928 036011 321 10 0 00 035774 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7929 + 7930 + 7931 ;TEST SELECTED BIT CONFIGURATIONS + 7932 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7933 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7934 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7935 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7936 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7937 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7938 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7939 ; AC CONTAINS BIT(S) THAT FAILED + 7940 + 7941 042704 SN=SN+1 + 7942 025025 WW=WW/2 + 7943 777777 777774 ZZ=ZZ-1 + 7944 SETACS (WW,XX)^ + 7945 036012 201 05 0 00 025025 MOVEI AC-1,WW ;SETUP AC-1 + 7946 036013 505 05 0 00 025025 HRLI AC-1,WW ;FOR COMPARISION + 7947 036014 200 04 0 00 000005 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 7948 036015 201 06 0 00 520520 MOVEI AC,XX ;SETUP AC RIGHT + 7949 036016 505 06 0 00 520520 HRLI AC,XX ;SETUP AC LEFT + 7950 036017 202 06 0 00 000007 MOVEM AC,&17 ;SETUP AC2^ + 7951 036020 245 06 0 00 777774 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7952 036021 430 05 0 00 000006 XOR AC-1,AC ;COMPARE AC + 7953 036022 332 00 0 00 000005 SKIPE &17 ;SHOULD = 0 + 7954 036023 003 06 0 00 042704 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7955 036024 430 04 0 00 000007 XOR AC-2,&17 ;COMPARE AC+1 + 7956 036025 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 7957 036026 004 07 0 00 042704 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7958 036027 321 10 0 00 036012 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7959 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0202 + + 7960 000005 AC=5 + 7961 SAVEAC (1,1)^ + 7962 036030 201 07 0 00 036030 MOVEI AC+2,. ;SETUP TESTPC + 7963 036031 202 07 0 00 030051 MOVEM AC+2,TESTPC + 7964 036032 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7965 036033 202 07 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7966 + 7967 043000 SN=43000 + 7968 033033 WW=033033 ;USED FOR COMPARISON + 7969 033033 XX=033033 ;SELECTED PATTERN + 7970 000000 ZZ=0 + 7971 + 7972 ;ROT LEFT (011011)-TEST AC,AC+1 + 7973 E43000: REPEAT ^D4,< + 7974 ;TEST SELECTED BIT CONFIGURATIONS + 7975 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 7976 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 7977 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 7978 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 7979 ; AC-1 CONTAINS BIT(S) THAT FAILED + 7980 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 7981 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 7982 ; AC CONTAINS BIT(S) THAT FAILED + 7983 + 7984 SN=SN+1 + 7985 WW=WW+WW + 7986 ZZ=ZZ+1 + 7987 SETACS (WW,XX) + 7988 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 7989 XOR AC-1,AC ;COMPARE AC + 7990 SKIPE &17 ;SHOULD = 0 + 7991 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 7992 XOR AC-2,&17 ;COMPARE AC+1 + 7993 SKIPE &17 ;SHOULD = 0 + 7994 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 7995 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 7996 > + 7997 + 7998 ;TEST SELECTED BIT CONFIGURATIONS + 7999 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8000 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8001 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8002 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8003 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8004 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8005 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8006 ; AC CONTAINS BIT(S) THAT FAILED + 8007 + 8008 043001 SN=SN+1 + 8009 066066 WW=WW+WW + 8010 000001 ZZ=ZZ+1 + 8011 SETACS (WW,XX)^ + 8012 036034 201 04 0 00 066066 MOVEI AC-1,WW ;SETUP AC-1 + 8013 036035 505 04 0 00 066066 HRLI AC-1,WW ;FOR COMPARISION + 8014 036036 200 03 0 00 000004 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0203 + + 8015 036037 201 05 0 00 033033 MOVEI AC,XX ;SETUP AC RIGHT + 8016 036040 505 05 0 00 033033 HRLI AC,XX ;SETUP AC LEFT + 8017 036041 202 05 0 00 000006 MOVEM AC,&17 ;SETUP AC2^ + 8018 036042 245 05 0 00 000001 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8019 036043 430 04 0 00 000005 XOR AC-1,AC ;COMPARE AC + 8020 036044 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 8021 036045 003 05 0 00 043001 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8022 036046 430 03 0 00 000006 XOR AC-2,&17 ;COMPARE AC+1 + 8023 036047 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8024 036050 004 06 0 00 043001 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8025 036051 321 07 0 00 036034 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8026 + 8027 + 8028 ;TEST SELECTED BIT CONFIGURATIONS + 8029 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8030 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8031 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8032 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8033 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8034 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8035 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8036 ; AC CONTAINS BIT(S) THAT FAILED + 8037 + 8038 043002 SN=SN+1 + 8039 154154 WW=WW+WW + 8040 000002 ZZ=ZZ+1 + 8041 SETACS (WW,XX)^ + 8042 036052 201 04 0 00 154154 MOVEI AC-1,WW ;SETUP AC-1 + 8043 036053 505 04 0 00 154154 HRLI AC-1,WW ;FOR COMPARISION + 8044 036054 200 03 0 00 000004 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8045 036055 201 05 0 00 033033 MOVEI AC,XX ;SETUP AC RIGHT + 8046 036056 505 05 0 00 033033 HRLI AC,XX ;SETUP AC LEFT + 8047 036057 202 05 0 00 000006 MOVEM AC,&17 ;SETUP AC2^ + 8048 036060 245 05 0 00 000002 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8049 036061 430 04 0 00 000005 XOR AC-1,AC ;COMPARE AC + 8050 036062 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 8051 036063 003 05 0 00 043002 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8052 036064 430 03 0 00 000006 XOR AC-2,&17 ;COMPARE AC+1 + 8053 036065 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8054 036066 004 06 0 00 043002 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8055 036067 321 07 0 00 036052 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8056 + 8057 + 8058 ;TEST SELECTED BIT CONFIGURATIONS + 8059 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8060 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8061 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8062 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8063 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8064 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8065 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8066 ; AC CONTAINS BIT(S) THAT FAILED + 8067 + 8068 043003 SN=SN+1 + 8069 330330 WW=WW+WW +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45-2 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0204 + + 8070 000003 ZZ=ZZ+1 + 8071 SETACS (WW,XX)^ + 8072 036070 201 04 0 00 330330 MOVEI AC-1,WW ;SETUP AC-1 + 8073 036071 505 04 0 00 330330 HRLI AC-1,WW ;FOR COMPARISION + 8074 036072 200 03 0 00 000004 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8075 036073 201 05 0 00 033033 MOVEI AC,XX ;SETUP AC RIGHT + 8076 036074 505 05 0 00 033033 HRLI AC,XX ;SETUP AC LEFT + 8077 036075 202 05 0 00 000006 MOVEM AC,&17 ;SETUP AC2^ + 8078 036076 245 05 0 00 000003 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8079 036077 430 04 0 00 000005 XOR AC-1,AC ;COMPARE AC + 8080 036100 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 8081 036101 003 05 0 00 043003 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8082 036102 430 03 0 00 000006 XOR AC-2,&17 ;COMPARE AC+1 + 8083 036103 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8084 036104 004 06 0 00 043003 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8085 036105 321 07 0 00 036070 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8086 + 8087 + 8088 ;TEST SELECTED BIT CONFIGURATIONS + 8089 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8090 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8091 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8092 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8093 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8094 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8095 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8096 ; AC CONTAINS BIT(S) THAT FAILED + 8097 + 8098 043004 SN=SN+1 + 8099 660660 WW=WW+WW + 8100 000004 ZZ=ZZ+1 + 8101 SETACS (WW,XX)^ + 8102 036106 201 04 0 00 660660 MOVEI AC-1,WW ;SETUP AC-1 + 8103 036107 505 04 0 00 660660 HRLI AC-1,WW ;FOR COMPARISION + 8104 036110 200 03 0 00 000004 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8105 036111 201 05 0 00 033033 MOVEI AC,XX ;SETUP AC RIGHT + 8106 036112 505 05 0 00 033033 HRLI AC,XX ;SETUP AC LEFT + 8107 036113 202 05 0 00 000006 MOVEM AC,&17 ;SETUP AC2^ + 8108 036114 245 05 0 00 000004 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8109 036115 430 04 0 00 000005 XOR AC-1,AC ;COMPARE AC + 8110 036116 332 00 0 00 000004 SKIPE &17 ;SHOULD = 0 + 8111 036117 003 05 0 00 043004 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8112 036120 430 03 0 00 000006 XOR AC-2,&17 ;COMPARE AC+1 + 8113 036121 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8114 036122 004 06 0 00 043004 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8115 036123 321 07 0 00 036106 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8116 + 8117 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45-3 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0205 + + 8118 000004 AC=4 + 8119 SAVEAC (1,1)^ + 8120 036124 201 06 0 00 036124 MOVEI AC+2,. ;SETUP TESTPC + 8121 036125 202 06 0 00 030051 MOVEM AC+2,TESTPC + 8122 036126 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8123 036127 202 06 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8124 + 8125 043100 SN=43100 + 8126 660660 WW=660660 ;USED FOR COMPARISON + 8127 660660 XX=660660 ;SELECTED PATTERN + 8128 000000 ZZ=0 + 8129 + 8130 ;ROT RIGHT (110110)-TEST AC,AC+1 + 8131 E43100: REPEAT ^D4,< + 8132 ;TEST SELECTED BIT CONFIGURATIONS + 8133 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8134 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8135 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8136 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8137 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8138 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8139 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8140 ; AC CONTAINS BIT(S) THAT FAILED + 8141 + 8142 SN=SN+1 + 8143 WW=WW/2 + 8144 ZZ=ZZ-1 + 8145 SETACS (WW,XX) + 8146 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8147 XOR AC-1,AC ;COMPARE AC + 8148 SKIPE &17 ;SHOULD = 0 + 8149 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8150 XOR AC-2,&17 ;COMPARE AC+1 + 8151 SKIPE &17 ;SHOULD = 0 + 8152 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8153 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8154 > + 8155 + 8156 ;TEST SELECTED BIT CONFIGURATIONS + 8157 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8158 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8159 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8160 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8161 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8162 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8163 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8164 ; AC CONTAINS BIT(S) THAT FAILED + 8165 + 8166 043101 SN=SN+1 + 8167 330330 WW=WW/2 + 8168 777777 777777 ZZ=ZZ-1 + 8169 SETACS (WW,XX)^ + 8170 036130 201 03 0 00 330330 MOVEI AC-1,WW ;SETUP AC-1 + 8171 036131 505 03 0 00 330330 HRLI AC-1,WW ;FOR COMPARISION + 8172 036132 200 02 0 00 000003 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45-4 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0206 + + 8173 036133 201 04 0 00 660660 MOVEI AC,XX ;SETUP AC RIGHT + 8174 036134 505 04 0 00 660660 HRLI AC,XX ;SETUP AC LEFT + 8175 036135 202 04 0 00 000005 MOVEM AC,&17 ;SETUP AC2^ + 8176 036136 245 04 0 00 777777 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8177 036137 430 03 0 00 000004 XOR AC-1,AC ;COMPARE AC + 8178 036140 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8179 036141 003 04 0 00 043101 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8180 036142 430 02 0 00 000005 XOR AC-2,&17 ;COMPARE AC+1 + 8181 036143 332 00 0 00 000002 SKIPE &17 ;SHOULD = 0 + 8182 036144 004 05 0 00 043101 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8183 036145 321 06 0 00 036130 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8184 + 8185 + 8186 ;TEST SELECTED BIT CONFIGURATIONS + 8187 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8188 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8189 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8190 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8191 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8192 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8193 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8194 ; AC CONTAINS BIT(S) THAT FAILED + 8195 + 8196 043102 SN=SN+1 + 8197 154154 WW=WW/2 + 8198 777777 777776 ZZ=ZZ-1 + 8199 SETACS (WW,XX)^ + 8200 036146 201 03 0 00 154154 MOVEI AC-1,WW ;SETUP AC-1 + 8201 036147 505 03 0 00 154154 HRLI AC-1,WW ;FOR COMPARISION + 8202 036150 200 02 0 00 000003 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8203 036151 201 04 0 00 660660 MOVEI AC,XX ;SETUP AC RIGHT + 8204 036152 505 04 0 00 660660 HRLI AC,XX ;SETUP AC LEFT + 8205 036153 202 04 0 00 000005 MOVEM AC,&17 ;SETUP AC2^ + 8206 036154 245 04 0 00 777776 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8207 036155 430 03 0 00 000004 XOR AC-1,AC ;COMPARE AC + 8208 036156 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8209 036157 003 04 0 00 043102 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8210 036160 430 02 0 00 000005 XOR AC-2,&17 ;COMPARE AC+1 + 8211 036161 332 00 0 00 000002 SKIPE &17 ;SHOULD = 0 + 8212 036162 004 05 0 00 043102 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8213 036163 321 06 0 00 036146 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8214 + 8215 + 8216 ;TEST SELECTED BIT CONFIGURATIONS + 8217 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8218 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8219 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8220 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8221 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8222 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8223 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8224 ; AC CONTAINS BIT(S) THAT FAILED + 8225 + 8226 043103 SN=SN+1 + 8227 066066 WW=WW/2 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 45-5 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST SEQ 0207 + + 8228 777777 777775 ZZ=ZZ-1 + 8229 SETACS (WW,XX)^ + 8230 036164 201 03 0 00 066066 MOVEI AC-1,WW ;SETUP AC-1 + 8231 036165 505 03 0 00 066066 HRLI AC-1,WW ;FOR COMPARISION + 8232 036166 200 02 0 00 000003 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8233 036167 201 04 0 00 660660 MOVEI AC,XX ;SETUP AC RIGHT + 8234 036170 505 04 0 00 660660 HRLI AC,XX ;SETUP AC LEFT + 8235 036171 202 04 0 00 000005 MOVEM AC,&17 ;SETUP AC2^ + 8236 036172 245 04 0 00 777775 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8237 036173 430 03 0 00 000004 XOR AC-1,AC ;COMPARE AC + 8238 036174 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8239 036175 003 04 0 00 043103 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8240 036176 430 02 0 00 000005 XOR AC-2,&17 ;COMPARE AC+1 + 8241 036177 332 00 0 00 000002 SKIPE &17 ;SHOULD = 0 + 8242 036200 004 05 0 00 043103 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8243 036201 321 06 0 00 036164 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8244 + 8245 + 8246 ;TEST SELECTED BIT CONFIGURATIONS + 8247 ;TEST ABILITY TO ROTATE SELECTED PATTERNS + 8248 ;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED + 8249 ;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER + 8250 ; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 + 8251 ; AC-1 CONTAINS BIT(S) THAT FAILED + 8252 ;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER + 8253 ; ERROR WILL OCCUR IF AC DIFFERS FROM 0 + 8254 ; AC CONTAINS BIT(S) THAT FAILED + 8255 + 8256 043104 SN=SN+1 + 8257 033033 WW=WW/2 + 8258 777777 777774 ZZ=ZZ-1 + 8259 SETACS (WW,XX)^ + 8260 036202 201 03 0 00 033033 MOVEI AC-1,WW ;SETUP AC-1 + 8261 036203 505 03 0 00 033033 HRLI AC-1,WW ;FOR COMPARISION + 8262 036204 200 02 0 00 000003 MOVE AC-2,&17 ;SETUP AC-2 FOR COMPARISON + 8263 036205 201 04 0 00 660660 MOVEI AC,XX ;SETUP AC RIGHT + 8264 036206 505 04 0 00 660660 HRLI AC,XX ;SETUP AC LEFT + 8265 036207 202 04 0 00 000005 MOVEM AC,&17 ;SETUP AC2^ + 8266 036210 245 04 0 00 777774 ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + 8267 036211 430 03 0 00 000004 XOR AC-1,AC ;COMPARE AC + 8268 036212 332 00 0 00 000003 SKIPE &17 ;SHOULD = 0 + 8269 036213 003 04 0 00 043104 ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + 8270 036214 430 02 0 00 000005 XOR AC-2,&17 ;COMPARE AC+1 + 8271 036215 332 00 0 00 000002 SKIPE &17 ;SHOULD = 0 + 8272 036216 004 05 0 00 043104 ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + 8273 036217 321 06 0 00 036202 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH + 8274 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 46 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST SEQ 0208 + + 8275 SUBTTL DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST + 8276 + 8277 ;TEST AROV FLAG-ASH,ASHC + 8278 ;TEST THE ABILITY OF ASH,ASHC TO + 8279 ;SET AROV FLAG + 8280 ;TEST (00),(11) FOR SET NOT CONDITION + 8281 ;TEST (01),(10) FOR SET CONDITION + 8282 ;AN ERROR WILL OCCUR IF FLAG IS + 8283 ;SET/SET NOT AS APPROPRIATE + 8284 + 8285 000010 AC=10 + 8286 SAVEAC (1,1)^ + 8287 036220 201 12 0 00 036220 MOVEI AC+2,. ;SETUP TESTPC + 8288 036221 202 12 0 00 030051 MOVEM AC+2,TESTPC + 8289 036222 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8290 036223 202 12 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8291 + 8292 ;ASH AROV SET NOT (11) + 8293 036224 255 10 0 00 036225 E43200: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8294 036225 205 10 0 00 777777 MOVSI AC,-1 ;SET LEFT,CLEAR RIGHT + 8295 036226 240 10 0 00 000001 ASH AC,1 ;*SHIFT LEFT ONE + 8296 036227 265 06 0 00 036230 JSP AC-2,.+1 ;SAVE FLAGS + 8297 036230 255 10 0 00 036232 JFCL 10,.+2 ;TEST FOR SET NOT COND + 8298 036231 254 00 0 00 036233 JRST 0,.+2 ;FLAG NOT SET + 8299 036232 013 06 0 00 043201 ER13 AC-2,43201 ;FLAG IS SET + 8300 036233 321 12 0 00 036224 JUMPL AC+2,E43200 ;LOOP ON ERROR SWITCH + 8301 + 8302 ;ASH AROV SET NOT (00) + 8303 036234 255 10 0 00 036235 E43300: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8304 036235 400 10 0 00 000000 SETZ AC, ;CLEAR AC + 8305 036236 240 10 0 00 000001 ASH AC,1 ;*SHIFT LEFT ONE + 8306 036237 265 06 0 00 036240 JSP AC-2,.+1 ;SAVE FLAGS + 8307 036240 255 10 0 00 036242 JFCL 10,.+2 ;TEST FOR SET NOT COND + 8308 036241 254 00 0 00 036243 JRST 0,.+2 ;FLAG NOT SET + 8309 036242 013 06 0 00 043301 ER13 AC-2,43301 ;FLAG IS SET + 8310 036243 321 12 0 00 036234 JUMPL AC+2,E43300 ;LOOP ON ERROR SWITCH + 8311 PAGE +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 46-1 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST SEQ 0209 + + 8312 000007 AC=7 + 8313 SAVEAC (1,1)^ + 8314 036244 201 11 0 00 036244 MOVEI AC+2,. ;SETUP TESTPC + 8315 036245 202 11 0 00 030051 MOVEM AC+2,TESTPC + 8316 036246 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8317 036247 202 11 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8318 + 8319 ;ASH AROV SET (01) + 8320 036250 255 10 0 00 036251 E43400: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8321 036251 205 07 0 00 377777 MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + 8322 036252 240 07 0 00 000001 ASH AC,1 ;*SHIFT LEFT ONE + 8323 036253 265 05 0 00 036254 JSP AC-2,.+1 ;SAVE FLAGS + 8324 036254 255 10 0 00 036256 JFCL 10,.+2 ;TEST FOR SET COND + 8325 036255 013 05 0 00 043401 ER13 AC-2,43401 ;FLAG IS NOT SET + 8326 036256 321 11 0 00 036250 JUMPL AC+2,E43400 ;LOOP ON ERROR SWITCH + 8327 + 8328 ;ASH AROV SET (10) + 8329 036257 255 10 0 00 036260 E43500: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8330 036260 205 07 0 00 400000 MOVSI AC,400000 ;SET BIT 0 + 8331 036261 240 07 0 00 000001 ASH AC,1 ;*SHIFT LEFT ONE + 8332 036262 265 05 0 00 036263 JSP AC-2,.+1 ;SAVE FLAGS + 8333 036263 255 10 0 00 036265 JFCL 10,.+2 ;TEST FOR SET COND + 8334 036264 013 05 0 00 043501 ER13 AC-2,43501 ;FLAG IS NOT SET + 8335 036265 321 11 0 00 036257 JUMPL AC+2,E43500 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 47 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST SEQ 0210 + + 8336 000010 AC=10 + 8337 SAVEAC (1,1)^ + 8338 036266 201 12 0 00 036266 MOVEI AC+2,. ;SETUP TESTPC + 8339 036267 202 12 0 00 030051 MOVEM AC+2,TESTPC + 8340 036270 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8341 036271 202 12 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8342 + 8343 ;ASHC AROV SET NOT (11) + 8344 036272 255 10 0 00 036273 E43600: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8345 036273 205 10 0 00 777777 MOVSI AC,-1 ;SET LEFT, CLEAR RIGHT + 8346 036274 244 10 0 00 000001 ASHC AC,1 ;*SHIFT LEFT ONE + 8347 036275 265 06 0 00 036276 JSP AC-2,.+1 ;SAVE FLAGS + 8348 036276 255 10 0 00 036300 JFCL 10,.+2 ;TEST FOR SET NOT COND + 8349 036277 254 00 0 00 036301 JRST 0,.+2 ;FLAG NOT SET + 8350 036300 013 06 0 00 043601 ER13 AC-2,43601 ;FLAG IS SET + 8351 036301 321 12 0 00 036272 JUMPL AC+2,E43600 ;LOOP ON ERROR SWITCH + 8352 + 8353 + 8354 ;ASHC AROV SET NOT (00) + 8355 036302 255 10 0 00 036303 E43700: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8356 036303 400 10 0 00 000000 SETZ AC, ;CLEAR AC + 8357 036304 244 10 0 00 000001 ASHC AC,1 ;*SHIFT LEFT ONE + 8358 036305 265 06 0 00 036306 JSP AC-2,.+1 ;SAVE FLAGS + 8359 036306 255 10 0 00 036310 JFCL 10,.+2 ;TEST FOR SET NOT COND + 8360 036307 254 00 0 00 036311 JRST 0,.+2 ;FLAG NOT SET + 8361 036310 013 06 0 00 043701 ER13 AC-2,43701 ;FLAG IS SET + 8362 036311 321 12 0 00 036302 JUMPL AC+2,E43700 ;LOOP ON ERROR SWITCH + 8363 + 8364 000007 AC=7 + 8365 SAVEAC (1,1)^ + 8366 036312 201 11 0 00 036312 MOVEI AC+2,. ;SETUP TESTPC + 8367 036313 202 11 0 00 030051 MOVEM AC+2,TESTPC + 8368 036314 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8369 036315 202 11 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8370 + 8371 ;ASHC AROV SET (01) + 8372 036316 255 10 0 00 036317 E44000: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8373 036317 205 07 0 00 377777 MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + 8374 036320 244 07 0 00 000001 ASHC AC,1 ;*SHIFT LEFT ONE + 8375 036321 265 05 0 00 036322 JSP AC-2,.+1 ;SAVE FLAGS + 8376 036322 255 10 0 00 036324 JFCL 10,.+2 ;TEST FOR SET COND + 8377 036323 013 05 0 00 044001 ER13 AC-2,44001 ;FLAG IS NOT SET + 8378 036324 321 11 0 00 036316 JUMPL AC+2,E44000 ;LOOP ON ERROR SWITCH + 8379 + 8380 ;ASHC AROV SET (10) + 8381 036325 255 10 0 00 036326 E44100: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + 8382 036326 205 07 0 00 400000 MOVSI AC,400000 ;SET BIT 0 + 8383 036327 244 07 0 00 000001 ASHC AC,1 ;*SHIFT LEFT ONE + 8384 036330 265 05 0 00 036331 JSP AC-2,.+1 ;SAVE FLAGS + 8385 036331 255 10 0 00 036333 JFCL 10,.+2 ;TEST FOR SET COND + 8386 036332 013 05 0 00 044101 ER13 AC-2,44101 ;FLAG IS NOT SET + 8387 036333 321 11 0 00 036325 JUMPL AC+2,E44100 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 48 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT SEQ 0211 + + 8388 SUBTTL DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT + 8389 + 8390 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS + 8391 ;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), + 8392 ;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. + 8393 ;IN THIS CASE, C(AC)=230703,,603700, E=0, X=6 AND C(X)=3; + 8394 ;HENCE, THE NET ROTATION SHOULD BE 3 BIT POSITIONS LEFT, + 8395 ;AND THE RESULT IN THE AC SHOULD BE 307036,,037002 + 8396 + 8397 000007 AC=7 + 8398 SAVEAC (1,1)^ + 8399 036334 201 11 0 00 036334 MOVEI AC+2,. ;SETUP TESTPC + 8400 036335 202 11 0 00 030051 MOVEM AC+2,TESTPC + 8401 036336 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8402 036337 202 11 0 00 037006 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8403 + 8404 036340 201 06 0 00 000003 E70000: MOVEI 6,3 ;PRELOAD INDEX REG WITH 3 + 8405 036341 200 07 0 00 036635 MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8406 036342 241 07 0 06 000000 ROT AC,(6) ;*ROT C(AC) 3 BIT POSITIONS LEFT + 8407 036343 312 07 0 00 036647 CAME AC,[307036,,037002] ;IS RESULT IN AC CORRECT? + 8408 036344 003 07 0 00 070001 ER3 AC,70001 ;INDEXING FAILED + 8409 036345 321 11 0 00 036340 JUMPL AC+2,E70000 ;LOOP ON ERROR SWITCH + 8410 + 8411 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS + 8412 ;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), + 8413 ;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. + 8414 ;IN THIS CASE, C(AC)=230703,,603700, E=4, X=5 AND C(X)=0; + 8415 ;HENCE, THE NET ROTATION SHOULD BE 4 BIT POSITIONS LEFT, + 8416 ;AND THE RESULT IN THE AC SHOULD BE 616074,,076004. + 8417 + 8418 036346 201 05 0 00 000000 E70100: MOVEI 5,0 ;PRELOAD INDEX REG WITH 0 + 8419 036347 200 07 0 00 036635 MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8420 036350 241 07 0 05 000004 ROT AC,4(5) ;*ROT C(AC) 4 BIT POSITIONS LEFT + 8421 036351 312 07 0 00 036671 CAME AC,[616074,,076004] ;IS RESULT IN AC CORRECT? + 8422 036352 003 07 0 00 070101 ER3 AC,70101 ;INDEXING FAILED + 8423 036353 321 11 0 00 036346 JUMPL AC+2,E70100 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 49 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT SEQ 0212 + + 8424 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS + 8425 ;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), + 8426 ;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. + 8427 ;IN THIS CASE, C(AC)=230703,,603700, E=16, X=6 AND C(X)=5; + 8428 ;HENCE, THE NET ROTATION SHOULD BE 21 BIT POSITIONS LEFT, + 8429 ;AND THE RESULT IN THE AC SHOULD BE 407600,,461607. + 8430 + 8431 036354 201 06 0 00 000005 E70200: MOVEI 6,5 ;PRELOAD INDEX REG WITH 5 + 8432 036355 200 07 0 00 036635 MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8433 036356 241 07 0 06 000016 ROT AC,16(6) ;*ROT C(AC) 21 BIT POSITIONS LEFT + 8434 036357 312 07 0 00 036672 CAME AC,[407600,,461607] ;IS RESULT IN AC CORRECT? + 8435 036360 003 07 0 00 070201 ER3 AC,70201 ;INDEXING FAILED + 8436 036361 321 11 0 00 036354 JUMPL AC+2,E70200 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 50 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT SEQ 0213 + + 8437 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS + 8438 ;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO C(E), + 8439 ;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. + 8440 ;IN THIS CASE, C(AC)=230703,,603700, E=6 AND C(E)=35; + 8441 ;HENCE, THE NET ROTATION SHOULD BE 35 BIT POSITIONS LEFT, + 8442 ;AND THE RESULT IN THE AC SHOULD BE 401143,,417017. + 8443 + 8444 036362 201 06 0 00 000035 E70300: MOVEI 6,35 ;PRELOAD E WITH 35 + 8445 036363 200 07 0 00 036635 MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8446 036364 241 07 1 00 000006 ROT AC,@6 ;*ROT C(AC) 35 BIT POSITIONS LEFT + 8447 036365 312 07 0 00 036654 CAME AC,[401143,,417017] ;IS RESULT IN AC CORRECT? + 8448 036366 003 07 0 00 070301 ER3 AC,70301 ;INDIRECT ADDRESSING FAILED + 8449 036367 321 11 0 00 036370 JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH + 8450 + 8451 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS + 8452 ;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO THE RIGHT HALF OF C + 8453 (E), + 8454 ;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. + 8455 ;IN THIS CASE, C(AC)=230703,,603700, E=[0,,1] AND C(E)=15; + 8456 ;HENCE, THE NET ROTATION SHOULD BE 1 BIT POSITION LEFT, + 8457 ;AND THE RESULT IN THE AC SHOULD BE 461607,,407600. + 8458 + 8459 036370 476 00 0 00 000001 E70400: SETOM 1 ;PRELOAD AC1 WITH -1,,-1 IN CASE IND. ADR. FAILS + 8460 036371 200 07 0 00 036635 MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8461 036372 241 07 1 00 036601 ROT AC,@[0,,1] ;*ROT C(AC) 1 BIT POSITION LEFT + 8462 036373 312 07 0 00 036645 CAME AC,[461607,,407600] ;IS RESULT IN AC CORRECT? + 8463 036374 003 07 0 00 070401 ER3 AC,70401 ;INDIRECT ADDRESSING FAILED + 8464 036375 321 11 0 00 036370 JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 51 +DAKAJM MAC 20-JAN-77 10:48 DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT SEQ 0214 + + 8465 ;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS + 8466 ;EXECUTED BY AN XCT INSTRUCTION. + 8467 ;IN THIS CASE, C(AC)=230703,,603700 AND E=2. + 8468 ;HENCE, THE NET ROTATION SHOULD BE 2 BIT POSITIONS LEFT, + 8469 ;AND THE RESULT IN THE AC SHOULD BE 143417,,017401. + 8470 + 8471 036376 200 07 0 00 036635 E70500: MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + 8472 036377 256 00 0 00 036673 XCT [ROT AC,2] ;*XCT SHOULD ROT C(AC) 2 BIT POSITIONS LEFT + 8473 036400 312 07 0 00 036646 CAME AC,[143417,,017401] ;IS RESULT IN AC CORRECT? + 8474 036401 003 07 0 00 070501 ER3 AC,70501 ;XCT OF ROT FAILED + 8475 036402 321 11 0 00 036376 JUMPL AC+2,E70500 ;LOOP ON ERROR SWITCH + 8476 + 8477 036403 254 00 0 00 030057 JRST BEGEND ;REPEAT DIAGNOSTIC +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0215 + + 8478 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + 8479 + 8480 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + 8481 + 8482 036404 202 00 0 00 037012 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + 8483 IFDEF EXCASB,> + 8490 036405 202 01 0 00 037013 MOVEM 1,%ERAC1# ;SAVE AC1 + 8491 036406 202 02 0 00 037014 MOVEM 2,%ERAC2# ;SAVE AC2 + 8492 036407 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS + 8493 036410 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 8494 036411 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + 8495 036412 350 00 0 00 037007 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + 8496 036413 200 00 0 00 037007 MOVE 0,MICNT + 8497 036414 504 00 0 00 030114 HRL 0,$SVUPC + 8498 036415 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 + 8499 036416 332 00 0 00 030037 SKIPE USER ;AND NOT USER? + 8500 036417 254 00 0 00 036421 JRST .+2 + 8501 036420 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + 8502 036421 402 00 0 00 037010 SETZM PROCED# ;CLEAR PROCEED FLAG + 8503 036422 037 10 0 00 000002 SWITCH + 8504 036423 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? + 8505 036424 254 00 0 00 036537 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + 8506 036425 200 01 0 00 030113 MOVE 1,$SVUUO + 8507 036426 242 01 0 00 777745 LSH 1,-^D27 + 8508 036427 202 01 0 00 037011 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + 8509 036430 200 00 0 00 037012 MOVE 0,%ERAC0 + 8510 036431 200 01 0 00 037013 MOVE 1,%ERAC1 + 8511 036432 335 00 1 00 037006 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + 8512 036433 254 00 0 00 036571 JRST %ERRS4 ;NO, SEE IF PRINT ALL + 8513 036434 402 00 0 00 037007 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + 8514 036435 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? + 8515 036436 254 00 0 00 036442 JRST .+4 ;NO, DON'T NEED TITLE + 8516 036437 336 00 0 00 037015 SKIPN %ERFST# ;FIRST ERROR ? + 8517 036440 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE + 8518 036441 476 00 0 00 037015 SETOM %ERFST + 8519 036442 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? + 8520 036443 254 00 0 00 036447 JRST .+4 ;YES + 8521 PMSG <^TEST PASS COUNT = >^ + 8522 036444 037 02 0 00 036674 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ + 8523 036445 200 00 0 00 030047 MOVE PASCNT + 8524 036446 037 15 0 00 000000 PNTDEC + 8525 PMSG <^PC = >^ + 8526 036447 037 02 0 00 036700 PSIXM [SIXBIT\^PC = _\]^ + 8527 036450 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 8528 036451 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE + 8529 036452 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS + 8530 XLIST + 8531 IFDEF ERDIAG,^ + 8537 036453 037 02 0 00 036702 PSIXM [SIXBIT\^RESULT = _\]^ + 8538 036454 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO + 8539 036455 242 01 0 00 777751 LSH 1,-27 + 8540 036456 405 01 0 00 000017 ANDI 1,17 + 8541 036457 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 8542 036460 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ? + 8543 036461 200 00 0 01 037012 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 8544 036462 037 13 0 00 000000 PNTHW ;PRINT C(AC) + 8545 + 8546 036463 200 00 0 00 030046 MOVE CONSW + 8547 036464 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? + 8548 036465 254 00 0 00 036534 JRST %ERMORE ;NO, RESTORE AC'S ETC. + 8549 + 8550 ;PRINT FAILURE DESCRIPTOR + 8551 + 8552 036466 200 01 0 00 037011 MOVE 1,%ACS1A ;GET UUO NUMBER + 8553 036467 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ? + 8554 036470 254 00 0 00 036474 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER + 8555 036471 037 00 0 00 030242 PCRL + 8556 036472 200 00 0 01 036520 MOVE %FLTTB(1) + 8557 036473 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR + 8558 + 8559 ;PRINT FAULT NUMBER + 8560 + 8561 036474 %ERMS3: PMSG <^FAULT NUMBER = >^ + 8562 036474 037 02 0 00 036704 PSIXM [SIXBIT\^FAULT NUMBER = _\]^ + 8563 036475 201 00 0 00 036517 MOVEI TLET + 8564 036476 037 00 0 00 000000 PNTA ;PRINT TEST LETTER +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 3 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0217 + + 8565 + 8566 036477 550 00 0 00 030113 HRRZ $SVUUO + 8567 036500 602 00 0 00 700000 TRNE 700000 + 8568 036501 254 00 0 00 036515 JRST %ER6X + 8569 036502 602 00 0 00 070000 TRNE 070000 + 8570 036503 254 00 0 00 036513 JRST %ER5X + 8571 036504 602 00 0 00 007000 TRNE 007000 + 8572 036505 254 00 0 00 036511 JRST %ER4X + 8573 036506 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER + 8574 036507 037 00 0 00 030242 %ER7X: PCRL + 8575 036510 254 00 0 00 036534 JRST %ERMORE + 8576 + 8577 036511 037 04 0 00 000000 %ER4X: PNT4 + 8578 036512 254 00 0 00 036507 JRST %ER7X + 8579 036513 037 05 0 00 000000 %ER5X: PNT5 + 8580 036514 254 00 0 00 036507 JRST %ER7X + 8581 036515 037 06 0 00 000000 %ER6X: PNT6 + 8582 036516 254 00 0 00 036507 JRST %ER7X + 8583 + 8584 ;FAILURE DESCRIPTORS + 8585 + 8586 036517 000000 000000 TLET: 0 ;TEST LETTER + 8587 036520 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE + 8588 036521 000000 036600 %NODES: [0] ;NO DESCRIPTOR + 8589 036522 000000 036600 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR + 8590 036523 000000 036707 $ACF: [ASCIZ/C(AC) FAILED/] + 8591 036524 000000 036712 %AC1F: [ASCIZ/C(AC+1) FAILED/] + 8592 036525 000000 036715 %EF: [ASCIZ/C(E) FAILED/] + 8593 036526 000000 036720 %E1F: [ASCIZ/C(E+1) FAILED/] + 8594 036527 000000 036723 %ARF: [ASCIZ/C(C(ACR)) FAILED/] + 8595 036530 000000 036727 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] + 8596 036531 000000 036733 %ALF: [ASCIZ/C(C(ACL)) FAILED/] + 8597 036532 000000 036737 %EEF: [ASCIZ/C(C(E)) FAILED/] + 8598 036533 000000 036742 %FF: [ASCIZ/FLAG FAILED/] + 8599 > + 8600 XLIST + 8601 LIST +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 8 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0218 + + 8602 ;RESTORE AC'S AND RETURN OR HALT + 8603 + 8604 036534 256 00 0 00 030101 %ERMORE:XCT ERMORE + 8605 036535 037 16 0 00 000002 PNTMGN ;PRINT MARGINS + 8606 036536 037 10 0 00 000002 SWITCH + 8607 + 8608 036537 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK + 8609 036540 254 00 0 00 036544 JRST .+4 ;NONE + 8610 036541 201 00 0 00 036544 MOVEI .+3 ;SAVE CONT ADDRESS + 8611 036542 202 00 0 00 000130 MOVEM JOBOPC + 8612 036543 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER + 8613 036544 200 00 0 00 030046 MOVE CONSW + 8614 036545 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + 8615 036546 037 14 0 00 000004 ERRHLT ;YES + 8616 036547 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + 8617 036550 476 00 0 00 037010 SETOM PROCED ;NO, SET THE PROCEED FLAG + 8618 036551 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? + 8619 036552 037 01 0 00 000007 PBELL ;YES, GO RING BELL + 8620 + 8621 036553 200 02 0 00 037014 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + 8622 036554 200 01 0 00 037013 MOVE 1,%ERAC1 + 8623 036555 476 00 1 00 037006 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + 8624 036556 336 00 0 00 037010 SKIPN PROCED ;LOOP ON ERROR ? + 8625 036557 254 00 0 00 036567 JRST %ERRS5 ;YES + 8626 036560 350 00 1 00 037006 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + 8627 036561 350 00 1 00 037006 AOS @ERRLOP ;SO IT ='S 1 + 8628 036562 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + 8629 036563 254 00 0 00 036567 JRST %ERRS5 ;NO, CONTINUE PROGRAM + 8630 036564 200 00 0 00 030053 MOVE 0,ERRTLS ;YES + 8631 036565 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + 8632 036566 254 00 0 00 030061 JRST $BEND2 + 8633 + 8634 036567 200 00 0 00 037012 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + 8635 IFDEF EXCASB,> + 8642 036570 254 00 0 00 030065 JRST UUOEXT + 8643 + 8644 036571 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW + 8645 036572 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? + 8646 036573 254 00 0 00 036537 JRST %ERRS1 ;NO + 8647 036574 254 00 0 00 036434 JRST %ERMS1 ;YES +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0219 + + 8648 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 8649 + 8650 ;PROGRAM LITERALS + 8651 + 8652 XLIST + 8653 IFNDEF $LPAPER, + 8654 036575 LIT + 8655 036575 101 112 000 000 000 + 8656 036576 777777 777777 + 8657 036577 777777 777776 + 8658 036600 000000 000000 + 8659 036601 000000 000001 + 8660 036602 000000 000002 + 8661 036603 777777 777774 + 8662 036604 100000 000000 + 8663 036605 200000 000000 + 8664 036606 677777 777777 + 8665 036607 577777 777776 + 8666 036610 400000 000000 + 8667 036611 577777 777777 + 8668 036612 377777 777776 + 8669 036613 377777 777777 + 8670 036614 777777 777775 + 8671 036615 177777 777777 + 8672 036616 000000 000004 + 8673 036617 777777 777773 + 8674 036620 377777 777775 + 8675 036621 000000 000010 + 8676 036622 777777 777767 + 8677 036623 177777 777775 + 8678 036624 177777 777776 + 8679 036625 600000 000000 + 8680 036626 700000 000000 + 8681 036627 077777 777777 + 8682 036630 252525 252525 + 8683 036631 741703 607417 + 8684 036632 525252 525252 + 8685 036633 146314 631463 + 8686 036634 631463 146314 + 8687 036635 230703 603700 + 8688 036636 700230 703603 + 8689 036637 740114 341701 + 8690 036640 370023 070360 + 8691 036641 017401 143417 + 8692 036642 036037 002307 + 8693 036643 011434 170174 + 8694 036644 600461 607407 + 8695 036645 461607 407600 + 8696 036646 143417 017401 + 8697 036647 307036 037002 + 8698 036650 434170 174011 + 8699 036651 703603 700230 + 8700 036652 701740 114341 + 8701 036653 023070 360370 + 8702 036654 401143 417017 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0220 + + 8703 036655 114341 701740 + 8704 036656 770037 600377 + 8705 036657 374017 700177 + 8706 036660 514341 701740 + 8707 036661 760077 400776 + 8708 036662 461607 407601 + 8709 036663 700376 003772 + 8710 036664 307036 037007 + 8711 036665 077003 760037 + 8712 036666 723070 360370 + 8713 036667 037401 770017 + 8714 036670 751434 170174 + 8715 036671 616074 076004 + 8716 036672 407600 461607 + 8717 036673 241 07 0 00 000002 + 8718 036674 76 64 45 63 64 00 + 8719 036675 60 41 63 63 00 43 + 8720 036676 57 65 56 64 00 35 + 8721 036677 00 77 00 00 00 00 + 8722 036700 76 60 43 00 35 00 + 8723 036701 00 00 77 00 00 00 + 8724 036702 76 62 45 63 65 54 + 8725 036703 64 00 00 35 00 77 + 8726 036704 76 46 41 65 54 64 + 8727 036705 00 56 65 55 42 45 + 8728 036706 62 00 35 00 77 00 + 8729 036707 103 050 101 103 051 + 8730 036710 040 106 101 111 114 + 8731 036711 105 104 000 000 000 + 8732 036712 103 050 101 103 053 + 8733 036713 061 051 040 106 101 + 8734 036714 111 114 105 104 000 + 8735 036715 103 050 105 051 040 + 8736 036716 106 101 111 114 105 + 8737 036717 104 000 000 000 000 + 8738 036720 103 050 105 053 061 + 8739 036721 051 040 106 101 111 + 8740 036722 114 105 104 000 000 + 8741 036723 103 050 103 050 101 + 8742 036724 103 122 051 051 040 + 8743 036725 106 101 111 114 105 + 8744 036726 104 000 000 000 000 + 8745 036727 103 050 103 050 101 + 8746 036730 103 122 053 061 051 + 8747 036731 051 040 106 101 111 + 8748 036732 114 105 104 000 000 + 8749 036733 103 050 103 050 101 + 8750 036734 103 114 051 051 040 + 8751 036735 106 101 111 114 105 + 8752 036736 104 000 000 000 000 + 8753 036737 103 050 103 050 105 + 8754 036740 051 051 040 106 101 + 8755 036741 111 114 105 104 000 + 8756 036742 106 114 101 107 040 + 8757 036743 106 101 111 114 105 +DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) 0,2 MACRO %52(537) 10:59 20-JAN-77 PAGE 1-2 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0221 + + 8758 036744 104 000 000 000 000 + 8759 LIST + 8760 036745 000000 000000 ENDSLD: 0 + 8761 + 8762 IFDEF DEBUG,< + 8763 036746 PATCH: BLOCK DEBUG ;PATCHING AREA + 8764 > + 8765 + 8766 ;PROGRAM VARIABLES + 8767 037006 VAR + 8768 + 8769 IFDEF PGMEND,< + 8770 037016 000000 000000 END: 0 + 8771 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 037017 +CPU TIME USED 00:41.233 + +12K CORE USED diff --git a/apps/pdp10/diags/klad/dakaj/DAKAJ.MAC.txt b/apps/pdp10/diags/klad/dakaj/DAKAJ.MAC.txt new file mode 100644 index 000000000..e7477799c --- /dev/null +++ b/apps/pdp10/diags/klad/dakaj/DAKAJ.MAC.txt @@ -0,0 +1,1869 @@ +;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,&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,&17 ;SETUP AC-2 FOR COMPARISON + MOVEI AC,XX ;SETUP AC RIGHT + HRLI AC,XX ;SETUP AC LEFT + MOVEM AC,&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> + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) + +EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE + ;EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #10 SHIFT-ROTATE [DAKAJ] +/ + +TESTPC: 0 ;SUBTEST PC + + LOC 30624 + +START: ;PGMINT + ;MOVE [ASCIZ/AJ/] + ;MOVEM TLET + +STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC + AC=1 +E00: SAVEAC (1,1) + +;END CONNECTIONS-LSHC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE LOGICALLY SHIFTED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY +;INPUT GATES PREVIOUSLY TESTED ARE AGAIN +;TESTED HERE +;AN ERROR IS MOST LIKELY DUE TO FAILURE +;OF LSHC TO BRING UP ENABLING LEVEL + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (243,-1,-1,-1,-1,-1,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (244,0,0,0,1,0,0,0,2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (245,-1,-1,-1,-2,-1,-1,-1,-4,LSHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (246,0,0,100000,0,0,0,200000,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (247,-1,-1,677777,-1,-1,-1,577777,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (250,0,0,200000,0,0,0,400000,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (251,-1,-1,577777,-1,-1,-1,377777,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (252,0,0,400000,0,0,1,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (253,-1,-1,377777,-1,-1,-2,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (254,0,1,0,0,0,2,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (255,-1,-2,-1,-1,-1,-3,-1,-2,LSHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (256,100000,0,0,0,200000,0,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (257,677777,-1,-1,-1,577777,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (260,200000,0,0,0,400000,0,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (261,577777,-1,-1,-1,377777,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (262,-1,-1,-1,-1,377777,-1,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (263,400000,0,0,0,200000,0,0,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (264,377777,-1,-1,-1,177777,-1,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (265,0,4,0,0,0,2,0,0,LSHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (266,-1,-5,-1,-1,377777,-3,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (267,0,2,0,0,0,1,0,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (270,-1,-3,-1,-1,377777,-2,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (271,0,1,0,0,0,0,400000,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (272,-1,-2,-1,-1,377777,-1,377777,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (273,0,0,400000,0,0,0,200000,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (274,-1,-1,377777,-1,377777,-1,577777,-1,LSHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (275,0,0,0,4,0,0,0,2,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (276,-1,-1,-1,-5,377777,-1,-1,-3,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (277,0,0,0,2,0,0,0,1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (300,-1,-1,-1,-3,377777,-1,-1,-2,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (301,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (302,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (303,0,10,0,0,0,2,0,0,LSHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (304,-1,-11,-1,-1,177777,-3,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (305,0,4,0,0,0,1,0,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (306,-1,-5,-1,-1,177777,-2,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (307,0,2,0,0,0,0,400000,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (310,-1,-3,-1,-1,177777,-1,377777,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (311,0,1,0,0,0,0,200000,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (312,-1,-2,-1,-1,177777,-1,577777,-1,LSHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (313,0,0,0,10,0,0,0,2,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (314,-1,-1,-1,-11,177777,-1,-1,-3,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (315,0,0,0,4,0,0,0,1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (316,-1,-1,-1,-5,177777,-1,-1,-2,LSHC,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) + +;END CONNECTIONS-ASHC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE ARITHMETICALLY SHIFTED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY + +;GATES PREVIOUSLY TESTED,ARE AGAIN TESTED +;ERRORS MOST LIKELY DUE TO FAILURE OF +;ASHC TO BRING UP ENABLING LEVELS + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (317,-1,-1,-1,-1,-1,-1,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (320,0,0,0,1,0,0,0,2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (321,-1,-1,-1,-2,-1,-1,-1,-4,ASHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (322,0,0,100000,0,0,0,200000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (323,-1,-1,677777,-1,-1,-1,577777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - ASHC AC,1 +;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (324,400000,0,0,0,400000,0,400000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - ASHC AC,1 +;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (325,377777,-1,-1,-1,377777,-1,377777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (326,0,0,200000,0,0,1,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (327,-1,-1,577777,-1,-1,-2,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (330,0,1,0,0,0,2,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (331,-1,-2,-1,-1,-1,-3,-1,-2,ASHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (332,100000,0,0,0,200000,0,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (333,677777,-1,-1,-1,577777,-1,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (334,400000,0,400000,0,400000,0,400000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (335,377777,-1,377777,-1,377777,-1,377777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (336,400000,0,400000,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (337,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (340,400000,0,400000,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (341,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (342,0,4,0,0,0,2,0,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (343,-1,-5,-1,-1,-1,-3,-1,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (344,0,2,0,0,0,1,0,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (345,-1,-3,-1,-1,-1,-2,-1,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (346,400000,0,0,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (347,377777,-1,-1,-1,177777,-1,377777,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (350,0,1,0,0,0,0,200000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (351,-1,-2,-1,-1,-1,-1,577777,-1,ASHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (352,0,0,0,4,0,0,0,2,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (353,-1,-1,-1,-5,-1,-1,-1,-3,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (354,0,0,0,2,0,0,0,1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (355,-1,-1,-1,-3,-1,-1,-1,-2,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (356,400000,0,400000,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (357,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (360,400000,0,400000,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (361,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (362,0,10,0,0,0,2,0,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (363,-1,-11,-1,-1,-1,-3,-1,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (364,0,4,0,0,0,1,0,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (365,-1,-5,-1,-1,-1,-2,-1,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (366,400000,0,0,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (367,377777,-1,-1,-1,077777,-1,377777,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (370,0,2,0,0,0,0,200000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (371,-1,-3,-1,-1,-1,-1,577777,-1,ASHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (372,0,0,0,10,0,0,0,2,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (373,-1,-1,-1,-11,-1,-1,-1,-3,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (374,0,0,0,4,0,0,0,1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (375,-1,-1,-1,-5,-1,-1,-1,-2,ASHC,-2) +SUBTTL DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (445,252525,252525,525252,525252,ROT,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (446,525252,525252,252525,252525,ROT,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (447,252525,252525,525252,525252,ROT,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (450,525252,525252,252525,252525,ROT,-1) +PAGE +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (451,146314,631463,631463,146314,ROT,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (452,631463,146314,146314,631463,ROT,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (453,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (454,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,1) +PAGE +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (455,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (456,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (457,146314,631463,146314,631463,631463,146314,631463,146314,ROTC,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (460,631463,146314,631463,146314,146314,631463,146314,631463,ROTC,-2) +SUBTTL DIAGNOSTIC SECTION - SC GATING TEST + + AC=5 + SAVEAC (1,1) + +SN=37600 + ZZ=17 + + ;SHIFT LEFT +E37600: REPEAT ^D3,< +;TEST SC HIGH ORDER BITS +;TEST THE ABILITY TO SET THE FOUR MOST +;SIGNIFICANT BITS +;AC IS LOGICALLY SHIFTED LEFT +;AND TESTED +;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT +;AN ERROR WILL OCCUR IF AC EQUALS ZERO +;FOLLOWING A SHIFT +;FAILURE TO SET SC BIT 1,2 OR +;3 WILL RESULT IN EXCESSIVE SHIFTING + +SN=SN+1 + ZZ=ZZ+1 + MOVEI AC,1 ;SET BIT 35 + LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR SHIFT + ER3 AC,SN ;SC BIT 0 FAILED TO SET + SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + ER3 AC,SN ;SC BIT (N) FAILED TO SET + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +SUBTTL DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST + +;TEST SC AR EN +;TEST THE ABILITY OF SC AR EN TO +;AFFECT A TRANSFER BETWEEN SC AND AR +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST +;AC IS ROTATED LEFT/RIGHT AND TESTED FOR +;EVIDENCE OF ROTATE + + AC=7 + SAVEAC (1,1) + +E37700: MOVEI AC,1 ;SET BIT 35 + ROT AC,-5 ;*ROTATE RIGHT + ROT AC,7 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR PRESENCE + ER3 AC,37701 ;OF PULSE + JUMPL AC+2,E37700 ;LOOP ON ERROR SWITCH + + ;TEST PULSE WITH SC BITS 5-8 +E40000: MOVEI AC,1 ;SET BIT 35 + ROT AC,17 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR ROTATE LEFT + ER3 AC,40001 ;SC AR EN FAILED + JUMPL AC+2,E40000 ;LOOP ON ERROR SWITCH + + ;TEST PULSE WITH SC BITS 4-8 +E40100: MOVEI AC,1 ;SET BIT 35 + ROT AC,37 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR ROTATE LEFT + ER3 AC,40101 ;TEST FOR ROTATE LEFT + JUMPL AC+2,E40100 ;LOOP ON ERROR SWITCH + AC=6 + SAVEAC (1,1) + +SN=40200 + ZZ=0 + +E40200: REPEAT ^D8, < +;TEST SC-AR CONNECTION-ONE'S +;TEST THE ABILITY OF SC AR EN +;TO TRANSFER ONE'S TO SC +;SC BITS EIGHT THROUGH ONE ARE SET IN TURN +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST +;FAILURE OF A SHIFT COUNTER BIT TO SET +;RESULTS IN NO ROTATE + +SN=SN+1 + ZZ=ZZ+ZZ + IFE ZZ, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR ROTATE + ER3 AC,SN ;SC BIT (N) FAILED TO SET + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> + AC=5 + SAVEAC (1,1) + +SN=40300 + XX=0 + ZZ=-1 + +E40300: REPEAT ^D6, < +;TEST SC AR CONNETION-ZERO'S +;TEST THE ABILITY OF A SC BIT TO REMAIN +;A ZERO WHEN TRANSFERRING BR TO SC +;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE +;TEST BY ROTATING RIGHT TWO,LEFT ONE +;MALFUNTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + XX=XX+XX + ZZ=ZZ+ZZ + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR ROTATE + ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SC-SCAD GATING TEST + +;TEST DIRECTION +;TEST THE ABILITY TO ROTATE IN THE +;SPECIFIED DIRECTION +;FAILURE OF AC TO ROTATE OR ROTATING IN THE +;WRONG DIRECTION WILL CAUSE AN ERROR +;MALFUNCTION OF SCAD OR SC COUNT GATES WILL +;CAUSE AN ERROR + + AC=4 + SAVEAC (1,1) + + ;TEST LEFT +E40400: MOVEI AC,400000 ;SET AC BIT 18 + MOVSI AC-1,-1 ;SET LEFT,CLEAR RIGHT + ROT AC,3 ;*ROTATE LEFT + TDNN AC,AC-1 ;TEST DIRECTION + ER3 AC,40401 ;FAILED OR WRONG DIRECTION + JUMPL AC+2,E40400 ;LOOP ON ERROR SWITCH + + ;TEST RIGHT +E40500: MOVSI AC,1 ;SET AC BIT 17 + MOVEI AC-1,-1 ;CLEAR LEFT,SET RIGHT + ROT AC,-3 ;*ROTATE RIGHT + TDNN AC,AC-1 ;TEST DIRECTION + ER3 AC,40501 ;FAILED OR WRONG DIRECTION + JUMPL AC+2,E40500 ;LOOP ON ERROR SWITCH + AC=3 + SAVEAC (1,1) + +SN=40600 + ZZ=0 + + ;TEST FOR NO ROTATE +E40600: REPEAT ^D8,< +;SCAD-SC NEGATE SET UP TEST +;TEST A BIT FAILING TO CLEAR ON COMPLEMENT +;TEST SC+1 ENABLE +;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE +;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS +;IN ROT LEFT ONE +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + ZZ=ZZ+ZZ + IFE ZZ, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + ER3 AC,SN ;ON NEGATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=40700 + ZZ=1 + + ;TEST FOR ROTATE LEFT ONE +E40700: REPEAT ^D7,< +;SCAD-SC NEGATE SET UP TEST +;TEST A BIT FAILING TO CLEAR ON COMPLEMENT +;TEST SC+1 ENABLE +;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE +;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS +;IN ROT LEFT ONE +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + ZZ=ZZ+ZZ + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + ER3 AC,SN ;AND SC+1 FAILED + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> + AC=2 + SAVEAC (1,1) + +SN=41000 + XX=1 + ZZ=0 + + ;ROTATE FROM 3 TO 17 TIMES +E41000: REPEAT ^D5,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=41100 + XX=0 + + ;ROTATE FROM 22 TO 41 TIMES +E41100: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + MOVSS AC ;SWAP CONTENTS OF AC + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=41200 + XX=0 + + ;ROTATE FROM 44 TO 36 TIMES +E41200: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=41300 + XX=0 + + ;ROTATE FROM 66 TO 105 TIMES +E41300: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + MOVSS AC ;SWAP CONTENTS OF AC + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (461,230703,603700,230703,603700,ROT,0) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (462,230703,603700,700230,703603,ROT,77) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (463,230703,603700,740114,341701,ROT,76) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (464,230703,603700,370023,070360,ROT,74) +PAGE +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (465,230703,603700,017401,143417,ROT,70) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (466,230703,603700,036037,002307,ROT,60) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (467,230703,603700,011434,170174,ROT,40) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (470,230703,603700,600461,607407,ROT,100) +PAGE +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (471,230703,603700,461607,407600,ROT,1) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (472,230703,603700,143417,017401,ROT,2) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (473,230703,603700,307036,037002,ROT,3) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (474,230703,603700,434170,174011,ROT,5) +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (475,230703,603700,703603,700230,ROT,11) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (476,230703,603700,701740,114341,ROT,21) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (477,230703,603700,023070,360370,ROT,41) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (500,230703,603700,401143,417017,ROT,101) +SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST + +ADR=501-3 +N=-374-44 + + REPEAT ^D15, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR1 (\ADR,230703,603700,114341,701740,ROT,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR1 (\,230703,603700,230703,603700,ROT,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR1 (\,230703,603700,461607,407600,ROT,N+1) +PAGE> +N=-374-44 + + REPEAT ^D1, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) +PAGE> + REPEAT ^D7, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) +PAGE +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) +PAGE> +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + SR1 (633,230703,603700,307036,037002,ROT,377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + SR1 (634,230703,603700,023070,360370,ROT,-377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + SR2 (635,230703,603700,770037,600377,700376,003772,307036,037007,ROTC,377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + SR2 (636,230703,603700,770037,600377,077003,760037,723070,360370,ROTC,-377) +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (637,230703,603700,230703,603700,ROT,400) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (640,230703,603700,230703,603700,ROT,1000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (641,230703,603700,230703,603700,ROT,2000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (642,230703,603700,230703,603700,ROT,4000) +PAGE +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (643,230703,603700,230703,603700,ROT,10000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (644,230703,603700,230703,603700,ROT,20000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (645,230703,603700,230703,603700,ROT,40000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (646,230703,603700,230703,603700,ROT,100000) +PAGE +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (647,230703,603700,230703,603700,ROT,200000) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + SR1 (650,230703,603700,011434,170174,ROT,400000) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + SR2 (651,230703,603700,770037,600377,037401,770017,751434,170174,ROTC,400000) +SUBTTL DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST + +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + + AC=-2 + ZZ=-2 + ;SET UP ACCUMULATOR'S + REPEAT ^D7,< + ZZ=ZZ+2 + AC=AC+2 + MOVEI AC,ZZ ;AC NUMBER TO AC + MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 +> +PAGE + AC=1 + SAVEAC (1,1) + +SN=41400 + AC=14 + ZZ=14 + + ;TEST ROTC-ACCUMULATOR'S 7-14 +E41400: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + +SN=41500 + AC=12 + ZZ=12 + + ;TEST LSHC-ACCUMULATORS 5-12 +E41500: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + + + AC=4 + SAVEAC (1,1) + +SN=41600 + AC=5 + ZZ=5 + + ;TEST ASHC-ACCUMULATORS 0-5 +E41600: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC+1,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +; AC=17 +; SAVEAC (1,1) + +SN=41700 + + ;TEST ASHC-ACUMMULATORS 17-0 +E41700: REPEAT ^D0,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,17 ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,0 ;TEST FOR CORRECT AC+1 + ER4 AC+1,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST + + AC=12 + SAVEAC (1,1) + +SN=42000 + WW=030303 ;USED FOR COMPARISON + XX=030303 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (011)-TEST AC,AC+1 +E42000: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) ;SET UP ACCUMULATORS + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD =0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=14 + SAVEAC (1,1) + +SN=42100 + WW=606060 ;USED FOR COMPARISON + XX=606060 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (110)-TEST AC,AC+1 +E42100: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD =0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=13 + SAVEAC (1,1) + +SN=42200 + WW=050505 ;USED FOR COMPARISON + XX=050505 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (101)-TEST AC,AC+1 +E42200: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=12 + SAVEAC (1,1) + +SN=42300 + WW=505050 ;USED FOR COMPARISON + XX=505050 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (101)-TEST AC,AC+1 +E42300: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + +SN=42400 + WW=070707 ;USED FOR COMPARISON + XX=070707 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (111)-TEST AC,AC+1 +E42400: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=10 + SAVEAC (1,1) + +SN=42500 + WW=707070 ;USED FOR COMPARISON + XX=707070 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (111)-TEST AC,AC+1 +E42500: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=7 + SAVEAC (1,1) + +SN=42600 + WW=025025 ;USED FOR COMPARISON + XX=025025 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (010101)-TEST AC,AC+1 +E42600: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=6 + SAVEAC (1,1) + +SN=42700 + WW=520520 ;USED FOR COMPARISON + XX=520520 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (101010)-TEST AC,AC+1 +E42700: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=5 + SAVEAC (1,1) + +SN=43000 + WW=033033 ;USED FOR COMPARISON + XX=033033 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (011011)-TEST AC,AC+1 +E43000: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=4 + SAVEAC (1,1) + +SN=43100 + WW=660660 ;USED FOR COMPARISON + XX=660660 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (110110)-TEST AC,AC+1 +E43100: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST + +;TEST AROV FLAG-ASH,ASHC +;TEST THE ABILITY OF ASH,ASHC TO +;SET AROV FLAG +;TEST (00),(11) FOR SET NOT CONDITION +;TEST (01),(10) FOR SET CONDITION +;AN ERROR WILL OCCUR IF FLAG IS +;SET/SET NOT AS APPROPRIATE + + AC=10 + SAVEAC (1,1) + + ;ASH AROV SET NOT (11) +E43200: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,-1 ;SET LEFT,CLEAR RIGHT + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43201 ;FLAG IS SET + JUMPL AC+2,E43200 ;LOOP ON ERROR SWITCH + + ;ASH AROV SET NOT (00) +E43300: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + SETZ AC, ;CLEAR AC + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43301 ;FLAG IS SET + JUMPL AC+2,E43300 ;LOOP ON ERROR SWITCH +PAGE + AC=7 + SAVEAC (1,1) + + ;ASH AROV SET (01) +E43400: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,43401 ;FLAG IS NOT SET + JUMPL AC+2,E43400 ;LOOP ON ERROR SWITCH + + ;ASH AROV SET (10) +E43500: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,400000 ;SET BIT 0 + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,43501 ;FLAG IS NOT SET + JUMPL AC+2,E43500 ;LOOP ON ERROR SWITCH + AC=10 + SAVEAC (1,1) + + ;ASHC AROV SET NOT (11) +E43600: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,-1 ;SET LEFT, CLEAR RIGHT + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43601 ;FLAG IS SET + JUMPL AC+2,E43600 ;LOOP ON ERROR SWITCH + + + ;ASHC AROV SET NOT (00) +E43700: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + SETZ AC, ;CLEAR AC + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43701 ;FLAG IS SET + JUMPL AC+2,E43700 ;LOOP ON ERROR SWITCH + + AC=7 + SAVEAC (1,1) + + ;ASHC AROV SET (01) +E44000: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,44001 ;FLAG IS NOT SET + JUMPL AC+2,E44000 ;LOOP ON ERROR SWITCH + + ;ASHC AROV SET (10) +E44100: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,400000 ;SET BIT 0 + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,44101 ;FLAG IS NOT SET + JUMPL AC+2,E44100 ;LOOP ON ERROR SWITCH +SUBTTL DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=0, X=6 AND C(X)=3; +;HENCE, THE NET ROTATION SHOULD BE 3 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 307036,,037002 + + AC=7 + SAVEAC (1,1) + +E70000: MOVEI 6,3 ;PRELOAD INDEX REG WITH 3 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,(6) ;*ROT C(AC) 3 BIT POSITIONS LEFT + CAME AC,[307036,,037002] ;IS RESULT IN AC CORRECT? + ER3 AC,70001 ;INDEXING FAILED + JUMPL AC+2,E70000 ;LOOP ON ERROR SWITCH + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=4, X=5 AND C(X)=0; +;HENCE, THE NET ROTATION SHOULD BE 4 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 616074,,076004. + +E70100: MOVEI 5,0 ;PRELOAD INDEX REG WITH 0 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,4(5) ;*ROT C(AC) 4 BIT POSITIONS LEFT + CAME AC,[616074,,076004] ;IS RESULT IN AC CORRECT? + ER3 AC,70101 ;INDEXING FAILED + JUMPL AC+2,E70100 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=16, X=6 AND C(X)=5; +;HENCE, THE NET ROTATION SHOULD BE 21 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 407600,,461607. + +E70200: MOVEI 6,5 ;PRELOAD INDEX REG WITH 5 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,16(6) ;*ROT C(AC) 21 BIT POSITIONS LEFT + CAME AC,[407600,,461607] ;IS RESULT IN AC CORRECT? + ER3 AC,70201 ;INDEXING FAILED + JUMPL AC+2,E70200 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS +;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO C(E), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. +;IN THIS CASE, C(AC)=230703,,603700, E=6 AND C(E)=35; +;HENCE, THE NET ROTATION SHOULD BE 35 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 401143,,417017. + +E70300: MOVEI 6,35 ;PRELOAD E WITH 35 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,@6 ;*ROT C(AC) 35 BIT POSITIONS LEFT + CAME AC,[401143,,417017] ;IS RESULT IN AC CORRECT? + ER3 AC,70301 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS +;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO THE RIGHT HALF OF C(E), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. +;IN THIS CASE, C(AC)=230703,,603700, E=[0,,1] AND C(E)=15; +;HENCE, THE NET ROTATION SHOULD BE 1 BIT POSITION LEFT, +;AND THE RESULT IN THE AC SHOULD BE 461607,,407600. + +E70400: SETOM 1 ;PRELOAD AC1 WITH -1,,-1 IN CASE IND. ADR. FAILS + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,@[0,,1] ;*ROT C(AC) 1 BIT POSITION LEFT + CAME AC,[461607,,407600] ;IS RESULT IN AC CORRECT? + ER3 AC,70401 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;EXECUTED BY AN XCT INSTRUCTION. +;IN THIS CASE, C(AC)=230703,,603700 AND E=2. +;HENCE, THE NET ROTATION SHOULD BE 2 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 143417,,017401. + +E70500: MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + XCT [ROT AC,2] ;*XCT SHOULD ROT C(AC) 2 BIT POSITIONS LEFT + CAME AC,[143417,,017401] ;IS RESULT IN AC CORRECT? + ER3 AC,70501 ;XCT OF ROT FAILED + JUMPL AC+2,E70500 ;LOOP ON ERROR SWITCH + + ;JRST BEGEND ;REPEAT DIAGNOSTIC + + END START diff --git a/apps/pdp10/diags/klad/dakaj/DAKAJM.MAC.txt b/apps/pdp10/diags/klad/dakaj/DAKAJM.MAC.txt new file mode 100644 index 000000000..eb9a7ee2f --- /dev/null +++ b/apps/pdp10/diags/klad/dakaj/DAKAJM.MAC.txt @@ -0,0 +1,1727 @@ +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (LSHC) + +EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + EXIT + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #10 SHIFT-ROTATE [DAKAJ] +/ + +START: PGMINT + MOVE [ASCIZ/AJ/] + MOVEM TLET + +STARTA: JRST E00 ;GO PERFORM DIAGNOSTIC + AC=1 +E00: SAVEAC (1,1) + +;END CONNECTIONS-LSHC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE LOGICALLY SHIFTED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY +;INPUT GATES PREVIOUSLY TESTED ARE AGAIN +;TESTED HERE +;AN ERROR IS MOST LIKELY DUE TO FAILURE +;OF LSHC TO BRING UP ENABLING LEVEL + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (243,-1,-1,-1,-1,-1,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (244,0,0,0,1,0,0,0,2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (245,-1,-1,-1,-2,-1,-1,-1,-4,LSHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (246,0,0,100000,0,0,0,200000,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (247,-1,-1,677777,-1,-1,-1,577777,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (250,0,0,200000,0,0,0,400000,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (251,-1,-1,577777,-1,-1,-1,377777,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (252,0,0,400000,0,0,1,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (253,-1,-1,377777,-1,-1,-2,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (254,0,1,0,0,0,2,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (255,-1,-2,-1,-1,-1,-3,-1,-2,LSHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (256,100000,0,0,0,200000,0,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (257,677777,-1,-1,-1,577777,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (260,200000,0,0,0,400000,0,0,0,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - LSHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (261,577777,-1,-1,-1,377777,-1,-1,-2,LSHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (262,-1,-1,-1,-1,377777,-1,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (263,400000,0,0,0,200000,0,0,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (264,377777,-1,-1,-1,177777,-1,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (265,0,4,0,0,0,2,0,0,LSHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (266,-1,-5,-1,-1,377777,-3,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (267,0,2,0,0,0,1,0,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (270,-1,-3,-1,-1,377777,-2,-1,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (271,0,1,0,0,0,0,400000,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (272,-1,-2,-1,-1,377777,-1,377777,-1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (273,0,0,400000,0,0,0,200000,0,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (274,-1,-1,377777,-1,377777,-1,577777,-1,LSHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (275,0,0,0,4,0,0,0,2,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (276,-1,-1,-1,-5,377777,-1,-1,-3,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (277,0,0,0,2,0,0,0,1,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (300,-1,-1,-1,-3,377777,-1,-1,-2,LSHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (301,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (302,-1,-1,-1,-1,177777,-1,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (303,0,10,0,0,0,2,0,0,LSHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (304,-1,-11,-1,-1,177777,-3,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (305,0,4,0,0,0,1,0,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (306,-1,-5,-1,-1,177777,-2,-1,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (307,0,2,0,0,0,0,400000,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (310,-1,-3,-1,-1,177777,-1,377777,-1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (311,0,1,0,0,0,0,200000,0,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (312,-1,-2,-1,-1,177777,-1,577777,-1,LSHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (313,0,0,0,10,0,0,0,2,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (314,-1,-1,-1,-11,177777,-1,-1,-3,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (315,0,0,0,4,0,0,0,1,LSHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - LSHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (316,-1,-1,-1,-5,177777,-1,-1,-2,LSHC,-2) + +SUBTTL DIAGNOSTIC SECTION - END CONNECTIONS TEST (ASHC) + +;END CONNECTIONS-ASHC +;TEST AR-MQ END BIT INPUT GATES +;TEST LEFT-AR0,1,34,35 SHLT INP GATES +; MQ0,1,34,35 SHLT INP GATES +;TEST RIGHT-AR0,1,34,35 SHRT INP GATES +; MQ0,1,34,35 SHRT INPUT GATES +;AC,AC+1 ARE ARITHMETICALLY SHIFTED LEFT/RIGHT AND +;END BITS ARE TESTED +;TEST ASSUMES BOTH REGISTERS ARE +;CAPABLE OF SHIFTING 1,-1 AND -2 BIT POSITIONS CORRECTLY + +;GATES PREVIOUSLY TESTED,ARE AGAIN TESTED +;ERRORS MOST LIKELY DUE TO FAILURE OF +;ASHC TO BRING UP ENABLING LEVELS + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (317,-1,-1,-1,-1,-1,-1,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (320,0,0,0,1,0,0,0,2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (321,-1,-1,-1,-2,-1,-1,-1,-4,ASHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (322,0,0,100000,0,0,0,200000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (323,-1,-1,677777,-1,-1,-1,577777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ONE'S - ASHC AC,1 +;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (324,400000,0,0,0,400000,0,400000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHLT INP-ZERO'S - ASHC AC,1 +;RESULT IN MQ0 SHOULD AGREE WITH INITIAL AR0 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (325,377777,-1,-1,-1,377777,-1,377777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (326,0,0,200000,0,0,1,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (327,-1,-1,577777,-1,-1,-2,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (330,0,1,0,0,0,2,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (331,-1,-2,-1,-1,-1,-3,-1,-2,ASHC,1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (332,100000,0,0,0,200000,0,0,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (333,677777,-1,-1,-1,577777,-1,-1,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ONE'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (334,400000,0,400000,0,400000,0,400000,0,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHLT INP-ZERO'S - ASHC AC,1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (335,377777,-1,377777,-1,377777,-1,377777,-2,ASHC,1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (336,400000,0,400000,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (337,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (340,400000,0,400000,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (341,377777,-1,377777,-1,177777,-1,377777,-1,ASHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (342,0,4,0,0,0,2,0,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (343,-1,-5,-1,-1,-1,-3,-1,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (344,0,2,0,0,0,1,0,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (345,-1,-3,-1,-1,-1,-2,-1,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (346,400000,0,0,0,600000,0,400000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (347,377777,-1,-1,-1,177777,-1,377777,-1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (350,0,1,0,0,0,0,200000,0,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (351,-1,-2,-1,-1,-1,-1,577777,-1,ASHC,-1) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (352,0,0,0,4,0,0,0,2,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (353,-1,-1,-1,-5,-1,-1,-1,-3,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (354,0,0,0,2,0,0,0,1,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-1 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (355,-1,-1,-1,-3,-1,-1,-1,-2,ASHC,-1) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (356,400000,0,400000,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR0 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF AR + SR2 (357,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (360,400000,0,400000,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR1 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF AR + SR2 (361,377777,-1,377777,-1,077777,-1,377777,-1,ASHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (362,0,10,0,0,0,2,0,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR34 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF AR + SR2 (363,-1,-11,-1,-1,-1,-3,-1,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (364,0,4,0,0,0,1,0,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST AR35 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF AR + SR2 (365,-1,-5,-1,-1,-1,-2,-1,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (366,400000,0,0,0,700000,0,400000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ0 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 0 OF MQ + SR2 (367,377777,-1,-1,-1,077777,-1,377777,-1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (370,0,2,0,0,0,0,200000,0,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ1 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 1 OF MQ + SR2 (371,-1,-3,-1,-1,-1,-1,577777,-1,ASHC,-2) +PAGE +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (372,0,0,0,10,0,0,0,2,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ34 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 34 OF MQ + SR2 (373,-1,-1,-1,-11,-1,-1,-1,-3,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ONE'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (374,0,0,0,4,0,0,0,1,ASHC,-2) + +;SHIFT CONNECTIONS TEST +;TEST MQ35 SHRT INP-ZERO'S - ASHC AC,-2 +;TEST ABILITY TO SHIFT INTO BIT 35 OF MQ + SR2 (375,-1,-1,-1,-5,-1,-1,-1,-2,ASHC,-2) +SUBTTL DIAGNOSTIC SECTION - BIT POSITION RELIABILITY TEST + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (445,252525,252525,525252,525252,ROT,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (446,525252,525252,252525,252525,ROT,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (447,252525,252525,525252,525252,ROT,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (450,525252,525252,252525,252525,ROT,-1) +PAGE +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (451,146314,631463,631463,146314,ROT,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR1 (452,631463,146314,146314,631463,ROT,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (453,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (454,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,1) +PAGE +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (455,252525,252525,252525,252525,525252,525252,525252,525252,ROTC,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (456,525252,525252,525252,525252,252525,252525,252525,252525,ROTC,-1) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (457,146314,631463,146314,631463,631463,146314,631463,146314,ROTC,-2) + +;BIT POSITION RELIABILITY TEST +;TEST ABILITY TO ROTATE ONES AND ZEROS INTO ALL BIT POSITIONS + SR2 (460,631463,146314,631463,146314,146314,631463,146314,631463,ROTC,-2) +SUBTTL DIAGNOSTIC SECTION - SC GATING TEST + + AC=5 + SAVEAC (1,1) + +SN=37600 + ZZ=17 + + ;SHIFT LEFT +E37600: REPEAT ^D3,< +;TEST SC HIGH ORDER BITS +;TEST THE ABILITY TO SET THE FOUR MOST +;SIGNIFICANT BITS +;AC IS LOGICALLY SHIFTED LEFT +;AND TESTED +;FAILURE TO SET BIT 0 RESULTS IN NO SHIFT +;AN ERROR WILL OCCUR IF AC EQUALS ZERO +;FOLLOWING A SHIFT +;FAILURE TO SET SC BIT 1,2 OR +;3 WILL RESULT IN EXCESSIVE SHIFTING + +SN=SN+1 + ZZ=ZZ+1 + MOVEI AC,1 ;SET BIT 35 + LSH AC,ZZ ;*SHIFT LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR SHIFT + ER3 AC,SN ;SC BIT 0 FAILED TO SET + SKIPN AC ;SHIFT EXCEEDED OCTAL 44 + ER3 AC,SN ;SC BIT (N) FAILED TO SET + JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH +> + +SUBTTL DIAGNOSTIC SECTION - SC AR CONTROL AND GATING TEST + +;TEST SC AR EN +;TEST THE ABILITY OF SC AR EN TO +;AFFECT A TRANSFER BETWEEN SC AND AR +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST +;AC IS ROTATED LEFT/RIGHT AND TESTED FOR +;EVIDENCE OF ROTATE + + AC=7 + SAVEAC (1,1) + +E37700: MOVEI AC,1 ;SET BIT 35 + ROT AC,-5 ;*ROTATE RIGHT + ROT AC,7 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR PRESENCE + ER3 AC,37701 ;OF PULSE + JUMPL AC+2,E37700 ;LOOP ON ERROR SWITCH + + ;TEST PULSE WITH SC BITS 5-8 +E40000: MOVEI AC,1 ;SET BIT 35 + ROT AC,17 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR ROTATE LEFT + ER3 AC,40001 ;SC AR EN FAILED + JUMPL AC+2,E40000 ;LOOP ON ERROR SWITCH + + ;TEST PULSE WITH SC BITS 4-8 +E40100: MOVEI AC,1 ;SET BIT 35 + ROT AC,37 ;*ROTATE LEFT + CAIN AC,1 ;TEST FOR ROTATE LEFT + ER3 AC,40101 ;TEST FOR ROTATE LEFT + JUMPL AC+2,E40100 ;LOOP ON ERROR SWITCH + AC=6 + SAVEAC (1,1) + +SN=40200 + ZZ=0 + +E40200: REPEAT ^D8, < +;TEST SC-AR CONNECTION-ONE'S +;TEST THE ABILITY OF SC AR EN +;TO TRANSFER ONE'S TO SC +;SC BITS EIGHT THROUGH ONE ARE SET IN TURN +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST +;FAILURE OF A SHIFT COUNTER BIT TO SET +;RESULTS IN NO ROTATE + +SN=SN+1 + ZZ=ZZ+ZZ + IFE ZZ, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR ROTATE + ER3 AC,SN ;SC BIT (N) FAILED TO SET + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> + AC=5 + SAVEAC (1,1) + +SN=40300 + XX=0 + ZZ=-1 + +E40300: REPEAT ^D6, < +;TEST SC AR CONNETION-ZERO'S +;TEST THE ABILITY OF A SC BIT TO REMAIN +;A ZERO WHEN TRANSFERRING BR TO SC +;TEST DETECTS A SC F/F PERMENTLY SET TO A ONE +;TEST BY ROTATING RIGHT TWO,LEFT ONE +;MALFUNTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + XX=XX+XX + ZZ=ZZ+ZZ + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE RIGHT (N) NUMBER OF TIMES + ROT AC,XX ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;TEST FOR ROTATE + ER3 AC,SN ;SC BIT (N) FAILED TO CLEAR + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SC-SCAD GATING TEST + +;TEST DIRECTION +;TEST THE ABILITY TO ROTATE IN THE +;SPECIFIED DIRECTION +;FAILURE OF AC TO ROTATE OR ROTATING IN THE +;WRONG DIRECTION WILL CAUSE AN ERROR +;MALFUNCTION OF SCAD OR SC COUNT GATES WILL +;CAUSE AN ERROR + + AC=4 + SAVEAC (1,1) + + ;TEST LEFT +E40400: MOVEI AC,400000 ;SET AC BIT 18 + MOVSI AC-1,-1 ;SET LEFT,CLEAR RIGHT + ROT AC,3 ;*ROTATE LEFT + TDNN AC,AC-1 ;TEST DIRECTION + ER3 AC,40401 ;FAILED OR WRONG DIRECTION + JUMPL AC+2,E40400 ;LOOP ON ERROR SWITCH + + ;TEST RIGHT +E40500: MOVSI AC,1 ;SET AC BIT 17 + MOVEI AC-1,-1 ;CLEAR LEFT,SET RIGHT + ROT AC,-3 ;*ROTATE RIGHT + TDNN AC,AC-1 ;TEST DIRECTION + ER3 AC,40501 ;FAILED OR WRONG DIRECTION + JUMPL AC+2,E40500 ;LOOP ON ERROR SWITCH + AC=3 + SAVEAC (1,1) + +SN=40600 + ZZ=0 + + ;TEST FOR NO ROTATE +E40600: REPEAT ^D8,< +;SCAD-SC NEGATE SET UP TEST +;TEST A BIT FAILING TO CLEAR ON COMPLEMENT +;TEST SC+1 ENABLE +;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE +;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS +;IN ROT LEFT ONE +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + ZZ=ZZ+ZZ + IFE ZZ, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,1 ;SC BIT (N) FAILED TO CLEAR + ER3 AC,SN ;ON NEGATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=40700 + ZZ=1 + + ;TEST FOR ROTATE LEFT ONE +E40700: REPEAT ^D7,< +;SCAD-SC NEGATE SET UP TEST +;TEST A BIT FAILING TO CLEAR ON COMPLEMENT +;TEST SC+1 ENABLE +;A BIT FAILING TO CLEAR RESULTS IN NO ROTATE +;A BIT FAILING TO CLEAR AND SC+1 FAILING RESULTS +;IN ROT LEFT ONE +;MALFUNCTION OF SCAD OR SC COUNT GATES +;WILL AFFECT TEST + +SN=SN+1 + ZZ=ZZ+ZZ + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE LEFT (N) NUMBER OF TIMES + CAIN AC,2 ;SC BIT (N) FAILED TO CLEAR + ER3 AC,SN ;AND SC+1 FAILED + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> + AC=2 + SAVEAC (1,1) + +SN=41000 + XX=1 + ZZ=0 + + ;ROTATE FROM 3 TO 17 TIMES +E41000: REPEAT ^D5,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=41100 + XX=0 + + ;ROTATE FROM 22 TO 41 TIMES +E41100: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + MOVSS AC ;SWAP CONTENTS OF AC + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SN=41200 + XX=0 + + ;ROTATE FROM 44 TO 36 TIMES +E41200: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH +> +PAGE +SN=41300 + XX=0 + + ;ROTATE FROM 66 TO 105 TIMES +E41300: REPEAT ^D6,< +;SCAD SC COUNT TEST +;TEST THE ABILITY OF SCAD TO PROPERLY +;COUNT THE SHIFT COUNTER +;TEST SC-SCAD CONNECTION +;AC IS ROTATED FROM 3 THROUGH 105 TIMES +;AN ERROR WILL OCCUR IF AC FAILS TO ROTATE +;THE CORRECT NUMBER OF BITS +;ROTATING TO THE LEFT EXERCISES MAXIMUM +;LOGIC + +SN=SN+1 + XX=XX*10 + ZZ=ZZ+3 + IFE XX, + MOVEI AC,1 ;SET BIT 35 + ROT AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + MOVSS AC ;SWAP CONTENTS OF AC + CAIE AC,XX ;TEST AC + ER3 AC,SN ;INCORRECT ROTATE + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SHIFT COUNTER RELIABILITY TEST + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (461,230703,603700,230703,603700,ROT,0) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (462,230703,603700,700230,703603,ROT,77) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (463,230703,603700,740114,341701,ROT,76) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (464,230703,603700,370023,070360,ROT,74) +PAGE +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (465,230703,603700,017401,143417,ROT,70) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (466,230703,603700,036037,002307,ROT,60) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (467,230703,603700,011434,170174,ROT,40) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (470,230703,603700,600461,607407,ROT,100) +PAGE +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (471,230703,603700,461607,407600,ROT,1) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (472,230703,603700,143417,017401,ROT,2) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (473,230703,603700,307036,037002,ROT,3) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (474,230703,603700,434170,174011,ROT,5) +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (475,230703,603700,703603,700230,ROT,11) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (476,230703,603700,701740,114341,ROT,21) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (477,230703,603700,023070,360370,ROT,41) + +;SHIFT COUNTER TEST +;TEST SHIFT COUNTER FOR ANY BITS S-A-0/1 + SR1 (500,230703,603700,401143,417017,ROT,101) +SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY SHIFT COUNTER RELIABILITY TEST + +ADR=501-3 +N=-374-44 + + REPEAT ^D15, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR1 (\ADR,230703,603700,114341,701740,ROT,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR1 (\,230703,603700,230703,603700,ROT,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR1 (\,230703,603700,461607,407600,ROT,N+1) +PAGE> +N=-374-44 + + REPEAT ^D1, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) +PAGE> + REPEAT ^D7, < +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,514341,701740,374017,700177,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,230703,603700,770037,600377,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,461607,407601,760077,400776,ROTC,N+1) +PAGE +ADR=ADR+3 +N=N+44 + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS -1 POSITION + SR2 (\ADR,230703,603700,770037,600377,374017,700177,514341,701740,ROTC,N-1) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS + SR2 (\,230703,603700,770037,600377,770037,600377,230703,603700,ROTC,N) + +;SHIFT COUNTER TEST +;TEST FOR CORRECT ROTATION BY A MULTIPLE OF 36 POSITIONS +1 POSITION + SR2 (\,230703,603700,770037,600377,760077,400776,461607,407601,ROTC,N+1) +PAGE> +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + SR1 (633,230703,603700,307036,037002,ROT,377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + SR1 (634,230703,603700,023070,360370,ROT,-377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM LEFT ROTATION (255 POSITIONS) + SR2 (635,230703,603700,770037,600377,700376,003772,307036,037007,ROTC,377) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION -1 (255 POSITIONS) + SR2 (636,230703,603700,770037,600377,077003,760037,723070,360370,ROTC,-377) +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (637,230703,603700,230703,603700,ROT,400) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (640,230703,603700,230703,603700,ROT,1000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (641,230703,603700,230703,603700,ROT,2000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (642,230703,603700,230703,603700,ROT,4000) +PAGE +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (643,230703,603700,230703,603700,ROT,10000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (644,230703,603700,230703,603700,ROT,20000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (645,230703,603700,230703,603700,ROT,40000) + +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (646,230703,603700,230703,603700,ROT,100000) +PAGE +;SHIFT COUNTER TEST +;VERIFY THAT NO ROTATION TO LEFT GREATER THAN 255 POSITIONS CAN OCCUR +;RESULT SHOULD INDICATE NO ROTATION + SR1 (647,230703,603700,230703,603700,ROT,200000) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + SR1 (650,230703,603700,011434,170174,ROT,400000) + +;SHIFT COUNTER TEST +;TEST FOR MAXIMUM RIGHT ROTATION (256 POSITIONS) + SR2 (651,230703,603700,770037,600377,037401,770017,751434,170174,ROTC,400000) +SUBTTL DIAGNOSTIC SECTION - ACCUMULATOR ADDRESSING TEST + +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + + AC=-2 + ZZ=-2 + ;SET UP ACCUMULATOR'S + REPEAT ^D7,< + ZZ=ZZ+2 + AC=AC+2 + MOVEI AC,ZZ ;AC NUMBER TO AC + MOVEI AC+1,ZZ+1 ;AC NUMBER TO AC+1 +> +PAGE + AC=1 + SAVEAC (1,1) + +SN=41400 + AC=14 + ZZ=14 + + ;TEST ROTC-ACCUMULATOR'S 7-14 +E41400: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + ROTC AC,0 ;*ROTATE LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + +SN=41500 + AC=12 + ZZ=12 + + ;TEST LSHC-ACCUMULATORS 5-12 +E41500: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + LSHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> + + + AC=4 + SAVEAC (1,1) + +SN=41600 + AC=5 + ZZ=5 + + ;TEST ASHC-ACCUMULATORS 0-5 +E41600: REPEAT ^D5,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ZZ=ZZ-1 + AC=AC-1 + ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,ZZ ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,ZZ+1 ;TEST FOR CORRECT AC+1 + ER4 AC+1,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +PAGE +; AC=17 +; SAVEAC (1,1) + +SN=41700 + + ;TEST ASHC-ACUMMULATORS 17-0 +E41700: REPEAT ^D0,< +;TEST ACCUMULATOR ADDRESSING +;TEST THE ABILITY OF ROTC,LSHC,ASHC +;TO ADDRESS THE CORRECT ACCUMULATORS +;EACH AC IS LOADED WITH IT'S RESPECTIVE ADDRESS +;TESTING IS ACCOMPLISHED BY SHIFTING/ROTATING +;LEFT ZERO TIMES +;AN ERROR WILL OCCUR IF C(AC),C(AC+1) DIFFER +;FROM AC'S ADDRESSED BY INSTRUCTION +;THE NUMBER OF THE AC REFERENCED IN ERROR +;IS IN AC +;INADVERTENT SHIFTING OR PICKING UP OF +;BITS DURING FAC OR SAC WILL CAUSE AN ERROR + +SN=SN+1 + ASHC AC,0 ;*SHIFT LEFT ZERO TIMES + CAIE AC,17 ;TEST FOR CORRECT AC + ER3 AC,SN ;INCORRECT AC + CAIE AC+1,0 ;TEST FOR CORRECT AC+1 + ER4 AC+1,SN ;INCORRECT AC+1 + JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - SUPPLEMENTARY BIT POSITION RELIABILITY TEST + + AC=12 + SAVEAC (1,1) + +SN=42000 + WW=030303 ;USED FOR COMPARISON + XX=030303 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (011)-TEST AC,AC+1 +E42000: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) ;SET UP ACCUMULATORS + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD =0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=14 + SAVEAC (1,1) + +SN=42100 + WW=606060 ;USED FOR COMPARISON + XX=606060 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (110)-TEST AC,AC+1 +E42100: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD =0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=13 + SAVEAC (1,1) + +SN=42200 + WW=050505 ;USED FOR COMPARISON + XX=050505 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (101)-TEST AC,AC+1 +E42200: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=12 + SAVEAC (1,1) + +SN=42300 + WW=505050 ;USED FOR COMPARISON + XX=505050 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (101)-TEST AC,AC+1 +E42300: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD =0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=11 + SAVEAC (1,1) + +SN=42400 + WW=070707 ;USED FOR COMPARISON + XX=070707 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (111)-TEST AC,AC+1 +E42400: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=10 + SAVEAC (1,1) + +SN=42500 + WW=707070 ;USED FOR COMPARISON + XX=707070 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (111)-TEST AC,AC+1 +E42500: REPEAT ^D3,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=7 + SAVEAC (1,1) + +SN=42600 + WW=025025 ;USED FOR COMPARISON + XX=025025 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (010101)-TEST AC,AC+1 +E42600: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=6 + SAVEAC (1,1) + +SN=42700 + WW=520520 ;USED FOR COMPARISON + XX=520520 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (101010)-TEST AC,AC+1 +E42700: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> + AC=5 + SAVEAC (1,1) + +SN=43000 + WW=033033 ;USED FOR COMPARISON + XX=033033 ;SELECTED PATTERN + ZZ=0 + + ;ROT LEFT (011011)-TEST AC,AC+1 +E43000: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW+WW + ZZ=ZZ+1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +PAGE + AC=4 + SAVEAC (1,1) + +SN=43100 + WW=660660 ;USED FOR COMPARISON + XX=660660 ;SELECTED PATTERN + ZZ=0 + + ;ROT RIGHT (110110)-TEST AC,AC+1 +E43100: REPEAT ^D4,< +;TEST SELECTED BIT CONFIGURATIONS +;TEST ABILITY TO ROTATE SELECTED PATTERNS +;AC,AC+1 ARE ROTATED LEFT/RIGHT AND TESTED +;TEST AC-AC-1 IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC-1 DIFFERS FROM 0 +; AC-1 CONTAINS BIT(S) THAT FAILED +;TEST AC+1-AC IS UTILIZED AS COMPARISON REGISTER +; ERROR WILL OCCUR IF AC DIFFERS FROM 0 +; AC CONTAINS BIT(S) THAT FAILED + +SN=SN+1 + WW=WW/2 + ZZ=ZZ-1 + SETACS (WW,XX) + ROTC AC,ZZ ;*ROTATE (N) NUMBER OF TIMES + XOR AC-1,AC ;COMPARE AC + SKIPE &17 ;SHOULD = 0 + ER3 AC,SN ;AC-1 CONTAINS BIT(S) THAT FAILED + XOR AC-2,&17 ;COMPARE AC+1 + SKIPE &17 ;SHOULD = 0 + ER4 AC+1,SN ;AC CONTAINS BIT(S) THAT FAILED + JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH +> +SUBTTL DIAGNOSTIC SECTION - ARITHMETIC OVERFLOW FLAG TEST + +;TEST AROV FLAG-ASH,ASHC +;TEST THE ABILITY OF ASH,ASHC TO +;SET AROV FLAG +;TEST (00),(11) FOR SET NOT CONDITION +;TEST (01),(10) FOR SET CONDITION +;AN ERROR WILL OCCUR IF FLAG IS +;SET/SET NOT AS APPROPRIATE + + AC=10 + SAVEAC (1,1) + + ;ASH AROV SET NOT (11) +E43200: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,-1 ;SET LEFT,CLEAR RIGHT + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43201 ;FLAG IS SET + JUMPL AC+2,E43200 ;LOOP ON ERROR SWITCH + + ;ASH AROV SET NOT (00) +E43300: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + SETZ AC, ;CLEAR AC + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43301 ;FLAG IS SET + JUMPL AC+2,E43300 ;LOOP ON ERROR SWITCH +PAGE + AC=7 + SAVEAC (1,1) + + ;ASH AROV SET (01) +E43400: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,43401 ;FLAG IS NOT SET + JUMPL AC+2,E43400 ;LOOP ON ERROR SWITCH + + ;ASH AROV SET (10) +E43500: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,400000 ;SET BIT 0 + ASH AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,43501 ;FLAG IS NOT SET + JUMPL AC+2,E43500 ;LOOP ON ERROR SWITCH + AC=10 + SAVEAC (1,1) + + ;ASHC AROV SET NOT (11) +E43600: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,-1 ;SET LEFT, CLEAR RIGHT + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43601 ;FLAG IS SET + JUMPL AC+2,E43600 ;LOOP ON ERROR SWITCH + + + ;ASHC AROV SET NOT (00) +E43700: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + SETZ AC, ;CLEAR AC + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET NOT COND + JRST 0,.+2 ;FLAG NOT SET + ER13 AC-2,43701 ;FLAG IS SET + JUMPL AC+2,E43700 ;LOOP ON ERROR SWITCH + + AC=7 + SAVEAC (1,1) + + ;ASHC AROV SET (01) +E44000: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,377777 ;CLEAR 0 AND RIGHT HALF + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,44001 ;FLAG IS NOT SET + JUMPL AC+2,E44000 ;LOOP ON ERROR SWITCH + + ;ASHC AROV SET (10) +E44100: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST + MOVSI AC,400000 ;SET BIT 0 + ASHC AC,1 ;*SHIFT LEFT ONE + JSP AC-2,.+1 ;SAVE FLAGS + JFCL 10,.+2 ;TEST FOR SET COND + ER13 AC-2,44101 ;FLAG IS NOT SET + JUMPL AC+2,E44100 ;LOOP ON ERROR SWITCH +SUBTTL DIAGNOSTIC SECTION - TEST INDEXING, INDIRECT ADDRESSING AND XCT OF ROT + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=0, X=6 AND C(X)=3; +;HENCE, THE NET ROTATION SHOULD BE 3 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 307036,,037002 + + AC=7 + SAVEAC (1,1) + +E70000: MOVEI 6,3 ;PRELOAD INDEX REG WITH 3 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,(6) ;*ROT C(AC) 3 BIT POSITIONS LEFT + CAME AC,[307036,,037002] ;IS RESULT IN AC CORRECT? + ER3 AC,70001 ;INDEXING FAILED + JUMPL AC+2,E70000 ;LOOP ON ERROR SWITCH + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=4, X=5 AND C(X)=0; +;HENCE, THE NET ROTATION SHOULD BE 4 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 616074,,076004. + +E70100: MOVEI 5,0 ;PRELOAD INDEX REG WITH 0 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,4(5) ;*ROT C(AC) 4 BIT POSITIONS LEFT + CAME AC,[616074,,076004] ;IS RESULT IN AC CORRECT? + ER3 AC,70101 ;INDEXING FAILED + JUMPL AC+2,E70100 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;INDEXED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO E + C(X), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD AND X IS THE INDEX REG. +;IN THIS CASE, C(AC)=230703,,603700, E=16, X=6 AND C(X)=5; +;HENCE, THE NET ROTATION SHOULD BE 21 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 407600,,461607. + +E70200: MOVEI 6,5 ;PRELOAD INDEX REG WITH 5 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,16(6) ;*ROT C(AC) 21 BIT POSITIONS LEFT + CAME AC,[407600,,461607] ;IS RESULT IN AC CORRECT? + ER3 AC,70201 ;INDEXING FAILED + JUMPL AC+2,E70200 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS +;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO C(E), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. +;IN THIS CASE, C(AC)=230703,,603700, E=6 AND C(E)=35; +;HENCE, THE NET ROTATION SHOULD BE 35 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 401143,,417017. + +E70300: MOVEI 6,35 ;PRELOAD E WITH 35 + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,@6 ;*ROT C(AC) 35 BIT POSITIONS LEFT + CAME AC,[401143,,417017] ;IS RESULT IN AC CORRECT? + ER3 AC,70301 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH + +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN E IS +;INDIRECTLY ADDRESSED. THE NUMBER OF BIT POSITIONS SHIFTED IS EQUAL TO THE RIGHT HALF OF C(E), +;WHERE E IS THE ADDRESS PORTION OF THE INSTRUCTION WORD. +;IN THIS CASE, C(AC)=230703,,603700, E=[0,,1] AND C(E)=15; +;HENCE, THE NET ROTATION SHOULD BE 1 BIT POSITION LEFT, +;AND THE RESULT IN THE AC SHOULD BE 461607,,407600. + +E70400: SETOM 1 ;PRELOAD AC1 WITH -1,,-1 IN CASE IND. ADR. FAILS + MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + ROT AC,@[0,,1] ;*ROT C(AC) 1 BIT POSITION LEFT + CAME AC,[461607,,407600] ;IS RESULT IN AC CORRECT? + ER3 AC,70401 ;INDIRECT ADDRESSING FAILED + JUMPL AC+2,E70400 ;LOOP ON ERROR SWITCH +;THIS TEST VERIFIES THAT THE ROT INSTRUCTION FUNCTIONS CORRECTLY WHEN IT IS +;EXECUTED BY AN XCT INSTRUCTION. +;IN THIS CASE, C(AC)=230703,,603700 AND E=2. +;HENCE, THE NET ROTATION SHOULD BE 2 BIT POSITIONS LEFT, +;AND THE RESULT IN THE AC SHOULD BE 143417,,017401. + +E70500: MOVE AC,[230703,,603700] ;INITIALIZE AC WITH 230703,,603700 + XCT [ROT AC,2] ;*XCT SHOULD ROT C(AC) 2 BIT POSITIONS LEFT + CAME AC,[143417,,017401] ;IS RESULT IN AC CORRECT? + ER3 AC,70501 ;XCT OF ROT FAILED + JUMPL AC+2,E70500 ;LOOP ON ERROR SWITCH + + JRST BEGEND ;REPEAT DIAGNOSTIC diff --git a/apps/pdp10/diags/klad/dakaj/DAKAJT.MAC.txt b/apps/pdp10/diags/klad/dakaj/DAKAJT.MAC.txt new file mode 100644 index 000000000..9457cbc88 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaj/DAKAJT.MAC.txt @@ -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,&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,&17 ;SETUP AC-2 FOR COMPARISON + MOVEI AC,XX ;SETUP AC RIGHT + HRLI AC,XX ;SETUP AC LEFT + MOVEM AC,&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> diff --git a/apps/pdp10/diags/klad/dakaj/README.md b/apps/pdp10/diags/klad/dakaj/README.md new file mode 100644 index 000000000..4bf936a96 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaj/README.md @@ -0,0 +1,435 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #10 +permalink: /apps/pdp10/diags/klad/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. + +Resources for this test include: + +- [Instructions](#dakajtxt) +- [History](#dakajhst) +- [Source Code](#dakajmac) +- [MACRO-10 Listing](DAKAJ.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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 %} diff --git a/apps/pdp10/diags/klad/dakak/DAKAK.LST.txt b/apps/pdp10/diags/klad/dakak/DAKAK.LST.txt new file mode 100644 index 000000000..2e790813f --- /dev/null +++ b/apps/pdp10/diags/klad/dakak/DAKAK.LST.txt @@ -0,0 +1,18764 @@ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0011 + + 1 ;DAKAK + 2 + 3 000000 MCNVER==0 + 4 000002 DECVER==2 + 5 + 6 + 7 XLIST + 8 LIST + 9 LALL + 10 + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 + 14 ^ + 15 + 16 ;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE) + 17 + 18 ;COPYRIGHT 1975,1977 + 19 ;DIGITAL EQUIPMENT CORPORATION + 20 ;MARLBORO, MASS. 01752 + 21 + 22 ;JOHN R. KIRCHOFF + 23 + 24 000137 LOC 137 + 25 000137 000000 000002 MCNVER,,DECVER + 26 + 27 NOSYM +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 +DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0012 + + 28 SUBTTL DIAGNOSTIC PARAMETERS + 29 + 30 ;OPERATOR DEFINITIONS + 31 + 32 001000 000000 OPDEF ER1 [1B8] + 33 002000 000000 OPDEF ER2 [2B8] + 34 003000 000000 OPDEF ER3 [3B8] + 35 004000 000000 OPDEF ER4 [4B8] + 36 005000 000000 OPDEF ER5 [5B8] + 37 006000 000000 OPDEF ER6 [6B8] + 38 007000 000000 OPDEF ER7 [7B8] + 39 010000 000000 OPDEF ER10 [10B8] + 40 011000 000000 OPDEF ER11 [11B8] + 41 012000 000000 OPDEF ER12 [12B8] + 42 013000 000000 OPDEF ER13 [13B8] + 43 + 44 043570 LUUO1=ERRMES + 45 043570 LUUO2=ERRMES + 46 043570 LUUO3=ERRMES + 47 043570 LUUO4=ERRMES + 48 043570 LUUO5=ERRMES + 49 043570 LUUO6=ERRMES + 50 043570 LUUO7=ERRMES + 51 043570 LUUO10=ERRMES + 52 043570 LUUO11=ERRMES + 53 043570 LUUO12=ERRMES + 54 043570 LUUO13=ERRMES +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 +DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0013 + + 55 ;SUBROUTINE ASSEMBLY DEFINITIONS + 56 + 57 000040 DEBUG=40 + 58 000001 EXCASB=1 + 59 000001 USRASB=1 + 60 000001 KI10=1 + 61 000001 KA10=1 + 62 000001 KLOLD==1 + 63 000001 PGMEND=1 + 64 000001 ERDIAG=1 + 65 + 66 ;SPECIAL FEATURE DEFINITIONS + 67 + 68 030000 SADR1=BEGIN + 69 030000 SADR2=BEGIN + 70 030000 SADR3=BEGIN + 71 030000 SADR4=BEGIN + 72 254000 030000 SADR5=JRST BEGIN + 73 254000 030000 SADR6=JRST BEGIN + 74 254000 030000 SADR7=JRST BEGIN + 75 254000 030000 SADR8=JRST BEGIN + 76 254000 030000 SADR9=JRST BEGIN + 77 254000 030000 SADR10=JRST BEGIN + 78 254000 030000 SADR11=JRST BEGIN + 79 + 80 ;SPECIAL FEATURE PARAMETERS + 81 + 82 000000 PAREA0=0 + 83 000000 PAREA1=0 + 84 000000 PAREA2=0 + 85 444153 415300 PAREA3=SIXBIT/DAKAK/ + 86 645560 000000 PAREA4=SIXBIT/TMP/ + 87 000000 PAREA5=0 + 88 000000 PAREA6=0 + 89 001000 ITERAT==1000 + 90 + 91 ;MACROS + 92 + 93 DEFINE SAVEAC (A,B)< + 94 MOVEI AC+2,. ;SAVE TEST PC + 95 MOVEM AC+2,TESTPC + 96 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 97 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 +DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0014 + + 98 DEFINE MOP1 (T,A1,A2,EE,R1,R2)< + 99 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND + 100 ;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 101 ;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY. + 102 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 103 + 104 F'T'0: AA1=A1 ;INITIAL C(AC) + 105 MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER) + 106 AA2=A2 ;INITIAL C(AC+1) + 107 MOVE AC+1,[A2] ;PRELOAD AC+1 + 108 AEE=EE ;INITIAL C(E) + 109 MOVE E,[EE] ;PRELOAD E (MULTIPLICAND) + 110 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 111 AR1=R1 ;EXPECTED RESULT IN AC + 112 CAME AC,[R1] ;IS HIGH PRODUCT CORRECT? + 113 ER3 AC,T'1 ;HIGH PRODUCT FAILED + 114 AR2=R2 ;EXPECTED RESULT IN AC+1 + 115 CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT? + 116 ER4 AC+1,T'2 ;LOW PRODUCT FAILED + 117 AEE=EE ;INITIAL C(E) + 118 CAME E,[EE] ;WAS C(E) CLOBBERED? + 119 ER5 E,T'3 ;C(E) WAS CLOBBERED + 120 JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH> +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015 + + 121 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 122 + 123 DEFINE S,<;*********************************************************************> + 124 + 125 S^;*********************************************************************^ + 126 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 127 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 128 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 129 S^;*********************************************************************^ + 130 + 131 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 132 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 133 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 134 + 135 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 136 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 137 010000 DING== 010000 ;RING BELL ON ERROR + 138 + 139 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 140 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 141 001000 PALERS==001000 ;PRINT ALL ERRORS + 142 + 143 000400 RELIAB==000400 ;RELIABILITY MODE + 144 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 145 000100 INHPAG==000100 ;INHIBIT PAGING + 146 + 147 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 148 000020 INHCSH==000020 ;INHIBIT CACHE + 149 000010 OPRSEL==000010 ;OPERATOR SELECTION + 150 + 151 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 152 + 153 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 154 + 155 ;SWITCH 17 RESERVED !!! +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016 + + 156 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 157 + 158 S^;*********************************************************************^ + 159 ;*SPECIAL SUBPROGRAM LINKAGES + 160 S^;*********************************************************************^ + 161 + 162 027772 FSELNK= 27772 ;FILE SELECT LINK + 163 027773 FRDLNK= 27773 ;FILE READ LINK + 164 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 165 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 166 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 167 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 168 + 169 S^;*********************************************************************^ + 170 ;*SPECIAL SUBROUTINE FATAL HALTS + 171 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 172 S^;*********************************************************************^ + 173 + 174 ;ADDRESS TAG REASON + 175 ;--------------------- + 176 + 177 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 178 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 179 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 180 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 181 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 182 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 183 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 184 ; 1017 EOPERR ;END OF PROGRAM ERROR + 185 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 186 + 187 S^;*********************************************************************^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017 + + 188 S^;*********************************************************************^ + 189 ;OPERATOR DEFINITIONS (NON-UUO'S) + 190 S^;*********************************************************************^ + 191 + 192 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 193 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 194 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 195 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 196 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 197 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 198 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 199 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 200 + 201 S^;*********************************************************************^ + 202 ;*SUBROUTINE INITIALIZATION CALL + 203 S^;*********************************************************************^ + 204 + 205 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 206 + 207 S^;*********************************************************************^ + 208 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 209 S^;*********************************************************************^ + 210 + 211 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 212 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 213 + 214 S^;*********************************************************************^ + 215 ;*TERMINAL INPUT UUO'S + 216 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 217 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 218 S^;*********************************************************************^ + 219 + 220 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 221 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 222 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 223 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 224 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 225 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 226 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 227 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 228 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 229 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018 + + 230 ;*TERMINAL OUTPUT UUO'S. + 231 + 232 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 233 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 234 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 235 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 236 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 237 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 238 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 239 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 240 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 241 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 242 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 243 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 244 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 245 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 246 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 247 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 248 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 249 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 250 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 251 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 252 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 253 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 254 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 255 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 256 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 257 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 258 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 259 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 260 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 261 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 262 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 263 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 264 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 265 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 266 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 267 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 268 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 269 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 270 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 271 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 272 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 273 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 274 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 275 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 276 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 277 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 278 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 279 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 280 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 281 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 282 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 283 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 284 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 + + 285 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 286 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 287 + 288 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 289 + 290 DEFINE PMSG (ARG),< + 291 PSIXM [SIXBIT\ARG'_\]> + 292 + 293 DEFINE PMSGF (ARG),< + 294 PSIXMF [SIXBIT\ARG'_\]> + 295 + 296 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 297 ;* CONSERVES CORE OVER ASCIZ + 298 + 299 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 300 + 301 ;*CONSOLE SWITCH INPUT UUO. + 302 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 303 ;* USER MODE. + 304 + 305 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 306 + 307 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 308 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 309 + 310 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 311 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 312 + 313 ;*KL10 ONLY CACHE OPERATION UUO'S + 314 + 315 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 316 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 317 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 + + 318 ;*END OF PASS/PROGRAM UUOS + 319 + 320 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 321 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 322 + 323 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 324 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 325 + 326 ;*MEMORY MANAGEMENT UUO'S + 327 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 328 ;*ADDRESS CONVERSION, ETC... + 329 + 330 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 331 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 332 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 333 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 334 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 335 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 336 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 337 + 338 ;*DEVICE CODE MODIFICATION UUO + 339 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 340 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 341 + 342 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 343 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 344 + 345 030000 IFNDEF MODDVL, + 346 030000 IFNDEF MODDVU, + 347 + 348 ;*"DIAMON" FILE SELECTION AND READ UUOS + 349 + 350 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 351 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 352 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 353 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 354 + 355 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 356 + 357 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 358 + 359 XLIST + 360 LIST +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 361 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 362 + 363 030000 LOC 30000 + 364 + 365 S^;*********************************************************************^ + 366 ;*PROGRAM STARTING ADDRESSES + 367 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 368 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 369 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 370 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 371 S^;*********************************************************************^ + 372 + 373 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 374 030001 254 00 0 00 030616 $START: JRST START ;MODE CHECK STARTING ADDRESS + 375 + 376 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 377 + 378 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 379 + 380 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 381 + 382 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 383 + 384 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 385 + 386 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 387 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 388 + 389 030010 254 00 0 00 030621 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 390 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 391 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 392 + 393 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 394 030014 254000 030000 START2: SADR8 ; " + 395 030015 254000 030000 START3: SADR9 ; " + 396 030016 254000 030000 START4: SADR10 ; " + 397 030017 254000 030000 START5: SADR11 ; " +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 398 S^;*********************************************************************^ + 399 ;*PROGRAM FIXED PARAMETER AREA + 400 S^;*********************************************************************^ + 401 + 402 030020 444153 415300 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 403 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 404 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 405 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 406 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 407 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 408 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 409 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 410 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 411 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 412 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 413 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 414 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 415 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 416 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 417 + 418 S^;*********************************************************************^ + 419 ;*PROGRAM VARIABLE PARAMETER AREA + 420 S^;*********************************************************************^ + 421 + 422 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 423 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 424 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 425 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 426 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 427 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 428 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 429 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 430 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 431 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 432 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 433 030052 000000 000000 ERRPC: 0 ;ERROR PC + 434 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 435 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 436 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 437 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 438 S^;*********************************************************************^ + 439 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 440 S^;*********************************************************************^ + 441 + 442 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 443 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 444 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 445 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 446 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 447 030064 CPOPJ1: ;SKIP RETURN + 448 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 449 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 450 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 451 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 452 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 453 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 454 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 455 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 456 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 457 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 458 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 459 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 460 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 461 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 462 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 463 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 464 + 465 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 466 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 467 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 468 + 469 S^;*********************************************************************^ + 470 ;*PROCESSOR CONTROL STORAGE + 471 S^;*********************************************************************^ + 472 + 473 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 474 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 475 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 476 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 477 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 478 + 479 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 480 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 481 + 482 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 483 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 484 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 485 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 486 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 487 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 488 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 489 S^;*********************************************************************^ + 490 ;*UUO DISPATCH TABLE + 491 S^;*********************************************************************^ + 492 XLIST + 493 LIST + 494 030124 043570 030070 UUODIS: LUUO1,,$UUOER + 495 030125 043570 043570 LUUO3,,LUUO2 + 496 030126 043570 043570 LUUO5,,LUUO4 + 497 030127 043570 043570 LUUO7,,LUUO6 + 498 030130 043570 043570 LUUO11,,LUUO10 + 499 030131 043570 043570 LUUO13,,LUUO12 + 500 030132 030070 030070 LUUO15,,LUUO14 + 501 030133 030070 030070 LUUO17,,LUUO16 + 502 030134 030070 030070 LUUO21,,LUUO20 + 503 030135 030070 030070 LUUO23,,LUUO22 + 504 030136 030070 030070 LUUO25,,LUUO24 + 505 030137 030070 030070 LUUO27,,LUUO26 + 506 030140 030070 030070 LUUO31,,LUUO30 + 507 030141 030070 030070 LUUO33,,LUUO32 + 508 + 509 S^;*********************************************************************^ + 510 ;*MEMORY MANAGMENT STORAGE + 511 S^;*********************************************************************^ + 512 + 513 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 514 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 515 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 516 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 517 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 518 + 519 S^;*********************************************************************^ + 520 ;*PRINT CONTROL STORAGE + 521 S^;*********************************************************************^ + 522 + 523 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 524 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 525 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 526 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 527 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 528 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 529 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 530 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 531 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 532 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 533 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 534 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 535 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 536 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 537 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 538 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 539 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 540 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 541 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 + + 542 S^;*********************************************************************^ + 543 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 544 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 545 ;* MOVEI NAME + 546 ;* PNTA ;OR PNTAF + 547 S^;*********************************************************************^ + 548 + 549 030242 CRLF: ASCII/ + 550 030242 015 012 000 000 000 / + 551 030243 CRLF2: ASCII/ + 552 + 553 030243 015 012 015 012 000 / + 554 030244 054 000 000 000 000 COMMA: ASCII/,/ + 555 030245 056 000 000 000 000 PERIOD: ASCII/./ + 556 030246 040 000 000 000 000 SPACE: ASCII/ / + 557 030247 011 000 000 000 000 TAB: ASCII/ / + 558 030250 MINUS: + 559 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 560 030251 053 000 000 000 000 PLUS: ASCII/+/ + 561 030252 052 000 000 000 000 AST: ASCII/*/ + 562 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 563 030254 050 000 000 000 000 LFP: ASCII/(/ + 564 030255 051 000 000 000 000 RTP: ASCII/)/ + 565 030256 007 0000000000 BELL: BYTE (7) 007 + 566 030257 077 000 000 000 000 QUEST: ASCII/?/ + 567 030260 057 000 000 000 000 SLASH: ASCII!/! + 568 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 569 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 570 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 571 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 572 + 573 S^;*********************************************************************^ + 574 ;*USER MODE OUTPUT FILE INFORMATION + 575 S^;*********************************************************************^ + 576 + 577 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 578 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 579 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 580 030272 BLOCK 2 + 581 + 582 S^;*********************************************************************^ + 583 ;*DISK UPDATE MODE FILE INFORMATION + 584 S^;*********************************************************************^ + 585 + 586 030274 $IBUF: BLOCK 3 + 587 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 588 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 589 030301 BLOCK 2 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 + + 590 S^;*********************************************************************^ + 591 ;*PUSHDOWN LIST CONTROL INFORMATION + 592 S^;*********************************************************************^ + 593 + 594 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 595 030304 PLISTS: BLOCK 200 + 596 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 597 + 598 S^;*********************************************************************^ + 599 ;*POWER LINE CLOCK FREQUENCY FLAG + 600 S^;*********************************************************************^ + 601 + 602 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 603 + 604 S^;*********************************************************************^ + 605 ;*KL10 CACHE CONTROL FLAGS + 606 S^;*********************************************************************^ + 607 + 608 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 609 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 610 + 611 S^;*********************************************************************^ + 612 ;*NUMBER INPUT DIGIT FLAG + 613 S^;*********************************************************************^ + 614 + 615 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 616 + 617 S^;*********************************************************************^ + 618 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 619 S^;*********************************************************************^ + 620 + 621 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 622 + 623 S^;*********************************************************************^ + 624 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 625 S^;*********************************************************************^ + 626 + 627 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 628 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 629 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 630 + 631 S^;*********************************************************************^ + 632 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 633 S^;*********************************************************************^ + 634 + 635 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 + + 636 S^;*********************************************************************^ + 637 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 638 S^;*********************************************************************^ + 639 + 640 030516 000000 000000 KLTYP: 0 + 641 + 642 S^;*********************************************************************^ + 643 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 644 S^;*********************************************************************^ + 645 + 646 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 647 + 648 S^;*********************************************************************^ + 649 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 650 S^;*********************************************************************^ + 651 + 652 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 653 + 654 S^;*********************************************************************^ + 655 ;*"SWITCH" CALL USAGE CONTROL + 656 S^;*********************************************************************^ + 657 + 658 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 659 + 660 S^;*********************************************************************^ + 661 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 662 S^;*********************************************************************^ + 663 + 664 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 665 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 666 + 667 S^;*********************************************************************^ + 668 ;*SPECIAL FUTURE EXPANSION ROOM + 669 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 670 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 671 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 672 S^;*********************************************************************^ + 673 + 674 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 675 + 676 S^;*********************************************************************^ + 677 ;*END OF FIXED STORAGE + 678 S^;*********************************************************************^ + 679 + 680 030577 $ENDFX=&<777700>-1 + 681 030577 LOC $ENDFX + 682 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION SEQ 0028 + + 683 SUBTTL DIAGNOSTIC SECTION + 684 + 685 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE + 686 030601 000000 030600 EXIT + 687 + 688 030602 PGMNAM: ASCIZ/ + 689 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK] + 690 030603 055 061 060 040 040 + 691 030604 113 101 061 060 040 + 692 030605 102 101 123 111 103 + 693 030606 040 111 116 123 124 + 694 030607 122 125 103 124 111 + 695 030610 117 116 040 104 111 + 696 030611 101 107 116 117 123 + 697 030612 124 111 103 040 050 + 698 030613 061 061 051 040 133 + 699 030614 104 101 113 101 113 + 700 030615 135 015 012 000 000 / + 701 + 702 ;INITIALIZE + 703 + 704 030616 265 00 0 00 030011 START: PGMINT + 705 030617 200 00 0 00 043775 MOVE [ASCIZ/AK/] + 706 030620 202 00 0 00 043711 MOVEM TLET ;INITIALIZE TEST LETTER + 707 + 708 030621 254 00 0 00 030622 STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0029 + + 709 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT + 710 + 711 003000 ADR=3000 + 712 000014 AC=14 + 713 000012 E=&17 + 714 + 715 030622 F00: SAVEAC (1,1)^ + 716 030622 201 16 0 00 030622 MOVEI AC+2,. ;SAVE TEST PC + 717 030623 202 16 0 00 030051 MOVEM AC+2,TESTPC + 718 030624 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 719 030625 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 720 + 721 ;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0 + 722 MOP1 (\ADR,0,-1,0,0,0)^ + 723 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 724 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 725 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 726 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 727 + 728 000000 F30000: AA1=0 ;INITIAL C(AC) + 729 030626 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 730 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 731 030627 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 732 000000 AEE=0 ;INITIAL C(E) + 733 030630 200 12 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 734 030631 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 735 000000 AR1=0 ;EXPECTED RESULT IN AC + 736 030632 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 737 030633 003 14 0 00 030001 ER3 AC,30001 ;HIGH PRODUCT FAILED + 738 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 739 030634 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 740 030635 004 15 0 00 030002 ER4 AC+1,30002 ;LOW PRODUCT FAILED + 741 000000 AEE=0 ;INITIAL C(E) + 742 030636 312 12 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 743 030637 005 12 0 00 030003 ER5 E,30003 ;C(E) WAS CLOBBERED + 744 030640 321 16 0 00 030626 JUMPL AC+2,F30000 ;LOOP ON ERROR SWITCH^ + 745 + 746 000013 AC=13 + 747 000011 E=&17 + 748 SAVEAC (1,1)^ + 749 030641 201 15 0 00 030641 MOVEI AC+2,. ;SAVE TEST PC + 750 030642 202 15 0 00 030051 MOVEM AC+2,TESTPC + 751 030643 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 752 030644 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 753 000000 XX=0 + 754 + 755 REPEAT ^D36, < + 756 ADR=ADR+1 + 757 XX=XX+XX + 758 IFE XX, + 759 + 760 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 761 MOP1 (\ADR,0,-1,XX,0,0)> + 762 + 763 003001 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0030 + + 764 000000 XX=XX+XX + 765 000001 IFE XX, + 766 + 767 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 768 MOP1 (\ADR,0,-1,XX,0,0)^ + 769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 770 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 771 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 773 + 774 000000 F30010: AA1=0 ;INITIAL C(AC) + 775 030645 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 776 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 777 030646 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 778 000001 AEE=XX ;INITIAL C(E) + 779 030647 200 11 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 780 030650 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 781 000000 AR1=0 ;EXPECTED RESULT IN AC + 782 030651 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 783 030652 003 13 0 00 030011 ER3 AC,30011 ;HIGH PRODUCT FAILED + 784 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 785 030653 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 786 030654 004 14 0 00 030012 ER4 AC+1,30012 ;LOW PRODUCT FAILED + 787 000001 AEE=XX ;INITIAL C(E) + 788 030655 312 11 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? + 789 030656 005 11 0 00 030013 ER5 E,30013 ;C(E) WAS CLOBBERED + 790 030657 321 15 0 00 030645 JUMPL AC+2,F30010 ;LOOP ON ERROR SWITCH^ + 791 + 792 003002 ADR=ADR+1 + 793 000002 XX=XX+XX + 794 IFE XX, + 795 + 796 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 797 MOP1 (\ADR,0,-1,XX,0,0)^ + 798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 799 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 800 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 802 + 803 000000 F30020: AA1=0 ;INITIAL C(AC) + 804 030660 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 805 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 806 030661 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 807 000002 AEE=XX ;INITIAL C(E) + 808 030662 200 11 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 809 030663 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 810 000000 AR1=0 ;EXPECTED RESULT IN AC + 811 030664 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 812 030665 003 13 0 00 030021 ER3 AC,30021 ;HIGH PRODUCT FAILED + 813 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 814 030666 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 815 030667 004 14 0 00 030022 ER4 AC+1,30022 ;LOW PRODUCT FAILED + 816 000002 AEE=XX ;INITIAL C(E) + 817 030670 312 11 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? + 818 030671 005 11 0 00 030023 ER5 E,30023 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0031 + + 819 030672 321 15 0 00 030660 JUMPL AC+2,F30020 ;LOOP ON ERROR SWITCH^ + 820 + 821 003003 ADR=ADR+1 + 822 000004 XX=XX+XX + 823 IFE XX, + 824 + 825 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 826 MOP1 (\ADR,0,-1,XX,0,0)^ + 827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 828 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 829 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 831 + 832 000000 F30030: AA1=0 ;INITIAL C(AC) + 833 030673 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 834 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 835 030674 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 836 000004 AEE=XX ;INITIAL C(E) + 837 030675 200 11 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 838 030676 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 839 000000 AR1=0 ;EXPECTED RESULT IN AC + 840 030677 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 841 030700 003 13 0 00 030031 ER3 AC,30031 ;HIGH PRODUCT FAILED + 842 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 843 030701 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 844 030702 004 14 0 00 030032 ER4 AC+1,30032 ;LOW PRODUCT FAILED + 845 000004 AEE=XX ;INITIAL C(E) + 846 030703 312 11 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? + 847 030704 005 11 0 00 030033 ER5 E,30033 ;C(E) WAS CLOBBERED + 848 030705 321 15 0 00 030673 JUMPL AC+2,F30030 ;LOOP ON ERROR SWITCH^ + 849 + 850 003004 ADR=ADR+1 + 851 000010 XX=XX+XX + 852 IFE XX, + 853 + 854 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 855 MOP1 (\ADR,0,-1,XX,0,0)^ + 856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 857 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 858 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 860 + 861 000000 F30040: AA1=0 ;INITIAL C(AC) + 862 030706 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 863 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 864 030707 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 865 000010 AEE=XX ;INITIAL C(E) + 866 030710 200 11 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 867 030711 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 868 000000 AR1=0 ;EXPECTED RESULT IN AC + 869 030712 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 870 030713 003 13 0 00 030041 ER3 AC,30041 ;HIGH PRODUCT FAILED + 871 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 872 030714 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 873 030715 004 14 0 00 030042 ER4 AC+1,30042 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0032 + + 874 000010 AEE=XX ;INITIAL C(E) + 875 030716 312 11 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? + 876 030717 005 11 0 00 030043 ER5 E,30043 ;C(E) WAS CLOBBERED + 877 030720 321 15 0 00 030706 JUMPL AC+2,F30040 ;LOOP ON ERROR SWITCH^ + 878 + 879 003005 ADR=ADR+1 + 880 000020 XX=XX+XX + 881 IFE XX, + 882 + 883 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 884 MOP1 (\ADR,0,-1,XX,0,0)^ + 885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 886 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 887 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 889 + 890 000000 F30050: AA1=0 ;INITIAL C(AC) + 891 030721 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 892 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 893 030722 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 894 000020 AEE=XX ;INITIAL C(E) + 895 030723 200 11 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 896 030724 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 897 000000 AR1=0 ;EXPECTED RESULT IN AC + 898 030725 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 899 030726 003 13 0 00 030051 ER3 AC,30051 ;HIGH PRODUCT FAILED + 900 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 901 030727 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 902 030730 004 14 0 00 030052 ER4 AC+1,30052 ;LOW PRODUCT FAILED + 903 000020 AEE=XX ;INITIAL C(E) + 904 030731 312 11 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? + 905 030732 005 11 0 00 030053 ER5 E,30053 ;C(E) WAS CLOBBERED + 906 030733 321 15 0 00 030721 JUMPL AC+2,F30050 ;LOOP ON ERROR SWITCH^ + 907 + 908 003006 ADR=ADR+1 + 909 000040 XX=XX+XX + 910 IFE XX, + 911 + 912 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 913 MOP1 (\ADR,0,-1,XX,0,0)^ + 914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 915 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 916 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 918 + 919 000000 F30060: AA1=0 ;INITIAL C(AC) + 920 030734 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 921 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 922 030735 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 923 000040 AEE=XX ;INITIAL C(E) + 924 030736 200 11 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 925 030737 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 926 000000 AR1=0 ;EXPECTED RESULT IN AC + 927 030740 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 928 030741 003 13 0 00 030061 ER3 AC,30061 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0033 + + 929 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 930 030742 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 931 030743 004 14 0 00 030062 ER4 AC+1,30062 ;LOW PRODUCT FAILED + 932 000040 AEE=XX ;INITIAL C(E) + 933 030744 312 11 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? + 934 030745 005 11 0 00 030063 ER5 E,30063 ;C(E) WAS CLOBBERED + 935 030746 321 15 0 00 030734 JUMPL AC+2,F30060 ;LOOP ON ERROR SWITCH^ + 936 + 937 003007 ADR=ADR+1 + 938 000100 XX=XX+XX + 939 IFE XX, + 940 + 941 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 942 MOP1 (\ADR,0,-1,XX,0,0)^ + 943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 944 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 945 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 947 + 948 000000 F30070: AA1=0 ;INITIAL C(AC) + 949 030747 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 950 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 951 030750 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 952 000100 AEE=XX ;INITIAL C(E) + 953 030751 200 11 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 954 030752 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 955 000000 AR1=0 ;EXPECTED RESULT IN AC + 956 030753 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 957 030754 003 13 0 00 030071 ER3 AC,30071 ;HIGH PRODUCT FAILED + 958 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 959 030755 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 960 030756 004 14 0 00 030072 ER4 AC+1,30072 ;LOW PRODUCT FAILED + 961 000100 AEE=XX ;INITIAL C(E) + 962 030757 312 11 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? + 963 030760 005 11 0 00 030073 ER5 E,30073 ;C(E) WAS CLOBBERED + 964 030761 321 15 0 00 030747 JUMPL AC+2,F30070 ;LOOP ON ERROR SWITCH^ + 965 + 966 003010 ADR=ADR+1 + 967 000200 XX=XX+XX + 968 IFE XX, + 969 + 970 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 971 MOP1 (\ADR,0,-1,XX,0,0)^ + 972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 973 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 974 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 976 + 977 000000 F30100: AA1=0 ;INITIAL C(AC) + 978 030762 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 979 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 980 030763 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 981 000200 AEE=XX ;INITIAL C(E) + 982 030764 200 11 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 983 030765 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0034 + + 984 000000 AR1=0 ;EXPECTED RESULT IN AC + 985 030766 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 986 030767 003 13 0 00 030101 ER3 AC,30101 ;HIGH PRODUCT FAILED + 987 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 988 030770 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 989 030771 004 14 0 00 030102 ER4 AC+1,30102 ;LOW PRODUCT FAILED + 990 000200 AEE=XX ;INITIAL C(E) + 991 030772 312 11 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? + 992 030773 005 11 0 00 030103 ER5 E,30103 ;C(E) WAS CLOBBERED + 993 030774 321 15 0 00 030762 JUMPL AC+2,F30100 ;LOOP ON ERROR SWITCH^ + 994 + 995 003011 ADR=ADR+1 + 996 000400 XX=XX+XX + 997 IFE XX, + 998 + 999 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1000 MOP1 (\ADR,0,-1,XX,0,0)^ + 1001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1002 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1003 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1005 + 1006 000000 F30110: AA1=0 ;INITIAL C(AC) + 1007 030775 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1008 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1009 030776 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1010 000400 AEE=XX ;INITIAL C(E) + 1011 030777 200 11 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1012 031000 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1013 000000 AR1=0 ;EXPECTED RESULT IN AC + 1014 031001 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1015 031002 003 13 0 00 030111 ER3 AC,30111 ;HIGH PRODUCT FAILED + 1016 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1017 031003 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1018 031004 004 14 0 00 030112 ER4 AC+1,30112 ;LOW PRODUCT FAILED + 1019 000400 AEE=XX ;INITIAL C(E) + 1020 031005 312 11 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1021 031006 005 11 0 00 030113 ER5 E,30113 ;C(E) WAS CLOBBERED + 1022 031007 321 15 0 00 030775 JUMPL AC+2,F30110 ;LOOP ON ERROR SWITCH^ + 1023 + 1024 003012 ADR=ADR+1 + 1025 001000 XX=XX+XX + 1026 IFE XX, + 1027 + 1028 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1029 MOP1 (\ADR,0,-1,XX,0,0)^ + 1030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1032 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1034 + 1035 000000 F30120: AA1=0 ;INITIAL C(AC) + 1036 031010 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1037 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1038 031011 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0035 + + 1039 001000 AEE=XX ;INITIAL C(E) + 1040 031012 200 11 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1041 031013 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1042 000000 AR1=0 ;EXPECTED RESULT IN AC + 1043 031014 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1044 031015 003 13 0 00 030121 ER3 AC,30121 ;HIGH PRODUCT FAILED + 1045 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1046 031016 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1047 031017 004 14 0 00 030122 ER4 AC+1,30122 ;LOW PRODUCT FAILED + 1048 001000 AEE=XX ;INITIAL C(E) + 1049 031020 312 11 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1050 031021 005 11 0 00 030123 ER5 E,30123 ;C(E) WAS CLOBBERED + 1051 031022 321 15 0 00 031010 JUMPL AC+2,F30120 ;LOOP ON ERROR SWITCH^ + 1052 + 1053 003013 ADR=ADR+1 + 1054 002000 XX=XX+XX + 1055 IFE XX, + 1056 + 1057 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1058 MOP1 (\ADR,0,-1,XX,0,0)^ + 1059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1060 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1061 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1063 + 1064 000000 F30130: AA1=0 ;INITIAL C(AC) + 1065 031023 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1066 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1067 031024 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1068 002000 AEE=XX ;INITIAL C(E) + 1069 031025 200 11 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1070 031026 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1071 000000 AR1=0 ;EXPECTED RESULT IN AC + 1072 031027 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1073 031030 003 13 0 00 030131 ER3 AC,30131 ;HIGH PRODUCT FAILED + 1074 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1075 031031 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1076 031032 004 14 0 00 030132 ER4 AC+1,30132 ;LOW PRODUCT FAILED + 1077 002000 AEE=XX ;INITIAL C(E) + 1078 031033 312 11 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1079 031034 005 11 0 00 030133 ER5 E,30133 ;C(E) WAS CLOBBERED + 1080 031035 321 15 0 00 031023 JUMPL AC+2,F30130 ;LOOP ON ERROR SWITCH^ + 1081 + 1082 003014 ADR=ADR+1 + 1083 004000 XX=XX+XX + 1084 IFE XX, + 1085 + 1086 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1087 MOP1 (\ADR,0,-1,XX,0,0)^ + 1088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1089 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1090 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1092 + 1093 000000 F30140: AA1=0 ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0036 + + 1094 031036 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1095 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1096 031037 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1097 004000 AEE=XX ;INITIAL C(E) + 1098 031040 200 11 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1099 031041 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1100 000000 AR1=0 ;EXPECTED RESULT IN AC + 1101 031042 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1102 031043 003 13 0 00 030141 ER3 AC,30141 ;HIGH PRODUCT FAILED + 1103 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1104 031044 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1105 031045 004 14 0 00 030142 ER4 AC+1,30142 ;LOW PRODUCT FAILED + 1106 004000 AEE=XX ;INITIAL C(E) + 1107 031046 312 11 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1108 031047 005 11 0 00 030143 ER5 E,30143 ;C(E) WAS CLOBBERED + 1109 031050 321 15 0 00 031036 JUMPL AC+2,F30140 ;LOOP ON ERROR SWITCH^ + 1110 + 1111 003015 ADR=ADR+1 + 1112 010000 XX=XX+XX + 1113 IFE XX, + 1114 + 1115 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1116 MOP1 (\ADR,0,-1,XX,0,0)^ + 1117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1118 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1119 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1121 + 1122 000000 F30150: AA1=0 ;INITIAL C(AC) + 1123 031051 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1124 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1125 031052 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1126 010000 AEE=XX ;INITIAL C(E) + 1127 031053 200 11 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1128 031054 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1129 000000 AR1=0 ;EXPECTED RESULT IN AC + 1130 031055 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1131 031056 003 13 0 00 030151 ER3 AC,30151 ;HIGH PRODUCT FAILED + 1132 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1133 031057 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1134 031060 004 14 0 00 030152 ER4 AC+1,30152 ;LOW PRODUCT FAILED + 1135 010000 AEE=XX ;INITIAL C(E) + 1136 031061 312 11 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1137 031062 005 11 0 00 030153 ER5 E,30153 ;C(E) WAS CLOBBERED + 1138 031063 321 15 0 00 031051 JUMPL AC+2,F30150 ;LOOP ON ERROR SWITCH^ + 1139 + 1140 003016 ADR=ADR+1 + 1141 020000 XX=XX+XX + 1142 IFE XX, + 1143 + 1144 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1145 MOP1 (\ADR,0,-1,XX,0,0)^ + 1146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1147 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1148 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0037 + + 1149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1150 + 1151 000000 F30160: AA1=0 ;INITIAL C(AC) + 1152 031064 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1153 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1154 031065 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1155 020000 AEE=XX ;INITIAL C(E) + 1156 031066 200 11 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1157 031067 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1158 000000 AR1=0 ;EXPECTED RESULT IN AC + 1159 031070 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1160 031071 003 13 0 00 030161 ER3 AC,30161 ;HIGH PRODUCT FAILED + 1161 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1162 031072 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1163 031073 004 14 0 00 030162 ER4 AC+1,30162 ;LOW PRODUCT FAILED + 1164 020000 AEE=XX ;INITIAL C(E) + 1165 031074 312 11 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1166 031075 005 11 0 00 030163 ER5 E,30163 ;C(E) WAS CLOBBERED + 1167 031076 321 15 0 00 031064 JUMPL AC+2,F30160 ;LOOP ON ERROR SWITCH^ + 1168 + 1169 003017 ADR=ADR+1 + 1170 040000 XX=XX+XX + 1171 IFE XX, + 1172 + 1173 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1174 MOP1 (\ADR,0,-1,XX,0,0)^ + 1175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1176 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1177 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1179 + 1180 000000 F30170: AA1=0 ;INITIAL C(AC) + 1181 031077 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1182 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1183 031100 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1184 040000 AEE=XX ;INITIAL C(E) + 1185 031101 200 11 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1186 031102 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1187 000000 AR1=0 ;EXPECTED RESULT IN AC + 1188 031103 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1189 031104 003 13 0 00 030171 ER3 AC,30171 ;HIGH PRODUCT FAILED + 1190 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1191 031105 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1192 031106 004 14 0 00 030172 ER4 AC+1,30172 ;LOW PRODUCT FAILED + 1193 040000 AEE=XX ;INITIAL C(E) + 1194 031107 312 11 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1195 031110 005 11 0 00 030173 ER5 E,30173 ;C(E) WAS CLOBBERED + 1196 031111 321 15 0 00 031077 JUMPL AC+2,F30170 ;LOOP ON ERROR SWITCH^ + 1197 + 1198 003020 ADR=ADR+1 + 1199 100000 XX=XX+XX + 1200 IFE XX, + 1201 + 1202 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1203 MOP1 (\ADR,0,-1,XX,0,0)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0038 + + 1204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1205 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1206 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1208 + 1209 000000 F30200: AA1=0 ;INITIAL C(AC) + 1210 031112 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1211 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1212 031113 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1213 100000 AEE=XX ;INITIAL C(E) + 1214 031114 200 11 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1215 031115 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1216 000000 AR1=0 ;EXPECTED RESULT IN AC + 1217 031116 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1218 031117 003 13 0 00 030201 ER3 AC,30201 ;HIGH PRODUCT FAILED + 1219 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1220 031120 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1221 031121 004 14 0 00 030202 ER4 AC+1,30202 ;LOW PRODUCT FAILED + 1222 100000 AEE=XX ;INITIAL C(E) + 1223 031122 312 11 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1224 031123 005 11 0 00 030203 ER5 E,30203 ;C(E) WAS CLOBBERED + 1225 031124 321 15 0 00 031112 JUMPL AC+2,F30200 ;LOOP ON ERROR SWITCH^ + 1226 + 1227 003021 ADR=ADR+1 + 1228 200000 XX=XX+XX + 1229 IFE XX, + 1230 + 1231 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1232 MOP1 (\ADR,0,-1,XX,0,0)^ + 1233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1234 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1235 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1237 + 1238 000000 F30210: AA1=0 ;INITIAL C(AC) + 1239 031125 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1240 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1241 031126 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1242 200000 AEE=XX ;INITIAL C(E) + 1243 031127 200 11 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1244 031130 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1245 000000 AR1=0 ;EXPECTED RESULT IN AC + 1246 031131 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1247 031132 003 13 0 00 030211 ER3 AC,30211 ;HIGH PRODUCT FAILED + 1248 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1249 031133 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1250 031134 004 14 0 00 030212 ER4 AC+1,30212 ;LOW PRODUCT FAILED + 1251 200000 AEE=XX ;INITIAL C(E) + 1252 031135 312 11 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1253 031136 005 11 0 00 030213 ER5 E,30213 ;C(E) WAS CLOBBERED + 1254 031137 321 15 0 00 031125 JUMPL AC+2,F30210 ;LOOP ON ERROR SWITCH^ + 1255 + 1256 003022 ADR=ADR+1 + 1257 400000 XX=XX+XX + 1258 IFE XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0039 + + 1259 + 1260 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1261 MOP1 (\ADR,0,-1,XX,0,0)^ + 1262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1263 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1264 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1266 + 1267 000000 F30220: AA1=0 ;INITIAL C(AC) + 1268 031140 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1269 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1270 031141 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1271 400000 AEE=XX ;INITIAL C(E) + 1272 031142 200 11 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1273 031143 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1274 000000 AR1=0 ;EXPECTED RESULT IN AC + 1275 031144 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1276 031145 003 13 0 00 030221 ER3 AC,30221 ;HIGH PRODUCT FAILED + 1277 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1278 031146 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1279 031147 004 14 0 00 030222 ER4 AC+1,30222 ;LOW PRODUCT FAILED + 1280 400000 AEE=XX ;INITIAL C(E) + 1281 031150 312 11 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1282 031151 005 11 0 00 030223 ER5 E,30223 ;C(E) WAS CLOBBERED + 1283 031152 321 15 0 00 031140 JUMPL AC+2,F30220 ;LOOP ON ERROR SWITCH^ + 1284 + 1285 003023 ADR=ADR+1 + 1286 000001 000000 XX=XX+XX + 1287 IFE XX, + 1288 + 1289 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1290 MOP1 (\ADR,0,-1,XX,0,0)^ + 1291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1292 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1293 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1295 + 1296 000000 F30230: AA1=0 ;INITIAL C(AC) + 1297 031153 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1298 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1299 031154 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1300 000001 000000 AEE=XX ;INITIAL C(E) + 1301 031155 200 11 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1302 031156 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1303 000000 AR1=0 ;EXPECTED RESULT IN AC + 1304 031157 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1305 031160 003 13 0 00 030231 ER3 AC,30231 ;HIGH PRODUCT FAILED + 1306 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1307 031161 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1308 031162 004 14 0 00 030232 ER4 AC+1,30232 ;LOW PRODUCT FAILED + 1309 000001 000000 AEE=XX ;INITIAL C(E) + 1310 031163 312 11 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1311 031164 005 11 0 00 030233 ER5 E,30233 ;C(E) WAS CLOBBERED + 1312 031165 321 15 0 00 031153 JUMPL AC+2,F30230 ;LOOP ON ERROR SWITCH^ + 1313 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0040 + + 1314 003024 ADR=ADR+1 + 1315 000002 000000 XX=XX+XX + 1316 IFE XX, + 1317 + 1318 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1319 MOP1 (\ADR,0,-1,XX,0,0)^ + 1320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1321 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1322 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1324 + 1325 000000 F30240: AA1=0 ;INITIAL C(AC) + 1326 031166 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1327 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1328 031167 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1329 000002 000000 AEE=XX ;INITIAL C(E) + 1330 031170 200 11 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1331 031171 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1332 000000 AR1=0 ;EXPECTED RESULT IN AC + 1333 031172 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1334 031173 003 13 0 00 030241 ER3 AC,30241 ;HIGH PRODUCT FAILED + 1335 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1336 031174 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1337 031175 004 14 0 00 030242 ER4 AC+1,30242 ;LOW PRODUCT FAILED + 1338 000002 000000 AEE=XX ;INITIAL C(E) + 1339 031176 312 11 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1340 031177 005 11 0 00 030243 ER5 E,30243 ;C(E) WAS CLOBBERED + 1341 031200 321 15 0 00 031166 JUMPL AC+2,F30240 ;LOOP ON ERROR SWITCH^ + 1342 + 1343 003025 ADR=ADR+1 + 1344 000004 000000 XX=XX+XX + 1345 IFE XX, + 1346 + 1347 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1348 MOP1 (\ADR,0,-1,XX,0,0)^ + 1349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1350 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1351 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1353 + 1354 000000 F30250: AA1=0 ;INITIAL C(AC) + 1355 031201 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1356 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1357 031202 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1358 000004 000000 AEE=XX ;INITIAL C(E) + 1359 031203 200 11 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1360 031204 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1361 000000 AR1=0 ;EXPECTED RESULT IN AC + 1362 031205 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1363 031206 003 13 0 00 030251 ER3 AC,30251 ;HIGH PRODUCT FAILED + 1364 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1365 031207 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1366 031210 004 14 0 00 030252 ER4 AC+1,30252 ;LOW PRODUCT FAILED + 1367 000004 000000 AEE=XX ;INITIAL C(E) + 1368 031211 312 11 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0041 + + 1369 031212 005 11 0 00 030253 ER5 E,30253 ;C(E) WAS CLOBBERED + 1370 031213 321 15 0 00 031201 JUMPL AC+2,F30250 ;LOOP ON ERROR SWITCH^ + 1371 + 1372 003026 ADR=ADR+1 + 1373 000010 000000 XX=XX+XX + 1374 IFE XX, + 1375 + 1376 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1377 MOP1 (\ADR,0,-1,XX,0,0)^ + 1378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1379 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1380 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1382 + 1383 000000 F30260: AA1=0 ;INITIAL C(AC) + 1384 031214 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1385 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1386 031215 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1387 000010 000000 AEE=XX ;INITIAL C(E) + 1388 031216 200 11 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1389 031217 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1390 000000 AR1=0 ;EXPECTED RESULT IN AC + 1391 031220 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1392 031221 003 13 0 00 030261 ER3 AC,30261 ;HIGH PRODUCT FAILED + 1393 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1394 031222 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1395 031223 004 14 0 00 030262 ER4 AC+1,30262 ;LOW PRODUCT FAILED + 1396 000010 000000 AEE=XX ;INITIAL C(E) + 1397 031224 312 11 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1398 031225 005 11 0 00 030263 ER5 E,30263 ;C(E) WAS CLOBBERED + 1399 031226 321 15 0 00 031214 JUMPL AC+2,F30260 ;LOOP ON ERROR SWITCH^ + 1400 + 1401 003027 ADR=ADR+1 + 1402 000020 000000 XX=XX+XX + 1403 IFE XX, + 1404 + 1405 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1406 MOP1 (\ADR,0,-1,XX,0,0)^ + 1407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1408 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1409 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1411 + 1412 000000 F30270: AA1=0 ;INITIAL C(AC) + 1413 031227 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1414 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1415 031230 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1416 000020 000000 AEE=XX ;INITIAL C(E) + 1417 031231 200 11 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1418 031232 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1419 000000 AR1=0 ;EXPECTED RESULT IN AC + 1420 031233 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1421 031234 003 13 0 00 030271 ER3 AC,30271 ;HIGH PRODUCT FAILED + 1422 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1423 031235 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0042 + + 1424 031236 004 14 0 00 030272 ER4 AC+1,30272 ;LOW PRODUCT FAILED + 1425 000020 000000 AEE=XX ;INITIAL C(E) + 1426 031237 312 11 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1427 031240 005 11 0 00 030273 ER5 E,30273 ;C(E) WAS CLOBBERED + 1428 031241 321 15 0 00 031227 JUMPL AC+2,F30270 ;LOOP ON ERROR SWITCH^ + 1429 + 1430 003030 ADR=ADR+1 + 1431 000040 000000 XX=XX+XX + 1432 IFE XX, + 1433 + 1434 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1435 MOP1 (\ADR,0,-1,XX,0,0)^ + 1436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1438 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1440 + 1441 000000 F30300: AA1=0 ;INITIAL C(AC) + 1442 031242 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1443 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1444 031243 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1445 000040 000000 AEE=XX ;INITIAL C(E) + 1446 031244 200 11 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1447 031245 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1448 000000 AR1=0 ;EXPECTED RESULT IN AC + 1449 031246 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1450 031247 003 13 0 00 030301 ER3 AC,30301 ;HIGH PRODUCT FAILED + 1451 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1452 031250 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1453 031251 004 14 0 00 030302 ER4 AC+1,30302 ;LOW PRODUCT FAILED + 1454 000040 000000 AEE=XX ;INITIAL C(E) + 1455 031252 312 11 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1456 031253 005 11 0 00 030303 ER5 E,30303 ;C(E) WAS CLOBBERED + 1457 031254 321 15 0 00 031242 JUMPL AC+2,F30300 ;LOOP ON ERROR SWITCH^ + 1458 + 1459 003031 ADR=ADR+1 + 1460 000100 000000 XX=XX+XX + 1461 IFE XX, + 1462 + 1463 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1464 MOP1 (\ADR,0,-1,XX,0,0)^ + 1465 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1466 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1467 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1468 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1469 + 1470 000000 F30310: AA1=0 ;INITIAL C(AC) + 1471 031255 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1472 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1473 031256 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1474 000100 000000 AEE=XX ;INITIAL C(E) + 1475 031257 200 11 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1476 031260 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1477 000000 AR1=0 ;EXPECTED RESULT IN AC + 1478 031261 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0043 + + 1479 031262 003 13 0 00 030311 ER3 AC,30311 ;HIGH PRODUCT FAILED + 1480 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1481 031263 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1482 031264 004 14 0 00 030312 ER4 AC+1,30312 ;LOW PRODUCT FAILED + 1483 000100 000000 AEE=XX ;INITIAL C(E) + 1484 031265 312 11 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1485 031266 005 11 0 00 030313 ER5 E,30313 ;C(E) WAS CLOBBERED + 1486 031267 321 15 0 00 031255 JUMPL AC+2,F30310 ;LOOP ON ERROR SWITCH^ + 1487 + 1488 003032 ADR=ADR+1 + 1489 000200 000000 XX=XX+XX + 1490 IFE XX, + 1491 + 1492 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1493 MOP1 (\ADR,0,-1,XX,0,0)^ + 1494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1495 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1496 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1498 + 1499 000000 F30320: AA1=0 ;INITIAL C(AC) + 1500 031270 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1501 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1502 031271 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1503 000200 000000 AEE=XX ;INITIAL C(E) + 1504 031272 200 11 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1505 031273 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1506 000000 AR1=0 ;EXPECTED RESULT IN AC + 1507 031274 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1508 031275 003 13 0 00 030321 ER3 AC,30321 ;HIGH PRODUCT FAILED + 1509 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1510 031276 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1511 031277 004 14 0 00 030322 ER4 AC+1,30322 ;LOW PRODUCT FAILED + 1512 000200 000000 AEE=XX ;INITIAL C(E) + 1513 031300 312 11 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1514 031301 005 11 0 00 030323 ER5 E,30323 ;C(E) WAS CLOBBERED + 1515 031302 321 15 0 00 031270 JUMPL AC+2,F30320 ;LOOP ON ERROR SWITCH^ + 1516 + 1517 003033 ADR=ADR+1 + 1518 000400 000000 XX=XX+XX + 1519 IFE XX, + 1520 + 1521 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1522 MOP1 (\ADR,0,-1,XX,0,0)^ + 1523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1525 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1527 + 1528 000000 F30330: AA1=0 ;INITIAL C(AC) + 1529 031303 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1530 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1531 031304 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1532 000400 000000 AEE=XX ;INITIAL C(E) + 1533 031305 200 11 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0044 + + 1534 031306 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1535 000000 AR1=0 ;EXPECTED RESULT IN AC + 1536 031307 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1537 031310 003 13 0 00 030331 ER3 AC,30331 ;HIGH PRODUCT FAILED + 1538 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1539 031311 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1540 031312 004 14 0 00 030332 ER4 AC+1,30332 ;LOW PRODUCT FAILED + 1541 000400 000000 AEE=XX ;INITIAL C(E) + 1542 031313 312 11 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1543 031314 005 11 0 00 030333 ER5 E,30333 ;C(E) WAS CLOBBERED + 1544 031315 321 15 0 00 031303 JUMPL AC+2,F30330 ;LOOP ON ERROR SWITCH^ + 1545 + 1546 003034 ADR=ADR+1 + 1547 001000 000000 XX=XX+XX + 1548 IFE XX, + 1549 + 1550 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1551 MOP1 (\ADR,0,-1,XX,0,0)^ + 1552 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1553 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1554 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1555 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1556 + 1557 000000 F30340: AA1=0 ;INITIAL C(AC) + 1558 031316 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1559 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1560 031317 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1561 001000 000000 AEE=XX ;INITIAL C(E) + 1562 031320 200 11 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1563 031321 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1564 000000 AR1=0 ;EXPECTED RESULT IN AC + 1565 031322 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1566 031323 003 13 0 00 030341 ER3 AC,30341 ;HIGH PRODUCT FAILED + 1567 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1568 031324 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1569 031325 004 14 0 00 030342 ER4 AC+1,30342 ;LOW PRODUCT FAILED + 1570 001000 000000 AEE=XX ;INITIAL C(E) + 1571 031326 312 11 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1572 031327 005 11 0 00 030343 ER5 E,30343 ;C(E) WAS CLOBBERED + 1573 031330 321 15 0 00 031316 JUMPL AC+2,F30340 ;LOOP ON ERROR SWITCH^ + 1574 + 1575 003035 ADR=ADR+1 + 1576 002000 000000 XX=XX+XX + 1577 IFE XX, + 1578 + 1579 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1580 MOP1 (\ADR,0,-1,XX,0,0)^ + 1581 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1582 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1583 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1584 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1585 + 1586 000000 F30350: AA1=0 ;INITIAL C(AC) + 1587 031331 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1588 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0045 + + 1589 031332 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1590 002000 000000 AEE=XX ;INITIAL C(E) + 1591 031333 200 11 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1592 031334 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1593 000000 AR1=0 ;EXPECTED RESULT IN AC + 1594 031335 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1595 031336 003 13 0 00 030351 ER3 AC,30351 ;HIGH PRODUCT FAILED + 1596 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1597 031337 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1598 031340 004 14 0 00 030352 ER4 AC+1,30352 ;LOW PRODUCT FAILED + 1599 002000 000000 AEE=XX ;INITIAL C(E) + 1600 031341 312 11 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1601 031342 005 11 0 00 030353 ER5 E,30353 ;C(E) WAS CLOBBERED + 1602 031343 321 15 0 00 031331 JUMPL AC+2,F30350 ;LOOP ON ERROR SWITCH^ + 1603 + 1604 003036 ADR=ADR+1 + 1605 004000 000000 XX=XX+XX + 1606 IFE XX, + 1607 + 1608 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1609 MOP1 (\ADR,0,-1,XX,0,0)^ + 1610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1611 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1612 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1614 + 1615 000000 F30360: AA1=0 ;INITIAL C(AC) + 1616 031344 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1617 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1618 031345 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1619 004000 000000 AEE=XX ;INITIAL C(E) + 1620 031346 200 11 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1621 031347 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1622 000000 AR1=0 ;EXPECTED RESULT IN AC + 1623 031350 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1624 031351 003 13 0 00 030361 ER3 AC,30361 ;HIGH PRODUCT FAILED + 1625 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1626 031352 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1627 031353 004 14 0 00 030362 ER4 AC+1,30362 ;LOW PRODUCT FAILED + 1628 004000 000000 AEE=XX ;INITIAL C(E) + 1629 031354 312 11 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1630 031355 005 11 0 00 030363 ER5 E,30363 ;C(E) WAS CLOBBERED + 1631 031356 321 15 0 00 031344 JUMPL AC+2,F30360 ;LOOP ON ERROR SWITCH^ + 1632 + 1633 003037 ADR=ADR+1 + 1634 010000 000000 XX=XX+XX + 1635 IFE XX, + 1636 + 1637 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1638 MOP1 (\ADR,0,-1,XX,0,0)^ + 1639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1641 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1643 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0046 + + 1644 000000 F30370: AA1=0 ;INITIAL C(AC) + 1645 031357 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1646 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1647 031360 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1648 010000 000000 AEE=XX ;INITIAL C(E) + 1649 031361 200 11 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1650 031362 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1651 000000 AR1=0 ;EXPECTED RESULT IN AC + 1652 031363 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1653 031364 003 13 0 00 030371 ER3 AC,30371 ;HIGH PRODUCT FAILED + 1654 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1655 031365 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1656 031366 004 14 0 00 030372 ER4 AC+1,30372 ;LOW PRODUCT FAILED + 1657 010000 000000 AEE=XX ;INITIAL C(E) + 1658 031367 312 11 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1659 031370 005 11 0 00 030373 ER5 E,30373 ;C(E) WAS CLOBBERED + 1660 031371 321 15 0 00 031357 JUMPL AC+2,F30370 ;LOOP ON ERROR SWITCH^ + 1661 + 1662 003040 ADR=ADR+1 + 1663 020000 000000 XX=XX+XX + 1664 IFE XX, + 1665 + 1666 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1667 MOP1 (\ADR,0,-1,XX,0,0)^ + 1668 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1669 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1670 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1671 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1672 + 1673 000000 F30400: AA1=0 ;INITIAL C(AC) + 1674 031372 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1675 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1676 031373 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1677 020000 000000 AEE=XX ;INITIAL C(E) + 1678 031374 200 11 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1679 031375 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1680 000000 AR1=0 ;EXPECTED RESULT IN AC + 1681 031376 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1682 031377 003 13 0 00 030401 ER3 AC,30401 ;HIGH PRODUCT FAILED + 1683 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1684 031400 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1685 031401 004 14 0 00 030402 ER4 AC+1,30402 ;LOW PRODUCT FAILED + 1686 020000 000000 AEE=XX ;INITIAL C(E) + 1687 031402 312 11 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1688 031403 005 11 0 00 030403 ER5 E,30403 ;C(E) WAS CLOBBERED + 1689 031404 321 15 0 00 031372 JUMPL AC+2,F30400 ;LOOP ON ERROR SWITCH^ + 1690 + 1691 003041 ADR=ADR+1 + 1692 040000 000000 XX=XX+XX + 1693 IFE XX, + 1694 + 1695 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1696 MOP1 (\ADR,0,-1,XX,0,0)^ + 1697 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1698 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0047 + + 1699 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1700 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1701 + 1702 000000 F30410: AA1=0 ;INITIAL C(AC) + 1703 031405 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1704 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1705 031406 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1706 040000 000000 AEE=XX ;INITIAL C(E) + 1707 031407 200 11 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1708 031410 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1709 000000 AR1=0 ;EXPECTED RESULT IN AC + 1710 031411 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1711 031412 003 13 0 00 030411 ER3 AC,30411 ;HIGH PRODUCT FAILED + 1712 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1713 031413 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1714 031414 004 14 0 00 030412 ER4 AC+1,30412 ;LOW PRODUCT FAILED + 1715 040000 000000 AEE=XX ;INITIAL C(E) + 1716 031415 312 11 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1717 031416 005 11 0 00 030413 ER5 E,30413 ;C(E) WAS CLOBBERED + 1718 031417 321 15 0 00 031405 JUMPL AC+2,F30410 ;LOOP ON ERROR SWITCH^ + 1719 + 1720 003042 ADR=ADR+1 + 1721 100000 000000 XX=XX+XX + 1722 IFE XX, + 1723 + 1724 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1725 MOP1 (\ADR,0,-1,XX,0,0)^ + 1726 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1727 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1728 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1729 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1730 + 1731 000000 F30420: AA1=0 ;INITIAL C(AC) + 1732 031420 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1733 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1734 031421 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1735 100000 000000 AEE=XX ;INITIAL C(E) + 1736 031422 200 11 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1737 031423 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1738 000000 AR1=0 ;EXPECTED RESULT IN AC + 1739 031424 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1740 031425 003 13 0 00 030421 ER3 AC,30421 ;HIGH PRODUCT FAILED + 1741 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1742 031426 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1743 031427 004 14 0 00 030422 ER4 AC+1,30422 ;LOW PRODUCT FAILED + 1744 100000 000000 AEE=XX ;INITIAL C(E) + 1745 031430 312 11 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1746 031431 005 11 0 00 030423 ER5 E,30423 ;C(E) WAS CLOBBERED + 1747 031432 321 15 0 00 031420 JUMPL AC+2,F30420 ;LOOP ON ERROR SWITCH^ + 1748 + 1749 003043 ADR=ADR+1 + 1750 200000 000000 XX=XX+XX + 1751 IFE XX, + 1752 + 1753 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0048 + + 1754 MOP1 (\ADR,0,-1,XX,0,0)^ + 1755 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1756 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1757 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1758 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1759 + 1760 000000 F30430: AA1=0 ;INITIAL C(AC) + 1761 031433 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1762 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1763 031434 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1764 200000 000000 AEE=XX ;INITIAL C(E) + 1765 031435 200 11 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1766 031436 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1767 000000 AR1=0 ;EXPECTED RESULT IN AC + 1768 031437 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1769 031440 003 13 0 00 030431 ER3 AC,30431 ;HIGH PRODUCT FAILED + 1770 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1771 031441 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1772 031442 004 14 0 00 030432 ER4 AC+1,30432 ;LOW PRODUCT FAILED + 1773 200000 000000 AEE=XX ;INITIAL C(E) + 1774 031443 312 11 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1775 031444 005 11 0 00 030433 ER5 E,30433 ;C(E) WAS CLOBBERED + 1776 031445 321 15 0 00 031433 JUMPL AC+2,F30430 ;LOOP ON ERROR SWITCH^ + 1777 + 1778 003044 ADR=ADR+1 + 1779 400000 000000 XX=XX+XX + 1780 IFE XX, + 1781 + 1782 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + 1783 MOP1 (\ADR,0,-1,XX,0,0)^ + 1784 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1785 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1786 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1787 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1788 + 1789 000000 F30440: AA1=0 ;INITIAL C(AC) + 1790 031446 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1791 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1792 031447 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1793 400000 000000 AEE=XX ;INITIAL C(E) + 1794 031450 200 11 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1795 031451 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1796 000000 AR1=0 ;EXPECTED RESULT IN AC + 1797 031452 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1798 031453 003 13 0 00 030441 ER3 AC,30441 ;HIGH PRODUCT FAILED + 1799 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1800 031454 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1801 031455 004 14 0 00 030442 ER4 AC+1,30442 ;LOW PRODUCT FAILED + 1802 400000 000000 AEE=XX ;INITIAL C(E) + 1803 031456 312 11 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1804 031457 005 11 0 00 030443 ER5 E,30443 ;C(E) WAS CLOBBERED + 1805 031460 321 15 0 00 031446 JUMPL AC+2,F30440 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0049 + + 1806 000012 AC=12 + 1807 000010 E=&17 + 1808 SAVEAC (1,1)^ + 1809 031461 201 14 0 00 031461 MOVEI AC+2,. ;SAVE TEST PC + 1810 031462 202 14 0 00 030051 MOVEM AC+2,TESTPC + 1811 031463 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 1812 031464 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 1813 000000 XX=0 + 1814 + 1815 REPEAT ^D36, < + 1816 ADR=ADR+1 + 1817 XX=XX+XX+1 + 1818 IFE , + 1819 + 1820 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1821 MOP1 (\ADR,0,-1,XX,0,0)> + 1822 + 1823 003045 ADR=ADR+1 + 1824 000001 XX=XX+XX+1 + 1825 777777 777776 IFE , + 1826 + 1827 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1828 MOP1 (\ADR,0,-1,XX,0,0)^ + 1829 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1830 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1831 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1832 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1833 + 1834 000000 F30450: AA1=0 ;INITIAL C(AC) + 1835 031465 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1836 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1837 031466 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1838 777777 777776 AEE=XX ;INITIAL C(E) + 1839 031467 200 10 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1840 031470 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1841 000000 AR1=0 ;EXPECTED RESULT IN AC + 1842 031471 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1843 031472 003 12 0 00 030451 ER3 AC,30451 ;HIGH PRODUCT FAILED + 1844 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1845 031473 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1846 031474 004 13 0 00 030452 ER4 AC+1,30452 ;LOW PRODUCT FAILED + 1847 777777 777776 AEE=XX ;INITIAL C(E) + 1848 031475 312 10 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1849 031476 005 10 0 00 030453 ER5 E,30453 ;C(E) WAS CLOBBERED + 1850 031477 321 14 0 00 031465 JUMPL AC+2,F30450 ;LOOP ON ERROR SWITCH^ + 1851 + 1852 003046 ADR=ADR+1 + 1853 777777 777775 XX=XX+XX+1 + 1854 IFE , + 1855 + 1856 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1857 MOP1 (\ADR,0,-1,XX,0,0)^ + 1858 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1859 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1860 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0050 + + 1861 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1862 + 1863 000000 F30460: AA1=0 ;INITIAL C(AC) + 1864 031500 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1865 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1866 031501 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1867 777777 777775 AEE=XX ;INITIAL C(E) + 1868 031502 200 10 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1869 031503 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1870 000000 AR1=0 ;EXPECTED RESULT IN AC + 1871 031504 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1872 031505 003 12 0 00 030461 ER3 AC,30461 ;HIGH PRODUCT FAILED + 1873 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1874 031506 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1875 031507 004 13 0 00 030462 ER4 AC+1,30462 ;LOW PRODUCT FAILED + 1876 777777 777775 AEE=XX ;INITIAL C(E) + 1877 031510 312 10 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1878 031511 005 10 0 00 030463 ER5 E,30463 ;C(E) WAS CLOBBERED + 1879 031512 321 14 0 00 031500 JUMPL AC+2,F30460 ;LOOP ON ERROR SWITCH^ + 1880 + 1881 003047 ADR=ADR+1 + 1882 777777 777773 XX=XX+XX+1 + 1883 IFE , + 1884 + 1885 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1886 MOP1 (\ADR,0,-1,XX,0,0)^ + 1887 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1888 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1889 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1890 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1891 + 1892 000000 F30470: AA1=0 ;INITIAL C(AC) + 1893 031513 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1894 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1895 031514 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1896 777777 777773 AEE=XX ;INITIAL C(E) + 1897 031515 200 10 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1898 031516 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1899 000000 AR1=0 ;EXPECTED RESULT IN AC + 1900 031517 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1901 031520 003 12 0 00 030471 ER3 AC,30471 ;HIGH PRODUCT FAILED + 1902 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1903 031521 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1904 031522 004 13 0 00 030472 ER4 AC+1,30472 ;LOW PRODUCT FAILED + 1905 777777 777773 AEE=XX ;INITIAL C(E) + 1906 031523 312 10 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1907 031524 005 10 0 00 030473 ER5 E,30473 ;C(E) WAS CLOBBERED + 1908 031525 321 14 0 00 031513 JUMPL AC+2,F30470 ;LOOP ON ERROR SWITCH^ + 1909 + 1910 003050 ADR=ADR+1 + 1911 777777 777767 XX=XX+XX+1 + 1912 IFE , + 1913 + 1914 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1915 MOP1 (\ADR,0,-1,XX,0,0)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0051 + + 1916 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1917 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1918 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1919 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1920 + 1921 000000 F30500: AA1=0 ;INITIAL C(AC) + 1922 031526 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1923 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1924 031527 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1925 777777 777767 AEE=XX ;INITIAL C(E) + 1926 031530 200 10 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1927 031531 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1928 000000 AR1=0 ;EXPECTED RESULT IN AC + 1929 031532 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1930 031533 003 12 0 00 030501 ER3 AC,30501 ;HIGH PRODUCT FAILED + 1931 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1932 031534 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1933 031535 004 13 0 00 030502 ER4 AC+1,30502 ;LOW PRODUCT FAILED + 1934 777777 777767 AEE=XX ;INITIAL C(E) + 1935 031536 312 10 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1936 031537 005 10 0 00 030503 ER5 E,30503 ;C(E) WAS CLOBBERED + 1937 031540 321 14 0 00 031526 JUMPL AC+2,F30500 ;LOOP ON ERROR SWITCH^ + 1938 + 1939 003051 ADR=ADR+1 + 1940 777777 777757 XX=XX+XX+1 + 1941 IFE , + 1942 + 1943 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1944 MOP1 (\ADR,0,-1,XX,0,0)^ + 1945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1946 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1947 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1949 + 1950 000000 F30510: AA1=0 ;INITIAL C(AC) + 1951 031541 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1952 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1953 031542 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1954 777777 777757 AEE=XX ;INITIAL C(E) + 1955 031543 200 10 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1956 031544 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1957 000000 AR1=0 ;EXPECTED RESULT IN AC + 1958 031545 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1959 031546 003 12 0 00 030511 ER3 AC,30511 ;HIGH PRODUCT FAILED + 1960 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1961 031547 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1962 031550 004 13 0 00 030512 ER4 AC+1,30512 ;LOW PRODUCT FAILED + 1963 777777 777757 AEE=XX ;INITIAL C(E) + 1964 031551 312 10 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1965 031552 005 10 0 00 030513 ER5 E,30513 ;C(E) WAS CLOBBERED + 1966 031553 321 14 0 00 031541 JUMPL AC+2,F30510 ;LOOP ON ERROR SWITCH^ + 1967 + 1968 003052 ADR=ADR+1 + 1969 777777 777737 XX=XX+XX+1 + 1970 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0052 + + 1971 + 1972 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 1973 MOP1 (\ADR,0,-1,XX,0,0)^ + 1974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 1975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 1976 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 1977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 1978 + 1979 000000 F30520: AA1=0 ;INITIAL C(AC) + 1980 031554 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 1981 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 1982 031555 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 1983 777777 777737 AEE=XX ;INITIAL C(E) + 1984 031556 200 10 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 1985 031557 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 1986 000000 AR1=0 ;EXPECTED RESULT IN AC + 1987 031560 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 1988 031561 003 12 0 00 030521 ER3 AC,30521 ;HIGH PRODUCT FAILED + 1989 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 1990 031562 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 1991 031563 004 13 0 00 030522 ER4 AC+1,30522 ;LOW PRODUCT FAILED + 1992 777777 777737 AEE=XX ;INITIAL C(E) + 1993 031564 312 10 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? + 1994 031565 005 10 0 00 030523 ER5 E,30523 ;C(E) WAS CLOBBERED + 1995 031566 321 14 0 00 031554 JUMPL AC+2,F30520 ;LOOP ON ERROR SWITCH^ + 1996 + 1997 003053 ADR=ADR+1 + 1998 777777 777677 XX=XX+XX+1 + 1999 IFE , + 2000 + 2001 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2002 MOP1 (\ADR,0,-1,XX,0,0)^ + 2003 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2004 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2005 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2006 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2007 + 2008 000000 F30530: AA1=0 ;INITIAL C(AC) + 2009 031567 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2010 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2011 031570 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2012 777777 777677 AEE=XX ;INITIAL C(E) + 2013 031571 200 10 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2014 031572 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2015 000000 AR1=0 ;EXPECTED RESULT IN AC + 2016 031573 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2017 031574 003 12 0 00 030531 ER3 AC,30531 ;HIGH PRODUCT FAILED + 2018 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2019 031575 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2020 031576 004 13 0 00 030532 ER4 AC+1,30532 ;LOW PRODUCT FAILED + 2021 777777 777677 AEE=XX ;INITIAL C(E) + 2022 031577 312 10 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2023 031600 005 10 0 00 030533 ER5 E,30533 ;C(E) WAS CLOBBERED + 2024 031601 321 14 0 00 031567 JUMPL AC+2,F30530 ;LOOP ON ERROR SWITCH^ + 2025 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0053 + + 2026 003054 ADR=ADR+1 + 2027 777777 777577 XX=XX+XX+1 + 2028 IFE , + 2029 + 2030 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2031 MOP1 (\ADR,0,-1,XX,0,0)^ + 2032 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2033 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2034 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2035 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2036 + 2037 000000 F30540: AA1=0 ;INITIAL C(AC) + 2038 031602 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2039 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2040 031603 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2041 777777 777577 AEE=XX ;INITIAL C(E) + 2042 031604 200 10 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2043 031605 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2044 000000 AR1=0 ;EXPECTED RESULT IN AC + 2045 031606 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2046 031607 003 12 0 00 030541 ER3 AC,30541 ;HIGH PRODUCT FAILED + 2047 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2048 031610 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2049 031611 004 13 0 00 030542 ER4 AC+1,30542 ;LOW PRODUCT FAILED + 2050 777777 777577 AEE=XX ;INITIAL C(E) + 2051 031612 312 10 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2052 031613 005 10 0 00 030543 ER5 E,30543 ;C(E) WAS CLOBBERED + 2053 031614 321 14 0 00 031602 JUMPL AC+2,F30540 ;LOOP ON ERROR SWITCH^ + 2054 + 2055 003055 ADR=ADR+1 + 2056 777777 777377 XX=XX+XX+1 + 2057 IFE , + 2058 + 2059 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2060 MOP1 (\ADR,0,-1,XX,0,0)^ + 2061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2062 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2063 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2065 + 2066 000000 F30550: AA1=0 ;INITIAL C(AC) + 2067 031615 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2068 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2069 031616 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2070 777777 777377 AEE=XX ;INITIAL C(E) + 2071 031617 200 10 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2072 031620 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2073 000000 AR1=0 ;EXPECTED RESULT IN AC + 2074 031621 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2075 031622 003 12 0 00 030551 ER3 AC,30551 ;HIGH PRODUCT FAILED + 2076 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2077 031623 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2078 031624 004 13 0 00 030552 ER4 AC+1,30552 ;LOW PRODUCT FAILED + 2079 777777 777377 AEE=XX ;INITIAL C(E) + 2080 031625 312 10 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0054 + + 2081 031626 005 10 0 00 030553 ER5 E,30553 ;C(E) WAS CLOBBERED + 2082 031627 321 14 0 00 031615 JUMPL AC+2,F30550 ;LOOP ON ERROR SWITCH^ + 2083 + 2084 003056 ADR=ADR+1 + 2085 777777 776777 XX=XX+XX+1 + 2086 IFE , + 2087 + 2088 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2089 MOP1 (\ADR,0,-1,XX,0,0)^ + 2090 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2091 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2092 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2093 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2094 + 2095 000000 F30560: AA1=0 ;INITIAL C(AC) + 2096 031630 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2097 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2098 031631 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2099 777777 776777 AEE=XX ;INITIAL C(E) + 2100 031632 200 10 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2101 031633 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2102 000000 AR1=0 ;EXPECTED RESULT IN AC + 2103 031634 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2104 031635 003 12 0 00 030561 ER3 AC,30561 ;HIGH PRODUCT FAILED + 2105 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2106 031636 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2107 031637 004 13 0 00 030562 ER4 AC+1,30562 ;LOW PRODUCT FAILED + 2108 777777 776777 AEE=XX ;INITIAL C(E) + 2109 031640 312 10 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2110 031641 005 10 0 00 030563 ER5 E,30563 ;C(E) WAS CLOBBERED + 2111 031642 321 14 0 00 031630 JUMPL AC+2,F30560 ;LOOP ON ERROR SWITCH^ + 2112 + 2113 003057 ADR=ADR+1 + 2114 777777 775777 XX=XX+XX+1 + 2115 IFE , + 2116 + 2117 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2118 MOP1 (\ADR,0,-1,XX,0,0)^ + 2119 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2120 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2121 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2122 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2123 + 2124 000000 F30570: AA1=0 ;INITIAL C(AC) + 2125 031643 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2126 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2127 031644 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2128 777777 775777 AEE=XX ;INITIAL C(E) + 2129 031645 200 10 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2130 031646 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2131 000000 AR1=0 ;EXPECTED RESULT IN AC + 2132 031647 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2133 031650 003 12 0 00 030571 ER3 AC,30571 ;HIGH PRODUCT FAILED + 2134 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2135 031651 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0055 + + 2136 031652 004 13 0 00 030572 ER4 AC+1,30572 ;LOW PRODUCT FAILED + 2137 777777 775777 AEE=XX ;INITIAL C(E) + 2138 031653 312 10 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2139 031654 005 10 0 00 030573 ER5 E,30573 ;C(E) WAS CLOBBERED + 2140 031655 321 14 0 00 031643 JUMPL AC+2,F30570 ;LOOP ON ERROR SWITCH^ + 2141 + 2142 003060 ADR=ADR+1 + 2143 777777 773777 XX=XX+XX+1 + 2144 IFE , + 2145 + 2146 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2147 MOP1 (\ADR,0,-1,XX,0,0)^ + 2148 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2149 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2150 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2151 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2152 + 2153 000000 F30600: AA1=0 ;INITIAL C(AC) + 2154 031656 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2155 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2156 031657 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2157 777777 773777 AEE=XX ;INITIAL C(E) + 2158 031660 200 10 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2159 031661 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2160 000000 AR1=0 ;EXPECTED RESULT IN AC + 2161 031662 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2162 031663 003 12 0 00 030601 ER3 AC,30601 ;HIGH PRODUCT FAILED + 2163 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2164 031664 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2165 031665 004 13 0 00 030602 ER4 AC+1,30602 ;LOW PRODUCT FAILED + 2166 777777 773777 AEE=XX ;INITIAL C(E) + 2167 031666 312 10 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2168 031667 005 10 0 00 030603 ER5 E,30603 ;C(E) WAS CLOBBERED + 2169 031670 321 14 0 00 031656 JUMPL AC+2,F30600 ;LOOP ON ERROR SWITCH^ + 2170 + 2171 003061 ADR=ADR+1 + 2172 777777 767777 XX=XX+XX+1 + 2173 IFE , + 2174 + 2175 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2176 MOP1 (\ADR,0,-1,XX,0,0)^ + 2177 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2178 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2179 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2180 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2181 + 2182 000000 F30610: AA1=0 ;INITIAL C(AC) + 2183 031671 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2184 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2185 031672 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2186 777777 767777 AEE=XX ;INITIAL C(E) + 2187 031673 200 10 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2188 031674 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2189 000000 AR1=0 ;EXPECTED RESULT IN AC + 2190 031675 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0056 + + 2191 031676 003 12 0 00 030611 ER3 AC,30611 ;HIGH PRODUCT FAILED + 2192 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2193 031677 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2194 031700 004 13 0 00 030612 ER4 AC+1,30612 ;LOW PRODUCT FAILED + 2195 777777 767777 AEE=XX ;INITIAL C(E) + 2196 031701 312 10 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2197 031702 005 10 0 00 030613 ER5 E,30613 ;C(E) WAS CLOBBERED + 2198 031703 321 14 0 00 031671 JUMPL AC+2,F30610 ;LOOP ON ERROR SWITCH^ + 2199 + 2200 003062 ADR=ADR+1 + 2201 777777 757777 XX=XX+XX+1 + 2202 IFE , + 2203 + 2204 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2205 MOP1 (\ADR,0,-1,XX,0,0)^ + 2206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2207 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2208 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2210 + 2211 000000 F30620: AA1=0 ;INITIAL C(AC) + 2212 031704 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2213 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2214 031705 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2215 777777 757777 AEE=XX ;INITIAL C(E) + 2216 031706 200 10 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2217 031707 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2218 000000 AR1=0 ;EXPECTED RESULT IN AC + 2219 031710 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2220 031711 003 12 0 00 030621 ER3 AC,30621 ;HIGH PRODUCT FAILED + 2221 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2222 031712 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2223 031713 004 13 0 00 030622 ER4 AC+1,30622 ;LOW PRODUCT FAILED + 2224 777777 757777 AEE=XX ;INITIAL C(E) + 2225 031714 312 10 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2226 031715 005 10 0 00 030623 ER5 E,30623 ;C(E) WAS CLOBBERED + 2227 031716 321 14 0 00 031704 JUMPL AC+2,F30620 ;LOOP ON ERROR SWITCH^ + 2228 + 2229 003063 ADR=ADR+1 + 2230 777777 737777 XX=XX+XX+1 + 2231 IFE , + 2232 + 2233 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2234 MOP1 (\ADR,0,-1,XX,0,0)^ + 2235 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2236 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2237 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2238 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2239 + 2240 000000 F30630: AA1=0 ;INITIAL C(AC) + 2241 031717 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2242 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2243 031720 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2244 777777 737777 AEE=XX ;INITIAL C(E) + 2245 031721 200 10 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0057 + + 2246 031722 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2247 000000 AR1=0 ;EXPECTED RESULT IN AC + 2248 031723 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2249 031724 003 12 0 00 030631 ER3 AC,30631 ;HIGH PRODUCT FAILED + 2250 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2251 031725 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2252 031726 004 13 0 00 030632 ER4 AC+1,30632 ;LOW PRODUCT FAILED + 2253 777777 737777 AEE=XX ;INITIAL C(E) + 2254 031727 312 10 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2255 031730 005 10 0 00 030633 ER5 E,30633 ;C(E) WAS CLOBBERED + 2256 031731 321 14 0 00 031717 JUMPL AC+2,F30630 ;LOOP ON ERROR SWITCH^ + 2257 + 2258 003064 ADR=ADR+1 + 2259 777777 677777 XX=XX+XX+1 + 2260 IFE , + 2261 + 2262 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2263 MOP1 (\ADR,0,-1,XX,0,0)^ + 2264 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2265 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2266 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2267 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2268 + 2269 000000 F30640: AA1=0 ;INITIAL C(AC) + 2270 031732 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2271 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2272 031733 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2273 777777 677777 AEE=XX ;INITIAL C(E) + 2274 031734 200 10 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2275 031735 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2276 000000 AR1=0 ;EXPECTED RESULT IN AC + 2277 031736 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2278 031737 003 12 0 00 030641 ER3 AC,30641 ;HIGH PRODUCT FAILED + 2279 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2280 031740 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2281 031741 004 13 0 00 030642 ER4 AC+1,30642 ;LOW PRODUCT FAILED + 2282 777777 677777 AEE=XX ;INITIAL C(E) + 2283 031742 312 10 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2284 031743 005 10 0 00 030643 ER5 E,30643 ;C(E) WAS CLOBBERED + 2285 031744 321 14 0 00 031732 JUMPL AC+2,F30640 ;LOOP ON ERROR SWITCH^ + 2286 + 2287 003065 ADR=ADR+1 + 2288 777777 577777 XX=XX+XX+1 + 2289 IFE , + 2290 + 2291 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2292 MOP1 (\ADR,0,-1,XX,0,0)^ + 2293 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2294 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2295 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2296 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2297 + 2298 000000 F30650: AA1=0 ;INITIAL C(AC) + 2299 031745 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2300 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0058 + + 2301 031746 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2302 777777 577777 AEE=XX ;INITIAL C(E) + 2303 031747 200 10 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2304 031750 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2305 000000 AR1=0 ;EXPECTED RESULT IN AC + 2306 031751 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2307 031752 003 12 0 00 030651 ER3 AC,30651 ;HIGH PRODUCT FAILED + 2308 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2309 031753 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2310 031754 004 13 0 00 030652 ER4 AC+1,30652 ;LOW PRODUCT FAILED + 2311 777777 577777 AEE=XX ;INITIAL C(E) + 2312 031755 312 10 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2313 031756 005 10 0 00 030653 ER5 E,30653 ;C(E) WAS CLOBBERED + 2314 031757 321 14 0 00 031745 JUMPL AC+2,F30650 ;LOOP ON ERROR SWITCH^ + 2315 + 2316 003066 ADR=ADR+1 + 2317 777777 377777 XX=XX+XX+1 + 2318 IFE , + 2319 + 2320 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2321 MOP1 (\ADR,0,-1,XX,0,0)^ + 2322 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2323 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2324 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2325 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2326 + 2327 000000 F30660: AA1=0 ;INITIAL C(AC) + 2328 031760 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2329 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2330 031761 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2331 777777 377777 AEE=XX ;INITIAL C(E) + 2332 031762 200 10 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2333 031763 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2334 000000 AR1=0 ;EXPECTED RESULT IN AC + 2335 031764 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2336 031765 003 12 0 00 030661 ER3 AC,30661 ;HIGH PRODUCT FAILED + 2337 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2338 031766 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2339 031767 004 13 0 00 030662 ER4 AC+1,30662 ;LOW PRODUCT FAILED + 2340 777777 377777 AEE=XX ;INITIAL C(E) + 2341 031770 312 10 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2342 031771 005 10 0 00 030663 ER5 E,30663 ;C(E) WAS CLOBBERED + 2343 031772 321 14 0 00 031760 JUMPL AC+2,F30660 ;LOOP ON ERROR SWITCH^ + 2344 + 2345 003067 ADR=ADR+1 + 2346 777776 777777 XX=XX+XX+1 + 2347 IFE , + 2348 + 2349 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2350 MOP1 (\ADR,0,-1,XX,0,0)^ + 2351 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2352 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2353 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2354 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2355 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0059 + + 2356 000000 F30670: AA1=0 ;INITIAL C(AC) + 2357 031773 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2358 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2359 031774 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2360 777776 777777 AEE=XX ;INITIAL C(E) + 2361 031775 200 10 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2362 031776 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2363 000000 AR1=0 ;EXPECTED RESULT IN AC + 2364 031777 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2365 032000 003 12 0 00 030671 ER3 AC,30671 ;HIGH PRODUCT FAILED + 2366 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2367 032001 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2368 032002 004 13 0 00 030672 ER4 AC+1,30672 ;LOW PRODUCT FAILED + 2369 777776 777777 AEE=XX ;INITIAL C(E) + 2370 032003 312 10 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2371 032004 005 10 0 00 030673 ER5 E,30673 ;C(E) WAS CLOBBERED + 2372 032005 321 14 0 00 031773 JUMPL AC+2,F30670 ;LOOP ON ERROR SWITCH^ + 2373 + 2374 003070 ADR=ADR+1 + 2375 777775 777777 XX=XX+XX+1 + 2376 IFE , + 2377 + 2378 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2379 MOP1 (\ADR,0,-1,XX,0,0)^ + 2380 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2381 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2382 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2383 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2384 + 2385 000000 F30700: AA1=0 ;INITIAL C(AC) + 2386 032006 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2387 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2388 032007 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2389 777775 777777 AEE=XX ;INITIAL C(E) + 2390 032010 200 10 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2391 032011 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2392 000000 AR1=0 ;EXPECTED RESULT IN AC + 2393 032012 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2394 032013 003 12 0 00 030701 ER3 AC,30701 ;HIGH PRODUCT FAILED + 2395 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2396 032014 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2397 032015 004 13 0 00 030702 ER4 AC+1,30702 ;LOW PRODUCT FAILED + 2398 777775 777777 AEE=XX ;INITIAL C(E) + 2399 032016 312 10 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2400 032017 005 10 0 00 030703 ER5 E,30703 ;C(E) WAS CLOBBERED + 2401 032020 321 14 0 00 032006 JUMPL AC+2,F30700 ;LOOP ON ERROR SWITCH^ + 2402 + 2403 003071 ADR=ADR+1 + 2404 777773 777777 XX=XX+XX+1 + 2405 IFE , + 2406 + 2407 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2408 MOP1 (\ADR,0,-1,XX,0,0)^ + 2409 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2410 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0060 + + 2411 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2412 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2413 + 2414 000000 F30710: AA1=0 ;INITIAL C(AC) + 2415 032021 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2416 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2417 032022 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2418 777773 777777 AEE=XX ;INITIAL C(E) + 2419 032023 200 10 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2420 032024 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2421 000000 AR1=0 ;EXPECTED RESULT IN AC + 2422 032025 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2423 032026 003 12 0 00 030711 ER3 AC,30711 ;HIGH PRODUCT FAILED + 2424 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2425 032027 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2426 032030 004 13 0 00 030712 ER4 AC+1,30712 ;LOW PRODUCT FAILED + 2427 777773 777777 AEE=XX ;INITIAL C(E) + 2428 032031 312 10 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2429 032032 005 10 0 00 030713 ER5 E,30713 ;C(E) WAS CLOBBERED + 2430 032033 321 14 0 00 032021 JUMPL AC+2,F30710 ;LOOP ON ERROR SWITCH^ + 2431 + 2432 003072 ADR=ADR+1 + 2433 777767 777777 XX=XX+XX+1 + 2434 IFE , + 2435 + 2436 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2437 MOP1 (\ADR,0,-1,XX,0,0)^ + 2438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2439 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2440 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2442 + 2443 000000 F30720: AA1=0 ;INITIAL C(AC) + 2444 032034 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2445 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2446 032035 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2447 777767 777777 AEE=XX ;INITIAL C(E) + 2448 032036 200 10 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2449 032037 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2450 000000 AR1=0 ;EXPECTED RESULT IN AC + 2451 032040 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2452 032041 003 12 0 00 030721 ER3 AC,30721 ;HIGH PRODUCT FAILED + 2453 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2454 032042 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2455 032043 004 13 0 00 030722 ER4 AC+1,30722 ;LOW PRODUCT FAILED + 2456 777767 777777 AEE=XX ;INITIAL C(E) + 2457 032044 312 10 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2458 032045 005 10 0 00 030723 ER5 E,30723 ;C(E) WAS CLOBBERED + 2459 032046 321 14 0 00 032034 JUMPL AC+2,F30720 ;LOOP ON ERROR SWITCH^ + 2460 + 2461 003073 ADR=ADR+1 + 2462 777757 777777 XX=XX+XX+1 + 2463 IFE , + 2464 + 2465 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0061 + + 2466 MOP1 (\ADR,0,-1,XX,0,0)^ + 2467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2469 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2471 + 2472 000000 F30730: AA1=0 ;INITIAL C(AC) + 2473 032047 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2474 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2475 032050 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2476 777757 777777 AEE=XX ;INITIAL C(E) + 2477 032051 200 10 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2478 032052 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2479 000000 AR1=0 ;EXPECTED RESULT IN AC + 2480 032053 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2481 032054 003 12 0 00 030731 ER3 AC,30731 ;HIGH PRODUCT FAILED + 2482 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2483 032055 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2484 032056 004 13 0 00 030732 ER4 AC+1,30732 ;LOW PRODUCT FAILED + 2485 777757 777777 AEE=XX ;INITIAL C(E) + 2486 032057 312 10 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2487 032060 005 10 0 00 030733 ER5 E,30733 ;C(E) WAS CLOBBERED + 2488 032061 321 14 0 00 032047 JUMPL AC+2,F30730 ;LOOP ON ERROR SWITCH^ + 2489 + 2490 003074 ADR=ADR+1 + 2491 777737 777777 XX=XX+XX+1 + 2492 IFE , + 2493 + 2494 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2495 MOP1 (\ADR,0,-1,XX,0,0)^ + 2496 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2497 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2498 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2499 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2500 + 2501 000000 F30740: AA1=0 ;INITIAL C(AC) + 2502 032062 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2503 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2504 032063 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2505 777737 777777 AEE=XX ;INITIAL C(E) + 2506 032064 200 10 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2507 032065 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2508 000000 AR1=0 ;EXPECTED RESULT IN AC + 2509 032066 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2510 032067 003 12 0 00 030741 ER3 AC,30741 ;HIGH PRODUCT FAILED + 2511 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2512 032070 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2513 032071 004 13 0 00 030742 ER4 AC+1,30742 ;LOW PRODUCT FAILED + 2514 777737 777777 AEE=XX ;INITIAL C(E) + 2515 032072 312 10 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2516 032073 005 10 0 00 030743 ER5 E,30743 ;C(E) WAS CLOBBERED + 2517 032074 321 14 0 00 032062 JUMPL AC+2,F30740 ;LOOP ON ERROR SWITCH^ + 2518 + 2519 003075 ADR=ADR+1 + 2520 777677 777777 XX=XX+XX+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0062 + + 2521 IFE , + 2522 + 2523 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2524 MOP1 (\ADR,0,-1,XX,0,0)^ + 2525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2526 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2527 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2529 + 2530 000000 F30750: AA1=0 ;INITIAL C(AC) + 2531 032075 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2532 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2533 032076 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2534 777677 777777 AEE=XX ;INITIAL C(E) + 2535 032077 200 10 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2536 032100 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2537 000000 AR1=0 ;EXPECTED RESULT IN AC + 2538 032101 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2539 032102 003 12 0 00 030751 ER3 AC,30751 ;HIGH PRODUCT FAILED + 2540 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2541 032103 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2542 032104 004 13 0 00 030752 ER4 AC+1,30752 ;LOW PRODUCT FAILED + 2543 777677 777777 AEE=XX ;INITIAL C(E) + 2544 032105 312 10 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2545 032106 005 10 0 00 030753 ER5 E,30753 ;C(E) WAS CLOBBERED + 2546 032107 321 14 0 00 032075 JUMPL AC+2,F30750 ;LOOP ON ERROR SWITCH^ + 2547 + 2548 003076 ADR=ADR+1 + 2549 777577 777777 XX=XX+XX+1 + 2550 IFE , + 2551 + 2552 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2553 MOP1 (\ADR,0,-1,XX,0,0)^ + 2554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2556 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2558 + 2559 000000 F30760: AA1=0 ;INITIAL C(AC) + 2560 032110 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2561 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2562 032111 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2563 777577 777777 AEE=XX ;INITIAL C(E) + 2564 032112 200 10 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2565 032113 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2566 000000 AR1=0 ;EXPECTED RESULT IN AC + 2567 032114 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2568 032115 003 12 0 00 030761 ER3 AC,30761 ;HIGH PRODUCT FAILED + 2569 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2570 032116 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2571 032117 004 13 0 00 030762 ER4 AC+1,30762 ;LOW PRODUCT FAILED + 2572 777577 777777 AEE=XX ;INITIAL C(E) + 2573 032120 312 10 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2574 032121 005 10 0 00 030763 ER5 E,30763 ;C(E) WAS CLOBBERED + 2575 032122 321 14 0 00 032110 JUMPL AC+2,F30760 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0063 + + 2576 + 2577 003077 ADR=ADR+1 + 2578 777377 777777 XX=XX+XX+1 + 2579 IFE , + 2580 + 2581 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2582 MOP1 (\ADR,0,-1,XX,0,0)^ + 2583 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2584 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2585 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2586 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2587 + 2588 000000 F30770: AA1=0 ;INITIAL C(AC) + 2589 032123 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2590 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2591 032124 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2592 777377 777777 AEE=XX ;INITIAL C(E) + 2593 032125 200 10 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2594 032126 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2595 000000 AR1=0 ;EXPECTED RESULT IN AC + 2596 032127 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2597 032130 003 12 0 00 030771 ER3 AC,30771 ;HIGH PRODUCT FAILED + 2598 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2599 032131 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2600 032132 004 13 0 00 030772 ER4 AC+1,30772 ;LOW PRODUCT FAILED + 2601 777377 777777 AEE=XX ;INITIAL C(E) + 2602 032133 312 10 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2603 032134 005 10 0 00 030773 ER5 E,30773 ;C(E) WAS CLOBBERED + 2604 032135 321 14 0 00 032123 JUMPL AC+2,F30770 ;LOOP ON ERROR SWITCH^ + 2605 + 2606 003100 ADR=ADR+1 + 2607 776777 777777 XX=XX+XX+1 + 2608 IFE , + 2609 + 2610 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2611 MOP1 (\ADR,0,-1,XX,0,0)^ + 2612 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2613 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2614 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2615 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2616 + 2617 000000 F31000: AA1=0 ;INITIAL C(AC) + 2618 032136 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2619 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2620 032137 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2621 776777 777777 AEE=XX ;INITIAL C(E) + 2622 032140 200 10 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2623 032141 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2624 000000 AR1=0 ;EXPECTED RESULT IN AC + 2625 032142 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2626 032143 003 12 0 00 031001 ER3 AC,31001 ;HIGH PRODUCT FAILED + 2627 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2628 032144 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2629 032145 004 13 0 00 031002 ER4 AC+1,31002 ;LOW PRODUCT FAILED + 2630 776777 777777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0064 + + 2631 032146 312 10 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2632 032147 005 10 0 00 031003 ER5 E,31003 ;C(E) WAS CLOBBERED + 2633 032150 321 14 0 00 032136 JUMPL AC+2,F31000 ;LOOP ON ERROR SWITCH^ + 2634 + 2635 003101 ADR=ADR+1 + 2636 775777 777777 XX=XX+XX+1 + 2637 IFE , + 2638 + 2639 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2640 MOP1 (\ADR,0,-1,XX,0,0)^ + 2641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2642 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2643 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2645 + 2646 000000 F31010: AA1=0 ;INITIAL C(AC) + 2647 032151 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2648 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2649 032152 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2650 775777 777777 AEE=XX ;INITIAL C(E) + 2651 032153 200 10 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2652 032154 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2653 000000 AR1=0 ;EXPECTED RESULT IN AC + 2654 032155 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2655 032156 003 12 0 00 031011 ER3 AC,31011 ;HIGH PRODUCT FAILED + 2656 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2657 032157 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2658 032160 004 13 0 00 031012 ER4 AC+1,31012 ;LOW PRODUCT FAILED + 2659 775777 777777 AEE=XX ;INITIAL C(E) + 2660 032161 312 10 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2661 032162 005 10 0 00 031013 ER5 E,31013 ;C(E) WAS CLOBBERED + 2662 032163 321 14 0 00 032151 JUMPL AC+2,F31010 ;LOOP ON ERROR SWITCH^ + 2663 + 2664 003102 ADR=ADR+1 + 2665 773777 777777 XX=XX+XX+1 + 2666 IFE , + 2667 + 2668 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2669 MOP1 (\ADR,0,-1,XX,0,0)^ + 2670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2672 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2674 + 2675 000000 F31020: AA1=0 ;INITIAL C(AC) + 2676 032164 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2677 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2678 032165 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2679 773777 777777 AEE=XX ;INITIAL C(E) + 2680 032166 200 10 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2681 032167 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2682 000000 AR1=0 ;EXPECTED RESULT IN AC + 2683 032170 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2684 032171 003 12 0 00 031021 ER3 AC,31021 ;HIGH PRODUCT FAILED + 2685 000000 AR2=0 ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0065 + + 2686 032172 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2687 032173 004 13 0 00 031022 ER4 AC+1,31022 ;LOW PRODUCT FAILED + 2688 773777 777777 AEE=XX ;INITIAL C(E) + 2689 032174 312 10 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2690 032175 005 10 0 00 031023 ER5 E,31023 ;C(E) WAS CLOBBERED + 2691 032176 321 14 0 00 032164 JUMPL AC+2,F31020 ;LOOP ON ERROR SWITCH^ + 2692 + 2693 003103 ADR=ADR+1 + 2694 767777 777777 XX=XX+XX+1 + 2695 IFE , + 2696 + 2697 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2698 MOP1 (\ADR,0,-1,XX,0,0)^ + 2699 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2700 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2701 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2702 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2703 + 2704 000000 F31030: AA1=0 ;INITIAL C(AC) + 2705 032177 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2706 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2707 032200 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2708 767777 777777 AEE=XX ;INITIAL C(E) + 2709 032201 200 10 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2710 032202 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2711 000000 AR1=0 ;EXPECTED RESULT IN AC + 2712 032203 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2713 032204 003 12 0 00 031031 ER3 AC,31031 ;HIGH PRODUCT FAILED + 2714 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2715 032205 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2716 032206 004 13 0 00 031032 ER4 AC+1,31032 ;LOW PRODUCT FAILED + 2717 767777 777777 AEE=XX ;INITIAL C(E) + 2718 032207 312 10 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2719 032210 005 10 0 00 031033 ER5 E,31033 ;C(E) WAS CLOBBERED + 2720 032211 321 14 0 00 032177 JUMPL AC+2,F31030 ;LOOP ON ERROR SWITCH^ + 2721 + 2722 003104 ADR=ADR+1 + 2723 757777 777777 XX=XX+XX+1 + 2724 IFE , + 2725 + 2726 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2727 MOP1 (\ADR,0,-1,XX,0,0)^ + 2728 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2729 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2730 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2731 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2732 + 2733 000000 F31040: AA1=0 ;INITIAL C(AC) + 2734 032212 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2735 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2736 032213 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2737 757777 777777 AEE=XX ;INITIAL C(E) + 2738 032214 200 10 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2739 032215 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2740 000000 AR1=0 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0066 + + 2741 032216 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2742 032217 003 12 0 00 031041 ER3 AC,31041 ;HIGH PRODUCT FAILED + 2743 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2744 032220 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2745 032221 004 13 0 00 031042 ER4 AC+1,31042 ;LOW PRODUCT FAILED + 2746 757777 777777 AEE=XX ;INITIAL C(E) + 2747 032222 312 10 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2748 032223 005 10 0 00 031043 ER5 E,31043 ;C(E) WAS CLOBBERED + 2749 032224 321 14 0 00 032212 JUMPL AC+2,F31040 ;LOOP ON ERROR SWITCH^ + 2750 + 2751 003105 ADR=ADR+1 + 2752 737777 777777 XX=XX+XX+1 + 2753 IFE , + 2754 + 2755 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2756 MOP1 (\ADR,0,-1,XX,0,0)^ + 2757 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2758 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2759 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2760 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2761 + 2762 000000 F31050: AA1=0 ;INITIAL C(AC) + 2763 032225 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2764 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2765 032226 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2766 737777 777777 AEE=XX ;INITIAL C(E) + 2767 032227 200 10 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2768 032230 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2769 000000 AR1=0 ;EXPECTED RESULT IN AC + 2770 032231 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2771 032232 003 12 0 00 031051 ER3 AC,31051 ;HIGH PRODUCT FAILED + 2772 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2773 032233 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2774 032234 004 13 0 00 031052 ER4 AC+1,31052 ;LOW PRODUCT FAILED + 2775 737777 777777 AEE=XX ;INITIAL C(E) + 2776 032235 312 10 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2777 032236 005 10 0 00 031053 ER5 E,31053 ;C(E) WAS CLOBBERED + 2778 032237 321 14 0 00 032225 JUMPL AC+2,F31050 ;LOOP ON ERROR SWITCH^ + 2779 + 2780 003106 ADR=ADR+1 + 2781 677777 777777 XX=XX+XX+1 + 2782 IFE , + 2783 + 2784 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2785 MOP1 (\ADR,0,-1,XX,0,0)^ + 2786 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2787 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2788 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2789 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2790 + 2791 000000 F31060: AA1=0 ;INITIAL C(AC) + 2792 032240 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2793 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2794 032241 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2795 677777 777777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0067 + + 2796 032242 200 10 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2797 032243 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2798 000000 AR1=0 ;EXPECTED RESULT IN AC + 2799 032244 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2800 032245 003 12 0 00 031061 ER3 AC,31061 ;HIGH PRODUCT FAILED + 2801 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2802 032246 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2803 032247 004 13 0 00 031062 ER4 AC+1,31062 ;LOW PRODUCT FAILED + 2804 677777 777777 AEE=XX ;INITIAL C(E) + 2805 032250 312 10 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2806 032251 005 10 0 00 031063 ER5 E,31063 ;C(E) WAS CLOBBERED + 2807 032252 321 14 0 00 032240 JUMPL AC+2,F31060 ;LOOP ON ERROR SWITCH^ + 2808 + 2809 003107 ADR=ADR+1 + 2810 577777 777777 XX=XX+XX+1 + 2811 IFE , + 2812 + 2813 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2814 MOP1 (\ADR,0,-1,XX,0,0)^ + 2815 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2816 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2817 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2818 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2819 + 2820 000000 F31070: AA1=0 ;INITIAL C(AC) + 2821 032253 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2822 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2823 032254 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2824 577777 777777 AEE=XX ;INITIAL C(E) + 2825 032255 200 10 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2826 032256 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2827 000000 AR1=0 ;EXPECTED RESULT IN AC + 2828 032257 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2829 032260 003 12 0 00 031071 ER3 AC,31071 ;HIGH PRODUCT FAILED + 2830 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2831 032261 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2832 032262 004 13 0 00 031072 ER4 AC+1,31072 ;LOW PRODUCT FAILED + 2833 577777 777777 AEE=XX ;INITIAL C(E) + 2834 032263 312 10 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2835 032264 005 10 0 00 031073 ER5 E,31073 ;C(E) WAS CLOBBERED + 2836 032265 321 14 0 00 032253 JUMPL AC+2,F31070 ;LOOP ON ERROR SWITCH^ + 2837 + 2838 003110 ADR=ADR+1 + 2839 377777 777777 XX=XX+XX+1 + 2840 IFE , + 2841 + 2842 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + 2843 MOP1 (\ADR,0,-1,XX,0,0)^ + 2844 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2845 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2846 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. + 2847 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2848 + 2849 000000 F31100: AA1=0 ;INITIAL C(AC) + 2850 032266 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0068 + + 2851 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2852 032267 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2853 377777 777777 AEE=XX ;INITIAL C(E) + 2854 032270 200 10 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 2855 032271 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2856 000000 AR1=0 ;EXPECTED RESULT IN AC + 2857 032272 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2858 032273 003 12 0 00 031101 ER3 AC,31101 ;HIGH PRODUCT FAILED + 2859 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2860 032274 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2861 032275 004 13 0 00 031102 ER4 AC+1,31102 ;LOW PRODUCT FAILED + 2862 377777 777777 AEE=XX ;INITIAL C(E) + 2863 032276 312 10 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? + 2864 032277 005 10 0 00 031103 ER5 E,31103 ;C(E) WAS CLOBBERED + 2865 032300 321 14 0 00 032266 JUMPL AC+2,F31100 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0069 + + 2866 003111 ADR=ADR+1 + 2867 000014 AC=14 + 2868 000012 E=&17 + 2869 SAVEAC (1,1)^ + 2870 032301 201 16 0 00 032301 MOVEI AC+2,. ;SAVE TEST PC + 2871 032302 202 16 0 00 030051 MOVEM AC+2,TESTPC + 2872 032303 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2873 032304 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2874 + 2875 ;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0 + 2876 MOP1 (\ADR,0,-1,-1,0,0)^ + 2877 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND + 2878 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2879 ;AND E AGAINST [0], [0] AND [-1] RESPECTIVELY. + 2880 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2881 + 2882 000000 F31110: AA1=0 ;INITIAL C(AC) + 2883 032305 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) + 2884 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2885 032306 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2886 777777 777777 AEE=-1 ;INITIAL C(E) + 2887 032307 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 2888 032310 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2889 000000 AR1=0 ;EXPECTED RESULT IN AC + 2890 032311 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2891 032312 003 14 0 00 031111 ER3 AC,31111 ;HIGH PRODUCT FAILED + 2892 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 2893 032313 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 2894 032314 004 15 0 00 031112 ER4 AC+1,31112 ;LOW PRODUCT FAILED + 2895 777777 777777 AEE=-1 ;INITIAL C(E) + 2896 032315 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 2897 032316 005 12 0 00 031113 ER5 E,31113 ;C(E) WAS CLOBBERED + 2898 032317 321 16 0 00 032305 JUMPL AC+2,F31110 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0070 + + 2899 SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM + 2900 + 2901 000013 AC=13 + 2902 000011 E=&17 + 2903 SAVEAC (1,1)^ + 2904 032320 201 15 0 00 032320 MOVEI AC+2,. ;SAVE TEST PC + 2905 032321 202 15 0 00 030051 MOVEM AC+2,TESTPC + 2906 032322 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 2907 032323 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 2908 + 2909 777777 777777 XX=-1 + 2910 + 2911 ;MULTIPLICAND=1 + 2912 REPEAT ^D16,< + 2913 ;TEST MULTIPLICATION ALGORITHM + 2914 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 2915 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 2916 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 2917 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 2918 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 2919 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 2920 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 2921 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 2922 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 2923 ;OF C(E). + 2924 + 2925 ADR=ADR+1 + 2926 XX=XX+1 + 2927 + 2928 MOP1 (\ADR,XX,-1,1,0,XX)> + 2929 + 2930 ;TEST MULTIPLICATION ALGORITHM + 2931 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 2932 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 2933 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 2934 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 2935 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 2936 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 2937 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 2938 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 2939 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 2940 ;OF C(E). + 2941 + 2942 003112 ADR=ADR+1 + 2943 000000 XX=XX+1 + 2944 + 2945 MOP1 (\ADR,XX,-1,1,0,XX)^ + 2946 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 2947 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2948 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 2949 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2950 + 2951 000000 F31120: AA1=XX ;INITIAL C(AC) + 2952 032324 200 13 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 2953 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0071 + + 2954 032325 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2955 000001 AEE=1 ;INITIAL C(E) + 2956 032326 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 2957 032327 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2958 000000 AR1=0 ;EXPECTED RESULT IN AC + 2959 032330 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2960 032331 003 13 0 00 031121 ER3 AC,31121 ;HIGH PRODUCT FAILED + 2961 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 2962 032332 312 14 0 00 043776 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 2963 032333 004 14 0 00 031122 ER4 AC+1,31122 ;LOW PRODUCT FAILED + 2964 000001 AEE=1 ;INITIAL C(E) + 2965 032334 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 2966 032335 005 11 0 00 031123 ER5 E,31123 ;C(E) WAS CLOBBERED + 2967 032336 321 15 0 00 032324 JUMPL AC+2,F31120 ;LOOP ON ERROR SWITCH^ + 2968 + 2969 ;TEST MULTIPLICATION ALGORITHM + 2970 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 2971 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 2972 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 2973 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 2974 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 2975 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 2976 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 2977 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 2978 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 2979 ;OF C(E). + 2980 + 2981 003113 ADR=ADR+1 + 2982 000001 XX=XX+1 + 2983 + 2984 MOP1 (\ADR,XX,-1,1,0,XX)^ + 2985 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 2986 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 2987 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 2988 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 2989 + 2990 000001 F31130: AA1=XX ;INITIAL C(AC) + 2991 032337 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 2992 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 2993 032340 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 2994 000001 AEE=1 ;INITIAL C(E) + 2995 032341 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 2996 032342 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 2997 000000 AR1=0 ;EXPECTED RESULT IN AC + 2998 032343 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 2999 032344 003 13 0 00 031131 ER3 AC,31131 ;HIGH PRODUCT FAILED + 3000 000001 AR2=XX ;EXPECTED RESULT IN AC+1 + 3001 032345 312 14 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3002 032346 004 14 0 00 031132 ER4 AC+1,31132 ;LOW PRODUCT FAILED + 3003 000001 AEE=1 ;INITIAL C(E) + 3004 032347 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3005 032350 005 11 0 00 031133 ER5 E,31133 ;C(E) WAS CLOBBERED + 3006 032351 321 15 0 00 032337 JUMPL AC+2,F31130 ;LOOP ON ERROR SWITCH^ + 3007 + 3008 ;TEST MULTIPLICATION ALGORITHM +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0072 + + 3009 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3010 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3011 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3012 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3013 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3014 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3015 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3016 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3017 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3018 ;OF C(E). + 3019 + 3020 003114 ADR=ADR+1 + 3021 000002 XX=XX+1 + 3022 + 3023 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3024 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3025 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3026 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3027 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3028 + 3029 000002 F31140: AA1=XX ;INITIAL C(AC) + 3030 032352 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3031 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3032 032353 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3033 000001 AEE=1 ;INITIAL C(E) + 3034 032354 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3035 032355 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3036 000000 AR1=0 ;EXPECTED RESULT IN AC + 3037 032356 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3038 032357 003 13 0 00 031141 ER3 AC,31141 ;HIGH PRODUCT FAILED + 3039 000002 AR2=XX ;EXPECTED RESULT IN AC+1 + 3040 032360 312 14 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3041 032361 004 14 0 00 031142 ER4 AC+1,31142 ;LOW PRODUCT FAILED + 3042 000001 AEE=1 ;INITIAL C(E) + 3043 032362 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3044 032363 005 11 0 00 031143 ER5 E,31143 ;C(E) WAS CLOBBERED + 3045 032364 321 15 0 00 032352 JUMPL AC+2,F31140 ;LOOP ON ERROR SWITCH^ + 3046 + 3047 ;TEST MULTIPLICATION ALGORITHM + 3048 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3049 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3050 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3051 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3052 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3053 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3054 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3055 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3056 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3057 ;OF C(E). + 3058 + 3059 003115 ADR=ADR+1 + 3060 000003 XX=XX+1 + 3061 + 3062 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3063 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0073 + + 3064 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3065 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3066 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3067 + 3068 000003 F31150: AA1=XX ;INITIAL C(AC) + 3069 032365 200 13 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3070 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3071 032366 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3072 000001 AEE=1 ;INITIAL C(E) + 3073 032367 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3074 032370 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3075 000000 AR1=0 ;EXPECTED RESULT IN AC + 3076 032371 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3077 032372 003 13 0 00 031151 ER3 AC,31151 ;HIGH PRODUCT FAILED + 3078 000003 AR2=XX ;EXPECTED RESULT IN AC+1 + 3079 032373 312 14 0 00 044110 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3080 032374 004 14 0 00 031152 ER4 AC+1,31152 ;LOW PRODUCT FAILED + 3081 000001 AEE=1 ;INITIAL C(E) + 3082 032375 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3083 032376 005 11 0 00 031153 ER5 E,31153 ;C(E) WAS CLOBBERED + 3084 032377 321 15 0 00 032365 JUMPL AC+2,F31150 ;LOOP ON ERROR SWITCH^ + 3085 + 3086 ;TEST MULTIPLICATION ALGORITHM + 3087 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3088 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3089 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3090 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3091 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3092 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3093 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3094 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3095 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3096 ;OF C(E). + 3097 + 3098 003116 ADR=ADR+1 + 3099 000004 XX=XX+1 + 3100 + 3101 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3102 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3103 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3104 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3105 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3106 + 3107 000004 F31160: AA1=XX ;INITIAL C(AC) + 3108 032400 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3109 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3110 032401 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3111 000001 AEE=1 ;INITIAL C(E) + 3112 032402 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3113 032403 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3114 000000 AR1=0 ;EXPECTED RESULT IN AC + 3115 032404 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3116 032405 003 13 0 00 031161 ER3 AC,31161 ;HIGH PRODUCT FAILED + 3117 000004 AR2=XX ;EXPECTED RESULT IN AC+1 + 3118 032406 312 14 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0074 + + 3119 032407 004 14 0 00 031162 ER4 AC+1,31162 ;LOW PRODUCT FAILED + 3120 000001 AEE=1 ;INITIAL C(E) + 3121 032410 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3122 032411 005 11 0 00 031163 ER5 E,31163 ;C(E) WAS CLOBBERED + 3123 032412 321 15 0 00 032400 JUMPL AC+2,F31160 ;LOOP ON ERROR SWITCH^ + 3124 + 3125 ;TEST MULTIPLICATION ALGORITHM + 3126 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3127 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3128 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3129 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3130 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3131 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3132 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3133 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3134 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3135 ;OF C(E). + 3136 + 3137 003117 ADR=ADR+1 + 3138 000005 XX=XX+1 + 3139 + 3140 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3141 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3142 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3143 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3144 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3145 + 3146 000005 F31170: AA1=XX ;INITIAL C(AC) + 3147 032413 200 13 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3148 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3149 032414 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3150 000001 AEE=1 ;INITIAL C(E) + 3151 032415 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3152 032416 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3153 000000 AR1=0 ;EXPECTED RESULT IN AC + 3154 032417 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3155 032420 003 13 0 00 031171 ER3 AC,31171 ;HIGH PRODUCT FAILED + 3156 000005 AR2=XX ;EXPECTED RESULT IN AC+1 + 3157 032421 312 14 0 00 044111 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3158 032422 004 14 0 00 031172 ER4 AC+1,31172 ;LOW PRODUCT FAILED + 3159 000001 AEE=1 ;INITIAL C(E) + 3160 032423 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3161 032424 005 11 0 00 031173 ER5 E,31173 ;C(E) WAS CLOBBERED + 3162 032425 321 15 0 00 032413 JUMPL AC+2,F31170 ;LOOP ON ERROR SWITCH^ + 3163 + 3164 ;TEST MULTIPLICATION ALGORITHM + 3165 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3166 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3167 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3168 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3169 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3170 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3171 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3172 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3173 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0075 + + 3174 ;OF C(E). + 3175 + 3176 003120 ADR=ADR+1 + 3177 000006 XX=XX+1 + 3178 + 3179 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3181 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3182 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3184 + 3185 000006 F31200: AA1=XX ;INITIAL C(AC) + 3186 032426 200 13 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3187 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3188 032427 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3189 000001 AEE=1 ;INITIAL C(E) + 3190 032430 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3191 032431 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3192 000000 AR1=0 ;EXPECTED RESULT IN AC + 3193 032432 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3194 032433 003 13 0 00 031201 ER3 AC,31201 ;HIGH PRODUCT FAILED + 3195 000006 AR2=XX ;EXPECTED RESULT IN AC+1 + 3196 032434 312 14 0 00 044112 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3197 032435 004 14 0 00 031202 ER4 AC+1,31202 ;LOW PRODUCT FAILED + 3198 000001 AEE=1 ;INITIAL C(E) + 3199 032436 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3200 032437 005 11 0 00 031203 ER5 E,31203 ;C(E) WAS CLOBBERED + 3201 032440 321 15 0 00 032426 JUMPL AC+2,F31200 ;LOOP ON ERROR SWITCH^ + 3202 + 3203 ;TEST MULTIPLICATION ALGORITHM + 3204 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3205 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3206 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3207 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3208 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3209 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3210 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3211 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3212 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3213 ;OF C(E). + 3214 + 3215 003121 ADR=ADR+1 + 3216 000007 XX=XX+1 + 3217 + 3218 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3220 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3221 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3223 + 3224 000007 F31210: AA1=XX ;INITIAL C(AC) + 3225 032441 200 13 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3226 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3227 032442 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3228 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0076 + + 3229 032443 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3230 032444 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3231 000000 AR1=0 ;EXPECTED RESULT IN AC + 3232 032445 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3233 032446 003 13 0 00 031211 ER3 AC,31211 ;HIGH PRODUCT FAILED + 3234 000007 AR2=XX ;EXPECTED RESULT IN AC+1 + 3235 032447 312 14 0 00 044113 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3236 032450 004 14 0 00 031212 ER4 AC+1,31212 ;LOW PRODUCT FAILED + 3237 000001 AEE=1 ;INITIAL C(E) + 3238 032451 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3239 032452 005 11 0 00 031213 ER5 E,31213 ;C(E) WAS CLOBBERED + 3240 032453 321 15 0 00 032441 JUMPL AC+2,F31210 ;LOOP ON ERROR SWITCH^ + 3241 + 3242 ;TEST MULTIPLICATION ALGORITHM + 3243 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3244 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3245 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3246 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3247 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3248 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3249 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3250 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3251 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3252 ;OF C(E). + 3253 + 3254 003122 ADR=ADR+1 + 3255 000010 XX=XX+1 + 3256 + 3257 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3258 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3259 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3260 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3261 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3262 + 3263 000010 F31220: AA1=XX ;INITIAL C(AC) + 3264 032454 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3265 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3266 032455 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3267 000001 AEE=1 ;INITIAL C(E) + 3268 032456 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3269 032457 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3270 000000 AR1=0 ;EXPECTED RESULT IN AC + 3271 032460 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3272 032461 003 13 0 00 031221 ER3 AC,31221 ;HIGH PRODUCT FAILED + 3273 000010 AR2=XX ;EXPECTED RESULT IN AC+1 + 3274 032462 312 14 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3275 032463 004 14 0 00 031222 ER4 AC+1,31222 ;LOW PRODUCT FAILED + 3276 000001 AEE=1 ;INITIAL C(E) + 3277 032464 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3278 032465 005 11 0 00 031223 ER5 E,31223 ;C(E) WAS CLOBBERED + 3279 032466 321 15 0 00 032454 JUMPL AC+2,F31220 ;LOOP ON ERROR SWITCH^ + 3280 + 3281 ;TEST MULTIPLICATION ALGORITHM + 3282 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3283 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0077 + + 3284 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3285 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3286 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3287 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3288 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3289 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3290 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3291 ;OF C(E). + 3292 + 3293 003123 ADR=ADR+1 + 3294 000011 XX=XX+1 + 3295 + 3296 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3298 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3299 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3301 + 3302 000011 F31230: AA1=XX ;INITIAL C(AC) + 3303 032467 200 13 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3304 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3305 032470 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3306 000001 AEE=1 ;INITIAL C(E) + 3307 032471 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3308 032472 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3309 000000 AR1=0 ;EXPECTED RESULT IN AC + 3310 032473 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3311 032474 003 13 0 00 031231 ER3 AC,31231 ;HIGH PRODUCT FAILED + 3312 000011 AR2=XX ;EXPECTED RESULT IN AC+1 + 3313 032475 312 14 0 00 044114 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3314 032476 004 14 0 00 031232 ER4 AC+1,31232 ;LOW PRODUCT FAILED + 3315 000001 AEE=1 ;INITIAL C(E) + 3316 032477 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3317 032500 005 11 0 00 031233 ER5 E,31233 ;C(E) WAS CLOBBERED + 3318 032501 321 15 0 00 032467 JUMPL AC+2,F31230 ;LOOP ON ERROR SWITCH^ + 3319 + 3320 ;TEST MULTIPLICATION ALGORITHM + 3321 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3322 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3323 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3324 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3325 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3326 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3327 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3328 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3329 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3330 ;OF C(E). + 3331 + 3332 003124 ADR=ADR+1 + 3333 000012 XX=XX+1 + 3334 + 3335 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3336 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3337 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3338 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0078 + + 3339 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3340 + 3341 000012 F31240: AA1=XX ;INITIAL C(AC) + 3342 032502 200 13 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3343 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3344 032503 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3345 000001 AEE=1 ;INITIAL C(E) + 3346 032504 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3347 032505 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3348 000000 AR1=0 ;EXPECTED RESULT IN AC + 3349 032506 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3350 032507 003 13 0 00 031241 ER3 AC,31241 ;HIGH PRODUCT FAILED + 3351 000012 AR2=XX ;EXPECTED RESULT IN AC+1 + 3352 032510 312 14 0 00 044115 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3353 032511 004 14 0 00 031242 ER4 AC+1,31242 ;LOW PRODUCT FAILED + 3354 000001 AEE=1 ;INITIAL C(E) + 3355 032512 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3356 032513 005 11 0 00 031243 ER5 E,31243 ;C(E) WAS CLOBBERED + 3357 032514 321 15 0 00 032502 JUMPL AC+2,F31240 ;LOOP ON ERROR SWITCH^ + 3358 + 3359 ;TEST MULTIPLICATION ALGORITHM + 3360 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3361 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3362 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3363 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3364 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3365 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3366 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3367 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3368 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3369 ;OF C(E). + 3370 + 3371 003125 ADR=ADR+1 + 3372 000013 XX=XX+1 + 3373 + 3374 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3375 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3376 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3377 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3378 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3379 + 3380 000013 F31250: AA1=XX ;INITIAL C(AC) + 3381 032515 200 13 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3382 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3383 032516 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3384 000001 AEE=1 ;INITIAL C(E) + 3385 032517 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3386 032520 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3387 000000 AR1=0 ;EXPECTED RESULT IN AC + 3388 032521 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3389 032522 003 13 0 00 031251 ER3 AC,31251 ;HIGH PRODUCT FAILED + 3390 000013 AR2=XX ;EXPECTED RESULT IN AC+1 + 3391 032523 312 14 0 00 044116 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3392 032524 004 14 0 00 031252 ER4 AC+1,31252 ;LOW PRODUCT FAILED + 3393 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0079 + + 3394 032525 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3395 032526 005 11 0 00 031253 ER5 E,31253 ;C(E) WAS CLOBBERED + 3396 032527 321 15 0 00 032515 JUMPL AC+2,F31250 ;LOOP ON ERROR SWITCH^ + 3397 + 3398 ;TEST MULTIPLICATION ALGORITHM + 3399 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3400 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3401 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3402 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3403 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3404 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3405 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3406 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3407 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3408 ;OF C(E). + 3409 + 3410 003126 ADR=ADR+1 + 3411 000014 XX=XX+1 + 3412 + 3413 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3415 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3416 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3418 + 3419 000014 F31260: AA1=XX ;INITIAL C(AC) + 3420 032530 200 13 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3421 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3422 032531 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3423 000001 AEE=1 ;INITIAL C(E) + 3424 032532 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3425 032533 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3426 000000 AR1=0 ;EXPECTED RESULT IN AC + 3427 032534 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3428 032535 003 13 0 00 031261 ER3 AC,31261 ;HIGH PRODUCT FAILED + 3429 000014 AR2=XX ;EXPECTED RESULT IN AC+1 + 3430 032536 312 14 0 00 044117 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3431 032537 004 14 0 00 031262 ER4 AC+1,31262 ;LOW PRODUCT FAILED + 3432 000001 AEE=1 ;INITIAL C(E) + 3433 032540 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3434 032541 005 11 0 00 031263 ER5 E,31263 ;C(E) WAS CLOBBERED + 3435 032542 321 15 0 00 032530 JUMPL AC+2,F31260 ;LOOP ON ERROR SWITCH^ + 3436 + 3437 ;TEST MULTIPLICATION ALGORITHM + 3438 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3439 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3440 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3441 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3442 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3443 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3444 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3445 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3446 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3447 ;OF C(E). + 3448 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0080 + + 3449 003127 ADR=ADR+1 + 3450 000015 XX=XX+1 + 3451 + 3452 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3454 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3455 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3457 + 3458 000015 F31270: AA1=XX ;INITIAL C(AC) + 3459 032543 200 13 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3460 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3461 032544 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3462 000001 AEE=1 ;INITIAL C(E) + 3463 032545 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3464 032546 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3465 000000 AR1=0 ;EXPECTED RESULT IN AC + 3466 032547 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3467 032550 003 13 0 00 031271 ER3 AC,31271 ;HIGH PRODUCT FAILED + 3468 000015 AR2=XX ;EXPECTED RESULT IN AC+1 + 3469 032551 312 14 0 00 044120 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3470 032552 004 14 0 00 031272 ER4 AC+1,31272 ;LOW PRODUCT FAILED + 3471 000001 AEE=1 ;INITIAL C(E) + 3472 032553 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3473 032554 005 11 0 00 031273 ER5 E,31273 ;C(E) WAS CLOBBERED + 3474 032555 321 15 0 00 032543 JUMPL AC+2,F31270 ;LOOP ON ERROR SWITCH^ + 3475 + 3476 ;TEST MULTIPLICATION ALGORITHM + 3477 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3478 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3479 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3480 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3481 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3482 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3483 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3484 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3485 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3486 ;OF C(E). + 3487 + 3488 003130 ADR=ADR+1 + 3489 000016 XX=XX+1 + 3490 + 3491 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3493 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3494 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3496 + 3497 000016 F31300: AA1=XX ;INITIAL C(AC) + 3498 032556 200 13 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3499 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3500 032557 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3501 000001 AEE=1 ;INITIAL C(E) + 3502 032560 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3503 032561 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0081 + + 3504 000000 AR1=0 ;EXPECTED RESULT IN AC + 3505 032562 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3506 032563 003 13 0 00 031301 ER3 AC,31301 ;HIGH PRODUCT FAILED + 3507 000016 AR2=XX ;EXPECTED RESULT IN AC+1 + 3508 032564 312 14 0 00 044121 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3509 032565 004 14 0 00 031302 ER4 AC+1,31302 ;LOW PRODUCT FAILED + 3510 000001 AEE=1 ;INITIAL C(E) + 3511 032566 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3512 032567 005 11 0 00 031303 ER5 E,31303 ;C(E) WAS CLOBBERED + 3513 032570 321 15 0 00 032556 JUMPL AC+2,F31300 ;LOOP ON ERROR SWITCH^ + 3514 + 3515 ;TEST MULTIPLICATION ALGORITHM + 3516 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3517 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST + 3518 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3519 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3520 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3521 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3522 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND + 3523 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3524 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3525 ;OF C(E). + 3526 + 3527 003131 ADR=ADR+1 + 3528 000017 XX=XX+1 + 3529 + 3530 MOP1 (\ADR,XX,-1,1,0,XX)^ + 3531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 3532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3533 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. + 3534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3535 + 3536 000017 F31310: AA1=XX ;INITIAL C(AC) + 3537 032571 200 13 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3538 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 3539 032572 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 3540 000001 AEE=1 ;INITIAL C(E) + 3541 032573 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 3542 032574 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3543 000000 AR1=0 ;EXPECTED RESULT IN AC + 3544 032575 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 3545 032576 003 13 0 00 031311 ER3 AC,31311 ;HIGH PRODUCT FAILED + 3546 000017 AR2=XX ;EXPECTED RESULT IN AC+1 + 3547 032577 312 14 0 00 044122 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 3548 032600 004 14 0 00 031312 ER4 AC+1,31312 ;LOW PRODUCT FAILED + 3549 000001 AEE=1 ;INITIAL C(E) + 3550 032601 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 3551 032602 005 11 0 00 031313 ER5 E,31313 ;C(E) WAS CLOBBERED + 3552 032603 321 15 0 00 032571 JUMPL AC+2,F31310 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0082 + + 3553 000012 AC=12 + 3554 000010 E=&17 + 3555 SAVEAC (1,1)^ + 3556 032604 201 14 0 00 032604 MOVEI AC+2,. ;SAVE TEST PC + 3557 032605 202 14 0 00 030051 MOVEM AC+2,TESTPC + 3558 032606 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 3559 032607 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 3560 + 3561 777777 777777 XX=-1 + 3562 + 3563 ;MULTIPLICAND=-1 + 3564 REPEAT ^D16,< + 3565 ;TEST MULTIPLICATION ALGORITHM + 3566 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3567 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3568 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3569 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3570 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3571 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3572 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3573 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3574 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3575 ;OF C(E). + 3576 + 3577 ADR=ADR+1 + 3578 XX=XX+1 + 3579 MX=-XX + 3580 IFE XX,< + 3581 V1=-1 + 3582 V2=0> + 3583 IFN XX,< + 3584 V1=0 + 3585 V2=-1> + 3586 MOP1 (\ADR,XX,V1,-1,V2,MX)> + 3587 + 3588 ;TEST MULTIPLICATION ALGORITHM + 3589 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3590 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3591 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3592 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3593 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3594 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3595 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3596 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3597 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3598 ;OF C(E). + 3599 + 3600 003132 ADR=ADR+1 + 3601 000000 XX=XX+1 + 3602 000000 MX=-XX + 3603 IFE XX,< + 3604 777777 777777 V1=-1 + 3605 000000 V2=0> + 3606 IFN XX,< + 3607 V1=0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0083 + + 3608 V2=-1> + 3609 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3611 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3612 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3614 + 3615 000000 F31320: AA1=XX ;INITIAL C(AC) + 3616 032610 200 12 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3617 777777 777777 AA2=V1 ;INITIAL C(AC+1) + 3618 032611 200 13 0 00 043777 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3619 777777 777777 AEE=-1 ;INITIAL C(E) + 3620 032612 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3621 032613 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3622 000000 AR1=V2 ;EXPECTED RESULT IN AC + 3623 032614 312 12 0 00 043776 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3624 032615 003 12 0 00 031321 ER3 AC,31321 ;HIGH PRODUCT FAILED + 3625 000000 AR2=MX ;EXPECTED RESULT IN AC+1 + 3626 032616 312 13 0 00 043776 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3627 032617 004 13 0 00 031322 ER4 AC+1,31322 ;LOW PRODUCT FAILED + 3628 777777 777777 AEE=-1 ;INITIAL C(E) + 3629 032620 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3630 032621 005 10 0 00 031323 ER5 E,31323 ;C(E) WAS CLOBBERED + 3631 032622 321 14 0 00 032610 JUMPL AC+2,F31320 ;LOOP ON ERROR SWITCH^ + 3632 + 3633 ;TEST MULTIPLICATION ALGORITHM + 3634 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3635 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3636 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3637 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3638 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3639 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3640 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3641 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3642 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3643 ;OF C(E). + 3644 + 3645 003133 ADR=ADR+1 + 3646 000001 XX=XX+1 + 3647 777777 777777 MX=-XX + 3648 IFE XX,< + 3649 V1=-1 + 3650 V2=0> + 3651 IFN XX,< + 3652 000000 V1=0 + 3653 777777 777777 V2=-1> + 3654 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3655 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3656 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3657 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3658 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3659 + 3660 000001 F31330: AA1=XX ;INITIAL C(AC) + 3661 032623 200 12 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3662 000000 AA2=V1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0084 + + 3663 032624 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3664 777777 777777 AEE=-1 ;INITIAL C(E) + 3665 032625 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3666 032626 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3667 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3668 032627 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3669 032630 003 12 0 00 031331 ER3 AC,31331 ;HIGH PRODUCT FAILED + 3670 777777 777777 AR2=MX ;EXPECTED RESULT IN AC+1 + 3671 032631 312 13 0 00 043777 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3672 032632 004 13 0 00 031332 ER4 AC+1,31332 ;LOW PRODUCT FAILED + 3673 777777 777777 AEE=-1 ;INITIAL C(E) + 3674 032633 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3675 032634 005 10 0 00 031333 ER5 E,31333 ;C(E) WAS CLOBBERED + 3676 032635 321 14 0 00 032623 JUMPL AC+2,F31330 ;LOOP ON ERROR SWITCH^ + 3677 + 3678 ;TEST MULTIPLICATION ALGORITHM + 3679 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3680 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3681 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3682 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3683 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3684 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3685 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3686 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3687 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3688 ;OF C(E). + 3689 + 3690 003134 ADR=ADR+1 + 3691 000002 XX=XX+1 + 3692 777777 777776 MX=-XX + 3693 IFE XX,< + 3694 V1=-1 + 3695 V2=0> + 3696 IFN XX,< + 3697 000000 V1=0 + 3698 777777 777777 V2=-1> + 3699 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3701 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3702 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3704 + 3705 000002 F31340: AA1=XX ;INITIAL C(AC) + 3706 032636 200 12 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3707 000000 AA2=V1 ;INITIAL C(AC+1) + 3708 032637 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3709 777777 777777 AEE=-1 ;INITIAL C(E) + 3710 032640 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3711 032641 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3712 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3713 032642 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3714 032643 003 12 0 00 031341 ER3 AC,31341 ;HIGH PRODUCT FAILED + 3715 777777 777776 AR2=MX ;EXPECTED RESULT IN AC+1 + 3716 032644 312 13 0 00 044044 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3717 032645 004 13 0 00 031342 ER4 AC+1,31342 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0085 + + 3718 777777 777777 AEE=-1 ;INITIAL C(E) + 3719 032646 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3720 032647 005 10 0 00 031343 ER5 E,31343 ;C(E) WAS CLOBBERED + 3721 032650 321 14 0 00 032636 JUMPL AC+2,F31340 ;LOOP ON ERROR SWITCH^ + 3722 + 3723 ;TEST MULTIPLICATION ALGORITHM + 3724 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3725 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3726 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3727 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3728 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3729 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3730 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3731 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3732 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3733 ;OF C(E). + 3734 + 3735 003135 ADR=ADR+1 + 3736 000003 XX=XX+1 + 3737 777777 777775 MX=-XX + 3738 IFE XX,< + 3739 V1=-1 + 3740 V2=0> + 3741 IFN XX,< + 3742 000000 V1=0 + 3743 777777 777777 V2=-1> + 3744 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3747 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3749 + 3750 000003 F31350: AA1=XX ;INITIAL C(AC) + 3751 032651 200 12 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3752 000000 AA2=V1 ;INITIAL C(AC+1) + 3753 032652 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3754 777777 777777 AEE=-1 ;INITIAL C(E) + 3755 032653 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3756 032654 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3757 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3758 032655 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3759 032656 003 12 0 00 031351 ER3 AC,31351 ;HIGH PRODUCT FAILED + 3760 777777 777775 AR2=MX ;EXPECTED RESULT IN AC+1 + 3761 032657 312 13 0 00 044045 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3762 032660 004 13 0 00 031352 ER4 AC+1,31352 ;LOW PRODUCT FAILED + 3763 777777 777777 AEE=-1 ;INITIAL C(E) + 3764 032661 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3765 032662 005 10 0 00 031353 ER5 E,31353 ;C(E) WAS CLOBBERED + 3766 032663 321 14 0 00 032651 JUMPL AC+2,F31350 ;LOOP ON ERROR SWITCH^ + 3767 + 3768 ;TEST MULTIPLICATION ALGORITHM + 3769 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3770 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3771 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3772 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0086 + + 3773 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3774 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3775 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3776 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3777 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3778 ;OF C(E). + 3779 + 3780 003136 ADR=ADR+1 + 3781 000004 XX=XX+1 + 3782 777777 777774 MX=-XX + 3783 IFE XX,< + 3784 V1=-1 + 3785 V2=0> + 3786 IFN XX,< + 3787 000000 V1=0 + 3788 777777 777777 V2=-1> + 3789 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3790 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3791 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3792 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3793 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3794 + 3795 000004 F31360: AA1=XX ;INITIAL C(AC) + 3796 032664 200 12 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3797 000000 AA2=V1 ;INITIAL C(AC+1) + 3798 032665 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3799 777777 777777 AEE=-1 ;INITIAL C(E) + 3800 032666 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3801 032667 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3802 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3803 032670 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3804 032671 003 12 0 00 031361 ER3 AC,31361 ;HIGH PRODUCT FAILED + 3805 777777 777774 AR2=MX ;EXPECTED RESULT IN AC+1 + 3806 032672 312 13 0 00 044123 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3807 032673 004 13 0 00 031362 ER4 AC+1,31362 ;LOW PRODUCT FAILED + 3808 777777 777777 AEE=-1 ;INITIAL C(E) + 3809 032674 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3810 032675 005 10 0 00 031363 ER5 E,31363 ;C(E) WAS CLOBBERED + 3811 032676 321 14 0 00 032664 JUMPL AC+2,F31360 ;LOOP ON ERROR SWITCH^ + 3812 + 3813 ;TEST MULTIPLICATION ALGORITHM + 3814 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3815 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3816 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3817 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3818 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3819 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3820 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3821 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3822 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3823 ;OF C(E). + 3824 + 3825 003137 ADR=ADR+1 + 3826 000005 XX=XX+1 + 3827 777777 777773 MX=-XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0087 + + 3828 IFE XX,< + 3829 V1=-1 + 3830 V2=0> + 3831 IFN XX,< + 3832 000000 V1=0 + 3833 777777 777777 V2=-1> + 3834 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3835 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3836 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3837 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3838 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3839 + 3840 000005 F31370: AA1=XX ;INITIAL C(AC) + 3841 032677 200 12 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3842 000000 AA2=V1 ;INITIAL C(AC+1) + 3843 032700 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3844 777777 777777 AEE=-1 ;INITIAL C(E) + 3845 032701 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3846 032702 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3847 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3848 032703 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3849 032704 003 12 0 00 031371 ER3 AC,31371 ;HIGH PRODUCT FAILED + 3850 777777 777773 AR2=MX ;EXPECTED RESULT IN AC+1 + 3851 032705 312 13 0 00 044046 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3852 032706 004 13 0 00 031372 ER4 AC+1,31372 ;LOW PRODUCT FAILED + 3853 777777 777777 AEE=-1 ;INITIAL C(E) + 3854 032707 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3855 032710 005 10 0 00 031373 ER5 E,31373 ;C(E) WAS CLOBBERED + 3856 032711 321 14 0 00 032677 JUMPL AC+2,F31370 ;LOOP ON ERROR SWITCH^ + 3857 + 3858 ;TEST MULTIPLICATION ALGORITHM + 3859 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3860 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3861 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3862 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3863 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3864 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3865 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3866 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3867 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3868 ;OF C(E). + 3869 + 3870 003140 ADR=ADR+1 + 3871 000006 XX=XX+1 + 3872 777777 777772 MX=-XX + 3873 IFE XX,< + 3874 V1=-1 + 3875 V2=0> + 3876 IFN XX,< + 3877 000000 V1=0 + 3878 777777 777777 V2=-1> + 3879 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3881 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3882 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0088 + + 3883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3884 + 3885 000006 F31400: AA1=XX ;INITIAL C(AC) + 3886 032712 200 12 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3887 000000 AA2=V1 ;INITIAL C(AC+1) + 3888 032713 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3889 777777 777777 AEE=-1 ;INITIAL C(E) + 3890 032714 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3891 032715 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3892 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3893 032716 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3894 032717 003 12 0 00 031401 ER3 AC,31401 ;HIGH PRODUCT FAILED + 3895 777777 777772 AR2=MX ;EXPECTED RESULT IN AC+1 + 3896 032720 312 13 0 00 044124 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3897 032721 004 13 0 00 031402 ER4 AC+1,31402 ;LOW PRODUCT FAILED + 3898 777777 777777 AEE=-1 ;INITIAL C(E) + 3899 032722 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3900 032723 005 10 0 00 031403 ER5 E,31403 ;C(E) WAS CLOBBERED + 3901 032724 321 14 0 00 032712 JUMPL AC+2,F31400 ;LOOP ON ERROR SWITCH^ + 3902 + 3903 ;TEST MULTIPLICATION ALGORITHM + 3904 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3905 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3906 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3907 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3908 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3909 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3910 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3911 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3912 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3913 ;OF C(E). + 3914 + 3915 003141 ADR=ADR+1 + 3916 000007 XX=XX+1 + 3917 777777 777771 MX=-XX + 3918 IFE XX,< + 3919 V1=-1 + 3920 V2=0> + 3921 IFN XX,< + 3922 000000 V1=0 + 3923 777777 777777 V2=-1> + 3924 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3925 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3926 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3927 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3928 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3929 + 3930 000007 F31410: AA1=XX ;INITIAL C(AC) + 3931 032725 200 12 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3932 000000 AA2=V1 ;INITIAL C(AC+1) + 3933 032726 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3934 777777 777777 AEE=-1 ;INITIAL C(E) + 3935 032727 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3936 032730 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3937 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0089 + + 3938 032731 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3939 032732 003 12 0 00 031411 ER3 AC,31411 ;HIGH PRODUCT FAILED + 3940 777777 777771 AR2=MX ;EXPECTED RESULT IN AC+1 + 3941 032733 312 13 0 00 044125 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3942 032734 004 13 0 00 031412 ER4 AC+1,31412 ;LOW PRODUCT FAILED + 3943 777777 777777 AEE=-1 ;INITIAL C(E) + 3944 032735 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3945 032736 005 10 0 00 031413 ER5 E,31413 ;C(E) WAS CLOBBERED + 3946 032737 321 14 0 00 032725 JUMPL AC+2,F31410 ;LOOP ON ERROR SWITCH^ + 3947 + 3948 ;TEST MULTIPLICATION ALGORITHM + 3949 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3950 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3951 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3952 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3953 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3954 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 3955 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 3956 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 3957 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 3958 ;OF C(E). + 3959 + 3960 003142 ADR=ADR+1 + 3961 000010 XX=XX+1 + 3962 777777 777770 MX=-XX + 3963 IFE XX,< + 3964 V1=-1 + 3965 V2=0> + 3966 IFN XX,< + 3967 000000 V1=0 + 3968 777777 777777 V2=-1> + 3969 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 3970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 3971 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 3972 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 3973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 3974 + 3975 000010 F31420: AA1=XX ;INITIAL C(AC) + 3976 032740 200 12 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 3977 000000 AA2=V1 ;INITIAL C(AC+1) + 3978 032741 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 3979 777777 777777 AEE=-1 ;INITIAL C(E) + 3980 032742 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 3981 032743 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 3982 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 3983 032744 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 3984 032745 003 12 0 00 031421 ER3 AC,31421 ;HIGH PRODUCT FAILED + 3985 777777 777770 AR2=MX ;EXPECTED RESULT IN AC+1 + 3986 032746 312 13 0 00 044126 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 3987 032747 004 13 0 00 031422 ER4 AC+1,31422 ;LOW PRODUCT FAILED + 3988 777777 777777 AEE=-1 ;INITIAL C(E) + 3989 032750 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 3990 032751 005 10 0 00 031423 ER5 E,31423 ;C(E) WAS CLOBBERED + 3991 032752 321 14 0 00 032740 JUMPL AC+2,F31420 ;LOOP ON ERROR SWITCH^ + 3992 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0090 + + 3993 ;TEST MULTIPLICATION ALGORITHM + 3994 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 3995 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 3996 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 3997 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 3998 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 3999 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4000 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4001 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4002 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4003 ;OF C(E). + 4004 + 4005 003143 ADR=ADR+1 + 4006 000011 XX=XX+1 + 4007 777777 777767 MX=-XX + 4008 IFE XX,< + 4009 V1=-1 + 4010 V2=0> + 4011 IFN XX,< + 4012 000000 V1=0 + 4013 777777 777777 V2=-1> + 4014 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4015 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4016 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4017 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4018 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4019 + 4020 000011 F31430: AA1=XX ;INITIAL C(AC) + 4021 032753 200 12 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4022 000000 AA2=V1 ;INITIAL C(AC+1) + 4023 032754 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4024 777777 777777 AEE=-1 ;INITIAL C(E) + 4025 032755 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4026 032756 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4027 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4028 032757 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4029 032760 003 12 0 00 031431 ER3 AC,31431 ;HIGH PRODUCT FAILED + 4030 777777 777767 AR2=MX ;EXPECTED RESULT IN AC+1 + 4031 032761 312 13 0 00 044047 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4032 032762 004 13 0 00 031432 ER4 AC+1,31432 ;LOW PRODUCT FAILED + 4033 777777 777777 AEE=-1 ;INITIAL C(E) + 4034 032763 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4035 032764 005 10 0 00 031433 ER5 E,31433 ;C(E) WAS CLOBBERED + 4036 032765 321 14 0 00 032753 JUMPL AC+2,F31430 ;LOOP ON ERROR SWITCH^ + 4037 + 4038 ;TEST MULTIPLICATION ALGORITHM + 4039 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4040 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4041 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4042 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 4043 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4044 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4045 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4046 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4047 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0091 + + 4048 ;OF C(E). + 4049 + 4050 003144 ADR=ADR+1 + 4051 000012 XX=XX+1 + 4052 777777 777766 MX=-XX + 4053 IFE XX,< + 4054 V1=-1 + 4055 V2=0> + 4056 IFN XX,< + 4057 000000 V1=0 + 4058 777777 777777 V2=-1> + 4059 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4061 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4062 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4064 + 4065 000012 F31440: AA1=XX ;INITIAL C(AC) + 4066 032766 200 12 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4067 000000 AA2=V1 ;INITIAL C(AC+1) + 4068 032767 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4069 777777 777777 AEE=-1 ;INITIAL C(E) + 4070 032770 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4071 032771 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4072 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4073 032772 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4074 032773 003 12 0 00 031441 ER3 AC,31441 ;HIGH PRODUCT FAILED + 4075 777777 777766 AR2=MX ;EXPECTED RESULT IN AC+1 + 4076 032774 312 13 0 00 044127 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4077 032775 004 13 0 00 031442 ER4 AC+1,31442 ;LOW PRODUCT FAILED + 4078 777777 777777 AEE=-1 ;INITIAL C(E) + 4079 032776 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4080 032777 005 10 0 00 031443 ER5 E,31443 ;C(E) WAS CLOBBERED + 4081 033000 321 14 0 00 032766 JUMPL AC+2,F31440 ;LOOP ON ERROR SWITCH^ + 4082 + 4083 ;TEST MULTIPLICATION ALGORITHM + 4084 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4085 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4086 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4087 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 4088 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4089 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4090 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4091 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4092 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4093 ;OF C(E). + 4094 + 4095 003145 ADR=ADR+1 + 4096 000013 XX=XX+1 + 4097 777777 777765 MX=-XX + 4098 IFE XX,< + 4099 V1=-1 + 4100 V2=0> + 4101 IFN XX,< + 4102 000000 V1=0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0092 + + 4103 777777 777777 V2=-1> + 4104 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4107 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4109 + 4110 000013 F31450: AA1=XX ;INITIAL C(AC) + 4111 033001 200 12 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4112 000000 AA2=V1 ;INITIAL C(AC+1) + 4113 033002 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4114 777777 777777 AEE=-1 ;INITIAL C(E) + 4115 033003 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4116 033004 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4117 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4118 033005 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4119 033006 003 12 0 00 031451 ER3 AC,31451 ;HIGH PRODUCT FAILED + 4120 777777 777765 AR2=MX ;EXPECTED RESULT IN AC+1 + 4121 033007 312 13 0 00 044130 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4122 033010 004 13 0 00 031452 ER4 AC+1,31452 ;LOW PRODUCT FAILED + 4123 777777 777777 AEE=-1 ;INITIAL C(E) + 4124 033011 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4125 033012 005 10 0 00 031453 ER5 E,31453 ;C(E) WAS CLOBBERED + 4126 033013 321 14 0 00 033001 JUMPL AC+2,F31450 ;LOOP ON ERROR SWITCH^ + 4127 + 4128 ;TEST MULTIPLICATION ALGORITHM + 4129 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4130 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4131 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4132 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 4133 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4134 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4135 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4136 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4137 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4138 ;OF C(E). + 4139 + 4140 003146 ADR=ADR+1 + 4141 000014 XX=XX+1 + 4142 777777 777764 MX=-XX + 4143 IFE XX,< + 4144 V1=-1 + 4145 V2=0> + 4146 IFN XX,< + 4147 000000 V1=0 + 4148 777777 777777 V2=-1> + 4149 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4150 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4151 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4152 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4153 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4154 + 4155 000014 F31460: AA1=XX ;INITIAL C(AC) + 4156 033014 200 12 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4157 000000 AA2=V1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0093 + + 4158 033015 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4159 777777 777777 AEE=-1 ;INITIAL C(E) + 4160 033016 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4161 033017 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4162 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4163 033020 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4164 033021 003 12 0 00 031461 ER3 AC,31461 ;HIGH PRODUCT FAILED + 4165 777777 777764 AR2=MX ;EXPECTED RESULT IN AC+1 + 4166 033022 312 13 0 00 044131 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4167 033023 004 13 0 00 031462 ER4 AC+1,31462 ;LOW PRODUCT FAILED + 4168 777777 777777 AEE=-1 ;INITIAL C(E) + 4169 033024 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4170 033025 005 10 0 00 031463 ER5 E,31463 ;C(E) WAS CLOBBERED + 4171 033026 321 14 0 00 033014 JUMPL AC+2,F31460 ;LOOP ON ERROR SWITCH^ + 4172 + 4173 ;TEST MULTIPLICATION ALGORITHM + 4174 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4175 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4176 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4177 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 4178 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4179 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4180 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4181 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4182 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4183 ;OF C(E). + 4184 + 4185 003147 ADR=ADR+1 + 4186 000015 XX=XX+1 + 4187 777777 777763 MX=-XX + 4188 IFE XX,< + 4189 V1=-1 + 4190 V2=0> + 4191 IFN XX,< + 4192 000000 V1=0 + 4193 777777 777777 V2=-1> + 4194 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4195 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4196 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4197 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4198 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4199 + 4200 000015 F31470: AA1=XX ;INITIAL C(AC) + 4201 033027 200 12 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4202 000000 AA2=V1 ;INITIAL C(AC+1) + 4203 033030 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4204 777777 777777 AEE=-1 ;INITIAL C(E) + 4205 033031 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4206 033032 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4207 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4208 033033 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4209 033034 003 12 0 00 031471 ER3 AC,31471 ;HIGH PRODUCT FAILED + 4210 777777 777763 AR2=MX ;EXPECTED RESULT IN AC+1 + 4211 033035 312 13 0 00 044132 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4212 033036 004 13 0 00 031472 ER4 AC+1,31472 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0094 + + 4213 777777 777777 AEE=-1 ;INITIAL C(E) + 4214 033037 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4215 033040 005 10 0 00 031473 ER5 E,31473 ;C(E) WAS CLOBBERED + 4216 033041 321 14 0 00 033027 JUMPL AC+2,F31470 ;LOOP ON ERROR SWITCH^ + 4217 + 4218 ;TEST MULTIPLICATION ALGORITHM + 4219 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4220 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4221 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4222 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. + 4223 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4224 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4225 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4226 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4227 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4228 ;OF C(E). + 4229 + 4230 003150 ADR=ADR+1 + 4231 000016 XX=XX+1 + 4232 777777 777762 MX=-XX + 4233 IFE XX,< + 4234 V1=-1 + 4235 V2=0> + 4236 IFN XX,< + 4237 000000 V1=0 + 4238 777777 777777 V2=-1> + 4239 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4240 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4241 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4242 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4243 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4244 + 4245 000016 F31500: AA1=XX ;INITIAL C(AC) + 4246 033042 200 12 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4247 000000 AA2=V1 ;INITIAL C(AC+1) + 4248 033043 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4249 777777 777777 AEE=-1 ;INITIAL C(E) + 4250 033044 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4251 033045 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4252 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4253 033046 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4254 033047 003 12 0 00 031501 ER3 AC,31501 ;HIGH PRODUCT FAILED + 4255 777777 777762 AR2=MX ;EXPECTED RESULT IN AC+1 + 4256 033050 312 13 0 00 044133 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4257 033051 004 13 0 00 031502 ER4 AC+1,31502 ;LOW PRODUCT FAILED + 4258 777777 777777 AEE=-1 ;INITIAL C(E) + 4259 033052 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4260 033053 005 10 0 00 031503 ER5 E,31503 ;C(E) WAS CLOBBERED + 4261 033054 321 14 0 00 033042 JUMPL AC+2,F31500 ;LOOP ON ERROR SWITCH^ + 4262 + 4263 ;TEST MULTIPLICATION ALGORITHM + 4264 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE + 4265 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST + 4266 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE + 4267 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0095 + + 4268 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER + 4269 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS + 4270 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND + 4271 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE + 4272 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT + 4273 ;OF C(E). + 4274 + 4275 003151 ADR=ADR+1 + 4276 000017 XX=XX+1 + 4277 777777 777761 MX=-XX + 4278 IFE XX,< + 4279 V1=-1 + 4280 V2=0> + 4281 IFN XX,< + 4282 000000 V1=0 + 4283 777777 777777 V2=-1> + 4284 MOP1 (\ADR,XX,V1,-1,V2,MX)^ + 4285 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND + 4286 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4287 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. + 4288 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4289 + 4290 000017 F31510: AA1=XX ;INITIAL C(AC) + 4291 033055 200 12 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4292 000000 AA2=V1 ;INITIAL C(AC+1) + 4293 033056 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 + 4294 777777 777777 AEE=-1 ;INITIAL C(E) + 4295 033057 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 4296 033060 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4297 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC + 4298 033061 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? + 4299 033062 003 12 0 00 031511 ER3 AC,31511 ;HIGH PRODUCT FAILED + 4300 777777 777761 AR2=MX ;EXPECTED RESULT IN AC+1 + 4301 033063 312 13 0 00 044134 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 4302 033064 004 13 0 00 031512 ER4 AC+1,31512 ;LOW PRODUCT FAILED + 4303 777777 777777 AEE=-1 ;INITIAL C(E) + 4304 033065 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 4305 033066 005 10 0 00 031513 ER5 E,31513 ;C(E) WAS CLOBBERED + 4306 033067 321 14 0 00 033055 JUMPL AC+2,F31510 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0096 + + 4307 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT + 4308 + 4309 000011 AC=11 + 4310 000007 E=&17 + 4311 SAVEAC (1,1)^ + 4312 033070 201 13 0 00 033070 MOVEI AC+2,. ;SAVE TEST PC + 4313 033071 202 13 0 00 030051 MOVEM AC+2,TESTPC + 4314 033072 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 4315 033073 202 13 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 4316 000000 XX=0 + 4317 + 4318 REPEAT ^D36, < + 4319 ADR=ADR+1 + 4320 XX=XX+XX + 4321 IFE XX, + 4322 + 4323 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4324 MOP1 (\ADR,XX,-1,0,0,0)> + 4325 + 4326 003152 ADR=ADR+1 + 4327 000000 XX=XX+XX + 4328 000001 IFE XX, + 4329 + 4330 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4331 MOP1 (\ADR,XX,-1,0,0,0)^ + 4332 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4333 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4334 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4335 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4336 + 4337 000001 F31520: AA1=XX ;INITIAL C(AC) + 4338 033074 200 11 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4339 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4340 033075 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4341 000000 AEE=0 ;INITIAL C(E) + 4342 033076 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4343 033077 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4344 000000 AR1=0 ;EXPECTED RESULT IN AC + 4345 033100 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4346 033101 003 11 0 00 031521 ER3 AC,31521 ;HIGH PRODUCT FAILED + 4347 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4348 033102 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4349 033103 004 12 0 00 031522 ER4 AC+1,31522 ;LOW PRODUCT FAILED + 4350 000000 AEE=0 ;INITIAL C(E) + 4351 033104 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4352 033105 005 07 0 00 031523 ER5 E,31523 ;C(E) WAS CLOBBERED + 4353 033106 321 13 0 00 033074 JUMPL AC+2,F31520 ;LOOP ON ERROR SWITCH^ + 4354 + 4355 003153 ADR=ADR+1 + 4356 000002 XX=XX+XX + 4357 IFE XX, + 4358 + 4359 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4360 MOP1 (\ADR,XX,-1,0,0,0)^ + 4361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0097 + + 4362 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4363 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4365 + 4366 000002 F31530: AA1=XX ;INITIAL C(AC) + 4367 033107 200 11 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4368 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4369 033110 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4370 000000 AEE=0 ;INITIAL C(E) + 4371 033111 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4372 033112 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4373 000000 AR1=0 ;EXPECTED RESULT IN AC + 4374 033113 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4375 033114 003 11 0 00 031531 ER3 AC,31531 ;HIGH PRODUCT FAILED + 4376 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4377 033115 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4378 033116 004 12 0 00 031532 ER4 AC+1,31532 ;LOW PRODUCT FAILED + 4379 000000 AEE=0 ;INITIAL C(E) + 4380 033117 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4381 033120 005 07 0 00 031533 ER5 E,31533 ;C(E) WAS CLOBBERED + 4382 033121 321 13 0 00 033107 JUMPL AC+2,F31530 ;LOOP ON ERROR SWITCH^ + 4383 + 4384 003154 ADR=ADR+1 + 4385 000004 XX=XX+XX + 4386 IFE XX, + 4387 + 4388 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4389 MOP1 (\ADR,XX,-1,0,0,0)^ + 4390 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4391 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4392 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4393 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4394 + 4395 000004 F31540: AA1=XX ;INITIAL C(AC) + 4396 033122 200 11 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4397 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4398 033123 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4399 000000 AEE=0 ;INITIAL C(E) + 4400 033124 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4401 033125 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4402 000000 AR1=0 ;EXPECTED RESULT IN AC + 4403 033126 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4404 033127 003 11 0 00 031541 ER3 AC,31541 ;HIGH PRODUCT FAILED + 4405 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4406 033130 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4407 033131 004 12 0 00 031542 ER4 AC+1,31542 ;LOW PRODUCT FAILED + 4408 000000 AEE=0 ;INITIAL C(E) + 4409 033132 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4410 033133 005 07 0 00 031543 ER5 E,31543 ;C(E) WAS CLOBBERED + 4411 033134 321 13 0 00 033122 JUMPL AC+2,F31540 ;LOOP ON ERROR SWITCH^ + 4412 + 4413 003155 ADR=ADR+1 + 4414 000010 XX=XX+XX + 4415 IFE XX, + 4416 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0098 + + 4417 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4418 MOP1 (\ADR,XX,-1,0,0,0)^ + 4419 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4420 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4421 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4422 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4423 + 4424 000010 F31550: AA1=XX ;INITIAL C(AC) + 4425 033135 200 11 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4426 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4427 033136 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4428 000000 AEE=0 ;INITIAL C(E) + 4429 033137 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4430 033140 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4431 000000 AR1=0 ;EXPECTED RESULT IN AC + 4432 033141 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4433 033142 003 11 0 00 031551 ER3 AC,31551 ;HIGH PRODUCT FAILED + 4434 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4435 033143 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4436 033144 004 12 0 00 031552 ER4 AC+1,31552 ;LOW PRODUCT FAILED + 4437 000000 AEE=0 ;INITIAL C(E) + 4438 033145 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4439 033146 005 07 0 00 031553 ER5 E,31553 ;C(E) WAS CLOBBERED + 4440 033147 321 13 0 00 033135 JUMPL AC+2,F31550 ;LOOP ON ERROR SWITCH^ + 4441 + 4442 003156 ADR=ADR+1 + 4443 000020 XX=XX+XX + 4444 IFE XX, + 4445 + 4446 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4447 MOP1 (\ADR,XX,-1,0,0,0)^ + 4448 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4449 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4450 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4451 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4452 + 4453 000020 F31560: AA1=XX ;INITIAL C(AC) + 4454 033150 200 11 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4455 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4456 033151 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4457 000000 AEE=0 ;INITIAL C(E) + 4458 033152 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4459 033153 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4460 000000 AR1=0 ;EXPECTED RESULT IN AC + 4461 033154 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4462 033155 003 11 0 00 031561 ER3 AC,31561 ;HIGH PRODUCT FAILED + 4463 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4464 033156 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4465 033157 004 12 0 00 031562 ER4 AC+1,31562 ;LOW PRODUCT FAILED + 4466 000000 AEE=0 ;INITIAL C(E) + 4467 033160 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4468 033161 005 07 0 00 031563 ER5 E,31563 ;C(E) WAS CLOBBERED + 4469 033162 321 13 0 00 033150 JUMPL AC+2,F31560 ;LOOP ON ERROR SWITCH^ + 4470 + 4471 003157 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0099 + + 4472 000040 XX=XX+XX + 4473 IFE XX, + 4474 + 4475 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4476 MOP1 (\ADR,XX,-1,0,0,0)^ + 4477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4478 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4479 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4481 + 4482 000040 F31570: AA1=XX ;INITIAL C(AC) + 4483 033163 200 11 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4484 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4485 033164 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4486 000000 AEE=0 ;INITIAL C(E) + 4487 033165 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4488 033166 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4489 000000 AR1=0 ;EXPECTED RESULT IN AC + 4490 033167 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4491 033170 003 11 0 00 031571 ER3 AC,31571 ;HIGH PRODUCT FAILED + 4492 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4493 033171 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4494 033172 004 12 0 00 031572 ER4 AC+1,31572 ;LOW PRODUCT FAILED + 4495 000000 AEE=0 ;INITIAL C(E) + 4496 033173 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4497 033174 005 07 0 00 031573 ER5 E,31573 ;C(E) WAS CLOBBERED + 4498 033175 321 13 0 00 033163 JUMPL AC+2,F31570 ;LOOP ON ERROR SWITCH^ + 4499 + 4500 003160 ADR=ADR+1 + 4501 000100 XX=XX+XX + 4502 IFE XX, + 4503 + 4504 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4505 MOP1 (\ADR,XX,-1,0,0,0)^ + 4506 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4507 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4508 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4509 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4510 + 4511 000100 F31600: AA1=XX ;INITIAL C(AC) + 4512 033176 200 11 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4513 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4514 033177 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4515 000000 AEE=0 ;INITIAL C(E) + 4516 033200 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4517 033201 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4518 000000 AR1=0 ;EXPECTED RESULT IN AC + 4519 033202 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4520 033203 003 11 0 00 031601 ER3 AC,31601 ;HIGH PRODUCT FAILED + 4521 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4522 033204 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4523 033205 004 12 0 00 031602 ER4 AC+1,31602 ;LOW PRODUCT FAILED + 4524 000000 AEE=0 ;INITIAL C(E) + 4525 033206 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4526 033207 005 07 0 00 031603 ER5 E,31603 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0100 + + 4527 033210 321 13 0 00 033176 JUMPL AC+2,F31600 ;LOOP ON ERROR SWITCH^ + 4528 + 4529 003161 ADR=ADR+1 + 4530 000200 XX=XX+XX + 4531 IFE XX, + 4532 + 4533 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4534 MOP1 (\ADR,XX,-1,0,0,0)^ + 4535 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4536 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4537 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4538 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4539 + 4540 000200 F31610: AA1=XX ;INITIAL C(AC) + 4541 033211 200 11 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4542 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4543 033212 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4544 000000 AEE=0 ;INITIAL C(E) + 4545 033213 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4546 033214 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4547 000000 AR1=0 ;EXPECTED RESULT IN AC + 4548 033215 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4549 033216 003 11 0 00 031611 ER3 AC,31611 ;HIGH PRODUCT FAILED + 4550 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4551 033217 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4552 033220 004 12 0 00 031612 ER4 AC+1,31612 ;LOW PRODUCT FAILED + 4553 000000 AEE=0 ;INITIAL C(E) + 4554 033221 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4555 033222 005 07 0 00 031613 ER5 E,31613 ;C(E) WAS CLOBBERED + 4556 033223 321 13 0 00 033211 JUMPL AC+2,F31610 ;LOOP ON ERROR SWITCH^ + 4557 + 4558 003162 ADR=ADR+1 + 4559 000400 XX=XX+XX + 4560 IFE XX, + 4561 + 4562 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4563 MOP1 (\ADR,XX,-1,0,0,0)^ + 4564 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4565 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4566 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4567 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4568 + 4569 000400 F31620: AA1=XX ;INITIAL C(AC) + 4570 033224 200 11 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4571 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4572 033225 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4573 000000 AEE=0 ;INITIAL C(E) + 4574 033226 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4575 033227 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4576 000000 AR1=0 ;EXPECTED RESULT IN AC + 4577 033230 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4578 033231 003 11 0 00 031621 ER3 AC,31621 ;HIGH PRODUCT FAILED + 4579 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4580 033232 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4581 033233 004 12 0 00 031622 ER4 AC+1,31622 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0101 + + 4582 000000 AEE=0 ;INITIAL C(E) + 4583 033234 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4584 033235 005 07 0 00 031623 ER5 E,31623 ;C(E) WAS CLOBBERED + 4585 033236 321 13 0 00 033224 JUMPL AC+2,F31620 ;LOOP ON ERROR SWITCH^ + 4586 + 4587 003163 ADR=ADR+1 + 4588 001000 XX=XX+XX + 4589 IFE XX, + 4590 + 4591 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4592 MOP1 (\ADR,XX,-1,0,0,0)^ + 4593 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4594 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4595 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4596 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4597 + 4598 001000 F31630: AA1=XX ;INITIAL C(AC) + 4599 033237 200 11 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4600 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4601 033240 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4602 000000 AEE=0 ;INITIAL C(E) + 4603 033241 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4604 033242 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4605 000000 AR1=0 ;EXPECTED RESULT IN AC + 4606 033243 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4607 033244 003 11 0 00 031631 ER3 AC,31631 ;HIGH PRODUCT FAILED + 4608 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4609 033245 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4610 033246 004 12 0 00 031632 ER4 AC+1,31632 ;LOW PRODUCT FAILED + 4611 000000 AEE=0 ;INITIAL C(E) + 4612 033247 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4613 033250 005 07 0 00 031633 ER5 E,31633 ;C(E) WAS CLOBBERED + 4614 033251 321 13 0 00 033237 JUMPL AC+2,F31630 ;LOOP ON ERROR SWITCH^ + 4615 + 4616 003164 ADR=ADR+1 + 4617 002000 XX=XX+XX + 4618 IFE XX, + 4619 + 4620 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4621 MOP1 (\ADR,XX,-1,0,0,0)^ + 4622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4623 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4624 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4626 + 4627 002000 F31640: AA1=XX ;INITIAL C(AC) + 4628 033252 200 11 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4629 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4630 033253 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4631 000000 AEE=0 ;INITIAL C(E) + 4632 033254 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4633 033255 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4634 000000 AR1=0 ;EXPECTED RESULT IN AC + 4635 033256 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4636 033257 003 11 0 00 031641 ER3 AC,31641 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0102 + + 4637 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4638 033260 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4639 033261 004 12 0 00 031642 ER4 AC+1,31642 ;LOW PRODUCT FAILED + 4640 000000 AEE=0 ;INITIAL C(E) + 4641 033262 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4642 033263 005 07 0 00 031643 ER5 E,31643 ;C(E) WAS CLOBBERED + 4643 033264 321 13 0 00 033252 JUMPL AC+2,F31640 ;LOOP ON ERROR SWITCH^ + 4644 + 4645 003165 ADR=ADR+1 + 4646 004000 XX=XX+XX + 4647 IFE XX, + 4648 + 4649 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4650 MOP1 (\ADR,XX,-1,0,0,0)^ + 4651 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4652 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4653 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4654 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4655 + 4656 004000 F31650: AA1=XX ;INITIAL C(AC) + 4657 033265 200 11 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4658 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4659 033266 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4660 000000 AEE=0 ;INITIAL C(E) + 4661 033267 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4662 033270 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4663 000000 AR1=0 ;EXPECTED RESULT IN AC + 4664 033271 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4665 033272 003 11 0 00 031651 ER3 AC,31651 ;HIGH PRODUCT FAILED + 4666 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4667 033273 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4668 033274 004 12 0 00 031652 ER4 AC+1,31652 ;LOW PRODUCT FAILED + 4669 000000 AEE=0 ;INITIAL C(E) + 4670 033275 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4671 033276 005 07 0 00 031653 ER5 E,31653 ;C(E) WAS CLOBBERED + 4672 033277 321 13 0 00 033265 JUMPL AC+2,F31650 ;LOOP ON ERROR SWITCH^ + 4673 + 4674 003166 ADR=ADR+1 + 4675 010000 XX=XX+XX + 4676 IFE XX, + 4677 + 4678 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4679 MOP1 (\ADR,XX,-1,0,0,0)^ + 4680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4681 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4682 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4684 + 4685 010000 F31660: AA1=XX ;INITIAL C(AC) + 4686 033300 200 11 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4687 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4688 033301 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4689 000000 AEE=0 ;INITIAL C(E) + 4690 033302 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4691 033303 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0103 + + 4692 000000 AR1=0 ;EXPECTED RESULT IN AC + 4693 033304 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4694 033305 003 11 0 00 031661 ER3 AC,31661 ;HIGH PRODUCT FAILED + 4695 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4696 033306 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4697 033307 004 12 0 00 031662 ER4 AC+1,31662 ;LOW PRODUCT FAILED + 4698 000000 AEE=0 ;INITIAL C(E) + 4699 033310 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4700 033311 005 07 0 00 031663 ER5 E,31663 ;C(E) WAS CLOBBERED + 4701 033312 321 13 0 00 033300 JUMPL AC+2,F31660 ;LOOP ON ERROR SWITCH^ + 4702 + 4703 003167 ADR=ADR+1 + 4704 020000 XX=XX+XX + 4705 IFE XX, + 4706 + 4707 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4708 MOP1 (\ADR,XX,-1,0,0,0)^ + 4709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4710 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4711 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4713 + 4714 020000 F31670: AA1=XX ;INITIAL C(AC) + 4715 033313 200 11 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4716 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4717 033314 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4718 000000 AEE=0 ;INITIAL C(E) + 4719 033315 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4720 033316 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4721 000000 AR1=0 ;EXPECTED RESULT IN AC + 4722 033317 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4723 033320 003 11 0 00 031671 ER3 AC,31671 ;HIGH PRODUCT FAILED + 4724 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4725 033321 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4726 033322 004 12 0 00 031672 ER4 AC+1,31672 ;LOW PRODUCT FAILED + 4727 000000 AEE=0 ;INITIAL C(E) + 4728 033323 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4729 033324 005 07 0 00 031673 ER5 E,31673 ;C(E) WAS CLOBBERED + 4730 033325 321 13 0 00 033313 JUMPL AC+2,F31670 ;LOOP ON ERROR SWITCH^ + 4731 + 4732 003170 ADR=ADR+1 + 4733 040000 XX=XX+XX + 4734 IFE XX, + 4735 + 4736 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4737 MOP1 (\ADR,XX,-1,0,0,0)^ + 4738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4739 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4740 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4742 + 4743 040000 F31700: AA1=XX ;INITIAL C(AC) + 4744 033326 200 11 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4745 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4746 033327 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0104 + + 4747 000000 AEE=0 ;INITIAL C(E) + 4748 033330 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4749 033331 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4750 000000 AR1=0 ;EXPECTED RESULT IN AC + 4751 033332 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4752 033333 003 11 0 00 031701 ER3 AC,31701 ;HIGH PRODUCT FAILED + 4753 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4754 033334 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4755 033335 004 12 0 00 031702 ER4 AC+1,31702 ;LOW PRODUCT FAILED + 4756 000000 AEE=0 ;INITIAL C(E) + 4757 033336 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4758 033337 005 07 0 00 031703 ER5 E,31703 ;C(E) WAS CLOBBERED + 4759 033340 321 13 0 00 033326 JUMPL AC+2,F31700 ;LOOP ON ERROR SWITCH^ + 4760 + 4761 003171 ADR=ADR+1 + 4762 100000 XX=XX+XX + 4763 IFE XX, + 4764 + 4765 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4766 MOP1 (\ADR,XX,-1,0,0,0)^ + 4767 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4768 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4769 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4770 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4771 + 4772 100000 F31710: AA1=XX ;INITIAL C(AC) + 4773 033341 200 11 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4774 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4775 033342 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4776 000000 AEE=0 ;INITIAL C(E) + 4777 033343 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4778 033344 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4779 000000 AR1=0 ;EXPECTED RESULT IN AC + 4780 033345 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4781 033346 003 11 0 00 031711 ER3 AC,31711 ;HIGH PRODUCT FAILED + 4782 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4783 033347 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4784 033350 004 12 0 00 031712 ER4 AC+1,31712 ;LOW PRODUCT FAILED + 4785 000000 AEE=0 ;INITIAL C(E) + 4786 033351 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4787 033352 005 07 0 00 031713 ER5 E,31713 ;C(E) WAS CLOBBERED + 4788 033353 321 13 0 00 033341 JUMPL AC+2,F31710 ;LOOP ON ERROR SWITCH^ + 4789 + 4790 003172 ADR=ADR+1 + 4791 200000 XX=XX+XX + 4792 IFE XX, + 4793 + 4794 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4795 MOP1 (\ADR,XX,-1,0,0,0)^ + 4796 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4797 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4798 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4799 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4800 + 4801 200000 F31720: AA1=XX ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0105 + + 4802 033354 200 11 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4803 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4804 033355 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4805 000000 AEE=0 ;INITIAL C(E) + 4806 033356 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4807 033357 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4808 000000 AR1=0 ;EXPECTED RESULT IN AC + 4809 033360 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4810 033361 003 11 0 00 031721 ER3 AC,31721 ;HIGH PRODUCT FAILED + 4811 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4812 033362 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4813 033363 004 12 0 00 031722 ER4 AC+1,31722 ;LOW PRODUCT FAILED + 4814 000000 AEE=0 ;INITIAL C(E) + 4815 033364 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4816 033365 005 07 0 00 031723 ER5 E,31723 ;C(E) WAS CLOBBERED + 4817 033366 321 13 0 00 033354 JUMPL AC+2,F31720 ;LOOP ON ERROR SWITCH^ + 4818 + 4819 003173 ADR=ADR+1 + 4820 400000 XX=XX+XX + 4821 IFE XX, + 4822 + 4823 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4824 MOP1 (\ADR,XX,-1,0,0,0)^ + 4825 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4826 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4827 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4828 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4829 + 4830 400000 F31730: AA1=XX ;INITIAL C(AC) + 4831 033367 200 11 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4832 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4833 033370 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4834 000000 AEE=0 ;INITIAL C(E) + 4835 033371 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4836 033372 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4837 000000 AR1=0 ;EXPECTED RESULT IN AC + 4838 033373 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4839 033374 003 11 0 00 031731 ER3 AC,31731 ;HIGH PRODUCT FAILED + 4840 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4841 033375 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4842 033376 004 12 0 00 031732 ER4 AC+1,31732 ;LOW PRODUCT FAILED + 4843 000000 AEE=0 ;INITIAL C(E) + 4844 033377 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4845 033400 005 07 0 00 031733 ER5 E,31733 ;C(E) WAS CLOBBERED + 4846 033401 321 13 0 00 033367 JUMPL AC+2,F31730 ;LOOP ON ERROR SWITCH^ + 4847 + 4848 003174 ADR=ADR+1 + 4849 000001 000000 XX=XX+XX + 4850 IFE XX, + 4851 + 4852 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4853 MOP1 (\ADR,XX,-1,0,0,0)^ + 4854 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4855 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4856 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0106 + + 4857 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4858 + 4859 000001 000000 F31740: AA1=XX ;INITIAL C(AC) + 4860 033402 200 11 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4861 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4862 033403 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4863 000000 AEE=0 ;INITIAL C(E) + 4864 033404 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4865 033405 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4866 000000 AR1=0 ;EXPECTED RESULT IN AC + 4867 033406 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4868 033407 003 11 0 00 031741 ER3 AC,31741 ;HIGH PRODUCT FAILED + 4869 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4870 033410 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4871 033411 004 12 0 00 031742 ER4 AC+1,31742 ;LOW PRODUCT FAILED + 4872 000000 AEE=0 ;INITIAL C(E) + 4873 033412 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4874 033413 005 07 0 00 031743 ER5 E,31743 ;C(E) WAS CLOBBERED + 4875 033414 321 13 0 00 033402 JUMPL AC+2,F31740 ;LOOP ON ERROR SWITCH^ + 4876 + 4877 003175 ADR=ADR+1 + 4878 000002 000000 XX=XX+XX + 4879 IFE XX, + 4880 + 4881 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4882 MOP1 (\ADR,XX,-1,0,0,0)^ + 4883 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4884 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4885 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4886 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4887 + 4888 000002 000000 F31750: AA1=XX ;INITIAL C(AC) + 4889 033415 200 11 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4890 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4891 033416 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4892 000000 AEE=0 ;INITIAL C(E) + 4893 033417 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4894 033420 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4895 000000 AR1=0 ;EXPECTED RESULT IN AC + 4896 033421 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4897 033422 003 11 0 00 031751 ER3 AC,31751 ;HIGH PRODUCT FAILED + 4898 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4899 033423 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4900 033424 004 12 0 00 031752 ER4 AC+1,31752 ;LOW PRODUCT FAILED + 4901 000000 AEE=0 ;INITIAL C(E) + 4902 033425 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4903 033426 005 07 0 00 031753 ER5 E,31753 ;C(E) WAS CLOBBERED + 4904 033427 321 13 0 00 033415 JUMPL AC+2,F31750 ;LOOP ON ERROR SWITCH^ + 4905 + 4906 003176 ADR=ADR+1 + 4907 000004 000000 XX=XX+XX + 4908 IFE XX, + 4909 + 4910 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4911 MOP1 (\ADR,XX,-1,0,0,0)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0107 + + 4912 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4913 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4914 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4915 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4916 + 4917 000004 000000 F31760: AA1=XX ;INITIAL C(AC) + 4918 033430 200 11 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4919 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4920 033431 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4921 000000 AEE=0 ;INITIAL C(E) + 4922 033432 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4923 033433 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4924 000000 AR1=0 ;EXPECTED RESULT IN AC + 4925 033434 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4926 033435 003 11 0 00 031761 ER3 AC,31761 ;HIGH PRODUCT FAILED + 4927 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4928 033436 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4929 033437 004 12 0 00 031762 ER4 AC+1,31762 ;LOW PRODUCT FAILED + 4930 000000 AEE=0 ;INITIAL C(E) + 4931 033440 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4932 033441 005 07 0 00 031763 ER5 E,31763 ;C(E) WAS CLOBBERED + 4933 033442 321 13 0 00 033430 JUMPL AC+2,F31760 ;LOOP ON ERROR SWITCH^ + 4934 + 4935 003177 ADR=ADR+1 + 4936 000010 000000 XX=XX+XX + 4937 IFE XX, + 4938 + 4939 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4940 MOP1 (\ADR,XX,-1,0,0,0)^ + 4941 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4942 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4943 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4944 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4945 + 4946 000010 000000 F31770: AA1=XX ;INITIAL C(AC) + 4947 033443 200 11 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4948 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4949 033444 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4950 000000 AEE=0 ;INITIAL C(E) + 4951 033445 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4952 033446 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4953 000000 AR1=0 ;EXPECTED RESULT IN AC + 4954 033447 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4955 033450 003 11 0 00 031771 ER3 AC,31771 ;HIGH PRODUCT FAILED + 4956 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4957 033451 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4958 033452 004 12 0 00 031772 ER4 AC+1,31772 ;LOW PRODUCT FAILED + 4959 000000 AEE=0 ;INITIAL C(E) + 4960 033453 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4961 033454 005 07 0 00 031773 ER5 E,31773 ;C(E) WAS CLOBBERED + 4962 033455 321 13 0 00 033443 JUMPL AC+2,F31770 ;LOOP ON ERROR SWITCH^ + 4963 + 4964 003200 ADR=ADR+1 + 4965 000020 000000 XX=XX+XX + 4966 IFE XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0108 + + 4967 + 4968 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4969 MOP1 (\ADR,XX,-1,0,0,0)^ + 4970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 4971 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 4972 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 4973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 4974 + 4975 000020 000000 F32000: AA1=XX ;INITIAL C(AC) + 4976 033456 200 11 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 4977 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 4978 033457 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 4979 000000 AEE=0 ;INITIAL C(E) + 4980 033460 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 4981 033461 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 4982 000000 AR1=0 ;EXPECTED RESULT IN AC + 4983 033462 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 4984 033463 003 11 0 00 032001 ER3 AC,32001 ;HIGH PRODUCT FAILED + 4985 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 4986 033464 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 4987 033465 004 12 0 00 032002 ER4 AC+1,32002 ;LOW PRODUCT FAILED + 4988 000000 AEE=0 ;INITIAL C(E) + 4989 033466 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 4990 033467 005 07 0 00 032003 ER5 E,32003 ;C(E) WAS CLOBBERED + 4991 033470 321 13 0 00 033456 JUMPL AC+2,F32000 ;LOOP ON ERROR SWITCH^ + 4992 + 4993 003201 ADR=ADR+1 + 4994 000040 000000 XX=XX+XX + 4995 IFE XX, + 4996 + 4997 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 4998 MOP1 (\ADR,XX,-1,0,0,0)^ + 4999 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5000 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5001 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5002 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5003 + 5004 000040 000000 F32010: AA1=XX ;INITIAL C(AC) + 5005 033471 200 11 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5006 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5007 033472 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5008 000000 AEE=0 ;INITIAL C(E) + 5009 033473 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5010 033474 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5011 000000 AR1=0 ;EXPECTED RESULT IN AC + 5012 033475 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5013 033476 003 11 0 00 032011 ER3 AC,32011 ;HIGH PRODUCT FAILED + 5014 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5015 033477 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5016 033500 004 12 0 00 032012 ER4 AC+1,32012 ;LOW PRODUCT FAILED + 5017 000000 AEE=0 ;INITIAL C(E) + 5018 033501 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5019 033502 005 07 0 00 032013 ER5 E,32013 ;C(E) WAS CLOBBERED + 5020 033503 321 13 0 00 033471 JUMPL AC+2,F32010 ;LOOP ON ERROR SWITCH^ + 5021 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0109 + + 5022 003202 ADR=ADR+1 + 5023 000100 000000 XX=XX+XX + 5024 IFE XX, + 5025 + 5026 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5027 MOP1 (\ADR,XX,-1,0,0,0)^ + 5028 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5029 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5030 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5031 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5032 + 5033 000100 000000 F32020: AA1=XX ;INITIAL C(AC) + 5034 033504 200 11 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5035 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5036 033505 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5037 000000 AEE=0 ;INITIAL C(E) + 5038 033506 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5039 033507 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5040 000000 AR1=0 ;EXPECTED RESULT IN AC + 5041 033510 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5042 033511 003 11 0 00 032021 ER3 AC,32021 ;HIGH PRODUCT FAILED + 5043 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5044 033512 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5045 033513 004 12 0 00 032022 ER4 AC+1,32022 ;LOW PRODUCT FAILED + 5046 000000 AEE=0 ;INITIAL C(E) + 5047 033514 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5048 033515 005 07 0 00 032023 ER5 E,32023 ;C(E) WAS CLOBBERED + 5049 033516 321 13 0 00 033504 JUMPL AC+2,F32020 ;LOOP ON ERROR SWITCH^ + 5050 + 5051 003203 ADR=ADR+1 + 5052 000200 000000 XX=XX+XX + 5053 IFE XX, + 5054 + 5055 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5056 MOP1 (\ADR,XX,-1,0,0,0)^ + 5057 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5058 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5059 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5060 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5061 + 5062 000200 000000 F32030: AA1=XX ;INITIAL C(AC) + 5063 033517 200 11 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5064 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5065 033520 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5066 000000 AEE=0 ;INITIAL C(E) + 5067 033521 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5068 033522 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5069 000000 AR1=0 ;EXPECTED RESULT IN AC + 5070 033523 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5071 033524 003 11 0 00 032031 ER3 AC,32031 ;HIGH PRODUCT FAILED + 5072 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5073 033525 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5074 033526 004 12 0 00 032032 ER4 AC+1,32032 ;LOW PRODUCT FAILED + 5075 000000 AEE=0 ;INITIAL C(E) + 5076 033527 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0110 + + 5077 033530 005 07 0 00 032033 ER5 E,32033 ;C(E) WAS CLOBBERED + 5078 033531 321 13 0 00 033517 JUMPL AC+2,F32030 ;LOOP ON ERROR SWITCH^ + 5079 + 5080 003204 ADR=ADR+1 + 5081 000400 000000 XX=XX+XX + 5082 IFE XX, + 5083 + 5084 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5085 MOP1 (\ADR,XX,-1,0,0,0)^ + 5086 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5087 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5088 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5089 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5090 + 5091 000400 000000 F32040: AA1=XX ;INITIAL C(AC) + 5092 033532 200 11 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5093 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5094 033533 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5095 000000 AEE=0 ;INITIAL C(E) + 5096 033534 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5097 033535 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5098 000000 AR1=0 ;EXPECTED RESULT IN AC + 5099 033536 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5100 033537 003 11 0 00 032041 ER3 AC,32041 ;HIGH PRODUCT FAILED + 5101 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5102 033540 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5103 033541 004 12 0 00 032042 ER4 AC+1,32042 ;LOW PRODUCT FAILED + 5104 000000 AEE=0 ;INITIAL C(E) + 5105 033542 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5106 033543 005 07 0 00 032043 ER5 E,32043 ;C(E) WAS CLOBBERED + 5107 033544 321 13 0 00 033532 JUMPL AC+2,F32040 ;LOOP ON ERROR SWITCH^ + 5108 + 5109 003205 ADR=ADR+1 + 5110 001000 000000 XX=XX+XX + 5111 IFE XX, + 5112 + 5113 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5114 MOP1 (\ADR,XX,-1,0,0,0)^ + 5115 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5116 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5117 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5118 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5119 + 5120 001000 000000 F32050: AA1=XX ;INITIAL C(AC) + 5121 033545 200 11 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5122 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5123 033546 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5124 000000 AEE=0 ;INITIAL C(E) + 5125 033547 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5126 033550 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5127 000000 AR1=0 ;EXPECTED RESULT IN AC + 5128 033551 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5129 033552 003 11 0 00 032051 ER3 AC,32051 ;HIGH PRODUCT FAILED + 5130 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5131 033553 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0111 + + 5132 033554 004 12 0 00 032052 ER4 AC+1,32052 ;LOW PRODUCT FAILED + 5133 000000 AEE=0 ;INITIAL C(E) + 5134 033555 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5135 033556 005 07 0 00 032053 ER5 E,32053 ;C(E) WAS CLOBBERED + 5136 033557 321 13 0 00 033545 JUMPL AC+2,F32050 ;LOOP ON ERROR SWITCH^ + 5137 + 5138 003206 ADR=ADR+1 + 5139 002000 000000 XX=XX+XX + 5140 IFE XX, + 5141 + 5142 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5143 MOP1 (\ADR,XX,-1,0,0,0)^ + 5144 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5145 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5146 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5147 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5148 + 5149 002000 000000 F32060: AA1=XX ;INITIAL C(AC) + 5150 033560 200 11 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5151 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5152 033561 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5153 000000 AEE=0 ;INITIAL C(E) + 5154 033562 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5155 033563 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5156 000000 AR1=0 ;EXPECTED RESULT IN AC + 5157 033564 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5158 033565 003 11 0 00 032061 ER3 AC,32061 ;HIGH PRODUCT FAILED + 5159 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5160 033566 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5161 033567 004 12 0 00 032062 ER4 AC+1,32062 ;LOW PRODUCT FAILED + 5162 000000 AEE=0 ;INITIAL C(E) + 5163 033570 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5164 033571 005 07 0 00 032063 ER5 E,32063 ;C(E) WAS CLOBBERED + 5165 033572 321 13 0 00 033560 JUMPL AC+2,F32060 ;LOOP ON ERROR SWITCH^ + 5166 + 5167 003207 ADR=ADR+1 + 5168 004000 000000 XX=XX+XX + 5169 IFE XX, + 5170 + 5171 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5172 MOP1 (\ADR,XX,-1,0,0,0)^ + 5173 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5174 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5175 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5176 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5177 + 5178 004000 000000 F32070: AA1=XX ;INITIAL C(AC) + 5179 033573 200 11 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5180 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5181 033574 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5182 000000 AEE=0 ;INITIAL C(E) + 5183 033575 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5184 033576 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5185 000000 AR1=0 ;EXPECTED RESULT IN AC + 5186 033577 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0112 + + 5187 033600 003 11 0 00 032071 ER3 AC,32071 ;HIGH PRODUCT FAILED + 5188 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5189 033601 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5190 033602 004 12 0 00 032072 ER4 AC+1,32072 ;LOW PRODUCT FAILED + 5191 000000 AEE=0 ;INITIAL C(E) + 5192 033603 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5193 033604 005 07 0 00 032073 ER5 E,32073 ;C(E) WAS CLOBBERED + 5194 033605 321 13 0 00 033573 JUMPL AC+2,F32070 ;LOOP ON ERROR SWITCH^ + 5195 + 5196 003210 ADR=ADR+1 + 5197 010000 000000 XX=XX+XX + 5198 IFE XX, + 5199 + 5200 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5201 MOP1 (\ADR,XX,-1,0,0,0)^ + 5202 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5203 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5204 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5205 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5206 + 5207 010000 000000 F32100: AA1=XX ;INITIAL C(AC) + 5208 033606 200 11 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5209 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5210 033607 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5211 000000 AEE=0 ;INITIAL C(E) + 5212 033610 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5213 033611 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5214 000000 AR1=0 ;EXPECTED RESULT IN AC + 5215 033612 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5216 033613 003 11 0 00 032101 ER3 AC,32101 ;HIGH PRODUCT FAILED + 5217 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5218 033614 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5219 033615 004 12 0 00 032102 ER4 AC+1,32102 ;LOW PRODUCT FAILED + 5220 000000 AEE=0 ;INITIAL C(E) + 5221 033616 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5222 033617 005 07 0 00 032103 ER5 E,32103 ;C(E) WAS CLOBBERED + 5223 033620 321 13 0 00 033606 JUMPL AC+2,F32100 ;LOOP ON ERROR SWITCH^ + 5224 + 5225 003211 ADR=ADR+1 + 5226 020000 000000 XX=XX+XX + 5227 IFE XX, + 5228 + 5229 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5230 MOP1 (\ADR,XX,-1,0,0,0)^ + 5231 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5232 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5233 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5234 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5235 + 5236 020000 000000 F32110: AA1=XX ;INITIAL C(AC) + 5237 033621 200 11 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5238 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5239 033622 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5240 000000 AEE=0 ;INITIAL C(E) + 5241 033623 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0113 + + 5242 033624 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5243 000000 AR1=0 ;EXPECTED RESULT IN AC + 5244 033625 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5245 033626 003 11 0 00 032111 ER3 AC,32111 ;HIGH PRODUCT FAILED + 5246 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5247 033627 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5248 033630 004 12 0 00 032112 ER4 AC+1,32112 ;LOW PRODUCT FAILED + 5249 000000 AEE=0 ;INITIAL C(E) + 5250 033631 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5251 033632 005 07 0 00 032113 ER5 E,32113 ;C(E) WAS CLOBBERED + 5252 033633 321 13 0 00 033621 JUMPL AC+2,F32110 ;LOOP ON ERROR SWITCH^ + 5253 + 5254 003212 ADR=ADR+1 + 5255 040000 000000 XX=XX+XX + 5256 IFE XX, + 5257 + 5258 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5259 MOP1 (\ADR,XX,-1,0,0,0)^ + 5260 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5261 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5262 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5263 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5264 + 5265 040000 000000 F32120: AA1=XX ;INITIAL C(AC) + 5266 033634 200 11 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5267 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5268 033635 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5269 000000 AEE=0 ;INITIAL C(E) + 5270 033636 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5271 033637 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5272 000000 AR1=0 ;EXPECTED RESULT IN AC + 5273 033640 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5274 033641 003 11 0 00 032121 ER3 AC,32121 ;HIGH PRODUCT FAILED + 5275 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5276 033642 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5277 033643 004 12 0 00 032122 ER4 AC+1,32122 ;LOW PRODUCT FAILED + 5278 000000 AEE=0 ;INITIAL C(E) + 5279 033644 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5280 033645 005 07 0 00 032123 ER5 E,32123 ;C(E) WAS CLOBBERED + 5281 033646 321 13 0 00 033634 JUMPL AC+2,F32120 ;LOOP ON ERROR SWITCH^ + 5282 + 5283 003213 ADR=ADR+1 + 5284 100000 000000 XX=XX+XX + 5285 IFE XX, + 5286 + 5287 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5288 MOP1 (\ADR,XX,-1,0,0,0)^ + 5289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5290 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5291 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5293 + 5294 100000 000000 F32130: AA1=XX ;INITIAL C(AC) + 5295 033647 200 11 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5296 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0114 + + 5297 033650 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5298 000000 AEE=0 ;INITIAL C(E) + 5299 033651 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5300 033652 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5301 000000 AR1=0 ;EXPECTED RESULT IN AC + 5302 033653 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5303 033654 003 11 0 00 032131 ER3 AC,32131 ;HIGH PRODUCT FAILED + 5304 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5305 033655 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5306 033656 004 12 0 00 032132 ER4 AC+1,32132 ;LOW PRODUCT FAILED + 5307 000000 AEE=0 ;INITIAL C(E) + 5308 033657 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5309 033660 005 07 0 00 032133 ER5 E,32133 ;C(E) WAS CLOBBERED + 5310 033661 321 13 0 00 033647 JUMPL AC+2,F32130 ;LOOP ON ERROR SWITCH^ + 5311 + 5312 003214 ADR=ADR+1 + 5313 200000 000000 XX=XX+XX + 5314 IFE XX, + 5315 + 5316 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5317 MOP1 (\ADR,XX,-1,0,0,0)^ + 5318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5319 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5320 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5322 + 5323 200000 000000 F32140: AA1=XX ;INITIAL C(AC) + 5324 033662 200 11 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5325 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5326 033663 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5327 000000 AEE=0 ;INITIAL C(E) + 5328 033664 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5329 033665 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5330 000000 AR1=0 ;EXPECTED RESULT IN AC + 5331 033666 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5332 033667 003 11 0 00 032141 ER3 AC,32141 ;HIGH PRODUCT FAILED + 5333 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5334 033670 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5335 033671 004 12 0 00 032142 ER4 AC+1,32142 ;LOW PRODUCT FAILED + 5336 000000 AEE=0 ;INITIAL C(E) + 5337 033672 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5338 033673 005 07 0 00 032143 ER5 E,32143 ;C(E) WAS CLOBBERED + 5339 033674 321 13 0 00 033662 JUMPL AC+2,F32140 ;LOOP ON ERROR SWITCH^ + 5340 + 5341 003215 ADR=ADR+1 + 5342 400000 000000 XX=XX+XX + 5343 IFE XX, + 5344 + 5345 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + 5346 MOP1 (\ADR,XX,-1,0,0,0)^ + 5347 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5348 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5349 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5350 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5351 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0115 + + 5352 400000 000000 F32150: AA1=XX ;INITIAL C(AC) + 5353 033675 200 11 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5354 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5355 033676 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5356 000000 AEE=0 ;INITIAL C(E) + 5357 033677 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5358 033700 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5359 000000 AR1=0 ;EXPECTED RESULT IN AC + 5360 033701 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5361 033702 003 11 0 00 032151 ER3 AC,32151 ;HIGH PRODUCT FAILED + 5362 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5363 033703 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5364 033704 004 12 0 00 032152 ER4 AC+1,32152 ;LOW PRODUCT FAILED + 5365 000000 AEE=0 ;INITIAL C(E) + 5366 033705 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5367 033706 005 07 0 00 032153 ER5 E,32153 ;C(E) WAS CLOBBERED + 5368 033707 321 13 0 00 033675 JUMPL AC+2,F32150 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0116 + + 5369 000010 AC=10 + 5370 000006 E=&17 + 5371 SAVEAC (1,1)^ + 5372 033710 201 12 0 00 033710 MOVEI AC+2,. ;SAVE TEST PC + 5373 033711 202 12 0 00 030051 MOVEM AC+2,TESTPC + 5374 033712 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 5375 033713 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 5376 000000 XX=0 + 5377 + 5378 REPEAT ^D36,< + 5379 ADR=ADR+1 + 5380 XX=XX+XX+1 + 5381 IFE , + 5382 + 5383 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5384 MOP1 (\ADR,XX,-1,0,0,0)> + 5385 + 5386 003216 ADR=ADR+1 + 5387 000001 XX=XX+XX+1 + 5388 777777 777776 IFE , + 5389 + 5390 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5391 MOP1 (\ADR,XX,-1,0,0,0)^ + 5392 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5393 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5394 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5395 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5396 + 5397 777777 777776 F32160: AA1=XX ;INITIAL C(AC) + 5398 033714 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5399 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5400 033715 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5401 000000 AEE=0 ;INITIAL C(E) + 5402 033716 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5403 033717 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5404 000000 AR1=0 ;EXPECTED RESULT IN AC + 5405 033720 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5406 033721 003 10 0 00 032161 ER3 AC,32161 ;HIGH PRODUCT FAILED + 5407 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5408 033722 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5409 033723 004 11 0 00 032162 ER4 AC+1,32162 ;LOW PRODUCT FAILED + 5410 000000 AEE=0 ;INITIAL C(E) + 5411 033724 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5412 033725 005 06 0 00 032163 ER5 E,32163 ;C(E) WAS CLOBBERED + 5413 033726 321 12 0 00 033714 JUMPL AC+2,F32160 ;LOOP ON ERROR SWITCH^ + 5414 + 5415 003217 ADR=ADR+1 + 5416 777777 777775 XX=XX+XX+1 + 5417 IFE , + 5418 + 5419 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5420 MOP1 (\ADR,XX,-1,0,0,0)^ + 5421 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5422 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5423 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0117 + + 5424 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5425 + 5426 777777 777775 F32170: AA1=XX ;INITIAL C(AC) + 5427 033727 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5428 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5429 033730 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5430 000000 AEE=0 ;INITIAL C(E) + 5431 033731 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5432 033732 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5433 000000 AR1=0 ;EXPECTED RESULT IN AC + 5434 033733 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5435 033734 003 10 0 00 032171 ER3 AC,32171 ;HIGH PRODUCT FAILED + 5436 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5437 033735 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5438 033736 004 11 0 00 032172 ER4 AC+1,32172 ;LOW PRODUCT FAILED + 5439 000000 AEE=0 ;INITIAL C(E) + 5440 033737 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5441 033740 005 06 0 00 032173 ER5 E,32173 ;C(E) WAS CLOBBERED + 5442 033741 321 12 0 00 033727 JUMPL AC+2,F32170 ;LOOP ON ERROR SWITCH^ + 5443 + 5444 003220 ADR=ADR+1 + 5445 777777 777773 XX=XX+XX+1 + 5446 IFE , + 5447 + 5448 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5449 MOP1 (\ADR,XX,-1,0,0,0)^ + 5450 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5451 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5452 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5453 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5454 + 5455 777777 777773 F32200: AA1=XX ;INITIAL C(AC) + 5456 033742 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5457 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5458 033743 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5459 000000 AEE=0 ;INITIAL C(E) + 5460 033744 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5461 033745 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5462 000000 AR1=0 ;EXPECTED RESULT IN AC + 5463 033746 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5464 033747 003 10 0 00 032201 ER3 AC,32201 ;HIGH PRODUCT FAILED + 5465 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5466 033750 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5467 033751 004 11 0 00 032202 ER4 AC+1,32202 ;LOW PRODUCT FAILED + 5468 000000 AEE=0 ;INITIAL C(E) + 5469 033752 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5470 033753 005 06 0 00 032203 ER5 E,32203 ;C(E) WAS CLOBBERED + 5471 033754 321 12 0 00 033742 JUMPL AC+2,F32200 ;LOOP ON ERROR SWITCH^ + 5472 + 5473 003221 ADR=ADR+1 + 5474 777777 777767 XX=XX+XX+1 + 5475 IFE , + 5476 + 5477 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5478 MOP1 (\ADR,XX,-1,0,0,0)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0118 + + 5479 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5480 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5481 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5482 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5483 + 5484 777777 777767 F32210: AA1=XX ;INITIAL C(AC) + 5485 033755 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5486 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5487 033756 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5488 000000 AEE=0 ;INITIAL C(E) + 5489 033757 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5490 033760 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5491 000000 AR1=0 ;EXPECTED RESULT IN AC + 5492 033761 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5493 033762 003 10 0 00 032211 ER3 AC,32211 ;HIGH PRODUCT FAILED + 5494 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5495 033763 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5496 033764 004 11 0 00 032212 ER4 AC+1,32212 ;LOW PRODUCT FAILED + 5497 000000 AEE=0 ;INITIAL C(E) + 5498 033765 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5499 033766 005 06 0 00 032213 ER5 E,32213 ;C(E) WAS CLOBBERED + 5500 033767 321 12 0 00 033755 JUMPL AC+2,F32210 ;LOOP ON ERROR SWITCH^ + 5501 + 5502 003222 ADR=ADR+1 + 5503 777777 777757 XX=XX+XX+1 + 5504 IFE , + 5505 + 5506 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5507 MOP1 (\ADR,XX,-1,0,0,0)^ + 5508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5509 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5510 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5512 + 5513 777777 777757 F32220: AA1=XX ;INITIAL C(AC) + 5514 033770 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5515 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5516 033771 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5517 000000 AEE=0 ;INITIAL C(E) + 5518 033772 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5519 033773 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5520 000000 AR1=0 ;EXPECTED RESULT IN AC + 5521 033774 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5522 033775 003 10 0 00 032221 ER3 AC,32221 ;HIGH PRODUCT FAILED + 5523 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5524 033776 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5525 033777 004 11 0 00 032222 ER4 AC+1,32222 ;LOW PRODUCT FAILED + 5526 000000 AEE=0 ;INITIAL C(E) + 5527 034000 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5528 034001 005 06 0 00 032223 ER5 E,32223 ;C(E) WAS CLOBBERED + 5529 034002 321 12 0 00 033770 JUMPL AC+2,F32220 ;LOOP ON ERROR SWITCH^ + 5530 + 5531 003223 ADR=ADR+1 + 5532 777777 777737 XX=XX+XX+1 + 5533 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0119 + + 5534 + 5535 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5536 MOP1 (\ADR,XX,-1,0,0,0)^ + 5537 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5538 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5539 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5540 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5541 + 5542 777777 777737 F32230: AA1=XX ;INITIAL C(AC) + 5543 034003 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5544 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5545 034004 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5546 000000 AEE=0 ;INITIAL C(E) + 5547 034005 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5548 034006 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5549 000000 AR1=0 ;EXPECTED RESULT IN AC + 5550 034007 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5551 034010 003 10 0 00 032231 ER3 AC,32231 ;HIGH PRODUCT FAILED + 5552 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5553 034011 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5554 034012 004 11 0 00 032232 ER4 AC+1,32232 ;LOW PRODUCT FAILED + 5555 000000 AEE=0 ;INITIAL C(E) + 5556 034013 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5557 034014 005 06 0 00 032233 ER5 E,32233 ;C(E) WAS CLOBBERED + 5558 034015 321 12 0 00 034003 JUMPL AC+2,F32230 ;LOOP ON ERROR SWITCH^ + 5559 + 5560 003224 ADR=ADR+1 + 5561 777777 777677 XX=XX+XX+1 + 5562 IFE , + 5563 + 5564 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5565 MOP1 (\ADR,XX,-1,0,0,0)^ + 5566 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5567 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5568 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5569 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5570 + 5571 777777 777677 F32240: AA1=XX ;INITIAL C(AC) + 5572 034016 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5573 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5574 034017 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5575 000000 AEE=0 ;INITIAL C(E) + 5576 034020 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5577 034021 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5578 000000 AR1=0 ;EXPECTED RESULT IN AC + 5579 034022 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5580 034023 003 10 0 00 032241 ER3 AC,32241 ;HIGH PRODUCT FAILED + 5581 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5582 034024 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5583 034025 004 11 0 00 032242 ER4 AC+1,32242 ;LOW PRODUCT FAILED + 5584 000000 AEE=0 ;INITIAL C(E) + 5585 034026 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5586 034027 005 06 0 00 032243 ER5 E,32243 ;C(E) WAS CLOBBERED + 5587 034030 321 12 0 00 034016 JUMPL AC+2,F32240 ;LOOP ON ERROR SWITCH^ + 5588 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0120 + + 5589 003225 ADR=ADR+1 + 5590 777777 777577 XX=XX+XX+1 + 5591 IFE , + 5592 + 5593 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5594 MOP1 (\ADR,XX,-1,0,0,0)^ + 5595 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5596 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5597 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5598 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5599 + 5600 777777 777577 F32250: AA1=XX ;INITIAL C(AC) + 5601 034031 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5602 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5603 034032 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5604 000000 AEE=0 ;INITIAL C(E) + 5605 034033 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5606 034034 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5607 000000 AR1=0 ;EXPECTED RESULT IN AC + 5608 034035 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5609 034036 003 10 0 00 032251 ER3 AC,32251 ;HIGH PRODUCT FAILED + 5610 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5611 034037 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5612 034040 004 11 0 00 032252 ER4 AC+1,32252 ;LOW PRODUCT FAILED + 5613 000000 AEE=0 ;INITIAL C(E) + 5614 034041 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5615 034042 005 06 0 00 032253 ER5 E,32253 ;C(E) WAS CLOBBERED + 5616 034043 321 12 0 00 034031 JUMPL AC+2,F32250 ;LOOP ON ERROR SWITCH^ + 5617 + 5618 003226 ADR=ADR+1 + 5619 777777 777377 XX=XX+XX+1 + 5620 IFE , + 5621 + 5622 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5623 MOP1 (\ADR,XX,-1,0,0,0)^ + 5624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5625 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5626 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5628 + 5629 777777 777377 F32260: AA1=XX ;INITIAL C(AC) + 5630 034044 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5631 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5632 034045 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5633 000000 AEE=0 ;INITIAL C(E) + 5634 034046 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5635 034047 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5636 000000 AR1=0 ;EXPECTED RESULT IN AC + 5637 034050 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5638 034051 003 10 0 00 032261 ER3 AC,32261 ;HIGH PRODUCT FAILED + 5639 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5640 034052 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5641 034053 004 11 0 00 032262 ER4 AC+1,32262 ;LOW PRODUCT FAILED + 5642 000000 AEE=0 ;INITIAL C(E) + 5643 034054 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0121 + + 5644 034055 005 06 0 00 032263 ER5 E,32263 ;C(E) WAS CLOBBERED + 5645 034056 321 12 0 00 034044 JUMPL AC+2,F32260 ;LOOP ON ERROR SWITCH^ + 5646 + 5647 003227 ADR=ADR+1 + 5648 777777 776777 XX=XX+XX+1 + 5649 IFE , + 5650 + 5651 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5652 MOP1 (\ADR,XX,-1,0,0,0)^ + 5653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5654 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5655 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5657 + 5658 777777 776777 F32270: AA1=XX ;INITIAL C(AC) + 5659 034057 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5660 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5661 034060 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5662 000000 AEE=0 ;INITIAL C(E) + 5663 034061 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5664 034062 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5665 000000 AR1=0 ;EXPECTED RESULT IN AC + 5666 034063 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5667 034064 003 10 0 00 032271 ER3 AC,32271 ;HIGH PRODUCT FAILED + 5668 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5669 034065 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5670 034066 004 11 0 00 032272 ER4 AC+1,32272 ;LOW PRODUCT FAILED + 5671 000000 AEE=0 ;INITIAL C(E) + 5672 034067 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5673 034070 005 06 0 00 032273 ER5 E,32273 ;C(E) WAS CLOBBERED + 5674 034071 321 12 0 00 034057 JUMPL AC+2,F32270 ;LOOP ON ERROR SWITCH^ + 5675 + 5676 003230 ADR=ADR+1 + 5677 777777 775777 XX=XX+XX+1 + 5678 IFE , + 5679 + 5680 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5681 MOP1 (\ADR,XX,-1,0,0,0)^ + 5682 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5683 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5684 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5685 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5686 + 5687 777777 775777 F32300: AA1=XX ;INITIAL C(AC) + 5688 034072 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5689 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5690 034073 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5691 000000 AEE=0 ;INITIAL C(E) + 5692 034074 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5693 034075 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5694 000000 AR1=0 ;EXPECTED RESULT IN AC + 5695 034076 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5696 034077 003 10 0 00 032301 ER3 AC,32301 ;HIGH PRODUCT FAILED + 5697 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5698 034100 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0122 + + 5699 034101 004 11 0 00 032302 ER4 AC+1,32302 ;LOW PRODUCT FAILED + 5700 000000 AEE=0 ;INITIAL C(E) + 5701 034102 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5702 034103 005 06 0 00 032303 ER5 E,32303 ;C(E) WAS CLOBBERED + 5703 034104 321 12 0 00 034072 JUMPL AC+2,F32300 ;LOOP ON ERROR SWITCH^ + 5704 + 5705 003231 ADR=ADR+1 + 5706 777777 773777 XX=XX+XX+1 + 5707 IFE , + 5708 + 5709 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5710 MOP1 (\ADR,XX,-1,0,0,0)^ + 5711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5712 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5713 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5715 + 5716 777777 773777 F32310: AA1=XX ;INITIAL C(AC) + 5717 034105 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5718 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5719 034106 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5720 000000 AEE=0 ;INITIAL C(E) + 5721 034107 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5722 034110 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5723 000000 AR1=0 ;EXPECTED RESULT IN AC + 5724 034111 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5725 034112 003 10 0 00 032311 ER3 AC,32311 ;HIGH PRODUCT FAILED + 5726 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5727 034113 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5728 034114 004 11 0 00 032312 ER4 AC+1,32312 ;LOW PRODUCT FAILED + 5729 000000 AEE=0 ;INITIAL C(E) + 5730 034115 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5731 034116 005 06 0 00 032313 ER5 E,32313 ;C(E) WAS CLOBBERED + 5732 034117 321 12 0 00 034105 JUMPL AC+2,F32310 ;LOOP ON ERROR SWITCH^ + 5733 + 5734 003232 ADR=ADR+1 + 5735 777777 767777 XX=XX+XX+1 + 5736 IFE , + 5737 + 5738 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5739 MOP1 (\ADR,XX,-1,0,0,0)^ + 5740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5741 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5742 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5744 + 5745 777777 767777 F32320: AA1=XX ;INITIAL C(AC) + 5746 034120 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5747 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5748 034121 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5749 000000 AEE=0 ;INITIAL C(E) + 5750 034122 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5751 034123 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5752 000000 AR1=0 ;EXPECTED RESULT IN AC + 5753 034124 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0123 + + 5754 034125 003 10 0 00 032321 ER3 AC,32321 ;HIGH PRODUCT FAILED + 5755 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5756 034126 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5757 034127 004 11 0 00 032322 ER4 AC+1,32322 ;LOW PRODUCT FAILED + 5758 000000 AEE=0 ;INITIAL C(E) + 5759 034130 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5760 034131 005 06 0 00 032323 ER5 E,32323 ;C(E) WAS CLOBBERED + 5761 034132 321 12 0 00 034120 JUMPL AC+2,F32320 ;LOOP ON ERROR SWITCH^ + 5762 + 5763 003233 ADR=ADR+1 + 5764 777777 757777 XX=XX+XX+1 + 5765 IFE , + 5766 + 5767 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5768 MOP1 (\ADR,XX,-1,0,0,0)^ + 5769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5770 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5771 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5773 + 5774 777777 757777 F32330: AA1=XX ;INITIAL C(AC) + 5775 034133 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5776 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5777 034134 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5778 000000 AEE=0 ;INITIAL C(E) + 5779 034135 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5780 034136 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5781 000000 AR1=0 ;EXPECTED RESULT IN AC + 5782 034137 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5783 034140 003 10 0 00 032331 ER3 AC,32331 ;HIGH PRODUCT FAILED + 5784 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5785 034141 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5786 034142 004 11 0 00 032332 ER4 AC+1,32332 ;LOW PRODUCT FAILED + 5787 000000 AEE=0 ;INITIAL C(E) + 5788 034143 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5789 034144 005 06 0 00 032333 ER5 E,32333 ;C(E) WAS CLOBBERED + 5790 034145 321 12 0 00 034133 JUMPL AC+2,F32330 ;LOOP ON ERROR SWITCH^ + 5791 + 5792 003234 ADR=ADR+1 + 5793 777777 737777 XX=XX+XX+1 + 5794 IFE , + 5795 + 5796 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5797 MOP1 (\ADR,XX,-1,0,0,0)^ + 5798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5799 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5800 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5802 + 5803 777777 737777 F32340: AA1=XX ;INITIAL C(AC) + 5804 034146 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5805 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5806 034147 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5807 000000 AEE=0 ;INITIAL C(E) + 5808 034150 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0124 + + 5809 034151 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5810 000000 AR1=0 ;EXPECTED RESULT IN AC + 5811 034152 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5812 034153 003 10 0 00 032341 ER3 AC,32341 ;HIGH PRODUCT FAILED + 5813 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5814 034154 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5815 034155 004 11 0 00 032342 ER4 AC+1,32342 ;LOW PRODUCT FAILED + 5816 000000 AEE=0 ;INITIAL C(E) + 5817 034156 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5818 034157 005 06 0 00 032343 ER5 E,32343 ;C(E) WAS CLOBBERED + 5819 034160 321 12 0 00 034146 JUMPL AC+2,F32340 ;LOOP ON ERROR SWITCH^ + 5820 + 5821 003235 ADR=ADR+1 + 5822 777777 677777 XX=XX+XX+1 + 5823 IFE , + 5824 + 5825 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5826 MOP1 (\ADR,XX,-1,0,0,0)^ + 5827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5828 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5829 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5831 + 5832 777777 677777 F32350: AA1=XX ;INITIAL C(AC) + 5833 034161 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5834 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5835 034162 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5836 000000 AEE=0 ;INITIAL C(E) + 5837 034163 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5838 034164 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5839 000000 AR1=0 ;EXPECTED RESULT IN AC + 5840 034165 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5841 034166 003 10 0 00 032351 ER3 AC,32351 ;HIGH PRODUCT FAILED + 5842 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5843 034167 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5844 034170 004 11 0 00 032352 ER4 AC+1,32352 ;LOW PRODUCT FAILED + 5845 000000 AEE=0 ;INITIAL C(E) + 5846 034171 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5847 034172 005 06 0 00 032353 ER5 E,32353 ;C(E) WAS CLOBBERED + 5848 034173 321 12 0 00 034161 JUMPL AC+2,F32350 ;LOOP ON ERROR SWITCH^ + 5849 + 5850 003236 ADR=ADR+1 + 5851 777777 577777 XX=XX+XX+1 + 5852 IFE , + 5853 + 5854 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5855 MOP1 (\ADR,XX,-1,0,0,0)^ + 5856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5857 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5858 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5860 + 5861 777777 577777 F32360: AA1=XX ;INITIAL C(AC) + 5862 034174 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5863 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0125 + + 5864 034175 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5865 000000 AEE=0 ;INITIAL C(E) + 5866 034176 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5867 034177 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5868 000000 AR1=0 ;EXPECTED RESULT IN AC + 5869 034200 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5870 034201 003 10 0 00 032361 ER3 AC,32361 ;HIGH PRODUCT FAILED + 5871 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5872 034202 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5873 034203 004 11 0 00 032362 ER4 AC+1,32362 ;LOW PRODUCT FAILED + 5874 000000 AEE=0 ;INITIAL C(E) + 5875 034204 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5876 034205 005 06 0 00 032363 ER5 E,32363 ;C(E) WAS CLOBBERED + 5877 034206 321 12 0 00 034174 JUMPL AC+2,F32360 ;LOOP ON ERROR SWITCH^ + 5878 + 5879 003237 ADR=ADR+1 + 5880 777777 377777 XX=XX+XX+1 + 5881 IFE , + 5882 + 5883 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5884 MOP1 (\ADR,XX,-1,0,0,0)^ + 5885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5886 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5887 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5889 + 5890 777777 377777 F32370: AA1=XX ;INITIAL C(AC) + 5891 034207 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5892 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5893 034210 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5894 000000 AEE=0 ;INITIAL C(E) + 5895 034211 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5896 034212 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5897 000000 AR1=0 ;EXPECTED RESULT IN AC + 5898 034213 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5899 034214 003 10 0 00 032371 ER3 AC,32371 ;HIGH PRODUCT FAILED + 5900 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5901 034215 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5902 034216 004 11 0 00 032372 ER4 AC+1,32372 ;LOW PRODUCT FAILED + 5903 000000 AEE=0 ;INITIAL C(E) + 5904 034217 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5905 034220 005 06 0 00 032373 ER5 E,32373 ;C(E) WAS CLOBBERED + 5906 034221 321 12 0 00 034207 JUMPL AC+2,F32370 ;LOOP ON ERROR SWITCH^ + 5907 + 5908 003240 ADR=ADR+1 + 5909 777776 777777 XX=XX+XX+1 + 5910 IFE , + 5911 + 5912 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5913 MOP1 (\ADR,XX,-1,0,0,0)^ + 5914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5915 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5916 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5918 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0126 + + 5919 777776 777777 F32400: AA1=XX ;INITIAL C(AC) + 5920 034222 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5921 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5922 034223 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5923 000000 AEE=0 ;INITIAL C(E) + 5924 034224 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5925 034225 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5926 000000 AR1=0 ;EXPECTED RESULT IN AC + 5927 034226 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5928 034227 003 10 0 00 032401 ER3 AC,32401 ;HIGH PRODUCT FAILED + 5929 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5930 034230 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5931 034231 004 11 0 00 032402 ER4 AC+1,32402 ;LOW PRODUCT FAILED + 5932 000000 AEE=0 ;INITIAL C(E) + 5933 034232 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5934 034233 005 06 0 00 032403 ER5 E,32403 ;C(E) WAS CLOBBERED + 5935 034234 321 12 0 00 034222 JUMPL AC+2,F32400 ;LOOP ON ERROR SWITCH^ + 5936 + 5937 003241 ADR=ADR+1 + 5938 777775 777777 XX=XX+XX+1 + 5939 IFE , + 5940 + 5941 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5942 MOP1 (\ADR,XX,-1,0,0,0)^ + 5943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5944 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 5945 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5947 + 5948 777775 777777 F32410: AA1=XX ;INITIAL C(AC) + 5949 034235 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5950 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5951 034236 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5952 000000 AEE=0 ;INITIAL C(E) + 5953 034237 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5954 034240 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5955 000000 AR1=0 ;EXPECTED RESULT IN AC + 5956 034241 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5957 034242 003 10 0 00 032411 ER3 AC,32411 ;HIGH PRODUCT FAILED + 5958 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5959 034243 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5960 034244 004 11 0 00 032412 ER4 AC+1,32412 ;LOW PRODUCT FAILED + 5961 000000 AEE=0 ;INITIAL C(E) + 5962 034245 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5963 034246 005 06 0 00 032413 ER5 E,32413 ;C(E) WAS CLOBBERED + 5964 034247 321 12 0 00 034235 JUMPL AC+2,F32410 ;LOOP ON ERROR SWITCH^ + 5965 + 5966 003242 ADR=ADR+1 + 5967 777773 777777 XX=XX+XX+1 + 5968 IFE , + 5969 + 5970 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 5971 MOP1 (\ADR,XX,-1,0,0,0)^ + 5972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 5973 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0127 + + 5974 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 5975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 5976 + 5977 777773 777777 F32420: AA1=XX ;INITIAL C(AC) + 5978 034250 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 5979 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 5980 034251 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 5981 000000 AEE=0 ;INITIAL C(E) + 5982 034252 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 5983 034253 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 5984 000000 AR1=0 ;EXPECTED RESULT IN AC + 5985 034254 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 5986 034255 003 10 0 00 032421 ER3 AC,32421 ;HIGH PRODUCT FAILED + 5987 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 5988 034256 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 5989 034257 004 11 0 00 032422 ER4 AC+1,32422 ;LOW PRODUCT FAILED + 5990 000000 AEE=0 ;INITIAL C(E) + 5991 034260 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 5992 034261 005 06 0 00 032423 ER5 E,32423 ;C(E) WAS CLOBBERED + 5993 034262 321 12 0 00 034250 JUMPL AC+2,F32420 ;LOOP ON ERROR SWITCH^ + 5994 + 5995 003243 ADR=ADR+1 + 5996 777767 777777 XX=XX+XX+1 + 5997 IFE , + 5998 + 5999 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6000 MOP1 (\ADR,XX,-1,0,0,0)^ + 6001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6002 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6003 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6005 + 6006 777767 777777 F32430: AA1=XX ;INITIAL C(AC) + 6007 034263 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6008 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6009 034264 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6010 000000 AEE=0 ;INITIAL C(E) + 6011 034265 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6012 034266 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6013 000000 AR1=0 ;EXPECTED RESULT IN AC + 6014 034267 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6015 034270 003 10 0 00 032431 ER3 AC,32431 ;HIGH PRODUCT FAILED + 6016 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6017 034271 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6018 034272 004 11 0 00 032432 ER4 AC+1,32432 ;LOW PRODUCT FAILED + 6019 000000 AEE=0 ;INITIAL C(E) + 6020 034273 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6021 034274 005 06 0 00 032433 ER5 E,32433 ;C(E) WAS CLOBBERED + 6022 034275 321 12 0 00 034263 JUMPL AC+2,F32430 ;LOOP ON ERROR SWITCH^ + 6023 + 6024 003244 ADR=ADR+1 + 6025 777757 777777 XX=XX+XX+1 + 6026 IFE , + 6027 + 6028 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0128 + + 6029 MOP1 (\ADR,XX,-1,0,0,0)^ + 6030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6031 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6032 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6034 + 6035 777757 777777 F32440: AA1=XX ;INITIAL C(AC) + 6036 034276 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6037 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6038 034277 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6039 000000 AEE=0 ;INITIAL C(E) + 6040 034300 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6041 034301 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6042 000000 AR1=0 ;EXPECTED RESULT IN AC + 6043 034302 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6044 034303 003 10 0 00 032441 ER3 AC,32441 ;HIGH PRODUCT FAILED + 6045 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6046 034304 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6047 034305 004 11 0 00 032442 ER4 AC+1,32442 ;LOW PRODUCT FAILED + 6048 000000 AEE=0 ;INITIAL C(E) + 6049 034306 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6050 034307 005 06 0 00 032443 ER5 E,32443 ;C(E) WAS CLOBBERED + 6051 034310 321 12 0 00 034276 JUMPL AC+2,F32440 ;LOOP ON ERROR SWITCH^ + 6052 + 6053 003245 ADR=ADR+1 + 6054 777737 777777 XX=XX+XX+1 + 6055 IFE , + 6056 + 6057 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6058 MOP1 (\ADR,XX,-1,0,0,0)^ + 6059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6060 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6061 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6063 + 6064 777737 777777 F32450: AA1=XX ;INITIAL C(AC) + 6065 034311 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6066 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6067 034312 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6068 000000 AEE=0 ;INITIAL C(E) + 6069 034313 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6070 034314 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6071 000000 AR1=0 ;EXPECTED RESULT IN AC + 6072 034315 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6073 034316 003 10 0 00 032451 ER3 AC,32451 ;HIGH PRODUCT FAILED + 6074 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6075 034317 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6076 034320 004 11 0 00 032452 ER4 AC+1,32452 ;LOW PRODUCT FAILED + 6077 000000 AEE=0 ;INITIAL C(E) + 6078 034321 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6079 034322 005 06 0 00 032453 ER5 E,32453 ;C(E) WAS CLOBBERED + 6080 034323 321 12 0 00 034311 JUMPL AC+2,F32450 ;LOOP ON ERROR SWITCH^ + 6081 + 6082 003246 ADR=ADR+1 + 6083 777677 777777 XX=XX+XX+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0129 + + 6084 IFE , + 6085 + 6086 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6087 MOP1 (\ADR,XX,-1,0,0,0)^ + 6088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6089 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6090 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6092 + 6093 777677 777777 F32460: AA1=XX ;INITIAL C(AC) + 6094 034324 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6095 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6096 034325 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6097 000000 AEE=0 ;INITIAL C(E) + 6098 034326 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6099 034327 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6100 000000 AR1=0 ;EXPECTED RESULT IN AC + 6101 034330 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6102 034331 003 10 0 00 032461 ER3 AC,32461 ;HIGH PRODUCT FAILED + 6103 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6104 034332 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6105 034333 004 11 0 00 032462 ER4 AC+1,32462 ;LOW PRODUCT FAILED + 6106 000000 AEE=0 ;INITIAL C(E) + 6107 034334 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6108 034335 005 06 0 00 032463 ER5 E,32463 ;C(E) WAS CLOBBERED + 6109 034336 321 12 0 00 034324 JUMPL AC+2,F32460 ;LOOP ON ERROR SWITCH^ + 6110 + 6111 003247 ADR=ADR+1 + 6112 777577 777777 XX=XX+XX+1 + 6113 IFE , + 6114 + 6115 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6116 MOP1 (\ADR,XX,-1,0,0,0)^ + 6117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6118 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6119 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6121 + 6122 777577 777777 F32470: AA1=XX ;INITIAL C(AC) + 6123 034337 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6124 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6125 034340 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6126 000000 AEE=0 ;INITIAL C(E) + 6127 034341 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6128 034342 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6129 000000 AR1=0 ;EXPECTED RESULT IN AC + 6130 034343 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6131 034344 003 10 0 00 032471 ER3 AC,32471 ;HIGH PRODUCT FAILED + 6132 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6133 034345 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6134 034346 004 11 0 00 032472 ER4 AC+1,32472 ;LOW PRODUCT FAILED + 6135 000000 AEE=0 ;INITIAL C(E) + 6136 034347 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6137 034350 005 06 0 00 032473 ER5 E,32473 ;C(E) WAS CLOBBERED + 6138 034351 321 12 0 00 034337 JUMPL AC+2,F32470 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0130 + + 6139 + 6140 003250 ADR=ADR+1 + 6141 777377 777777 XX=XX+XX+1 + 6142 IFE , + 6143 + 6144 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6145 MOP1 (\ADR,XX,-1,0,0,0)^ + 6146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6147 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6148 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6150 + 6151 777377 777777 F32500: AA1=XX ;INITIAL C(AC) + 6152 034352 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6153 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6154 034353 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6155 000000 AEE=0 ;INITIAL C(E) + 6156 034354 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6157 034355 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6158 000000 AR1=0 ;EXPECTED RESULT IN AC + 6159 034356 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6160 034357 003 10 0 00 032501 ER3 AC,32501 ;HIGH PRODUCT FAILED + 6161 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6162 034360 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6163 034361 004 11 0 00 032502 ER4 AC+1,32502 ;LOW PRODUCT FAILED + 6164 000000 AEE=0 ;INITIAL C(E) + 6165 034362 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6166 034363 005 06 0 00 032503 ER5 E,32503 ;C(E) WAS CLOBBERED + 6167 034364 321 12 0 00 034352 JUMPL AC+2,F32500 ;LOOP ON ERROR SWITCH^ + 6168 + 6169 003251 ADR=ADR+1 + 6170 776777 777777 XX=XX+XX+1 + 6171 IFE , + 6172 + 6173 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6174 MOP1 (\ADR,XX,-1,0,0,0)^ + 6175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6176 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6177 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6179 + 6180 776777 777777 F32510: AA1=XX ;INITIAL C(AC) + 6181 034365 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6182 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6183 034366 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6184 000000 AEE=0 ;INITIAL C(E) + 6185 034367 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6186 034370 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6187 000000 AR1=0 ;EXPECTED RESULT IN AC + 6188 034371 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6189 034372 003 10 0 00 032511 ER3 AC,32511 ;HIGH PRODUCT FAILED + 6190 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6191 034373 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6192 034374 004 11 0 00 032512 ER4 AC+1,32512 ;LOW PRODUCT FAILED + 6193 000000 AEE=0 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0131 + + 6194 034375 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6195 034376 005 06 0 00 032513 ER5 E,32513 ;C(E) WAS CLOBBERED + 6196 034377 321 12 0 00 034365 JUMPL AC+2,F32510 ;LOOP ON ERROR SWITCH^ + 6197 + 6198 003252 ADR=ADR+1 + 6199 775777 777777 XX=XX+XX+1 + 6200 IFE , + 6201 + 6202 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6203 MOP1 (\ADR,XX,-1,0,0,0)^ + 6204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6205 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6206 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6208 + 6209 775777 777777 F32520: AA1=XX ;INITIAL C(AC) + 6210 034400 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6211 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6212 034401 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6213 000000 AEE=0 ;INITIAL C(E) + 6214 034402 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6215 034403 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6216 000000 AR1=0 ;EXPECTED RESULT IN AC + 6217 034404 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6218 034405 003 10 0 00 032521 ER3 AC,32521 ;HIGH PRODUCT FAILED + 6219 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6220 034406 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6221 034407 004 11 0 00 032522 ER4 AC+1,32522 ;LOW PRODUCT FAILED + 6222 000000 AEE=0 ;INITIAL C(E) + 6223 034410 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6224 034411 005 06 0 00 032523 ER5 E,32523 ;C(E) WAS CLOBBERED + 6225 034412 321 12 0 00 034400 JUMPL AC+2,F32520 ;LOOP ON ERROR SWITCH^ + 6226 + 6227 003253 ADR=ADR+1 + 6228 773777 777777 XX=XX+XX+1 + 6229 IFE , + 6230 + 6231 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6232 MOP1 (\ADR,XX,-1,0,0,0)^ + 6233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6234 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6235 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6237 + 6238 773777 777777 F32530: AA1=XX ;INITIAL C(AC) + 6239 034413 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6240 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6241 034414 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6242 000000 AEE=0 ;INITIAL C(E) + 6243 034415 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6244 034416 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6245 000000 AR1=0 ;EXPECTED RESULT IN AC + 6246 034417 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6247 034420 003 10 0 00 032531 ER3 AC,32531 ;HIGH PRODUCT FAILED + 6248 000000 AR2=0 ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0132 + + 6249 034421 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6250 034422 004 11 0 00 032532 ER4 AC+1,32532 ;LOW PRODUCT FAILED + 6251 000000 AEE=0 ;INITIAL C(E) + 6252 034423 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6253 034424 005 06 0 00 032533 ER5 E,32533 ;C(E) WAS CLOBBERED + 6254 034425 321 12 0 00 034413 JUMPL AC+2,F32530 ;LOOP ON ERROR SWITCH^ + 6255 + 6256 003254 ADR=ADR+1 + 6257 767777 777777 XX=XX+XX+1 + 6258 IFE , + 6259 + 6260 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6261 MOP1 (\ADR,XX,-1,0,0,0)^ + 6262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6263 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6264 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6266 + 6267 767777 777777 F32540: AA1=XX ;INITIAL C(AC) + 6268 034426 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6269 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6270 034427 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6271 000000 AEE=0 ;INITIAL C(E) + 6272 034430 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6273 034431 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6274 000000 AR1=0 ;EXPECTED RESULT IN AC + 6275 034432 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6276 034433 003 10 0 00 032541 ER3 AC,32541 ;HIGH PRODUCT FAILED + 6277 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6278 034434 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6279 034435 004 11 0 00 032542 ER4 AC+1,32542 ;LOW PRODUCT FAILED + 6280 000000 AEE=0 ;INITIAL C(E) + 6281 034436 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6282 034437 005 06 0 00 032543 ER5 E,32543 ;C(E) WAS CLOBBERED + 6283 034440 321 12 0 00 034426 JUMPL AC+2,F32540 ;LOOP ON ERROR SWITCH^ + 6284 + 6285 003255 ADR=ADR+1 + 6286 757777 777777 XX=XX+XX+1 + 6287 IFE , + 6288 + 6289 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6290 MOP1 (\ADR,XX,-1,0,0,0)^ + 6291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6292 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6293 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6295 + 6296 757777 777777 F32550: AA1=XX ;INITIAL C(AC) + 6297 034441 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6298 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6299 034442 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6300 000000 AEE=0 ;INITIAL C(E) + 6301 034443 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6302 034444 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6303 000000 AR1=0 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0133 + + 6304 034445 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6305 034446 003 10 0 00 032551 ER3 AC,32551 ;HIGH PRODUCT FAILED + 6306 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6307 034447 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6308 034450 004 11 0 00 032552 ER4 AC+1,32552 ;LOW PRODUCT FAILED + 6309 000000 AEE=0 ;INITIAL C(E) + 6310 034451 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6311 034452 005 06 0 00 032553 ER5 E,32553 ;C(E) WAS CLOBBERED + 6312 034453 321 12 0 00 034441 JUMPL AC+2,F32550 ;LOOP ON ERROR SWITCH^ + 6313 + 6314 003256 ADR=ADR+1 + 6315 737777 777777 XX=XX+XX+1 + 6316 IFE , + 6317 + 6318 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6319 MOP1 (\ADR,XX,-1,0,0,0)^ + 6320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6321 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6322 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6324 + 6325 737777 777777 F32560: AA1=XX ;INITIAL C(AC) + 6326 034454 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6327 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6328 034455 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6329 000000 AEE=0 ;INITIAL C(E) + 6330 034456 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6331 034457 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6332 000000 AR1=0 ;EXPECTED RESULT IN AC + 6333 034460 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6334 034461 003 10 0 00 032561 ER3 AC,32561 ;HIGH PRODUCT FAILED + 6335 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6336 034462 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6337 034463 004 11 0 00 032562 ER4 AC+1,32562 ;LOW PRODUCT FAILED + 6338 000000 AEE=0 ;INITIAL C(E) + 6339 034464 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6340 034465 005 06 0 00 032563 ER5 E,32563 ;C(E) WAS CLOBBERED + 6341 034466 321 12 0 00 034454 JUMPL AC+2,F32560 ;LOOP ON ERROR SWITCH^ + 6342 + 6343 003257 ADR=ADR+1 + 6344 677777 777777 XX=XX+XX+1 + 6345 IFE , + 6346 + 6347 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6348 MOP1 (\ADR,XX,-1,0,0,0)^ + 6349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6350 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6351 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6353 + 6354 677777 777777 F32570: AA1=XX ;INITIAL C(AC) + 6355 034467 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6356 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6357 034470 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6358 000000 AEE=0 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0134 + + 6359 034471 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6360 034472 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6361 000000 AR1=0 ;EXPECTED RESULT IN AC + 6362 034473 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6363 034474 003 10 0 00 032571 ER3 AC,32571 ;HIGH PRODUCT FAILED + 6364 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6365 034475 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6366 034476 004 11 0 00 032572 ER4 AC+1,32572 ;LOW PRODUCT FAILED + 6367 000000 AEE=0 ;INITIAL C(E) + 6368 034477 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6369 034500 005 06 0 00 032573 ER5 E,32573 ;C(E) WAS CLOBBERED + 6370 034501 321 12 0 00 034467 JUMPL AC+2,F32570 ;LOOP ON ERROR SWITCH^ + 6371 + 6372 003260 ADR=ADR+1 + 6373 577777 777777 XX=XX+XX+1 + 6374 IFE , + 6375 + 6376 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6377 MOP1 (\ADR,XX,-1,0,0,0)^ + 6378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6379 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6380 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6382 + 6383 577777 777777 F32600: AA1=XX ;INITIAL C(AC) + 6384 034502 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 6385 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6386 034503 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6387 000000 AEE=0 ;INITIAL C(E) + 6388 034504 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6389 034505 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6390 000000 AR1=0 ;EXPECTED RESULT IN AC + 6391 034506 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6392 034507 003 10 0 00 032601 ER3 AC,32601 ;HIGH PRODUCT FAILED + 6393 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6394 034510 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6395 034511 004 11 0 00 032602 ER4 AC+1,32602 ;LOW PRODUCT FAILED + 6396 000000 AEE=0 ;INITIAL C(E) + 6397 034512 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6398 034513 005 06 0 00 032603 ER5 E,32603 ;C(E) WAS CLOBBERED + 6399 034514 321 12 0 00 034502 JUMPL AC+2,F32600 ;LOOP ON ERROR SWITCH^ + 6400 + 6401 003261 ADR=ADR+1 + 6402 377777 777777 XX=XX+XX+1 + 6403 IFE , + 6404 + 6405 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + 6406 MOP1 (\ADR,XX,-1,0,0,0)^ + 6407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 6408 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6409 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6411 + 6412 377777 777777 F32610: AA1=XX ;INITIAL C(AC) + 6413 034515 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0135 + + 6414 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6415 034516 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6416 000000 AEE=0 ;INITIAL C(E) + 6417 034517 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6418 034520 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6419 000000 AR1=0 ;EXPECTED RESULT IN AC + 6420 034521 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6421 034522 003 10 0 00 032611 ER3 AC,32611 ;HIGH PRODUCT FAILED + 6422 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6423 034523 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6424 034524 004 11 0 00 032612 ER4 AC+1,32612 ;LOW PRODUCT FAILED + 6425 000000 AEE=0 ;INITIAL C(E) + 6426 034525 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6427 034526 005 06 0 00 032613 ER5 E,32613 ;C(E) WAS CLOBBERED + 6428 034527 321 12 0 00 034515 JUMPL AC+2,F32610 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0136 + + 6429 000007 AC=7 + 6430 000005 E=&17 + 6431 SAVEAC (1,1)^ + 6432 034530 201 11 0 00 034530 MOVEI AC+2,. ;SAVE TEST PC + 6433 034531 202 11 0 00 030051 MOVEM AC+2,TESTPC + 6434 034532 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6435 034533 202 11 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6436 003262 ADR=ADR+1 + 6437 + 6438 ;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0 + 6439 MOP1 (\ADR,-1,-1,0,0,0)^ + 6440 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 6441 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6442 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. + 6443 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6444 + 6445 777777 777777 F32620: AA1=-1 ;INITIAL C(AC) + 6446 034534 200 07 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 6447 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6448 034535 200 10 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6449 000000 AEE=0 ;INITIAL C(E) + 6450 034536 200 05 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) + 6451 034537 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6452 000000 AR1=0 ;EXPECTED RESULT IN AC + 6453 034540 312 07 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? + 6454 034541 003 07 0 00 032621 ER3 AC,32621 ;HIGH PRODUCT FAILED + 6455 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 6456 034542 312 10 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 6457 034543 004 10 0 00 032622 ER4 AC+1,32622 ;LOW PRODUCT FAILED + 6458 000000 AEE=0 ;INITIAL C(E) + 6459 034544 312 05 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? + 6460 034545 005 05 0 00 032623 ER5 E,32623 ;C(E) WAS CLOBBERED + 6461 034546 321 11 0 00 034534 JUMPL AC+2,F32620 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0137 + + 6462 SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT + 6463 + 6464 000006 AC=6 + 6465 000004 E=&17 + 6466 SAVEAC (1,1)^ + 6467 034547 201 10 0 00 034547 MOVEI AC+2,. ;SAVE TEST PC + 6468 034550 202 10 0 00 030051 MOVEM AC+2,TESTPC + 6469 034551 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 6470 034552 202 10 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 6471 + 6472 000000 XX=0 + 6473 + 6474 REPEAT ^D36, < + 6475 ADR=ADR+1 + 6476 XX=XX+XX + 6477 IFE XX, + 6478 + 6479 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6480 IFG XX, + 6481 IFL XX, + 6482 MOP1 (\ADR,1,-1,XX,V1,XX)> + 6483 + 6484 003263 ADR=ADR+1 + 6485 000000 XX=XX+XX + 6486 000001 IFE XX, + 6487 + 6488 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6489 000000 IFG XX, + 6490 IFL XX, + 6491 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6493 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6494 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6496 + 6497 000001 F32630: AA1=1 ;INITIAL C(AC) + 6498 034553 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6499 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6500 034554 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6501 000001 AEE=XX ;INITIAL C(E) + 6502 034555 200 04 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6503 034556 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6504 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6505 034557 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6506 034560 003 06 0 00 032631 ER3 AC,32631 ;HIGH PRODUCT FAILED + 6507 000001 AR2=XX ;EXPECTED RESULT IN AC+1 + 6508 034561 312 07 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6509 034562 004 07 0 00 032632 ER4 AC+1,32632 ;LOW PRODUCT FAILED + 6510 000001 AEE=XX ;INITIAL C(E) + 6511 034563 312 04 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6512 034564 005 04 0 00 032633 ER5 E,32633 ;C(E) WAS CLOBBERED + 6513 034565 321 10 0 00 034553 JUMPL AC+2,F32630 ;LOOP ON ERROR SWITCH^ + 6514 + 6515 003264 ADR=ADR+1 + 6516 000002 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0138 + + 6517 IFE XX, + 6518 + 6519 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6520 000000 IFG XX, + 6521 IFL XX, + 6522 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6525 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6527 + 6528 000001 F32640: AA1=1 ;INITIAL C(AC) + 6529 034566 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6530 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6531 034567 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6532 000002 AEE=XX ;INITIAL C(E) + 6533 034570 200 04 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6534 034571 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6535 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6536 034572 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6537 034573 003 06 0 00 032641 ER3 AC,32641 ;HIGH PRODUCT FAILED + 6538 000002 AR2=XX ;EXPECTED RESULT IN AC+1 + 6539 034574 312 07 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6540 034575 004 07 0 00 032642 ER4 AC+1,32642 ;LOW PRODUCT FAILED + 6541 000002 AEE=XX ;INITIAL C(E) + 6542 034576 312 04 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6543 034577 005 04 0 00 032643 ER5 E,32643 ;C(E) WAS CLOBBERED + 6544 034600 321 10 0 00 034566 JUMPL AC+2,F32640 ;LOOP ON ERROR SWITCH^ + 6545 + 6546 003265 ADR=ADR+1 + 6547 000004 XX=XX+XX + 6548 IFE XX, + 6549 + 6550 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6551 000000 IFG XX, + 6552 IFL XX, + 6553 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6556 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6558 + 6559 000001 F32650: AA1=1 ;INITIAL C(AC) + 6560 034601 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6561 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6562 034602 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6563 000004 AEE=XX ;INITIAL C(E) + 6564 034603 200 04 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6565 034604 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6566 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6567 034605 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6568 034606 003 06 0 00 032651 ER3 AC,32651 ;HIGH PRODUCT FAILED + 6569 000004 AR2=XX ;EXPECTED RESULT IN AC+1 + 6570 034607 312 07 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6571 034610 004 07 0 00 032652 ER4 AC+1,32652 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0139 + + 6572 000004 AEE=XX ;INITIAL C(E) + 6573 034611 312 04 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6574 034612 005 04 0 00 032653 ER5 E,32653 ;C(E) WAS CLOBBERED + 6575 034613 321 10 0 00 034601 JUMPL AC+2,F32650 ;LOOP ON ERROR SWITCH^ + 6576 + 6577 003266 ADR=ADR+1 + 6578 000010 XX=XX+XX + 6579 IFE XX, + 6580 + 6581 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6582 000000 IFG XX, + 6583 IFL XX, + 6584 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6586 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6587 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6589 + 6590 000001 F32660: AA1=1 ;INITIAL C(AC) + 6591 034614 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6592 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6593 034615 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6594 000010 AEE=XX ;INITIAL C(E) + 6595 034616 200 04 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6596 034617 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6597 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6598 034620 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6599 034621 003 06 0 00 032661 ER3 AC,32661 ;HIGH PRODUCT FAILED + 6600 000010 AR2=XX ;EXPECTED RESULT IN AC+1 + 6601 034622 312 07 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6602 034623 004 07 0 00 032662 ER4 AC+1,32662 ;LOW PRODUCT FAILED + 6603 000010 AEE=XX ;INITIAL C(E) + 6604 034624 312 04 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6605 034625 005 04 0 00 032663 ER5 E,32663 ;C(E) WAS CLOBBERED + 6606 034626 321 10 0 00 034614 JUMPL AC+2,F32660 ;LOOP ON ERROR SWITCH^ + 6607 + 6608 003267 ADR=ADR+1 + 6609 000020 XX=XX+XX + 6610 IFE XX, + 6611 + 6612 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6613 000000 IFG XX, + 6614 IFL XX, + 6615 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6616 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6617 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6618 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6619 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6620 + 6621 000001 F32670: AA1=1 ;INITIAL C(AC) + 6622 034627 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6623 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6624 034630 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6625 000020 AEE=XX ;INITIAL C(E) + 6626 034631 200 04 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0140 + + 6627 034632 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6628 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6629 034633 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6630 034634 003 06 0 00 032671 ER3 AC,32671 ;HIGH PRODUCT FAILED + 6631 000020 AR2=XX ;EXPECTED RESULT IN AC+1 + 6632 034635 312 07 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6633 034636 004 07 0 00 032672 ER4 AC+1,32672 ;LOW PRODUCT FAILED + 6634 000020 AEE=XX ;INITIAL C(E) + 6635 034637 312 04 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6636 034640 005 04 0 00 032673 ER5 E,32673 ;C(E) WAS CLOBBERED + 6637 034641 321 10 0 00 034627 JUMPL AC+2,F32670 ;LOOP ON ERROR SWITCH^ + 6638 + 6639 003270 ADR=ADR+1 + 6640 000040 XX=XX+XX + 6641 IFE XX, + 6642 + 6643 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6644 000000 IFG XX, + 6645 IFL XX, + 6646 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6647 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6648 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6649 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6650 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6651 + 6652 000001 F32700: AA1=1 ;INITIAL C(AC) + 6653 034642 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6654 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6655 034643 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6656 000040 AEE=XX ;INITIAL C(E) + 6657 034644 200 04 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6658 034645 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6659 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6660 034646 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6661 034647 003 06 0 00 032701 ER3 AC,32701 ;HIGH PRODUCT FAILED + 6662 000040 AR2=XX ;EXPECTED RESULT IN AC+1 + 6663 034650 312 07 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6664 034651 004 07 0 00 032702 ER4 AC+1,32702 ;LOW PRODUCT FAILED + 6665 000040 AEE=XX ;INITIAL C(E) + 6666 034652 312 04 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6667 034653 005 04 0 00 032703 ER5 E,32703 ;C(E) WAS CLOBBERED + 6668 034654 321 10 0 00 034642 JUMPL AC+2,F32700 ;LOOP ON ERROR SWITCH^ + 6669 + 6670 003271 ADR=ADR+1 + 6671 000100 XX=XX+XX + 6672 IFE XX, + 6673 + 6674 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6675 000000 IFG XX, + 6676 IFL XX, + 6677 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6680 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0141 + + 6682 + 6683 000001 F32710: AA1=1 ;INITIAL C(AC) + 6684 034655 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6685 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6686 034656 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6687 000100 AEE=XX ;INITIAL C(E) + 6688 034657 200 04 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6689 034660 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6690 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6691 034661 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6692 034662 003 06 0 00 032711 ER3 AC,32711 ;HIGH PRODUCT FAILED + 6693 000100 AR2=XX ;EXPECTED RESULT IN AC+1 + 6694 034663 312 07 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6695 034664 004 07 0 00 032712 ER4 AC+1,32712 ;LOW PRODUCT FAILED + 6696 000100 AEE=XX ;INITIAL C(E) + 6697 034665 312 04 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6698 034666 005 04 0 00 032713 ER5 E,32713 ;C(E) WAS CLOBBERED + 6699 034667 321 10 0 00 034655 JUMPL AC+2,F32710 ;LOOP ON ERROR SWITCH^ + 6700 + 6701 003272 ADR=ADR+1 + 6702 000200 XX=XX+XX + 6703 IFE XX, + 6704 + 6705 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6706 000000 IFG XX, + 6707 IFL XX, + 6708 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6711 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6713 + 6714 000001 F32720: AA1=1 ;INITIAL C(AC) + 6715 034670 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6716 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6717 034671 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6718 000200 AEE=XX ;INITIAL C(E) + 6719 034672 200 04 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6720 034673 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6721 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6722 034674 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6723 034675 003 06 0 00 032721 ER3 AC,32721 ;HIGH PRODUCT FAILED + 6724 000200 AR2=XX ;EXPECTED RESULT IN AC+1 + 6725 034676 312 07 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6726 034677 004 07 0 00 032722 ER4 AC+1,32722 ;LOW PRODUCT FAILED + 6727 000200 AEE=XX ;INITIAL C(E) + 6728 034700 312 04 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6729 034701 005 04 0 00 032723 ER5 E,32723 ;C(E) WAS CLOBBERED + 6730 034702 321 10 0 00 034670 JUMPL AC+2,F32720 ;LOOP ON ERROR SWITCH^ + 6731 + 6732 003273 ADR=ADR+1 + 6733 000400 XX=XX+XX + 6734 IFE XX, + 6735 + 6736 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0142 + + 6737 000000 IFG XX, + 6738 IFL XX, + 6739 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6741 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6742 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6744 + 6745 000001 F32730: AA1=1 ;INITIAL C(AC) + 6746 034703 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6747 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6748 034704 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6749 000400 AEE=XX ;INITIAL C(E) + 6750 034705 200 04 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6751 034706 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6752 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6753 034707 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6754 034710 003 06 0 00 032731 ER3 AC,32731 ;HIGH PRODUCT FAILED + 6755 000400 AR2=XX ;EXPECTED RESULT IN AC+1 + 6756 034711 312 07 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6757 034712 004 07 0 00 032732 ER4 AC+1,32732 ;LOW PRODUCT FAILED + 6758 000400 AEE=XX ;INITIAL C(E) + 6759 034713 312 04 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6760 034714 005 04 0 00 032733 ER5 E,32733 ;C(E) WAS CLOBBERED + 6761 034715 321 10 0 00 034703 JUMPL AC+2,F32730 ;LOOP ON ERROR SWITCH^ + 6762 + 6763 003274 ADR=ADR+1 + 6764 001000 XX=XX+XX + 6765 IFE XX, + 6766 + 6767 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6768 000000 IFG XX, + 6769 IFL XX, + 6770 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6771 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6772 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6773 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6774 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6775 + 6776 000001 F32740: AA1=1 ;INITIAL C(AC) + 6777 034716 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6778 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6779 034717 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6780 001000 AEE=XX ;INITIAL C(E) + 6781 034720 200 04 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6782 034721 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6783 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6784 034722 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6785 034723 003 06 0 00 032741 ER3 AC,32741 ;HIGH PRODUCT FAILED + 6786 001000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6787 034724 312 07 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6788 034725 004 07 0 00 032742 ER4 AC+1,32742 ;LOW PRODUCT FAILED + 6789 001000 AEE=XX ;INITIAL C(E) + 6790 034726 312 04 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6791 034727 005 04 0 00 032743 ER5 E,32743 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0143 + + 6792 034730 321 10 0 00 034716 JUMPL AC+2,F32740 ;LOOP ON ERROR SWITCH^ + 6793 + 6794 003275 ADR=ADR+1 + 6795 002000 XX=XX+XX + 6796 IFE XX, + 6797 + 6798 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6799 000000 IFG XX, + 6800 IFL XX, + 6801 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6802 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6803 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6804 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6805 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6806 + 6807 000001 F32750: AA1=1 ;INITIAL C(AC) + 6808 034731 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6809 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6810 034732 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6811 002000 AEE=XX ;INITIAL C(E) + 6812 034733 200 04 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6813 034734 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6814 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6815 034735 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6816 034736 003 06 0 00 032751 ER3 AC,32751 ;HIGH PRODUCT FAILED + 6817 002000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6818 034737 312 07 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6819 034740 004 07 0 00 032752 ER4 AC+1,32752 ;LOW PRODUCT FAILED + 6820 002000 AEE=XX ;INITIAL C(E) + 6821 034741 312 04 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6822 034742 005 04 0 00 032753 ER5 E,32753 ;C(E) WAS CLOBBERED + 6823 034743 321 10 0 00 034731 JUMPL AC+2,F32750 ;LOOP ON ERROR SWITCH^ + 6824 + 6825 003276 ADR=ADR+1 + 6826 004000 XX=XX+XX + 6827 IFE XX, + 6828 + 6829 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6830 000000 IFG XX, + 6831 IFL XX, + 6832 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6833 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6834 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6835 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6836 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6837 + 6838 000001 F32760: AA1=1 ;INITIAL C(AC) + 6839 034744 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6840 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6841 034745 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6842 004000 AEE=XX ;INITIAL C(E) + 6843 034746 200 04 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6844 034747 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6845 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6846 034750 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0144 + + 6847 034751 003 06 0 00 032761 ER3 AC,32761 ;HIGH PRODUCT FAILED + 6848 004000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6849 034752 312 07 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6850 034753 004 07 0 00 032762 ER4 AC+1,32762 ;LOW PRODUCT FAILED + 6851 004000 AEE=XX ;INITIAL C(E) + 6852 034754 312 04 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6853 034755 005 04 0 00 032763 ER5 E,32763 ;C(E) WAS CLOBBERED + 6854 034756 321 10 0 00 034744 JUMPL AC+2,F32760 ;LOOP ON ERROR SWITCH^ + 6855 + 6856 003277 ADR=ADR+1 + 6857 010000 XX=XX+XX + 6858 IFE XX, + 6859 + 6860 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6861 000000 IFG XX, + 6862 IFL XX, + 6863 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6864 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6865 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6866 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6867 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6868 + 6869 000001 F32770: AA1=1 ;INITIAL C(AC) + 6870 034757 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6871 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6872 034760 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6873 010000 AEE=XX ;INITIAL C(E) + 6874 034761 200 04 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6875 034762 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6876 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6877 034763 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6878 034764 003 06 0 00 032771 ER3 AC,32771 ;HIGH PRODUCT FAILED + 6879 010000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6880 034765 312 07 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6881 034766 004 07 0 00 032772 ER4 AC+1,32772 ;LOW PRODUCT FAILED + 6882 010000 AEE=XX ;INITIAL C(E) + 6883 034767 312 04 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6884 034770 005 04 0 00 032773 ER5 E,32773 ;C(E) WAS CLOBBERED + 6885 034771 321 10 0 00 034757 JUMPL AC+2,F32770 ;LOOP ON ERROR SWITCH^ + 6886 + 6887 003300 ADR=ADR+1 + 6888 020000 XX=XX+XX + 6889 IFE XX, + 6890 + 6891 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6892 000000 IFG XX, + 6893 IFL XX, + 6894 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6895 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6896 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6897 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6898 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6899 + 6900 000001 F33000: AA1=1 ;INITIAL C(AC) + 6901 034772 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0145 + + 6902 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6903 034773 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6904 020000 AEE=XX ;INITIAL C(E) + 6905 034774 200 04 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6906 034775 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6907 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6908 034776 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6909 034777 003 06 0 00 033001 ER3 AC,33001 ;HIGH PRODUCT FAILED + 6910 020000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6911 035000 312 07 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6912 035001 004 07 0 00 033002 ER4 AC+1,33002 ;LOW PRODUCT FAILED + 6913 020000 AEE=XX ;INITIAL C(E) + 6914 035002 312 04 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6915 035003 005 04 0 00 033003 ER5 E,33003 ;C(E) WAS CLOBBERED + 6916 035004 321 10 0 00 034772 JUMPL AC+2,F33000 ;LOOP ON ERROR SWITCH^ + 6917 + 6918 003301 ADR=ADR+1 + 6919 040000 XX=XX+XX + 6920 IFE XX, + 6921 + 6922 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6923 000000 IFG XX, + 6924 IFL XX, + 6925 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6926 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6927 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6928 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6929 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6930 + 6931 000001 F33010: AA1=1 ;INITIAL C(AC) + 6932 035005 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6933 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6934 035006 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6935 040000 AEE=XX ;INITIAL C(E) + 6936 035007 200 04 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6937 035010 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6938 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6939 035011 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6940 035012 003 06 0 00 033011 ER3 AC,33011 ;HIGH PRODUCT FAILED + 6941 040000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6942 035013 312 07 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6943 035014 004 07 0 00 033012 ER4 AC+1,33012 ;LOW PRODUCT FAILED + 6944 040000 AEE=XX ;INITIAL C(E) + 6945 035015 312 04 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6946 035016 005 04 0 00 033013 ER5 E,33013 ;C(E) WAS CLOBBERED + 6947 035017 321 10 0 00 035005 JUMPL AC+2,F33010 ;LOOP ON ERROR SWITCH^ + 6948 + 6949 003302 ADR=ADR+1 + 6950 100000 XX=XX+XX + 6951 IFE XX, + 6952 + 6953 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6954 000000 IFG XX, + 6955 IFL XX, + 6956 MOP1 (\ADR,1,-1,XX,V1,XX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0146 + + 6957 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6958 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6959 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6960 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6961 + 6962 000001 F33020: AA1=1 ;INITIAL C(AC) + 6963 035020 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6964 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6965 035021 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6966 100000 AEE=XX ;INITIAL C(E) + 6967 035022 200 04 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6968 035023 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 6969 000000 AR1=V1 ;EXPECTED RESULT IN AC + 6970 035024 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 6971 035025 003 06 0 00 033021 ER3 AC,33021 ;HIGH PRODUCT FAILED + 6972 100000 AR2=XX ;EXPECTED RESULT IN AC+1 + 6973 035026 312 07 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 6974 035027 004 07 0 00 033022 ER4 AC+1,33022 ;LOW PRODUCT FAILED + 6975 100000 AEE=XX ;INITIAL C(E) + 6976 035030 312 04 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? + 6977 035031 005 04 0 00 033023 ER5 E,33023 ;C(E) WAS CLOBBERED + 6978 035032 321 10 0 00 035020 JUMPL AC+2,F33020 ;LOOP ON ERROR SWITCH^ + 6979 + 6980 003303 ADR=ADR+1 + 6981 200000 XX=XX+XX + 6982 IFE XX, + 6983 + 6984 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 6985 000000 IFG XX, + 6986 IFL XX, + 6987 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 6988 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 6989 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 6990 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 6991 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 6992 + 6993 000001 F33030: AA1=1 ;INITIAL C(AC) + 6994 035033 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 6995 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 6996 035034 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 6997 200000 AEE=XX ;INITIAL C(E) + 6998 035035 200 04 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 6999 035036 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7000 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7001 035037 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7002 035040 003 06 0 00 033031 ER3 AC,33031 ;HIGH PRODUCT FAILED + 7003 200000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7004 035041 312 07 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7005 035042 004 07 0 00 033032 ER4 AC+1,33032 ;LOW PRODUCT FAILED + 7006 200000 AEE=XX ;INITIAL C(E) + 7007 035043 312 04 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7008 035044 005 04 0 00 033033 ER5 E,33033 ;C(E) WAS CLOBBERED + 7009 035045 321 10 0 00 035033 JUMPL AC+2,F33030 ;LOOP ON ERROR SWITCH^ + 7010 + 7011 003304 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0147 + + 7012 400000 XX=XX+XX + 7013 IFE XX, + 7014 + 7015 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7016 000000 IFG XX, + 7017 IFL XX, + 7018 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7019 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7020 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7021 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7022 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7023 + 7024 000001 F33040: AA1=1 ;INITIAL C(AC) + 7025 035046 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7026 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7027 035047 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7028 400000 AEE=XX ;INITIAL C(E) + 7029 035050 200 04 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7030 035051 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7031 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7032 035052 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7033 035053 003 06 0 00 033041 ER3 AC,33041 ;HIGH PRODUCT FAILED + 7034 400000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7035 035054 312 07 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7036 035055 004 07 0 00 033042 ER4 AC+1,33042 ;LOW PRODUCT FAILED + 7037 400000 AEE=XX ;INITIAL C(E) + 7038 035056 312 04 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7039 035057 005 04 0 00 033043 ER5 E,33043 ;C(E) WAS CLOBBERED + 7040 035060 321 10 0 00 035046 JUMPL AC+2,F33040 ;LOOP ON ERROR SWITCH^ + 7041 + 7042 003305 ADR=ADR+1 + 7043 000001 000000 XX=XX+XX + 7044 IFE XX, + 7045 + 7046 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7047 000000 IFG XX, + 7048 IFL XX, + 7049 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7050 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7051 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7052 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7053 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7054 + 7055 000001 F33050: AA1=1 ;INITIAL C(AC) + 7056 035061 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7057 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7058 035062 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7059 000001 000000 AEE=XX ;INITIAL C(E) + 7060 035063 200 04 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7061 035064 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7062 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7063 035065 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7064 035066 003 06 0 00 033051 ER3 AC,33051 ;HIGH PRODUCT FAILED + 7065 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7066 035067 312 07 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0148 + + 7067 035070 004 07 0 00 033052 ER4 AC+1,33052 ;LOW PRODUCT FAILED + 7068 000001 000000 AEE=XX ;INITIAL C(E) + 7069 035071 312 04 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7070 035072 005 04 0 00 033053 ER5 E,33053 ;C(E) WAS CLOBBERED + 7071 035073 321 10 0 00 035061 JUMPL AC+2,F33050 ;LOOP ON ERROR SWITCH^ + 7072 + 7073 003306 ADR=ADR+1 + 7074 000002 000000 XX=XX+XX + 7075 IFE XX, + 7076 + 7077 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7078 000000 IFG XX, + 7079 IFL XX, + 7080 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7082 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7083 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7085 + 7086 000001 F33060: AA1=1 ;INITIAL C(AC) + 7087 035074 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7088 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7089 035075 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7090 000002 000000 AEE=XX ;INITIAL C(E) + 7091 035076 200 04 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7092 035077 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7093 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7094 035100 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7095 035101 003 06 0 00 033061 ER3 AC,33061 ;HIGH PRODUCT FAILED + 7096 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7097 035102 312 07 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7098 035103 004 07 0 00 033062 ER4 AC+1,33062 ;LOW PRODUCT FAILED + 7099 000002 000000 AEE=XX ;INITIAL C(E) + 7100 035104 312 04 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7101 035105 005 04 0 00 033063 ER5 E,33063 ;C(E) WAS CLOBBERED + 7102 035106 321 10 0 00 035074 JUMPL AC+2,F33060 ;LOOP ON ERROR SWITCH^ + 7103 + 7104 003307 ADR=ADR+1 + 7105 000004 000000 XX=XX+XX + 7106 IFE XX, + 7107 + 7108 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7109 000000 IFG XX, + 7110 IFL XX, + 7111 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7112 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7113 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7114 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7115 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7116 + 7117 000001 F33070: AA1=1 ;INITIAL C(AC) + 7118 035107 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7119 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7120 035110 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7121 000004 000000 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0149 + + 7122 035111 200 04 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7123 035112 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7124 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7125 035113 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7126 035114 003 06 0 00 033071 ER3 AC,33071 ;HIGH PRODUCT FAILED + 7127 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7128 035115 312 07 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7129 035116 004 07 0 00 033072 ER4 AC+1,33072 ;LOW PRODUCT FAILED + 7130 000004 000000 AEE=XX ;INITIAL C(E) + 7131 035117 312 04 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7132 035120 005 04 0 00 033073 ER5 E,33073 ;C(E) WAS CLOBBERED + 7133 035121 321 10 0 00 035107 JUMPL AC+2,F33070 ;LOOP ON ERROR SWITCH^ + 7134 + 7135 003310 ADR=ADR+1 + 7136 000010 000000 XX=XX+XX + 7137 IFE XX, + 7138 + 7139 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7140 000000 IFG XX, + 7141 IFL XX, + 7142 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7143 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7144 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7145 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7146 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7147 + 7148 000001 F33100: AA1=1 ;INITIAL C(AC) + 7149 035122 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7150 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7151 035123 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7152 000010 000000 AEE=XX ;INITIAL C(E) + 7153 035124 200 04 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7154 035125 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7155 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7156 035126 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7157 035127 003 06 0 00 033101 ER3 AC,33101 ;HIGH PRODUCT FAILED + 7158 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7159 035130 312 07 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7160 035131 004 07 0 00 033102 ER4 AC+1,33102 ;LOW PRODUCT FAILED + 7161 000010 000000 AEE=XX ;INITIAL C(E) + 7162 035132 312 04 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7163 035133 005 04 0 00 033103 ER5 E,33103 ;C(E) WAS CLOBBERED + 7164 035134 321 10 0 00 035122 JUMPL AC+2,F33100 ;LOOP ON ERROR SWITCH^ + 7165 + 7166 003311 ADR=ADR+1 + 7167 000020 000000 XX=XX+XX + 7168 IFE XX, + 7169 + 7170 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7171 000000 IFG XX, + 7172 IFL XX, + 7173 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7174 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7175 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7176 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0150 + + 7177 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7178 + 7179 000001 F33110: AA1=1 ;INITIAL C(AC) + 7180 035135 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7181 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7182 035136 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7183 000020 000000 AEE=XX ;INITIAL C(E) + 7184 035137 200 04 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7185 035140 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7186 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7187 035141 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7188 035142 003 06 0 00 033111 ER3 AC,33111 ;HIGH PRODUCT FAILED + 7189 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7190 035143 312 07 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7191 035144 004 07 0 00 033112 ER4 AC+1,33112 ;LOW PRODUCT FAILED + 7192 000020 000000 AEE=XX ;INITIAL C(E) + 7193 035145 312 04 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7194 035146 005 04 0 00 033113 ER5 E,33113 ;C(E) WAS CLOBBERED + 7195 035147 321 10 0 00 035135 JUMPL AC+2,F33110 ;LOOP ON ERROR SWITCH^ + 7196 + 7197 003312 ADR=ADR+1 + 7198 000040 000000 XX=XX+XX + 7199 IFE XX, + 7200 + 7201 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7202 000000 IFG XX, + 7203 IFL XX, + 7204 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7205 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7206 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7207 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7208 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7209 + 7210 000001 F33120: AA1=1 ;INITIAL C(AC) + 7211 035150 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7212 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7213 035151 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7214 000040 000000 AEE=XX ;INITIAL C(E) + 7215 035152 200 04 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7216 035153 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7217 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7218 035154 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7219 035155 003 06 0 00 033121 ER3 AC,33121 ;HIGH PRODUCT FAILED + 7220 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7221 035156 312 07 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7222 035157 004 07 0 00 033122 ER4 AC+1,33122 ;LOW PRODUCT FAILED + 7223 000040 000000 AEE=XX ;INITIAL C(E) + 7224 035160 312 04 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7225 035161 005 04 0 00 033123 ER5 E,33123 ;C(E) WAS CLOBBERED + 7226 035162 321 10 0 00 035150 JUMPL AC+2,F33120 ;LOOP ON ERROR SWITCH^ + 7227 + 7228 003313 ADR=ADR+1 + 7229 000100 000000 XX=XX+XX + 7230 IFE XX, + 7231 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0151 + + 7232 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7233 000000 IFG XX, + 7234 IFL XX, + 7235 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7237 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7238 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7240 + 7241 000001 F33130: AA1=1 ;INITIAL C(AC) + 7242 035163 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7243 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7244 035164 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7245 000100 000000 AEE=XX ;INITIAL C(E) + 7246 035165 200 04 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7247 035166 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7248 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7249 035167 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7250 035170 003 06 0 00 033131 ER3 AC,33131 ;HIGH PRODUCT FAILED + 7251 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7252 035171 312 07 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7253 035172 004 07 0 00 033132 ER4 AC+1,33132 ;LOW PRODUCT FAILED + 7254 000100 000000 AEE=XX ;INITIAL C(E) + 7255 035173 312 04 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7256 035174 005 04 0 00 033133 ER5 E,33133 ;C(E) WAS CLOBBERED + 7257 035175 321 10 0 00 035163 JUMPL AC+2,F33130 ;LOOP ON ERROR SWITCH^ + 7258 + 7259 003314 ADR=ADR+1 + 7260 000200 000000 XX=XX+XX + 7261 IFE XX, + 7262 + 7263 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7264 000000 IFG XX, + 7265 IFL XX, + 7266 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7267 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7268 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7269 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7270 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7271 + 7272 000001 F33140: AA1=1 ;INITIAL C(AC) + 7273 035176 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7274 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7275 035177 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7276 000200 000000 AEE=XX ;INITIAL C(E) + 7277 035200 200 04 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7278 035201 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7279 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7280 035202 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7281 035203 003 06 0 00 033141 ER3 AC,33141 ;HIGH PRODUCT FAILED + 7282 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7283 035204 312 07 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7284 035205 004 07 0 00 033142 ER4 AC+1,33142 ;LOW PRODUCT FAILED + 7285 000200 000000 AEE=XX ;INITIAL C(E) + 7286 035206 312 04 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0152 + + 7287 035207 005 04 0 00 033143 ER5 E,33143 ;C(E) WAS CLOBBERED + 7288 035210 321 10 0 00 035176 JUMPL AC+2,F33140 ;LOOP ON ERROR SWITCH^ + 7289 + 7290 003315 ADR=ADR+1 + 7291 000400 000000 XX=XX+XX + 7292 IFE XX, + 7293 + 7294 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7295 000000 IFG XX, + 7296 IFL XX, + 7297 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7298 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7299 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7300 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7301 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7302 + 7303 000001 F33150: AA1=1 ;INITIAL C(AC) + 7304 035211 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7305 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7306 035212 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7307 000400 000000 AEE=XX ;INITIAL C(E) + 7308 035213 200 04 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7309 035214 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7310 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7311 035215 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7312 035216 003 06 0 00 033151 ER3 AC,33151 ;HIGH PRODUCT FAILED + 7313 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7314 035217 312 07 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7315 035220 004 07 0 00 033152 ER4 AC+1,33152 ;LOW PRODUCT FAILED + 7316 000400 000000 AEE=XX ;INITIAL C(E) + 7317 035221 312 04 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7318 035222 005 04 0 00 033153 ER5 E,33153 ;C(E) WAS CLOBBERED + 7319 035223 321 10 0 00 035211 JUMPL AC+2,F33150 ;LOOP ON ERROR SWITCH^ + 7320 + 7321 003316 ADR=ADR+1 + 7322 001000 000000 XX=XX+XX + 7323 IFE XX, + 7324 + 7325 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7326 000000 IFG XX, + 7327 IFL XX, + 7328 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7330 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7331 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7333 + 7334 000001 F33160: AA1=1 ;INITIAL C(AC) + 7335 035224 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7336 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7337 035225 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7338 001000 000000 AEE=XX ;INITIAL C(E) + 7339 035226 200 04 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7340 035227 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7341 000000 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0153 + + 7342 035230 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7343 035231 003 06 0 00 033161 ER3 AC,33161 ;HIGH PRODUCT FAILED + 7344 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7345 035232 312 07 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7346 035233 004 07 0 00 033162 ER4 AC+1,33162 ;LOW PRODUCT FAILED + 7347 001000 000000 AEE=XX ;INITIAL C(E) + 7348 035234 312 04 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7349 035235 005 04 0 00 033163 ER5 E,33163 ;C(E) WAS CLOBBERED + 7350 035236 321 10 0 00 035224 JUMPL AC+2,F33160 ;LOOP ON ERROR SWITCH^ + 7351 + 7352 003317 ADR=ADR+1 + 7353 002000 000000 XX=XX+XX + 7354 IFE XX, + 7355 + 7356 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7357 000000 IFG XX, + 7358 IFL XX, + 7359 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7360 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7361 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7362 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7363 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7364 + 7365 000001 F33170: AA1=1 ;INITIAL C(AC) + 7366 035237 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7367 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7368 035240 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7369 002000 000000 AEE=XX ;INITIAL C(E) + 7370 035241 200 04 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7371 035242 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7372 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7373 035243 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7374 035244 003 06 0 00 033171 ER3 AC,33171 ;HIGH PRODUCT FAILED + 7375 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7376 035245 312 07 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7377 035246 004 07 0 00 033172 ER4 AC+1,33172 ;LOW PRODUCT FAILED + 7378 002000 000000 AEE=XX ;INITIAL C(E) + 7379 035247 312 04 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7380 035250 005 04 0 00 033173 ER5 E,33173 ;C(E) WAS CLOBBERED + 7381 035251 321 10 0 00 035237 JUMPL AC+2,F33170 ;LOOP ON ERROR SWITCH^ + 7382 + 7383 003320 ADR=ADR+1 + 7384 004000 000000 XX=XX+XX + 7385 IFE XX, + 7386 + 7387 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7388 000000 IFG XX, + 7389 IFL XX, + 7390 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7391 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7392 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7393 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7394 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7395 + 7396 000001 F33200: AA1=1 ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0154 + + 7397 035252 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7398 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7399 035253 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7400 004000 000000 AEE=XX ;INITIAL C(E) + 7401 035254 200 04 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7402 035255 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7403 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7404 035256 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7405 035257 003 06 0 00 033201 ER3 AC,33201 ;HIGH PRODUCT FAILED + 7406 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7407 035260 312 07 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7408 035261 004 07 0 00 033202 ER4 AC+1,33202 ;LOW PRODUCT FAILED + 7409 004000 000000 AEE=XX ;INITIAL C(E) + 7410 035262 312 04 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7411 035263 005 04 0 00 033203 ER5 E,33203 ;C(E) WAS CLOBBERED + 7412 035264 321 10 0 00 035252 JUMPL AC+2,F33200 ;LOOP ON ERROR SWITCH^ + 7413 + 7414 003321 ADR=ADR+1 + 7415 010000 000000 XX=XX+XX + 7416 IFE XX, + 7417 + 7418 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7419 000000 IFG XX, + 7420 IFL XX, + 7421 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7422 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7423 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7424 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7425 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7426 + 7427 000001 F33210: AA1=1 ;INITIAL C(AC) + 7428 035265 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7429 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7430 035266 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7431 010000 000000 AEE=XX ;INITIAL C(E) + 7432 035267 200 04 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7433 035270 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7434 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7435 035271 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7436 035272 003 06 0 00 033211 ER3 AC,33211 ;HIGH PRODUCT FAILED + 7437 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7438 035273 312 07 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7439 035274 004 07 0 00 033212 ER4 AC+1,33212 ;LOW PRODUCT FAILED + 7440 010000 000000 AEE=XX ;INITIAL C(E) + 7441 035275 312 04 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7442 035276 005 04 0 00 033213 ER5 E,33213 ;C(E) WAS CLOBBERED + 7443 035277 321 10 0 00 035265 JUMPL AC+2,F33210 ;LOOP ON ERROR SWITCH^ + 7444 + 7445 003322 ADR=ADR+1 + 7446 020000 000000 XX=XX+XX + 7447 IFE XX, + 7448 + 7449 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7450 000000 IFG XX, + 7451 IFL XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0155 + + 7452 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7454 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7455 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7457 + 7458 000001 F33220: AA1=1 ;INITIAL C(AC) + 7459 035300 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7460 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7461 035301 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7462 020000 000000 AEE=XX ;INITIAL C(E) + 7463 035302 200 04 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7464 035303 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7465 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7466 035304 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7467 035305 003 06 0 00 033221 ER3 AC,33221 ;HIGH PRODUCT FAILED + 7468 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7469 035306 312 07 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7470 035307 004 07 0 00 033222 ER4 AC+1,33222 ;LOW PRODUCT FAILED + 7471 020000 000000 AEE=XX ;INITIAL C(E) + 7472 035310 312 04 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7473 035311 005 04 0 00 033223 ER5 E,33223 ;C(E) WAS CLOBBERED + 7474 035312 321 10 0 00 035300 JUMPL AC+2,F33220 ;LOOP ON ERROR SWITCH^ + 7475 + 7476 003323 ADR=ADR+1 + 7477 040000 000000 XX=XX+XX + 7478 IFE XX, + 7479 + 7480 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7481 000000 IFG XX, + 7482 IFL XX, + 7483 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7484 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7485 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7486 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7487 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7488 + 7489 000001 F33230: AA1=1 ;INITIAL C(AC) + 7490 035313 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7491 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7492 035314 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7493 040000 000000 AEE=XX ;INITIAL C(E) + 7494 035315 200 04 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7495 035316 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7496 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7497 035317 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7498 035320 003 06 0 00 033231 ER3 AC,33231 ;HIGH PRODUCT FAILED + 7499 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7500 035321 312 07 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7501 035322 004 07 0 00 033232 ER4 AC+1,33232 ;LOW PRODUCT FAILED + 7502 040000 000000 AEE=XX ;INITIAL C(E) + 7503 035323 312 04 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7504 035324 005 04 0 00 033233 ER5 E,33233 ;C(E) WAS CLOBBERED + 7505 035325 321 10 0 00 035313 JUMPL AC+2,F33230 ;LOOP ON ERROR SWITCH^ + 7506 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0156 + + 7507 003324 ADR=ADR+1 + 7508 100000 000000 XX=XX+XX + 7509 IFE XX, + 7510 + 7511 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7512 000000 IFG XX, + 7513 IFL XX, + 7514 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7515 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7516 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7517 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7518 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7519 + 7520 000001 F33240: AA1=1 ;INITIAL C(AC) + 7521 035326 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7522 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7523 035327 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7524 100000 000000 AEE=XX ;INITIAL C(E) + 7525 035330 200 04 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7526 035331 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7527 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7528 035332 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7529 035333 003 06 0 00 033241 ER3 AC,33241 ;HIGH PRODUCT FAILED + 7530 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7531 035334 312 07 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7532 035335 004 07 0 00 033242 ER4 AC+1,33242 ;LOW PRODUCT FAILED + 7533 100000 000000 AEE=XX ;INITIAL C(E) + 7534 035336 312 04 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7535 035337 005 04 0 00 033243 ER5 E,33243 ;C(E) WAS CLOBBERED + 7536 035340 321 10 0 00 035326 JUMPL AC+2,F33240 ;LOOP ON ERROR SWITCH^ + 7537 + 7538 003325 ADR=ADR+1 + 7539 200000 000000 XX=XX+XX + 7540 IFE XX, + 7541 + 7542 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7543 000000 IFG XX, + 7544 IFL XX, + 7545 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7546 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7547 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7548 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7549 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7550 + 7551 000001 F33250: AA1=1 ;INITIAL C(AC) + 7552 035341 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7553 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7554 035342 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7555 200000 000000 AEE=XX ;INITIAL C(E) + 7556 035343 200 04 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7557 035344 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7558 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7559 035345 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7560 035346 003 06 0 00 033251 ER3 AC,33251 ;HIGH PRODUCT FAILED + 7561 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0157 + + 7562 035347 312 07 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7563 035350 004 07 0 00 033252 ER4 AC+1,33252 ;LOW PRODUCT FAILED + 7564 200000 000000 AEE=XX ;INITIAL C(E) + 7565 035351 312 04 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7566 035352 005 04 0 00 033253 ER5 E,33253 ;C(E) WAS CLOBBERED + 7567 035353 321 10 0 00 035341 JUMPL AC+2,F33250 ;LOOP ON ERROR SWITCH^ + 7568 + 7569 003326 ADR=ADR+1 + 7570 400000 000000 XX=XX+XX + 7571 IFE XX, + 7572 + 7573 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + 7574 IFG XX, + 7575 777777 777777 IFL XX, + 7576 MOP1 (\ADR,1,-1,XX,V1,XX)^ + 7577 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND + 7578 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7579 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 7580 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7581 + 7582 000001 F33260: AA1=1 ;INITIAL C(AC) + 7583 035354 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 7584 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7585 035355 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7586 400000 000000 AEE=XX ;INITIAL C(E) + 7587 035356 200 04 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 7588 035357 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7589 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 7590 035360 312 06 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7591 035361 003 06 0 00 033261 ER3 AC,33261 ;HIGH PRODUCT FAILED + 7592 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7593 035362 312 07 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7594 035363 004 07 0 00 033262 ER4 AC+1,33262 ;LOW PRODUCT FAILED + 7595 400000 000000 AEE=XX ;INITIAL C(E) + 7596 035364 312 04 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? + 7597 035365 005 04 0 00 033263 ER5 E,33263 ;C(E) WAS CLOBBERED + 7598 035366 321 10 0 00 035354 JUMPL AC+2,F33260 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0158 + + 7599 000005 AC=5 + 7600 000003 E=&17 + 7601 SAVEAC (1,1)^ + 7602 035367 201 07 0 00 035367 MOVEI AC+2,. ;SAVE TEST PC + 7603 035370 202 07 0 00 030051 MOVEM AC+2,TESTPC + 7604 035371 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 7605 035372 202 07 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 7606 000000 XX=0 + 7607 + 7608 REPEAT ^D35,< ;LAST CASE IS DIFFERENT + 7609 ADR=ADR+1 + 7610 XX=XX+XX + 7611 IFE XX, + 7612 + 7613 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7614 IFG XX, + 7615 IFL XX, + 7616 MOP1 (\ADR,XX,-1,1,V1,XX)> + 7617 ;LAST CASE IS DIFFERENT + 7618 003327 ADR=ADR+1 + 7619 000000 XX=XX+XX + 7620 000001 IFE XX, + 7621 + 7622 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7623 000000 IFG XX, + 7624 IFL XX, + 7625 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7626 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7627 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7628 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7629 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7630 + 7631 000001 F33270: AA1=XX ;INITIAL C(AC) + 7632 035373 200 05 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7633 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7634 035374 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7635 000001 AEE=1 ;INITIAL C(E) + 7636 035375 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7637 035376 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7638 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7639 035377 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7640 035400 003 05 0 00 033271 ER3 AC,33271 ;HIGH PRODUCT FAILED + 7641 000001 AR2=XX ;EXPECTED RESULT IN AC+1 + 7642 035401 312 06 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7643 035402 004 06 0 00 033272 ER4 AC+1,33272 ;LOW PRODUCT FAILED + 7644 000001 AEE=1 ;INITIAL C(E) + 7645 035403 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7646 035404 005 03 0 00 033273 ER5 E,33273 ;C(E) WAS CLOBBERED + 7647 035405 321 07 0 00 035373 JUMPL AC+2,F33270 ;LOOP ON ERROR SWITCH^ + 7648 ;LAST CASE IS DIFFERENT + 7649 003330 ADR=ADR+1 + 7650 000002 XX=XX+XX + 7651 IFE XX, + 7652 + 7653 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0159 + + 7654 000000 IFG XX, + 7655 IFL XX, + 7656 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7657 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7658 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7659 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7660 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7661 + 7662 000002 F33300: AA1=XX ;INITIAL C(AC) + 7663 035406 200 05 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7664 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7665 035407 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7666 000001 AEE=1 ;INITIAL C(E) + 7667 035410 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7668 035411 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7669 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7670 035412 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7671 035413 003 05 0 00 033301 ER3 AC,33301 ;HIGH PRODUCT FAILED + 7672 000002 AR2=XX ;EXPECTED RESULT IN AC+1 + 7673 035414 312 06 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7674 035415 004 06 0 00 033302 ER4 AC+1,33302 ;LOW PRODUCT FAILED + 7675 000001 AEE=1 ;INITIAL C(E) + 7676 035416 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7677 035417 005 03 0 00 033303 ER5 E,33303 ;C(E) WAS CLOBBERED + 7678 035420 321 07 0 00 035406 JUMPL AC+2,F33300 ;LOOP ON ERROR SWITCH^ + 7679 ;LAST CASE IS DIFFERENT + 7680 003331 ADR=ADR+1 + 7681 000004 XX=XX+XX + 7682 IFE XX, + 7683 + 7684 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7685 000000 IFG XX, + 7686 IFL XX, + 7687 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7688 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7689 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7690 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7691 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7692 + 7693 000004 F33310: AA1=XX ;INITIAL C(AC) + 7694 035421 200 05 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7695 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7696 035422 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7697 000001 AEE=1 ;INITIAL C(E) + 7698 035423 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7699 035424 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7700 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7701 035425 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7702 035426 003 05 0 00 033311 ER3 AC,33311 ;HIGH PRODUCT FAILED + 7703 000004 AR2=XX ;EXPECTED RESULT IN AC+1 + 7704 035427 312 06 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7705 035430 004 06 0 00 033312 ER4 AC+1,33312 ;LOW PRODUCT FAILED + 7706 000001 AEE=1 ;INITIAL C(E) + 7707 035431 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7708 035432 005 03 0 00 033313 ER5 E,33313 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0160 + + 7709 035433 321 07 0 00 035421 JUMPL AC+2,F33310 ;LOOP ON ERROR SWITCH^ + 7710 ;LAST CASE IS DIFFERENT + 7711 003332 ADR=ADR+1 + 7712 000010 XX=XX+XX + 7713 IFE XX, + 7714 + 7715 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7716 000000 IFG XX, + 7717 IFL XX, + 7718 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7719 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7720 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7721 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7722 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7723 + 7724 000010 F33320: AA1=XX ;INITIAL C(AC) + 7725 035434 200 05 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7726 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7727 035435 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7728 000001 AEE=1 ;INITIAL C(E) + 7729 035436 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7730 035437 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7731 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7732 035440 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7733 035441 003 05 0 00 033321 ER3 AC,33321 ;HIGH PRODUCT FAILED + 7734 000010 AR2=XX ;EXPECTED RESULT IN AC+1 + 7735 035442 312 06 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7736 035443 004 06 0 00 033322 ER4 AC+1,33322 ;LOW PRODUCT FAILED + 7737 000001 AEE=1 ;INITIAL C(E) + 7738 035444 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7739 035445 005 03 0 00 033323 ER5 E,33323 ;C(E) WAS CLOBBERED + 7740 035446 321 07 0 00 035434 JUMPL AC+2,F33320 ;LOOP ON ERROR SWITCH^ + 7741 ;LAST CASE IS DIFFERENT + 7742 003333 ADR=ADR+1 + 7743 000020 XX=XX+XX + 7744 IFE XX, + 7745 + 7746 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7747 000000 IFG XX, + 7748 IFL XX, + 7749 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7750 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7751 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7752 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7753 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7754 + 7755 000020 F33330: AA1=XX ;INITIAL C(AC) + 7756 035447 200 05 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7757 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7758 035450 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7759 000001 AEE=1 ;INITIAL C(E) + 7760 035451 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7761 035452 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7762 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7763 035453 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0161 + + 7764 035454 003 05 0 00 033331 ER3 AC,33331 ;HIGH PRODUCT FAILED + 7765 000020 AR2=XX ;EXPECTED RESULT IN AC+1 + 7766 035455 312 06 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7767 035456 004 06 0 00 033332 ER4 AC+1,33332 ;LOW PRODUCT FAILED + 7768 000001 AEE=1 ;INITIAL C(E) + 7769 035457 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7770 035460 005 03 0 00 033333 ER5 E,33333 ;C(E) WAS CLOBBERED + 7771 035461 321 07 0 00 035447 JUMPL AC+2,F33330 ;LOOP ON ERROR SWITCH^ + 7772 ;LAST CASE IS DIFFERENT + 7773 003334 ADR=ADR+1 + 7774 000040 XX=XX+XX + 7775 IFE XX, + 7776 + 7777 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7778 000000 IFG XX, + 7779 IFL XX, + 7780 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7782 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7783 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7785 + 7786 000040 F33340: AA1=XX ;INITIAL C(AC) + 7787 035462 200 05 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7788 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7789 035463 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7790 000001 AEE=1 ;INITIAL C(E) + 7791 035464 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7792 035465 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7793 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7794 035466 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7795 035467 003 05 0 00 033341 ER3 AC,33341 ;HIGH PRODUCT FAILED + 7796 000040 AR2=XX ;EXPECTED RESULT IN AC+1 + 7797 035470 312 06 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7798 035471 004 06 0 00 033342 ER4 AC+1,33342 ;LOW PRODUCT FAILED + 7799 000001 AEE=1 ;INITIAL C(E) + 7800 035472 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7801 035473 005 03 0 00 033343 ER5 E,33343 ;C(E) WAS CLOBBERED + 7802 035474 321 07 0 00 035462 JUMPL AC+2,F33340 ;LOOP ON ERROR SWITCH^ + 7803 ;LAST CASE IS DIFFERENT + 7804 003335 ADR=ADR+1 + 7805 000100 XX=XX+XX + 7806 IFE XX, + 7807 + 7808 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7809 000000 IFG XX, + 7810 IFL XX, + 7811 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7812 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7813 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7814 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7815 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7816 + 7817 000100 F33350: AA1=XX ;INITIAL C(AC) + 7818 035475 200 05 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0162 + + 7819 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7820 035476 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7821 000001 AEE=1 ;INITIAL C(E) + 7822 035477 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7823 035500 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7824 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7825 035501 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7826 035502 003 05 0 00 033351 ER3 AC,33351 ;HIGH PRODUCT FAILED + 7827 000100 AR2=XX ;EXPECTED RESULT IN AC+1 + 7828 035503 312 06 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7829 035504 004 06 0 00 033352 ER4 AC+1,33352 ;LOW PRODUCT FAILED + 7830 000001 AEE=1 ;INITIAL C(E) + 7831 035505 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7832 035506 005 03 0 00 033353 ER5 E,33353 ;C(E) WAS CLOBBERED + 7833 035507 321 07 0 00 035475 JUMPL AC+2,F33350 ;LOOP ON ERROR SWITCH^ + 7834 ;LAST CASE IS DIFFERENT + 7835 003336 ADR=ADR+1 + 7836 000200 XX=XX+XX + 7837 IFE XX, + 7838 + 7839 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7840 000000 IFG XX, + 7841 IFL XX, + 7842 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7843 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7844 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7845 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7846 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7847 + 7848 000200 F33360: AA1=XX ;INITIAL C(AC) + 7849 035510 200 05 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7850 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7851 035511 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7852 000001 AEE=1 ;INITIAL C(E) + 7853 035512 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7854 035513 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7855 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7856 035514 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7857 035515 003 05 0 00 033361 ER3 AC,33361 ;HIGH PRODUCT FAILED + 7858 000200 AR2=XX ;EXPECTED RESULT IN AC+1 + 7859 035516 312 06 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7860 035517 004 06 0 00 033362 ER4 AC+1,33362 ;LOW PRODUCT FAILED + 7861 000001 AEE=1 ;INITIAL C(E) + 7862 035520 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7863 035521 005 03 0 00 033363 ER5 E,33363 ;C(E) WAS CLOBBERED + 7864 035522 321 07 0 00 035510 JUMPL AC+2,F33360 ;LOOP ON ERROR SWITCH^ + 7865 ;LAST CASE IS DIFFERENT + 7866 003337 ADR=ADR+1 + 7867 000400 XX=XX+XX + 7868 IFE XX, + 7869 + 7870 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7871 000000 IFG XX, + 7872 IFL XX, + 7873 MOP1 (\ADR,XX,-1,1,V1,XX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0163 + + 7874 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7875 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7876 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7877 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7878 + 7879 000400 F33370: AA1=XX ;INITIAL C(AC) + 7880 035523 200 05 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7881 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7882 035524 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7883 000001 AEE=1 ;INITIAL C(E) + 7884 035525 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7885 035526 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7886 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7887 035527 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7888 035530 003 05 0 00 033371 ER3 AC,33371 ;HIGH PRODUCT FAILED + 7889 000400 AR2=XX ;EXPECTED RESULT IN AC+1 + 7890 035531 312 06 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7891 035532 004 06 0 00 033372 ER4 AC+1,33372 ;LOW PRODUCT FAILED + 7892 000001 AEE=1 ;INITIAL C(E) + 7893 035533 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7894 035534 005 03 0 00 033373 ER5 E,33373 ;C(E) WAS CLOBBERED + 7895 035535 321 07 0 00 035523 JUMPL AC+2,F33370 ;LOOP ON ERROR SWITCH^ + 7896 ;LAST CASE IS DIFFERENT + 7897 003340 ADR=ADR+1 + 7898 001000 XX=XX+XX + 7899 IFE XX, + 7900 + 7901 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7902 000000 IFG XX, + 7903 IFL XX, + 7904 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7905 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7906 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7907 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7908 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7909 + 7910 001000 F33400: AA1=XX ;INITIAL C(AC) + 7911 035536 200 05 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7912 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7913 035537 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7914 000001 AEE=1 ;INITIAL C(E) + 7915 035540 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7916 035541 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7917 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7918 035542 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7919 035543 003 05 0 00 033401 ER3 AC,33401 ;HIGH PRODUCT FAILED + 7920 001000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7921 035544 312 06 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7922 035545 004 06 0 00 033402 ER4 AC+1,33402 ;LOW PRODUCT FAILED + 7923 000001 AEE=1 ;INITIAL C(E) + 7924 035546 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7925 035547 005 03 0 00 033403 ER5 E,33403 ;C(E) WAS CLOBBERED + 7926 035550 321 07 0 00 035536 JUMPL AC+2,F33400 ;LOOP ON ERROR SWITCH^ + 7927 ;LAST CASE IS DIFFERENT + 7928 003341 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0164 + + 7929 002000 XX=XX+XX + 7930 IFE XX, + 7931 + 7932 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7933 000000 IFG XX, + 7934 IFL XX, + 7935 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7936 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7937 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7938 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7939 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7940 + 7941 002000 F33410: AA1=XX ;INITIAL C(AC) + 7942 035551 200 05 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7943 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7944 035552 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7945 000001 AEE=1 ;INITIAL C(E) + 7946 035553 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7947 035554 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7948 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7949 035555 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7950 035556 003 05 0 00 033411 ER3 AC,33411 ;HIGH PRODUCT FAILED + 7951 002000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7952 035557 312 06 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 7953 035560 004 06 0 00 033412 ER4 AC+1,33412 ;LOW PRODUCT FAILED + 7954 000001 AEE=1 ;INITIAL C(E) + 7955 035561 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7956 035562 005 03 0 00 033413 ER5 E,33413 ;C(E) WAS CLOBBERED + 7957 035563 321 07 0 00 035551 JUMPL AC+2,F33410 ;LOOP ON ERROR SWITCH^ + 7958 ;LAST CASE IS DIFFERENT + 7959 003342 ADR=ADR+1 + 7960 004000 XX=XX+XX + 7961 IFE XX, + 7962 + 7963 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7964 000000 IFG XX, + 7965 IFL XX, + 7966 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7967 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7968 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 7969 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 7970 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 7971 + 7972 004000 F33420: AA1=XX ;INITIAL C(AC) + 7973 035564 200 05 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 7974 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 7975 035565 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 7976 000001 AEE=1 ;INITIAL C(E) + 7977 035566 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 7978 035567 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 7979 000000 AR1=V1 ;EXPECTED RESULT IN AC + 7980 035570 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 7981 035571 003 05 0 00 033421 ER3 AC,33421 ;HIGH PRODUCT FAILED + 7982 004000 AR2=XX ;EXPECTED RESULT IN AC+1 + 7983 035572 312 06 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0165 + + 7984 035573 004 06 0 00 033422 ER4 AC+1,33422 ;LOW PRODUCT FAILED + 7985 000001 AEE=1 ;INITIAL C(E) + 7986 035574 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 7987 035575 005 03 0 00 033423 ER5 E,33423 ;C(E) WAS CLOBBERED + 7988 035576 321 07 0 00 035564 JUMPL AC+2,F33420 ;LOOP ON ERROR SWITCH^ + 7989 ;LAST CASE IS DIFFERENT + 7990 003343 ADR=ADR+1 + 7991 010000 XX=XX+XX + 7992 IFE XX, + 7993 + 7994 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 7995 000000 IFG XX, + 7996 IFL XX, + 7997 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 7998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 7999 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8000 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8002 + 8003 010000 F33430: AA1=XX ;INITIAL C(AC) + 8004 035577 200 05 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8005 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8006 035600 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8007 000001 AEE=1 ;INITIAL C(E) + 8008 035601 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8009 035602 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8010 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8011 035603 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8012 035604 003 05 0 00 033431 ER3 AC,33431 ;HIGH PRODUCT FAILED + 8013 010000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8014 035605 312 06 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8015 035606 004 06 0 00 033432 ER4 AC+1,33432 ;LOW PRODUCT FAILED + 8016 000001 AEE=1 ;INITIAL C(E) + 8017 035607 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8018 035610 005 03 0 00 033433 ER5 E,33433 ;C(E) WAS CLOBBERED + 8019 035611 321 07 0 00 035577 JUMPL AC+2,F33430 ;LOOP ON ERROR SWITCH^ + 8020 ;LAST CASE IS DIFFERENT + 8021 003344 ADR=ADR+1 + 8022 020000 XX=XX+XX + 8023 IFE XX, + 8024 + 8025 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8026 000000 IFG XX, + 8027 IFL XX, + 8028 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8029 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8030 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8031 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8032 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8033 + 8034 020000 F33440: AA1=XX ;INITIAL C(AC) + 8035 035612 200 05 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8036 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8037 035613 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8038 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0166 + + 8039 035614 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8040 035615 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8041 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8042 035616 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8043 035617 003 05 0 00 033441 ER3 AC,33441 ;HIGH PRODUCT FAILED + 8044 020000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8045 035620 312 06 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8046 035621 004 06 0 00 033442 ER4 AC+1,33442 ;LOW PRODUCT FAILED + 8047 000001 AEE=1 ;INITIAL C(E) + 8048 035622 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8049 035623 005 03 0 00 033443 ER5 E,33443 ;C(E) WAS CLOBBERED + 8050 035624 321 07 0 00 035612 JUMPL AC+2,F33440 ;LOOP ON ERROR SWITCH^ + 8051 ;LAST CASE IS DIFFERENT + 8052 003345 ADR=ADR+1 + 8053 040000 XX=XX+XX + 8054 IFE XX, + 8055 + 8056 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8057 000000 IFG XX, + 8058 IFL XX, + 8059 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8061 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8062 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8064 + 8065 040000 F33450: AA1=XX ;INITIAL C(AC) + 8066 035625 200 05 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8067 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8068 035626 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8069 000001 AEE=1 ;INITIAL C(E) + 8070 035627 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8071 035630 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8072 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8073 035631 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8074 035632 003 05 0 00 033451 ER3 AC,33451 ;HIGH PRODUCT FAILED + 8075 040000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8076 035633 312 06 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8077 035634 004 06 0 00 033452 ER4 AC+1,33452 ;LOW PRODUCT FAILED + 8078 000001 AEE=1 ;INITIAL C(E) + 8079 035635 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8080 035636 005 03 0 00 033453 ER5 E,33453 ;C(E) WAS CLOBBERED + 8081 035637 321 07 0 00 035625 JUMPL AC+2,F33450 ;LOOP ON ERROR SWITCH^ + 8082 ;LAST CASE IS DIFFERENT + 8083 003346 ADR=ADR+1 + 8084 100000 XX=XX+XX + 8085 IFE XX, + 8086 + 8087 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8088 000000 IFG XX, + 8089 IFL XX, + 8090 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8091 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8092 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8093 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0167 + + 8094 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8095 + 8096 100000 F33460: AA1=XX ;INITIAL C(AC) + 8097 035640 200 05 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8098 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8099 035641 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8100 000001 AEE=1 ;INITIAL C(E) + 8101 035642 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8102 035643 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8103 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8104 035644 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8105 035645 003 05 0 00 033461 ER3 AC,33461 ;HIGH PRODUCT FAILED + 8106 100000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8107 035646 312 06 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8108 035647 004 06 0 00 033462 ER4 AC+1,33462 ;LOW PRODUCT FAILED + 8109 000001 AEE=1 ;INITIAL C(E) + 8110 035650 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8111 035651 005 03 0 00 033463 ER5 E,33463 ;C(E) WAS CLOBBERED + 8112 035652 321 07 0 00 035640 JUMPL AC+2,F33460 ;LOOP ON ERROR SWITCH^ + 8113 ;LAST CASE IS DIFFERENT + 8114 003347 ADR=ADR+1 + 8115 200000 XX=XX+XX + 8116 IFE XX, + 8117 + 8118 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8119 000000 IFG XX, + 8120 IFL XX, + 8121 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8122 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8123 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8124 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8125 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8126 + 8127 200000 F33470: AA1=XX ;INITIAL C(AC) + 8128 035653 200 05 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8129 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8130 035654 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8131 000001 AEE=1 ;INITIAL C(E) + 8132 035655 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8133 035656 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8134 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8135 035657 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8136 035660 003 05 0 00 033471 ER3 AC,33471 ;HIGH PRODUCT FAILED + 8137 200000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8138 035661 312 06 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8139 035662 004 06 0 00 033472 ER4 AC+1,33472 ;LOW PRODUCT FAILED + 8140 000001 AEE=1 ;INITIAL C(E) + 8141 035663 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8142 035664 005 03 0 00 033473 ER5 E,33473 ;C(E) WAS CLOBBERED + 8143 035665 321 07 0 00 035653 JUMPL AC+2,F33470 ;LOOP ON ERROR SWITCH^ + 8144 ;LAST CASE IS DIFFERENT + 8145 003350 ADR=ADR+1 + 8146 400000 XX=XX+XX + 8147 IFE XX, + 8148 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0168 + + 8149 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8150 000000 IFG XX, + 8151 IFL XX, + 8152 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8153 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8154 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8155 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8156 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8157 + 8158 400000 F33500: AA1=XX ;INITIAL C(AC) + 8159 035666 200 05 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8160 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8161 035667 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8162 000001 AEE=1 ;INITIAL C(E) + 8163 035670 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8164 035671 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8165 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8166 035672 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8167 035673 003 05 0 00 033501 ER3 AC,33501 ;HIGH PRODUCT FAILED + 8168 400000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8169 035674 312 06 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8170 035675 004 06 0 00 033502 ER4 AC+1,33502 ;LOW PRODUCT FAILED + 8171 000001 AEE=1 ;INITIAL C(E) + 8172 035676 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8173 035677 005 03 0 00 033503 ER5 E,33503 ;C(E) WAS CLOBBERED + 8174 035700 321 07 0 00 035666 JUMPL AC+2,F33500 ;LOOP ON ERROR SWITCH^ + 8175 ;LAST CASE IS DIFFERENT + 8176 003351 ADR=ADR+1 + 8177 000001 000000 XX=XX+XX + 8178 IFE XX, + 8179 + 8180 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8181 000000 IFG XX, + 8182 IFL XX, + 8183 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8185 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8186 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8188 + 8189 000001 000000 F33510: AA1=XX ;INITIAL C(AC) + 8190 035701 200 05 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8191 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8192 035702 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8193 000001 AEE=1 ;INITIAL C(E) + 8194 035703 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8195 035704 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8196 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8197 035705 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8198 035706 003 05 0 00 033511 ER3 AC,33511 ;HIGH PRODUCT FAILED + 8199 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8200 035707 312 06 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8201 035710 004 06 0 00 033512 ER4 AC+1,33512 ;LOW PRODUCT FAILED + 8202 000001 AEE=1 ;INITIAL C(E) + 8203 035711 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0169 + + 8204 035712 005 03 0 00 033513 ER5 E,33513 ;C(E) WAS CLOBBERED + 8205 035713 321 07 0 00 035701 JUMPL AC+2,F33510 ;LOOP ON ERROR SWITCH^ + 8206 ;LAST CASE IS DIFFERENT + 8207 003352 ADR=ADR+1 + 8208 000002 000000 XX=XX+XX + 8209 IFE XX, + 8210 + 8211 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8212 000000 IFG XX, + 8213 IFL XX, + 8214 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8215 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8216 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8217 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8218 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8219 + 8220 000002 000000 F33520: AA1=XX ;INITIAL C(AC) + 8221 035714 200 05 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8222 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8223 035715 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8224 000001 AEE=1 ;INITIAL C(E) + 8225 035716 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8226 035717 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8227 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8228 035720 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8229 035721 003 05 0 00 033521 ER3 AC,33521 ;HIGH PRODUCT FAILED + 8230 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8231 035722 312 06 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8232 035723 004 06 0 00 033522 ER4 AC+1,33522 ;LOW PRODUCT FAILED + 8233 000001 AEE=1 ;INITIAL C(E) + 8234 035724 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8235 035725 005 03 0 00 033523 ER5 E,33523 ;C(E) WAS CLOBBERED + 8236 035726 321 07 0 00 035714 JUMPL AC+2,F33520 ;LOOP ON ERROR SWITCH^ + 8237 ;LAST CASE IS DIFFERENT + 8238 003353 ADR=ADR+1 + 8239 000004 000000 XX=XX+XX + 8240 IFE XX, + 8241 + 8242 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8243 000000 IFG XX, + 8244 IFL XX, + 8245 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8246 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8247 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8248 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8249 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8250 + 8251 000004 000000 F33530: AA1=XX ;INITIAL C(AC) + 8252 035727 200 05 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8253 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8254 035730 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8255 000001 AEE=1 ;INITIAL C(E) + 8256 035731 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8257 035732 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8258 000000 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0170 + + 8259 035733 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8260 035734 003 05 0 00 033531 ER3 AC,33531 ;HIGH PRODUCT FAILED + 8261 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8262 035735 312 06 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8263 035736 004 06 0 00 033532 ER4 AC+1,33532 ;LOW PRODUCT FAILED + 8264 000001 AEE=1 ;INITIAL C(E) + 8265 035737 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8266 035740 005 03 0 00 033533 ER5 E,33533 ;C(E) WAS CLOBBERED + 8267 035741 321 07 0 00 035727 JUMPL AC+2,F33530 ;LOOP ON ERROR SWITCH^ + 8268 ;LAST CASE IS DIFFERENT + 8269 003354 ADR=ADR+1 + 8270 000010 000000 XX=XX+XX + 8271 IFE XX, + 8272 + 8273 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8274 000000 IFG XX, + 8275 IFL XX, + 8276 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8277 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8278 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8279 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8280 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8281 + 8282 000010 000000 F33540: AA1=XX ;INITIAL C(AC) + 8283 035742 200 05 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8284 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8285 035743 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8286 000001 AEE=1 ;INITIAL C(E) + 8287 035744 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8288 035745 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8289 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8290 035746 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8291 035747 003 05 0 00 033541 ER3 AC,33541 ;HIGH PRODUCT FAILED + 8292 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8293 035750 312 06 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8294 035751 004 06 0 00 033542 ER4 AC+1,33542 ;LOW PRODUCT FAILED + 8295 000001 AEE=1 ;INITIAL C(E) + 8296 035752 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8297 035753 005 03 0 00 033543 ER5 E,33543 ;C(E) WAS CLOBBERED + 8298 035754 321 07 0 00 035742 JUMPL AC+2,F33540 ;LOOP ON ERROR SWITCH^ + 8299 ;LAST CASE IS DIFFERENT + 8300 003355 ADR=ADR+1 + 8301 000020 000000 XX=XX+XX + 8302 IFE XX, + 8303 + 8304 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8305 000000 IFG XX, + 8306 IFL XX, + 8307 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8308 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8309 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8310 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8311 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8312 + 8313 000020 000000 F33550: AA1=XX ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0171 + + 8314 035755 200 05 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8315 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8316 035756 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8317 000001 AEE=1 ;INITIAL C(E) + 8318 035757 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8319 035760 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8320 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8321 035761 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8322 035762 003 05 0 00 033551 ER3 AC,33551 ;HIGH PRODUCT FAILED + 8323 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8324 035763 312 06 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8325 035764 004 06 0 00 033552 ER4 AC+1,33552 ;LOW PRODUCT FAILED + 8326 000001 AEE=1 ;INITIAL C(E) + 8327 035765 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8328 035766 005 03 0 00 033553 ER5 E,33553 ;C(E) WAS CLOBBERED + 8329 035767 321 07 0 00 035755 JUMPL AC+2,F33550 ;LOOP ON ERROR SWITCH^ + 8330 ;LAST CASE IS DIFFERENT + 8331 003356 ADR=ADR+1 + 8332 000040 000000 XX=XX+XX + 8333 IFE XX, + 8334 + 8335 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8336 000000 IFG XX, + 8337 IFL XX, + 8338 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8339 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8340 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8341 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8342 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8343 + 8344 000040 000000 F33560: AA1=XX ;INITIAL C(AC) + 8345 035770 200 05 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8346 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8347 035771 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8348 000001 AEE=1 ;INITIAL C(E) + 8349 035772 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8350 035773 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8351 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8352 035774 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8353 035775 003 05 0 00 033561 ER3 AC,33561 ;HIGH PRODUCT FAILED + 8354 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8355 035776 312 06 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8356 035777 004 06 0 00 033562 ER4 AC+1,33562 ;LOW PRODUCT FAILED + 8357 000001 AEE=1 ;INITIAL C(E) + 8358 036000 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8359 036001 005 03 0 00 033563 ER5 E,33563 ;C(E) WAS CLOBBERED + 8360 036002 321 07 0 00 035770 JUMPL AC+2,F33560 ;LOOP ON ERROR SWITCH^ + 8361 ;LAST CASE IS DIFFERENT + 8362 003357 ADR=ADR+1 + 8363 000100 000000 XX=XX+XX + 8364 IFE XX, + 8365 + 8366 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8367 000000 IFG XX, + 8368 IFL XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0172 + + 8369 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8370 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8371 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8372 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8373 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8374 + 8375 000100 000000 F33570: AA1=XX ;INITIAL C(AC) + 8376 036003 200 05 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8377 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8378 036004 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8379 000001 AEE=1 ;INITIAL C(E) + 8380 036005 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8381 036006 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8382 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8383 036007 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8384 036010 003 05 0 00 033571 ER3 AC,33571 ;HIGH PRODUCT FAILED + 8385 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8386 036011 312 06 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8387 036012 004 06 0 00 033572 ER4 AC+1,33572 ;LOW PRODUCT FAILED + 8388 000001 AEE=1 ;INITIAL C(E) + 8389 036013 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8390 036014 005 03 0 00 033573 ER5 E,33573 ;C(E) WAS CLOBBERED + 8391 036015 321 07 0 00 036003 JUMPL AC+2,F33570 ;LOOP ON ERROR SWITCH^ + 8392 ;LAST CASE IS DIFFERENT + 8393 003360 ADR=ADR+1 + 8394 000200 000000 XX=XX+XX + 8395 IFE XX, + 8396 + 8397 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8398 000000 IFG XX, + 8399 IFL XX, + 8400 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8401 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8402 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8403 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8404 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8405 + 8406 000200 000000 F33600: AA1=XX ;INITIAL C(AC) + 8407 036016 200 05 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8408 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8409 036017 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8410 000001 AEE=1 ;INITIAL C(E) + 8411 036020 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8412 036021 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8413 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8414 036022 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8415 036023 003 05 0 00 033601 ER3 AC,33601 ;HIGH PRODUCT FAILED + 8416 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8417 036024 312 06 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8418 036025 004 06 0 00 033602 ER4 AC+1,33602 ;LOW PRODUCT FAILED + 8419 000001 AEE=1 ;INITIAL C(E) + 8420 036026 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8421 036027 005 03 0 00 033603 ER5 E,33603 ;C(E) WAS CLOBBERED + 8422 036030 321 07 0 00 036016 JUMPL AC+2,F33600 ;LOOP ON ERROR SWITCH^ + 8423 ;LAST CASE IS DIFFERENT +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0173 + + 8424 003361 ADR=ADR+1 + 8425 000400 000000 XX=XX+XX + 8426 IFE XX, + 8427 + 8428 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8429 000000 IFG XX, + 8430 IFL XX, + 8431 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8432 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8433 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8434 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8435 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8436 + 8437 000400 000000 F33610: AA1=XX ;INITIAL C(AC) + 8438 036031 200 05 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8439 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8440 036032 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8441 000001 AEE=1 ;INITIAL C(E) + 8442 036033 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8443 036034 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8444 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8445 036035 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8446 036036 003 05 0 00 033611 ER3 AC,33611 ;HIGH PRODUCT FAILED + 8447 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8448 036037 312 06 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8449 036040 004 06 0 00 033612 ER4 AC+1,33612 ;LOW PRODUCT FAILED + 8450 000001 AEE=1 ;INITIAL C(E) + 8451 036041 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8452 036042 005 03 0 00 033613 ER5 E,33613 ;C(E) WAS CLOBBERED + 8453 036043 321 07 0 00 036031 JUMPL AC+2,F33610 ;LOOP ON ERROR SWITCH^ + 8454 ;LAST CASE IS DIFFERENT + 8455 003362 ADR=ADR+1 + 8456 001000 000000 XX=XX+XX + 8457 IFE XX, + 8458 + 8459 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8460 000000 IFG XX, + 8461 IFL XX, + 8462 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8463 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8464 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8465 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8466 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8467 + 8468 001000 000000 F33620: AA1=XX ;INITIAL C(AC) + 8469 036044 200 05 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8470 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8471 036045 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8472 000001 AEE=1 ;INITIAL C(E) + 8473 036046 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8474 036047 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8475 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8476 036050 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8477 036051 003 05 0 00 033621 ER3 AC,33621 ;HIGH PRODUCT FAILED + 8478 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0174 + + 8479 036052 312 06 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8480 036053 004 06 0 00 033622 ER4 AC+1,33622 ;LOW PRODUCT FAILED + 8481 000001 AEE=1 ;INITIAL C(E) + 8482 036054 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8483 036055 005 03 0 00 033623 ER5 E,33623 ;C(E) WAS CLOBBERED + 8484 036056 321 07 0 00 036044 JUMPL AC+2,F33620 ;LOOP ON ERROR SWITCH^ + 8485 ;LAST CASE IS DIFFERENT + 8486 003363 ADR=ADR+1 + 8487 002000 000000 XX=XX+XX + 8488 IFE XX, + 8489 + 8490 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8491 000000 IFG XX, + 8492 IFL XX, + 8493 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8495 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8496 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8498 + 8499 002000 000000 F33630: AA1=XX ;INITIAL C(AC) + 8500 036057 200 05 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8501 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8502 036060 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8503 000001 AEE=1 ;INITIAL C(E) + 8504 036061 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8505 036062 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8506 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8507 036063 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8508 036064 003 05 0 00 033631 ER3 AC,33631 ;HIGH PRODUCT FAILED + 8509 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8510 036065 312 06 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8511 036066 004 06 0 00 033632 ER4 AC+1,33632 ;LOW PRODUCT FAILED + 8512 000001 AEE=1 ;INITIAL C(E) + 8513 036067 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8514 036070 005 03 0 00 033633 ER5 E,33633 ;C(E) WAS CLOBBERED + 8515 036071 321 07 0 00 036057 JUMPL AC+2,F33630 ;LOOP ON ERROR SWITCH^ + 8516 ;LAST CASE IS DIFFERENT + 8517 003364 ADR=ADR+1 + 8518 004000 000000 XX=XX+XX + 8519 IFE XX, + 8520 + 8521 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8522 000000 IFG XX, + 8523 IFL XX, + 8524 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8526 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8527 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8529 + 8530 004000 000000 F33640: AA1=XX ;INITIAL C(AC) + 8531 036072 200 05 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8532 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8533 036073 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0175 + + 8534 000001 AEE=1 ;INITIAL C(E) + 8535 036074 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8536 036075 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8537 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8538 036076 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8539 036077 003 05 0 00 033641 ER3 AC,33641 ;HIGH PRODUCT FAILED + 8540 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8541 036100 312 06 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8542 036101 004 06 0 00 033642 ER4 AC+1,33642 ;LOW PRODUCT FAILED + 8543 000001 AEE=1 ;INITIAL C(E) + 8544 036102 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8545 036103 005 03 0 00 033643 ER5 E,33643 ;C(E) WAS CLOBBERED + 8546 036104 321 07 0 00 036072 JUMPL AC+2,F33640 ;LOOP ON ERROR SWITCH^ + 8547 ;LAST CASE IS DIFFERENT + 8548 003365 ADR=ADR+1 + 8549 010000 000000 XX=XX+XX + 8550 IFE XX, + 8551 + 8552 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8553 000000 IFG XX, + 8554 IFL XX, + 8555 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8556 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8557 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8558 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8559 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8560 + 8561 010000 000000 F33650: AA1=XX ;INITIAL C(AC) + 8562 036105 200 05 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8563 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8564 036106 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8565 000001 AEE=1 ;INITIAL C(E) + 8566 036107 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8567 036110 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8568 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8569 036111 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8570 036112 003 05 0 00 033651 ER3 AC,33651 ;HIGH PRODUCT FAILED + 8571 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8572 036113 312 06 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8573 036114 004 06 0 00 033652 ER4 AC+1,33652 ;LOW PRODUCT FAILED + 8574 000001 AEE=1 ;INITIAL C(E) + 8575 036115 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8576 036116 005 03 0 00 033653 ER5 E,33653 ;C(E) WAS CLOBBERED + 8577 036117 321 07 0 00 036105 JUMPL AC+2,F33650 ;LOOP ON ERROR SWITCH^ + 8578 ;LAST CASE IS DIFFERENT + 8579 003366 ADR=ADR+1 + 8580 020000 000000 XX=XX+XX + 8581 IFE XX, + 8582 + 8583 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8584 000000 IFG XX, + 8585 IFL XX, + 8586 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8587 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8588 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0176 + + 8589 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8590 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8591 + 8592 020000 000000 F33660: AA1=XX ;INITIAL C(AC) + 8593 036120 200 05 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8594 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8595 036121 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8596 000001 AEE=1 ;INITIAL C(E) + 8597 036122 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8598 036123 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8599 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8600 036124 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8601 036125 003 05 0 00 033661 ER3 AC,33661 ;HIGH PRODUCT FAILED + 8602 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8603 036126 312 06 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8604 036127 004 06 0 00 033662 ER4 AC+1,33662 ;LOW PRODUCT FAILED + 8605 000001 AEE=1 ;INITIAL C(E) + 8606 036130 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8607 036131 005 03 0 00 033663 ER5 E,33663 ;C(E) WAS CLOBBERED + 8608 036132 321 07 0 00 036120 JUMPL AC+2,F33660 ;LOOP ON ERROR SWITCH^ + 8609 ;LAST CASE IS DIFFERENT + 8610 003367 ADR=ADR+1 + 8611 040000 000000 XX=XX+XX + 8612 IFE XX, + 8613 + 8614 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8615 000000 IFG XX, + 8616 IFL XX, + 8617 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8618 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8619 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8620 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8621 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8622 + 8623 040000 000000 F33670: AA1=XX ;INITIAL C(AC) + 8624 036133 200 05 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8625 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8626 036134 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8627 000001 AEE=1 ;INITIAL C(E) + 8628 036135 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8629 036136 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8630 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8631 036137 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8632 036140 003 05 0 00 033671 ER3 AC,33671 ;HIGH PRODUCT FAILED + 8633 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8634 036141 312 06 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8635 036142 004 06 0 00 033672 ER4 AC+1,33672 ;LOW PRODUCT FAILED + 8636 000001 AEE=1 ;INITIAL C(E) + 8637 036143 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8638 036144 005 03 0 00 033673 ER5 E,33673 ;C(E) WAS CLOBBERED + 8639 036145 321 07 0 00 036133 JUMPL AC+2,F33670 ;LOOP ON ERROR SWITCH^ + 8640 ;LAST CASE IS DIFFERENT + 8641 003370 ADR=ADR+1 + 8642 100000 000000 XX=XX+XX + 8643 IFE XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0177 + + 8644 + 8645 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8646 000000 IFG XX, + 8647 IFL XX, + 8648 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8650 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8651 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8653 + 8654 100000 000000 F33700: AA1=XX ;INITIAL C(AC) + 8655 036146 200 05 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8656 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8657 036147 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8658 000001 AEE=1 ;INITIAL C(E) + 8659 036150 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8660 036151 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8661 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8662 036152 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8663 036153 003 05 0 00 033701 ER3 AC,33701 ;HIGH PRODUCT FAILED + 8664 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8665 036154 312 06 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8666 036155 004 06 0 00 033702 ER4 AC+1,33702 ;LOW PRODUCT FAILED + 8667 000001 AEE=1 ;INITIAL C(E) + 8668 036156 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8669 036157 005 03 0 00 033703 ER5 E,33703 ;C(E) WAS CLOBBERED + 8670 036160 321 07 0 00 036146 JUMPL AC+2,F33700 ;LOOP ON ERROR SWITCH^ + 8671 ;LAST CASE IS DIFFERENT + 8672 003371 ADR=ADR+1 + 8673 200000 000000 XX=XX+XX + 8674 IFE XX, + 8675 + 8676 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + 8677 000000 IFG XX, + 8678 IFL XX, + 8679 MOP1 (\ADR,XX,-1,1,V1,XX)^ + 8680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8681 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8682 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 8683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8684 + 8685 200000 000000 F33710: AA1=XX ;INITIAL C(AC) + 8686 036161 200 05 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8687 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8688 036162 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8689 000001 AEE=1 ;INITIAL C(E) + 8690 036163 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8691 036164 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8692 000000 AR1=V1 ;EXPECTED RESULT IN AC + 8693 036165 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8694 036166 003 05 0 00 033711 ER3 AC,33711 ;HIGH PRODUCT FAILED + 8695 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 8696 036167 312 06 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 8697 036170 004 06 0 00 033712 ER4 AC+1,33712 ;LOW PRODUCT FAILED + 8698 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0178 + + 8699 036171 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8700 036172 005 03 0 00 033713 ER5 E,33713 ;C(E) WAS CLOBBERED + 8701 036173 321 07 0 00 036161 JUMPL AC+2,F33710 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0179 + + 8702 ;MULTIPLY A 1 BY 400000,,0 + 8703 400000 000000 XX=400000000000 + 8704 003372 ADR=ADR+1 + 8705 + 8706 MOP1 (\ADR,XX,-1,1,1,0)^ + 8707 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 8708 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8709 ;AND E AGAINST [1], [0] AND [1] RESPECTIVELY. + 8710 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8711 + 8712 400000 000000 F33720: AA1=XX ;INITIAL C(AC) + 8713 036174 200 05 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 8714 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 8715 036175 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 8716 000001 AEE=1 ;INITIAL C(E) + 8717 036176 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 8718 036177 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8719 000001 AR1=1 ;EXPECTED RESULT IN AC + 8720 036200 312 05 0 00 044000 CAME AC,[1] ;IS HIGH PRODUCT CORRECT? + 8721 036201 003 05 0 00 033721 ER3 AC,33721 ;HIGH PRODUCT FAILED + 8722 000000 AR2=0 ;EXPECTED RESULT IN AC+1 + 8723 036202 312 06 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? + 8724 036203 004 06 0 00 033722 ER4 AC+1,33722 ;LOW PRODUCT FAILED + 8725 000001 AEE=1 ;INITIAL C(E) + 8726 036204 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 8727 036205 005 03 0 00 033723 ER5 E,33723 ;C(E) WAS CLOBBERED + 8728 036206 321 07 0 00 036174 JUMPL AC+2,F33720 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0180 + + 8729 000004 AC=4 + 8730 000002 E=&17 + 8731 SAVEAC (1,1)^ + 8732 036207 201 06 0 00 036207 MOVEI AC+2,. ;SAVE TEST PC + 8733 036210 202 06 0 00 030051 MOVEM AC+2,TESTPC + 8734 036211 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 8735 036212 202 06 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 8736 000000 XX=0 + 8737 + 8738 REPEAT ^D36,< + 8739 ADR=ADR+1 + 8740 XX=XX+XX + 8741 IFE XX, + 8742 + 8743 ;MULTIPLY A RIPPLED ONE BY -1 + 8744 IFG XX,< + 8745 V1=-1 + 8746 V2=-XX> + 8747 IFL XX,< + 8748 V1=1 + 8749 V2=0> + 8750 MOP1 (\ADR,-1,0,XX,V1,V2)> + 8751 + 8752 003373 ADR=ADR+1 + 8753 000000 XX=XX+XX + 8754 000001 IFE XX, + 8755 + 8756 ;MULTIPLY A RIPPLED ONE BY -1 + 8757 IFG XX,< + 8758 777777 777777 V1=-1 + 8759 777777 777777 V2=-XX> + 8760 IFL XX,< + 8761 V1=1 + 8762 V2=0> + 8763 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8764 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8765 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8766 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8767 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8768 + 8769 777777 777777 F33730: AA1=-1 ;INITIAL C(AC) + 8770 036213 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8771 000000 AA2=0 ;INITIAL C(AC+1) + 8772 036214 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8773 000001 AEE=XX ;INITIAL C(E) + 8774 036215 200 02 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8775 036216 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8776 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8777 036217 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8778 036220 003 04 0 00 033731 ER3 AC,33731 ;HIGH PRODUCT FAILED + 8779 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8780 036221 312 05 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8781 036222 004 05 0 00 033732 ER4 AC+1,33732 ;LOW PRODUCT FAILED + 8782 000001 AEE=XX ;INITIAL C(E) + 8783 036223 312 02 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0181 + + 8784 036224 005 02 0 00 033733 ER5 E,33733 ;C(E) WAS CLOBBERED + 8785 036225 321 06 0 00 036213 JUMPL AC+2,F33730 ;LOOP ON ERROR SWITCH^ + 8786 + 8787 003374 ADR=ADR+1 + 8788 000002 XX=XX+XX + 8789 IFE XX, + 8790 + 8791 ;MULTIPLY A RIPPLED ONE BY -1 + 8792 IFG XX,< + 8793 777777 777777 V1=-1 + 8794 777777 777776 V2=-XX> + 8795 IFL XX,< + 8796 V1=1 + 8797 V2=0> + 8798 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8799 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8800 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8801 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8802 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8803 + 8804 777777 777777 F33740: AA1=-1 ;INITIAL C(AC) + 8805 036226 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8806 000000 AA2=0 ;INITIAL C(AC+1) + 8807 036227 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8808 000002 AEE=XX ;INITIAL C(E) + 8809 036230 200 02 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8810 036231 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8811 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8812 036232 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8813 036233 003 04 0 00 033741 ER3 AC,33741 ;HIGH PRODUCT FAILED + 8814 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8815 036234 312 05 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8816 036235 004 05 0 00 033742 ER4 AC+1,33742 ;LOW PRODUCT FAILED + 8817 000002 AEE=XX ;INITIAL C(E) + 8818 036236 312 02 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8819 036237 005 02 0 00 033743 ER5 E,33743 ;C(E) WAS CLOBBERED + 8820 036240 321 06 0 00 036226 JUMPL AC+2,F33740 ;LOOP ON ERROR SWITCH^ + 8821 + 8822 003375 ADR=ADR+1 + 8823 000004 XX=XX+XX + 8824 IFE XX, + 8825 + 8826 ;MULTIPLY A RIPPLED ONE BY -1 + 8827 IFG XX,< + 8828 777777 777777 V1=-1 + 8829 777777 777774 V2=-XX> + 8830 IFL XX,< + 8831 V1=1 + 8832 V2=0> + 8833 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8834 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8835 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8836 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8837 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8838 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0182 + + 8839 777777 777777 F33750: AA1=-1 ;INITIAL C(AC) + 8840 036241 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8841 000000 AA2=0 ;INITIAL C(AC+1) + 8842 036242 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8843 000004 AEE=XX ;INITIAL C(E) + 8844 036243 200 02 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8845 036244 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8846 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8847 036245 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8848 036246 003 04 0 00 033751 ER3 AC,33751 ;HIGH PRODUCT FAILED + 8849 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8850 036247 312 05 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8851 036250 004 05 0 00 033752 ER4 AC+1,33752 ;LOW PRODUCT FAILED + 8852 000004 AEE=XX ;INITIAL C(E) + 8853 036251 312 02 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8854 036252 005 02 0 00 033753 ER5 E,33753 ;C(E) WAS CLOBBERED + 8855 036253 321 06 0 00 036241 JUMPL AC+2,F33750 ;LOOP ON ERROR SWITCH^ + 8856 + 8857 003376 ADR=ADR+1 + 8858 000010 XX=XX+XX + 8859 IFE XX, + 8860 + 8861 ;MULTIPLY A RIPPLED ONE BY -1 + 8862 IFG XX,< + 8863 777777 777777 V1=-1 + 8864 777777 777770 V2=-XX> + 8865 IFL XX,< + 8866 V1=1 + 8867 V2=0> + 8868 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8869 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8870 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8871 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8872 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8873 + 8874 777777 777777 F33760: AA1=-1 ;INITIAL C(AC) + 8875 036254 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8876 000000 AA2=0 ;INITIAL C(AC+1) + 8877 036255 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8878 000010 AEE=XX ;INITIAL C(E) + 8879 036256 200 02 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8880 036257 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8881 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8882 036260 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8883 036261 003 04 0 00 033761 ER3 AC,33761 ;HIGH PRODUCT FAILED + 8884 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8885 036262 312 05 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8886 036263 004 05 0 00 033762 ER4 AC+1,33762 ;LOW PRODUCT FAILED + 8887 000010 AEE=XX ;INITIAL C(E) + 8888 036264 312 02 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8889 036265 005 02 0 00 033763 ER5 E,33763 ;C(E) WAS CLOBBERED + 8890 036266 321 06 0 00 036254 JUMPL AC+2,F33760 ;LOOP ON ERROR SWITCH^ + 8891 + 8892 003377 ADR=ADR+1 + 8893 000020 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0183 + + 8894 IFE XX, + 8895 + 8896 ;MULTIPLY A RIPPLED ONE BY -1 + 8897 IFG XX,< + 8898 777777 777777 V1=-1 + 8899 777777 777760 V2=-XX> + 8900 IFL XX,< + 8901 V1=1 + 8902 V2=0> + 8903 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8904 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8905 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8906 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8907 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8908 + 8909 777777 777777 F33770: AA1=-1 ;INITIAL C(AC) + 8910 036267 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8911 000000 AA2=0 ;INITIAL C(AC+1) + 8912 036270 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8913 000020 AEE=XX ;INITIAL C(E) + 8914 036271 200 02 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8915 036272 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8916 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8917 036273 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8918 036274 003 04 0 00 033771 ER3 AC,33771 ;HIGH PRODUCT FAILED + 8919 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8920 036275 312 05 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8921 036276 004 05 0 00 033772 ER4 AC+1,33772 ;LOW PRODUCT FAILED + 8922 000020 AEE=XX ;INITIAL C(E) + 8923 036277 312 02 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8924 036300 005 02 0 00 033773 ER5 E,33773 ;C(E) WAS CLOBBERED + 8925 036301 321 06 0 00 036267 JUMPL AC+2,F33770 ;LOOP ON ERROR SWITCH^ + 8926 + 8927 003400 ADR=ADR+1 + 8928 000040 XX=XX+XX + 8929 IFE XX, + 8930 + 8931 ;MULTIPLY A RIPPLED ONE BY -1 + 8932 IFG XX,< + 8933 777777 777777 V1=-1 + 8934 777777 777740 V2=-XX> + 8935 IFL XX,< + 8936 V1=1 + 8937 V2=0> + 8938 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8939 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8940 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8941 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8942 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8943 + 8944 777777 777777 F34000: AA1=-1 ;INITIAL C(AC) + 8945 036302 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8946 000000 AA2=0 ;INITIAL C(AC+1) + 8947 036303 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8948 000040 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0184 + + 8949 036304 200 02 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8950 036305 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8951 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8952 036306 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8953 036307 003 04 0 00 034001 ER3 AC,34001 ;HIGH PRODUCT FAILED + 8954 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8955 036310 312 05 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8956 036311 004 05 0 00 034002 ER4 AC+1,34002 ;LOW PRODUCT FAILED + 8957 000040 AEE=XX ;INITIAL C(E) + 8958 036312 312 02 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8959 036313 005 02 0 00 034003 ER5 E,34003 ;C(E) WAS CLOBBERED + 8960 036314 321 06 0 00 036302 JUMPL AC+2,F34000 ;LOOP ON ERROR SWITCH^ + 8961 + 8962 003401 ADR=ADR+1 + 8963 000100 XX=XX+XX + 8964 IFE XX, + 8965 + 8966 ;MULTIPLY A RIPPLED ONE BY -1 + 8967 IFG XX,< + 8968 777777 777777 V1=-1 + 8969 777777 777700 V2=-XX> + 8970 IFL XX,< + 8971 V1=1 + 8972 V2=0> + 8973 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 8974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 8975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 8976 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 8977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 8978 + 8979 777777 777777 F34010: AA1=-1 ;INITIAL C(AC) + 8980 036315 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 8981 000000 AA2=0 ;INITIAL C(AC+1) + 8982 036316 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 8983 000100 AEE=XX ;INITIAL C(E) + 8984 036317 200 02 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 8985 036320 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 8986 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 8987 036321 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 8988 036322 003 04 0 00 034011 ER3 AC,34011 ;HIGH PRODUCT FAILED + 8989 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1 + 8990 036323 312 05 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 8991 036324 004 05 0 00 034012 ER4 AC+1,34012 ;LOW PRODUCT FAILED + 8992 000100 AEE=XX ;INITIAL C(E) + 8993 036325 312 02 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? + 8994 036326 005 02 0 00 034013 ER5 E,34013 ;C(E) WAS CLOBBERED + 8995 036327 321 06 0 00 036315 JUMPL AC+2,F34010 ;LOOP ON ERROR SWITCH^ + 8996 + 8997 003402 ADR=ADR+1 + 8998 000200 XX=XX+XX + 8999 IFE XX, + 9000 + 9001 ;MULTIPLY A RIPPLED ONE BY -1 + 9002 IFG XX,< + 9003 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0185 + + 9004 777777 777600 V2=-XX> + 9005 IFL XX,< + 9006 V1=1 + 9007 V2=0> + 9008 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9010 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9011 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9013 + 9014 777777 777777 F34020: AA1=-1 ;INITIAL C(AC) + 9015 036330 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9016 000000 AA2=0 ;INITIAL C(AC+1) + 9017 036331 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9018 000200 AEE=XX ;INITIAL C(E) + 9019 036332 200 02 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9020 036333 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9021 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9022 036334 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9023 036335 003 04 0 00 034021 ER3 AC,34021 ;HIGH PRODUCT FAILED + 9024 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9025 036336 312 05 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9026 036337 004 05 0 00 034022 ER4 AC+1,34022 ;LOW PRODUCT FAILED + 9027 000200 AEE=XX ;INITIAL C(E) + 9028 036340 312 02 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9029 036341 005 02 0 00 034023 ER5 E,34023 ;C(E) WAS CLOBBERED + 9030 036342 321 06 0 00 036330 JUMPL AC+2,F34020 ;LOOP ON ERROR SWITCH^ + 9031 + 9032 003403 ADR=ADR+1 + 9033 000400 XX=XX+XX + 9034 IFE XX, + 9035 + 9036 ;MULTIPLY A RIPPLED ONE BY -1 + 9037 IFG XX,< + 9038 777777 777777 V1=-1 + 9039 777777 777400 V2=-XX> + 9040 IFL XX,< + 9041 V1=1 + 9042 V2=0> + 9043 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9044 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9045 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9046 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9047 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9048 + 9049 777777 777777 F34030: AA1=-1 ;INITIAL C(AC) + 9050 036343 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9051 000000 AA2=0 ;INITIAL C(AC+1) + 9052 036344 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9053 000400 AEE=XX ;INITIAL C(E) + 9054 036345 200 02 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9055 036346 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9056 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9057 036347 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9058 036350 003 04 0 00 034031 ER3 AC,34031 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0186 + + 9059 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9060 036351 312 05 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9061 036352 004 05 0 00 034032 ER4 AC+1,34032 ;LOW PRODUCT FAILED + 9062 000400 AEE=XX ;INITIAL C(E) + 9063 036353 312 02 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9064 036354 005 02 0 00 034033 ER5 E,34033 ;C(E) WAS CLOBBERED + 9065 036355 321 06 0 00 036343 JUMPL AC+2,F34030 ;LOOP ON ERROR SWITCH^ + 9066 + 9067 003404 ADR=ADR+1 + 9068 001000 XX=XX+XX + 9069 IFE XX, + 9070 + 9071 ;MULTIPLY A RIPPLED ONE BY -1 + 9072 IFG XX,< + 9073 777777 777777 V1=-1 + 9074 777777 777000 V2=-XX> + 9075 IFL XX,< + 9076 V1=1 + 9077 V2=0> + 9078 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9079 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9080 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9081 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9082 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9083 + 9084 777777 777777 F34040: AA1=-1 ;INITIAL C(AC) + 9085 036356 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9086 000000 AA2=0 ;INITIAL C(AC+1) + 9087 036357 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9088 001000 AEE=XX ;INITIAL C(E) + 9089 036360 200 02 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9090 036361 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9091 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9092 036362 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9093 036363 003 04 0 00 034041 ER3 AC,34041 ;HIGH PRODUCT FAILED + 9094 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9095 036364 312 05 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9096 036365 004 05 0 00 034042 ER4 AC+1,34042 ;LOW PRODUCT FAILED + 9097 001000 AEE=XX ;INITIAL C(E) + 9098 036366 312 02 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9099 036367 005 02 0 00 034043 ER5 E,34043 ;C(E) WAS CLOBBERED + 9100 036370 321 06 0 00 036356 JUMPL AC+2,F34040 ;LOOP ON ERROR SWITCH^ + 9101 + 9102 003405 ADR=ADR+1 + 9103 002000 XX=XX+XX + 9104 IFE XX, + 9105 + 9106 ;MULTIPLY A RIPPLED ONE BY -1 + 9107 IFG XX,< + 9108 777777 777777 V1=-1 + 9109 777777 776000 V2=-XX> + 9110 IFL XX,< + 9111 V1=1 + 9112 V2=0> + 9113 MOP1 (\ADR,-1,0,XX,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0187 + + 9114 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9115 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9116 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9117 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9118 + 9119 777777 777777 F34050: AA1=-1 ;INITIAL C(AC) + 9120 036371 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9121 000000 AA2=0 ;INITIAL C(AC+1) + 9122 036372 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9123 002000 AEE=XX ;INITIAL C(E) + 9124 036373 200 02 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9125 036374 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9126 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9127 036375 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9128 036376 003 04 0 00 034051 ER3 AC,34051 ;HIGH PRODUCT FAILED + 9129 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9130 036377 312 05 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9131 036400 004 05 0 00 034052 ER4 AC+1,34052 ;LOW PRODUCT FAILED + 9132 002000 AEE=XX ;INITIAL C(E) + 9133 036401 312 02 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9134 036402 005 02 0 00 034053 ER5 E,34053 ;C(E) WAS CLOBBERED + 9135 036403 321 06 0 00 036371 JUMPL AC+2,F34050 ;LOOP ON ERROR SWITCH^ + 9136 + 9137 003406 ADR=ADR+1 + 9138 004000 XX=XX+XX + 9139 IFE XX, + 9140 + 9141 ;MULTIPLY A RIPPLED ONE BY -1 + 9142 IFG XX,< + 9143 777777 777777 V1=-1 + 9144 777777 774000 V2=-XX> + 9145 IFL XX,< + 9146 V1=1 + 9147 V2=0> + 9148 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9151 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9153 + 9154 777777 777777 F34060: AA1=-1 ;INITIAL C(AC) + 9155 036404 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9156 000000 AA2=0 ;INITIAL C(AC+1) + 9157 036405 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9158 004000 AEE=XX ;INITIAL C(E) + 9159 036406 200 02 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9160 036407 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9162 036410 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9163 036411 003 04 0 00 034061 ER3 AC,34061 ;HIGH PRODUCT FAILED + 9164 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9165 036412 312 05 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9166 036413 004 05 0 00 034062 ER4 AC+1,34062 ;LOW PRODUCT FAILED + 9167 004000 AEE=XX ;INITIAL C(E) + 9168 036414 312 02 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0188 + + 9169 036415 005 02 0 00 034063 ER5 E,34063 ;C(E) WAS CLOBBERED + 9170 036416 321 06 0 00 036404 JUMPL AC+2,F34060 ;LOOP ON ERROR SWITCH^ + 9171 + 9172 003407 ADR=ADR+1 + 9173 010000 XX=XX+XX + 9174 IFE XX, + 9175 + 9176 ;MULTIPLY A RIPPLED ONE BY -1 + 9177 IFG XX,< + 9178 777777 777777 V1=-1 + 9179 777777 770000 V2=-XX> + 9180 IFL XX,< + 9181 V1=1 + 9182 V2=0> + 9183 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9185 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9186 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9188 + 9189 777777 777777 F34070: AA1=-1 ;INITIAL C(AC) + 9190 036417 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9191 000000 AA2=0 ;INITIAL C(AC+1) + 9192 036420 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9193 010000 AEE=XX ;INITIAL C(E) + 9194 036421 200 02 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9195 036422 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9196 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9197 036423 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9198 036424 003 04 0 00 034071 ER3 AC,34071 ;HIGH PRODUCT FAILED + 9199 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9200 036425 312 05 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9201 036426 004 05 0 00 034072 ER4 AC+1,34072 ;LOW PRODUCT FAILED + 9202 010000 AEE=XX ;INITIAL C(E) + 9203 036427 312 02 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9204 036430 005 02 0 00 034073 ER5 E,34073 ;C(E) WAS CLOBBERED + 9205 036431 321 06 0 00 036417 JUMPL AC+2,F34070 ;LOOP ON ERROR SWITCH^ + 9206 + 9207 003410 ADR=ADR+1 + 9208 020000 XX=XX+XX + 9209 IFE XX, + 9210 + 9211 ;MULTIPLY A RIPPLED ONE BY -1 + 9212 IFG XX,< + 9213 777777 777777 V1=-1 + 9214 777777 760000 V2=-XX> + 9215 IFL XX,< + 9216 V1=1 + 9217 V2=0> + 9218 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9220 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9221 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9223 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0189 + + 9224 777777 777777 F34100: AA1=-1 ;INITIAL C(AC) + 9225 036432 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9226 000000 AA2=0 ;INITIAL C(AC+1) + 9227 036433 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9228 020000 AEE=XX ;INITIAL C(E) + 9229 036434 200 02 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9230 036435 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9231 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9232 036436 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9233 036437 003 04 0 00 034101 ER3 AC,34101 ;HIGH PRODUCT FAILED + 9234 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9235 036440 312 05 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9236 036441 004 05 0 00 034102 ER4 AC+1,34102 ;LOW PRODUCT FAILED + 9237 020000 AEE=XX ;INITIAL C(E) + 9238 036442 312 02 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9239 036443 005 02 0 00 034103 ER5 E,34103 ;C(E) WAS CLOBBERED + 9240 036444 321 06 0 00 036432 JUMPL AC+2,F34100 ;LOOP ON ERROR SWITCH^ + 9241 + 9242 003411 ADR=ADR+1 + 9243 040000 XX=XX+XX + 9244 IFE XX, + 9245 + 9246 ;MULTIPLY A RIPPLED ONE BY -1 + 9247 IFG XX,< + 9248 777777 777777 V1=-1 + 9249 777777 740000 V2=-XX> + 9250 IFL XX,< + 9251 V1=1 + 9252 V2=0> + 9253 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9256 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9258 + 9259 777777 777777 F34110: AA1=-1 ;INITIAL C(AC) + 9260 036445 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9261 000000 AA2=0 ;INITIAL C(AC+1) + 9262 036446 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9263 040000 AEE=XX ;INITIAL C(E) + 9264 036447 200 02 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9265 036450 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9266 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9267 036451 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9268 036452 003 04 0 00 034111 ER3 AC,34111 ;HIGH PRODUCT FAILED + 9269 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9270 036453 312 05 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9271 036454 004 05 0 00 034112 ER4 AC+1,34112 ;LOW PRODUCT FAILED + 9272 040000 AEE=XX ;INITIAL C(E) + 9273 036455 312 02 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9274 036456 005 02 0 00 034113 ER5 E,34113 ;C(E) WAS CLOBBERED + 9275 036457 321 06 0 00 036445 JUMPL AC+2,F34110 ;LOOP ON ERROR SWITCH^ + 9276 + 9277 003412 ADR=ADR+1 + 9278 100000 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0190 + + 9279 IFE XX, + 9280 + 9281 ;MULTIPLY A RIPPLED ONE BY -1 + 9282 IFG XX,< + 9283 777777 777777 V1=-1 + 9284 777777 700000 V2=-XX> + 9285 IFL XX,< + 9286 V1=1 + 9287 V2=0> + 9288 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9290 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9291 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9293 + 9294 777777 777777 F34120: AA1=-1 ;INITIAL C(AC) + 9295 036460 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9296 000000 AA2=0 ;INITIAL C(AC+1) + 9297 036461 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9298 100000 AEE=XX ;INITIAL C(E) + 9299 036462 200 02 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9300 036463 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9301 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9302 036464 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9303 036465 003 04 0 00 034121 ER3 AC,34121 ;HIGH PRODUCT FAILED + 9304 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9305 036466 312 05 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9306 036467 004 05 0 00 034122 ER4 AC+1,34122 ;LOW PRODUCT FAILED + 9307 100000 AEE=XX ;INITIAL C(E) + 9308 036470 312 02 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9309 036471 005 02 0 00 034123 ER5 E,34123 ;C(E) WAS CLOBBERED + 9310 036472 321 06 0 00 036460 JUMPL AC+2,F34120 ;LOOP ON ERROR SWITCH^ + 9311 + 9312 003413 ADR=ADR+1 + 9313 200000 XX=XX+XX + 9314 IFE XX, + 9315 + 9316 ;MULTIPLY A RIPPLED ONE BY -1 + 9317 IFG XX,< + 9318 777777 777777 V1=-1 + 9319 777777 600000 V2=-XX> + 9320 IFL XX,< + 9321 V1=1 + 9322 V2=0> + 9323 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9324 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9325 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9326 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9327 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9328 + 9329 777777 777777 F34130: AA1=-1 ;INITIAL C(AC) + 9330 036473 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9331 000000 AA2=0 ;INITIAL C(AC+1) + 9332 036474 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9333 200000 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0191 + + 9334 036475 200 02 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9335 036476 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9336 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9337 036477 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9338 036500 003 04 0 00 034131 ER3 AC,34131 ;HIGH PRODUCT FAILED + 9339 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9340 036501 312 05 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9341 036502 004 05 0 00 034132 ER4 AC+1,34132 ;LOW PRODUCT FAILED + 9342 200000 AEE=XX ;INITIAL C(E) + 9343 036503 312 02 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9344 036504 005 02 0 00 034133 ER5 E,34133 ;C(E) WAS CLOBBERED + 9345 036505 321 06 0 00 036473 JUMPL AC+2,F34130 ;LOOP ON ERROR SWITCH^ + 9346 + 9347 003414 ADR=ADR+1 + 9348 400000 XX=XX+XX + 9349 IFE XX, + 9350 + 9351 ;MULTIPLY A RIPPLED ONE BY -1 + 9352 IFG XX,< + 9353 777777 777777 V1=-1 + 9354 777777 400000 V2=-XX> + 9355 IFL XX,< + 9356 V1=1 + 9357 V2=0> + 9358 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9359 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9360 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9361 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9362 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9363 + 9364 777777 777777 F34140: AA1=-1 ;INITIAL C(AC) + 9365 036506 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9366 000000 AA2=0 ;INITIAL C(AC+1) + 9367 036507 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9368 400000 AEE=XX ;INITIAL C(E) + 9369 036510 200 02 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9370 036511 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9371 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9372 036512 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9373 036513 003 04 0 00 034141 ER3 AC,34141 ;HIGH PRODUCT FAILED + 9374 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9375 036514 312 05 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9376 036515 004 05 0 00 034142 ER4 AC+1,34142 ;LOW PRODUCT FAILED + 9377 400000 AEE=XX ;INITIAL C(E) + 9378 036516 312 02 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9379 036517 005 02 0 00 034143 ER5 E,34143 ;C(E) WAS CLOBBERED + 9380 036520 321 06 0 00 036506 JUMPL AC+2,F34140 ;LOOP ON ERROR SWITCH^ + 9381 + 9382 003415 ADR=ADR+1 + 9383 000001 000000 XX=XX+XX + 9384 IFE XX, + 9385 + 9386 ;MULTIPLY A RIPPLED ONE BY -1 + 9387 IFG XX,< + 9388 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0192 + + 9389 777777 000000 V2=-XX> + 9390 IFL XX,< + 9391 V1=1 + 9392 V2=0> + 9393 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9394 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9395 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9396 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9397 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9398 + 9399 777777 777777 F34150: AA1=-1 ;INITIAL C(AC) + 9400 036521 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9401 000000 AA2=0 ;INITIAL C(AC+1) + 9402 036522 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9403 000001 000000 AEE=XX ;INITIAL C(E) + 9404 036523 200 02 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9405 036524 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9406 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9407 036525 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9408 036526 003 04 0 00 034151 ER3 AC,34151 ;HIGH PRODUCT FAILED + 9409 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9410 036527 312 05 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9411 036530 004 05 0 00 034152 ER4 AC+1,34152 ;LOW PRODUCT FAILED + 9412 000001 000000 AEE=XX ;INITIAL C(E) + 9413 036531 312 02 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9414 036532 005 02 0 00 034153 ER5 E,34153 ;C(E) WAS CLOBBERED + 9415 036533 321 06 0 00 036521 JUMPL AC+2,F34150 ;LOOP ON ERROR SWITCH^ + 9416 + 9417 003416 ADR=ADR+1 + 9418 000002 000000 XX=XX+XX + 9419 IFE XX, + 9420 + 9421 ;MULTIPLY A RIPPLED ONE BY -1 + 9422 IFG XX,< + 9423 777777 777777 V1=-1 + 9424 777776 000000 V2=-XX> + 9425 IFL XX,< + 9426 V1=1 + 9427 V2=0> + 9428 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9429 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9430 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9431 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9432 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9433 + 9434 777777 777777 F34160: AA1=-1 ;INITIAL C(AC) + 9435 036534 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9436 000000 AA2=0 ;INITIAL C(AC+1) + 9437 036535 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9438 000002 000000 AEE=XX ;INITIAL C(E) + 9439 036536 200 02 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9440 036537 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9441 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9442 036540 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9443 036541 003 04 0 00 034161 ER3 AC,34161 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0193 + + 9444 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9445 036542 312 05 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9446 036543 004 05 0 00 034162 ER4 AC+1,34162 ;LOW PRODUCT FAILED + 9447 000002 000000 AEE=XX ;INITIAL C(E) + 9448 036544 312 02 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9449 036545 005 02 0 00 034163 ER5 E,34163 ;C(E) WAS CLOBBERED + 9450 036546 321 06 0 00 036534 JUMPL AC+2,F34160 ;LOOP ON ERROR SWITCH^ + 9451 + 9452 003417 ADR=ADR+1 + 9453 000004 000000 XX=XX+XX + 9454 IFE XX, + 9455 + 9456 ;MULTIPLY A RIPPLED ONE BY -1 + 9457 IFG XX,< + 9458 777777 777777 V1=-1 + 9459 777774 000000 V2=-XX> + 9460 IFL XX,< + 9461 V1=1 + 9462 V2=0> + 9463 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9464 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9465 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9466 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9467 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9468 + 9469 777777 777777 F34170: AA1=-1 ;INITIAL C(AC) + 9470 036547 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9471 000000 AA2=0 ;INITIAL C(AC+1) + 9472 036550 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9473 000004 000000 AEE=XX ;INITIAL C(E) + 9474 036551 200 02 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9475 036552 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9476 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9477 036553 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9478 036554 003 04 0 00 034171 ER3 AC,34171 ;HIGH PRODUCT FAILED + 9479 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9480 036555 312 05 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9481 036556 004 05 0 00 034172 ER4 AC+1,34172 ;LOW PRODUCT FAILED + 9482 000004 000000 AEE=XX ;INITIAL C(E) + 9483 036557 312 02 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9484 036560 005 02 0 00 034173 ER5 E,34173 ;C(E) WAS CLOBBERED + 9485 036561 321 06 0 00 036547 JUMPL AC+2,F34170 ;LOOP ON ERROR SWITCH^ + 9486 + 9487 003420 ADR=ADR+1 + 9488 000010 000000 XX=XX+XX + 9489 IFE XX, + 9490 + 9491 ;MULTIPLY A RIPPLED ONE BY -1 + 9492 IFG XX,< + 9493 777777 777777 V1=-1 + 9494 777770 000000 V2=-XX> + 9495 IFL XX,< + 9496 V1=1 + 9497 V2=0> + 9498 MOP1 (\ADR,-1,0,XX,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0194 + + 9499 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9500 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9501 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9502 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9503 + 9504 777777 777777 F34200: AA1=-1 ;INITIAL C(AC) + 9505 036562 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9506 000000 AA2=0 ;INITIAL C(AC+1) + 9507 036563 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9508 000010 000000 AEE=XX ;INITIAL C(E) + 9509 036564 200 02 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9510 036565 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9511 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9512 036566 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9513 036567 003 04 0 00 034201 ER3 AC,34201 ;HIGH PRODUCT FAILED + 9514 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9515 036570 312 05 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9516 036571 004 05 0 00 034202 ER4 AC+1,34202 ;LOW PRODUCT FAILED + 9517 000010 000000 AEE=XX ;INITIAL C(E) + 9518 036572 312 02 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9519 036573 005 02 0 00 034203 ER5 E,34203 ;C(E) WAS CLOBBERED + 9520 036574 321 06 0 00 036562 JUMPL AC+2,F34200 ;LOOP ON ERROR SWITCH^ + 9521 + 9522 003421 ADR=ADR+1 + 9523 000020 000000 XX=XX+XX + 9524 IFE XX, + 9525 + 9526 ;MULTIPLY A RIPPLED ONE BY -1 + 9527 IFG XX,< + 9528 777777 777777 V1=-1 + 9529 777760 000000 V2=-XX> + 9530 IFL XX,< + 9531 V1=1 + 9532 V2=0> + 9533 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9534 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9535 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9536 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9537 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9538 + 9539 777777 777777 F34210: AA1=-1 ;INITIAL C(AC) + 9540 036575 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9541 000000 AA2=0 ;INITIAL C(AC+1) + 9542 036576 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9543 000020 000000 AEE=XX ;INITIAL C(E) + 9544 036577 200 02 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9545 036600 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9546 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9547 036601 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9548 036602 003 04 0 00 034211 ER3 AC,34211 ;HIGH PRODUCT FAILED + 9549 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9550 036603 312 05 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9551 036604 004 05 0 00 034212 ER4 AC+1,34212 ;LOW PRODUCT FAILED + 9552 000020 000000 AEE=XX ;INITIAL C(E) + 9553 036605 312 02 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0195 + + 9554 036606 005 02 0 00 034213 ER5 E,34213 ;C(E) WAS CLOBBERED + 9555 036607 321 06 0 00 036575 JUMPL AC+2,F34210 ;LOOP ON ERROR SWITCH^ + 9556 + 9557 003422 ADR=ADR+1 + 9558 000040 000000 XX=XX+XX + 9559 IFE XX, + 9560 + 9561 ;MULTIPLY A RIPPLED ONE BY -1 + 9562 IFG XX,< + 9563 777777 777777 V1=-1 + 9564 777740 000000 V2=-XX> + 9565 IFL XX,< + 9566 V1=1 + 9567 V2=0> + 9568 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9569 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9570 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9571 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9572 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9573 + 9574 777777 777777 F34220: AA1=-1 ;INITIAL C(AC) + 9575 036610 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9576 000000 AA2=0 ;INITIAL C(AC+1) + 9577 036611 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9578 000040 000000 AEE=XX ;INITIAL C(E) + 9579 036612 200 02 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9580 036613 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9581 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9582 036614 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9583 036615 003 04 0 00 034221 ER3 AC,34221 ;HIGH PRODUCT FAILED + 9584 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9585 036616 312 05 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9586 036617 004 05 0 00 034222 ER4 AC+1,34222 ;LOW PRODUCT FAILED + 9587 000040 000000 AEE=XX ;INITIAL C(E) + 9588 036620 312 02 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9589 036621 005 02 0 00 034223 ER5 E,34223 ;C(E) WAS CLOBBERED + 9590 036622 321 06 0 00 036610 JUMPL AC+2,F34220 ;LOOP ON ERROR SWITCH^ + 9591 + 9592 003423 ADR=ADR+1 + 9593 000100 000000 XX=XX+XX + 9594 IFE XX, + 9595 + 9596 ;MULTIPLY A RIPPLED ONE BY -1 + 9597 IFG XX,< + 9598 777777 777777 V1=-1 + 9599 777700 000000 V2=-XX> + 9600 IFL XX,< + 9601 V1=1 + 9602 V2=0> + 9603 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9604 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9605 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9606 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9607 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9608 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0196 + + 9609 777777 777777 F34230: AA1=-1 ;INITIAL C(AC) + 9610 036623 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9611 000000 AA2=0 ;INITIAL C(AC+1) + 9612 036624 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9613 000100 000000 AEE=XX ;INITIAL C(E) + 9614 036625 200 02 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9615 036626 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9616 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9617 036627 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9618 036630 003 04 0 00 034231 ER3 AC,34231 ;HIGH PRODUCT FAILED + 9619 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9620 036631 312 05 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9621 036632 004 05 0 00 034232 ER4 AC+1,34232 ;LOW PRODUCT FAILED + 9622 000100 000000 AEE=XX ;INITIAL C(E) + 9623 036633 312 02 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9624 036634 005 02 0 00 034233 ER5 E,34233 ;C(E) WAS CLOBBERED + 9625 036635 321 06 0 00 036623 JUMPL AC+2,F34230 ;LOOP ON ERROR SWITCH^ + 9626 + 9627 003424 ADR=ADR+1 + 9628 000200 000000 XX=XX+XX + 9629 IFE XX, + 9630 + 9631 ;MULTIPLY A RIPPLED ONE BY -1 + 9632 IFG XX,< + 9633 777777 777777 V1=-1 + 9634 777600 000000 V2=-XX> + 9635 IFL XX,< + 9636 V1=1 + 9637 V2=0> + 9638 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9641 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9643 + 9644 777777 777777 F34240: AA1=-1 ;INITIAL C(AC) + 9645 036636 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9646 000000 AA2=0 ;INITIAL C(AC+1) + 9647 036637 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9648 000200 000000 AEE=XX ;INITIAL C(E) + 9649 036640 200 02 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9650 036641 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9651 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9652 036642 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9653 036643 003 04 0 00 034241 ER3 AC,34241 ;HIGH PRODUCT FAILED + 9654 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9655 036644 312 05 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9656 036645 004 05 0 00 034242 ER4 AC+1,34242 ;LOW PRODUCT FAILED + 9657 000200 000000 AEE=XX ;INITIAL C(E) + 9658 036646 312 02 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9659 036647 005 02 0 00 034243 ER5 E,34243 ;C(E) WAS CLOBBERED + 9660 036650 321 06 0 00 036636 JUMPL AC+2,F34240 ;LOOP ON ERROR SWITCH^ + 9661 + 9662 003425 ADR=ADR+1 + 9663 000400 000000 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0197 + + 9664 IFE XX, + 9665 + 9666 ;MULTIPLY A RIPPLED ONE BY -1 + 9667 IFG XX,< + 9668 777777 777777 V1=-1 + 9669 777400 000000 V2=-XX> + 9670 IFL XX,< + 9671 V1=1 + 9672 V2=0> + 9673 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9674 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9675 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9676 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9677 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9678 + 9679 777777 777777 F34250: AA1=-1 ;INITIAL C(AC) + 9680 036651 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9681 000000 AA2=0 ;INITIAL C(AC+1) + 9682 036652 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9683 000400 000000 AEE=XX ;INITIAL C(E) + 9684 036653 200 02 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9685 036654 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9686 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9687 036655 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9688 036656 003 04 0 00 034251 ER3 AC,34251 ;HIGH PRODUCT FAILED + 9689 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9690 036657 312 05 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9691 036660 004 05 0 00 034252 ER4 AC+1,34252 ;LOW PRODUCT FAILED + 9692 000400 000000 AEE=XX ;INITIAL C(E) + 9693 036661 312 02 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9694 036662 005 02 0 00 034253 ER5 E,34253 ;C(E) WAS CLOBBERED + 9695 036663 321 06 0 00 036651 JUMPL AC+2,F34250 ;LOOP ON ERROR SWITCH^ + 9696 + 9697 003426 ADR=ADR+1 + 9698 001000 000000 XX=XX+XX + 9699 IFE XX, + 9700 + 9701 ;MULTIPLY A RIPPLED ONE BY -1 + 9702 IFG XX,< + 9703 777777 777777 V1=-1 + 9704 777000 000000 V2=-XX> + 9705 IFL XX,< + 9706 V1=1 + 9707 V2=0> + 9708 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9711 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9713 + 9714 777777 777777 F34260: AA1=-1 ;INITIAL C(AC) + 9715 036664 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9716 000000 AA2=0 ;INITIAL C(AC+1) + 9717 036665 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9718 001000 000000 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0198 + + 9719 036666 200 02 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9720 036667 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9721 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9722 036670 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9723 036671 003 04 0 00 034261 ER3 AC,34261 ;HIGH PRODUCT FAILED + 9724 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9725 036672 312 05 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9726 036673 004 05 0 00 034262 ER4 AC+1,34262 ;LOW PRODUCT FAILED + 9727 001000 000000 AEE=XX ;INITIAL C(E) + 9728 036674 312 02 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9729 036675 005 02 0 00 034263 ER5 E,34263 ;C(E) WAS CLOBBERED + 9730 036676 321 06 0 00 036664 JUMPL AC+2,F34260 ;LOOP ON ERROR SWITCH^ + 9731 + 9732 003427 ADR=ADR+1 + 9733 002000 000000 XX=XX+XX + 9734 IFE XX, + 9735 + 9736 ;MULTIPLY A RIPPLED ONE BY -1 + 9737 IFG XX,< + 9738 777777 777777 V1=-1 + 9739 776000 000000 V2=-XX> + 9740 IFL XX,< + 9741 V1=1 + 9742 V2=0> + 9743 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9744 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9745 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9746 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9747 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9748 + 9749 777777 777777 F34270: AA1=-1 ;INITIAL C(AC) + 9750 036677 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9751 000000 AA2=0 ;INITIAL C(AC+1) + 9752 036700 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9753 002000 000000 AEE=XX ;INITIAL C(E) + 9754 036701 200 02 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9755 036702 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9756 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9757 036703 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9758 036704 003 04 0 00 034271 ER3 AC,34271 ;HIGH PRODUCT FAILED + 9759 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9760 036705 312 05 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9761 036706 004 05 0 00 034272 ER4 AC+1,34272 ;LOW PRODUCT FAILED + 9762 002000 000000 AEE=XX ;INITIAL C(E) + 9763 036707 312 02 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9764 036710 005 02 0 00 034273 ER5 E,34273 ;C(E) WAS CLOBBERED + 9765 036711 321 06 0 00 036677 JUMPL AC+2,F34270 ;LOOP ON ERROR SWITCH^ + 9766 + 9767 003430 ADR=ADR+1 + 9768 004000 000000 XX=XX+XX + 9769 IFE XX, + 9770 + 9771 ;MULTIPLY A RIPPLED ONE BY -1 + 9772 IFG XX,< + 9773 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0199 + + 9774 774000 000000 V2=-XX> + 9775 IFL XX,< + 9776 V1=1 + 9777 V2=0> + 9778 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9779 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9780 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9781 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9782 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9783 + 9784 777777 777777 F34300: AA1=-1 ;INITIAL C(AC) + 9785 036712 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9786 000000 AA2=0 ;INITIAL C(AC+1) + 9787 036713 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9788 004000 000000 AEE=XX ;INITIAL C(E) + 9789 036714 200 02 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9790 036715 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9791 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9792 036716 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9793 036717 003 04 0 00 034301 ER3 AC,34301 ;HIGH PRODUCT FAILED + 9794 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9795 036720 312 05 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9796 036721 004 05 0 00 034302 ER4 AC+1,34302 ;LOW PRODUCT FAILED + 9797 004000 000000 AEE=XX ;INITIAL C(E) + 9798 036722 312 02 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9799 036723 005 02 0 00 034303 ER5 E,34303 ;C(E) WAS CLOBBERED + 9800 036724 321 06 0 00 036712 JUMPL AC+2,F34300 ;LOOP ON ERROR SWITCH^ + 9801 + 9802 003431 ADR=ADR+1 + 9803 010000 000000 XX=XX+XX + 9804 IFE XX, + 9805 + 9806 ;MULTIPLY A RIPPLED ONE BY -1 + 9807 IFG XX,< + 9808 777777 777777 V1=-1 + 9809 770000 000000 V2=-XX> + 9810 IFL XX,< + 9811 V1=1 + 9812 V2=0> + 9813 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9815 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9816 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9818 + 9819 777777 777777 F34310: AA1=-1 ;INITIAL C(AC) + 9820 036725 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9821 000000 AA2=0 ;INITIAL C(AC+1) + 9822 036726 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9823 010000 000000 AEE=XX ;INITIAL C(E) + 9824 036727 200 02 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9825 036730 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9826 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9827 036731 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9828 036732 003 04 0 00 034311 ER3 AC,34311 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0200 + + 9829 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9830 036733 312 05 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9831 036734 004 05 0 00 034312 ER4 AC+1,34312 ;LOW PRODUCT FAILED + 9832 010000 000000 AEE=XX ;INITIAL C(E) + 9833 036735 312 02 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9834 036736 005 02 0 00 034313 ER5 E,34313 ;C(E) WAS CLOBBERED + 9835 036737 321 06 0 00 036725 JUMPL AC+2,F34310 ;LOOP ON ERROR SWITCH^ + 9836 + 9837 003432 ADR=ADR+1 + 9838 020000 000000 XX=XX+XX + 9839 IFE XX, + 9840 + 9841 ;MULTIPLY A RIPPLED ONE BY -1 + 9842 IFG XX,< + 9843 777777 777777 V1=-1 + 9844 760000 000000 V2=-XX> + 9845 IFL XX,< + 9846 V1=1 + 9847 V2=0> + 9848 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9850 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9851 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9853 + 9854 777777 777777 F34320: AA1=-1 ;INITIAL C(AC) + 9855 036740 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9856 000000 AA2=0 ;INITIAL C(AC+1) + 9857 036741 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9858 020000 000000 AEE=XX ;INITIAL C(E) + 9859 036742 200 02 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9860 036743 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9862 036744 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9863 036745 003 04 0 00 034321 ER3 AC,34321 ;HIGH PRODUCT FAILED + 9864 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9865 036746 312 05 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9866 036747 004 05 0 00 034322 ER4 AC+1,34322 ;LOW PRODUCT FAILED + 9867 020000 000000 AEE=XX ;INITIAL C(E) + 9868 036750 312 02 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9869 036751 005 02 0 00 034323 ER5 E,34323 ;C(E) WAS CLOBBERED + 9870 036752 321 06 0 00 036740 JUMPL AC+2,F34320 ;LOOP ON ERROR SWITCH^ + 9871 + 9872 003433 ADR=ADR+1 + 9873 040000 000000 XX=XX+XX + 9874 IFE XX, + 9875 + 9876 ;MULTIPLY A RIPPLED ONE BY -1 + 9877 IFG XX,< + 9878 777777 777777 V1=-1 + 9879 740000 000000 V2=-XX> + 9880 IFL XX,< + 9881 V1=1 + 9882 V2=0> + 9883 MOP1 (\ADR,-1,0,XX,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0201 + + 9884 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9885 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9886 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9887 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9888 + 9889 777777 777777 F34330: AA1=-1 ;INITIAL C(AC) + 9890 036753 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9891 000000 AA2=0 ;INITIAL C(AC+1) + 9892 036754 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9893 040000 000000 AEE=XX ;INITIAL C(E) + 9894 036755 200 02 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9895 036756 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9896 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9897 036757 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9898 036760 003 04 0 00 034331 ER3 AC,34331 ;HIGH PRODUCT FAILED + 9899 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9900 036761 312 05 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9901 036762 004 05 0 00 034332 ER4 AC+1,34332 ;LOW PRODUCT FAILED + 9902 040000 000000 AEE=XX ;INITIAL C(E) + 9903 036763 312 02 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9904 036764 005 02 0 00 034333 ER5 E,34333 ;C(E) WAS CLOBBERED + 9905 036765 321 06 0 00 036753 JUMPL AC+2,F34330 ;LOOP ON ERROR SWITCH^ + 9906 + 9907 003434 ADR=ADR+1 + 9908 100000 000000 XX=XX+XX + 9909 IFE XX, + 9910 + 9911 ;MULTIPLY A RIPPLED ONE BY -1 + 9912 IFG XX,< + 9913 777777 777777 V1=-1 + 9914 700000 000000 V2=-XX> + 9915 IFL XX,< + 9916 V1=1 + 9917 V2=0> + 9918 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9919 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9920 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9921 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9922 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9923 + 9924 777777 777777 F34340: AA1=-1 ;INITIAL C(AC) + 9925 036766 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9926 000000 AA2=0 ;INITIAL C(AC+1) + 9927 036767 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9928 100000 000000 AEE=XX ;INITIAL C(E) + 9929 036770 200 02 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9930 036771 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9931 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9932 036772 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9933 036773 003 04 0 00 034341 ER3 AC,34341 ;HIGH PRODUCT FAILED + 9934 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9935 036774 312 05 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9936 036775 004 05 0 00 034342 ER4 AC+1,34342 ;LOW PRODUCT FAILED + 9937 100000 000000 AEE=XX ;INITIAL C(E) + 9938 036776 312 02 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-22 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0202 + + 9939 036777 005 02 0 00 034343 ER5 E,34343 ;C(E) WAS CLOBBERED + 9940 037000 321 06 0 00 036766 JUMPL AC+2,F34340 ;LOOP ON ERROR SWITCH^ + 9941 + 9942 003435 ADR=ADR+1 + 9943 200000 000000 XX=XX+XX + 9944 IFE XX, + 9945 + 9946 ;MULTIPLY A RIPPLED ONE BY -1 + 9947 IFG XX,< + 9948 777777 777777 V1=-1 + 9949 600000 000000 V2=-XX> + 9950 IFL XX,< + 9951 V1=1 + 9952 V2=0> + 9953 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9954 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9955 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9956 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9957 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9958 + 9959 777777 777777 F34350: AA1=-1 ;INITIAL C(AC) + 9960 037001 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9961 000000 AA2=0 ;INITIAL C(AC+1) + 9962 037002 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9963 200000 000000 AEE=XX ;INITIAL C(E) + 9964 037003 200 02 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 9965 037004 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 9966 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 9967 037005 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 9968 037006 003 04 0 00 034351 ER3 AC,34351 ;HIGH PRODUCT FAILED + 9969 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 9970 037007 312 05 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 9971 037010 004 05 0 00 034352 ER4 AC+1,34352 ;LOW PRODUCT FAILED + 9972 200000 000000 AEE=XX ;INITIAL C(E) + 9973 037011 312 02 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? + 9974 037012 005 02 0 00 034353 ER5 E,34353 ;C(E) WAS CLOBBERED + 9975 037013 321 06 0 00 037001 JUMPL AC+2,F34350 ;LOOP ON ERROR SWITCH^ + 9976 + 9977 003436 ADR=ADR+1 + 9978 400000 000000 XX=XX+XX + 9979 IFE XX, + 9980 + 9981 ;MULTIPLY A RIPPLED ONE BY -1 + 9982 IFG XX,< + 9983 V1=-1 + 9984 V2=-XX> + 9985 IFL XX,< + 9986 000001 V1=1 + 9987 000000 V2=0> + 9988 MOP1 (\ADR,-1,0,XX,V1,V2)^ + 9989 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND + 9990 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 9991 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. + 9992 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 9993 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-23 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0203 + + 9994 777777 777777 F34360: AA1=-1 ;INITIAL C(AC) + 9995 037014 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 9996 000000 AA2=0 ;INITIAL C(AC+1) + 9997 037015 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 9998 400000 000000 AEE=XX ;INITIAL C(E) + 9999 037016 200 02 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 10000 037017 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10001 000001 AR1=V1 ;EXPECTED RESULT IN AC + 10002 037020 312 04 0 00 044000 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10003 037021 003 04 0 00 034361 ER3 AC,34361 ;HIGH PRODUCT FAILED + 10004 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10005 037022 312 05 0 00 043776 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10006 037023 004 05 0 00 034362 ER4 AC+1,34362 ;LOW PRODUCT FAILED + 10007 400000 000000 AEE=XX ;INITIAL C(E) + 10008 037024 312 02 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? + 10009 037025 005 02 0 00 034363 ER5 E,34363 ;C(E) WAS CLOBBERED + 10010 037026 321 06 0 00 037014 JUMPL AC+2,F34360 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0204 + + 10011 000003 AC=3 + 10012 000001 E=&17 + 10013 SAVEAC (1,1)^ + 10014 037027 201 05 0 00 037027 MOVEI AC+2,. ;SAVE TEST PC + 10015 037030 202 05 0 00 030051 MOVEM AC+2,TESTPC + 10016 037031 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 10017 037032 202 05 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 10018 000000 XX=0 + 10019 + 10020 REPEAT ^D35,< ;LAST CASE IS DIFFERENT + 10021 ADR=ADR+1 + 10022 XX=XX+XX + 10023 IFE XX, + 10024 + 10025 ;MULTIPLY -1 BY A RIPPLED 1 + 10026 IFG XX,< + 10027 V1=-1 + 10028 V2=-XX> + 10029 IFL XX,< + 10030 V1=1 + 10031 V2=0> + 10032 MOP1 (\ADR,XX,0,-1,V1,V2)> + 10033 ;LAST CASE IS DIFFERENT + 10034 003437 ADR=ADR+1 + 10035 000000 XX=XX+XX + 10036 000001 IFE XX, + 10037 + 10038 ;MULTIPLY -1 BY A RIPPLED 1 + 10039 IFG XX,< + 10040 777777 777777 V1=-1 + 10041 777777 777777 V2=-XX> + 10042 IFL XX,< + 10043 V1=1 + 10044 V2=0> + 10045 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10046 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10047 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10048 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10049 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10050 + 10051 000001 F34370: AA1=XX ;INITIAL C(AC) + 10052 037033 200 03 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10053 000000 AA2=0 ;INITIAL C(AC+1) + 10054 037034 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10055 777777 777777 AEE=-1 ;INITIAL C(E) + 10056 037035 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10057 037036 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10058 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10059 037037 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10060 037040 003 03 0 00 034371 ER3 AC,34371 ;HIGH PRODUCT FAILED + 10061 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10062 037041 312 04 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10063 037042 004 04 0 00 034372 ER4 AC+1,34372 ;LOW PRODUCT FAILED + 10064 777777 777777 AEE=-1 ;INITIAL C(E) + 10065 037043 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0205 + + 10066 037044 005 01 0 00 034373 ER5 E,34373 ;C(E) WAS CLOBBERED + 10067 037045 321 05 0 00 037033 JUMPL AC+2,F34370 ;LOOP ON ERROR SWITCH^ + 10068 ;LAST CASE IS DIFFERENT + 10069 003440 ADR=ADR+1 + 10070 000002 XX=XX+XX + 10071 IFE XX, + 10072 + 10073 ;MULTIPLY -1 BY A RIPPLED 1 + 10074 IFG XX,< + 10075 777777 777777 V1=-1 + 10076 777777 777776 V2=-XX> + 10077 IFL XX,< + 10078 V1=1 + 10079 V2=0> + 10080 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10082 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10083 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10085 + 10086 000002 F34400: AA1=XX ;INITIAL C(AC) + 10087 037046 200 03 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10088 000000 AA2=0 ;INITIAL C(AC+1) + 10089 037047 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10090 777777 777777 AEE=-1 ;INITIAL C(E) + 10091 037050 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10092 037051 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10093 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10094 037052 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10095 037053 003 03 0 00 034401 ER3 AC,34401 ;HIGH PRODUCT FAILED + 10096 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10097 037054 312 04 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10098 037055 004 04 0 00 034402 ER4 AC+1,34402 ;LOW PRODUCT FAILED + 10099 777777 777777 AEE=-1 ;INITIAL C(E) + 10100 037056 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10101 037057 005 01 0 00 034403 ER5 E,34403 ;C(E) WAS CLOBBERED + 10102 037060 321 05 0 00 037046 JUMPL AC+2,F34400 ;LOOP ON ERROR SWITCH^ + 10103 ;LAST CASE IS DIFFERENT + 10104 003441 ADR=ADR+1 + 10105 000004 XX=XX+XX + 10106 IFE XX, + 10107 + 10108 ;MULTIPLY -1 BY A RIPPLED 1 + 10109 IFG XX,< + 10110 777777 777777 V1=-1 + 10111 777777 777774 V2=-XX> + 10112 IFL XX,< + 10113 V1=1 + 10114 V2=0> + 10115 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10116 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10117 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10118 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10119 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10120 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0206 + + 10121 000004 F34410: AA1=XX ;INITIAL C(AC) + 10122 037061 200 03 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10123 000000 AA2=0 ;INITIAL C(AC+1) + 10124 037062 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10125 777777 777777 AEE=-1 ;INITIAL C(E) + 10126 037063 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10127 037064 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10128 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10129 037065 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10130 037066 003 03 0 00 034411 ER3 AC,34411 ;HIGH PRODUCT FAILED + 10131 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10132 037067 312 04 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10133 037070 004 04 0 00 034412 ER4 AC+1,34412 ;LOW PRODUCT FAILED + 10134 777777 777777 AEE=-1 ;INITIAL C(E) + 10135 037071 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10136 037072 005 01 0 00 034413 ER5 E,34413 ;C(E) WAS CLOBBERED + 10137 037073 321 05 0 00 037061 JUMPL AC+2,F34410 ;LOOP ON ERROR SWITCH^ + 10138 ;LAST CASE IS DIFFERENT + 10139 003442 ADR=ADR+1 + 10140 000010 XX=XX+XX + 10141 IFE XX, + 10142 + 10143 ;MULTIPLY -1 BY A RIPPLED 1 + 10144 IFG XX,< + 10145 777777 777777 V1=-1 + 10146 777777 777770 V2=-XX> + 10147 IFL XX,< + 10148 V1=1 + 10149 V2=0> + 10150 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10151 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10152 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10153 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10154 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10155 + 10156 000010 F34420: AA1=XX ;INITIAL C(AC) + 10157 037074 200 03 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10158 000000 AA2=0 ;INITIAL C(AC+1) + 10159 037075 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10160 777777 777777 AEE=-1 ;INITIAL C(E) + 10161 037076 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10162 037077 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10163 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10164 037100 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10165 037101 003 03 0 00 034421 ER3 AC,34421 ;HIGH PRODUCT FAILED + 10166 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10167 037102 312 04 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10168 037103 004 04 0 00 034422 ER4 AC+1,34422 ;LOW PRODUCT FAILED + 10169 777777 777777 AEE=-1 ;INITIAL C(E) + 10170 037104 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10171 037105 005 01 0 00 034423 ER5 E,34423 ;C(E) WAS CLOBBERED + 10172 037106 321 05 0 00 037074 JUMPL AC+2,F34420 ;LOOP ON ERROR SWITCH^ + 10173 ;LAST CASE IS DIFFERENT + 10174 003443 ADR=ADR+1 + 10175 000020 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0207 + + 10176 IFE XX, + 10177 + 10178 ;MULTIPLY -1 BY A RIPPLED 1 + 10179 IFG XX,< + 10180 777777 777777 V1=-1 + 10181 777777 777760 V2=-XX> + 10182 IFL XX,< + 10183 V1=1 + 10184 V2=0> + 10185 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10186 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10187 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10188 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10189 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10190 + 10191 000020 F34430: AA1=XX ;INITIAL C(AC) + 10192 037107 200 03 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10193 000000 AA2=0 ;INITIAL C(AC+1) + 10194 037110 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10195 777777 777777 AEE=-1 ;INITIAL C(E) + 10196 037111 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10197 037112 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10198 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10199 037113 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10200 037114 003 03 0 00 034431 ER3 AC,34431 ;HIGH PRODUCT FAILED + 10201 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10202 037115 312 04 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10203 037116 004 04 0 00 034432 ER4 AC+1,34432 ;LOW PRODUCT FAILED + 10204 777777 777777 AEE=-1 ;INITIAL C(E) + 10205 037117 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10206 037120 005 01 0 00 034433 ER5 E,34433 ;C(E) WAS CLOBBERED + 10207 037121 321 05 0 00 037107 JUMPL AC+2,F34430 ;LOOP ON ERROR SWITCH^ + 10208 ;LAST CASE IS DIFFERENT + 10209 003444 ADR=ADR+1 + 10210 000040 XX=XX+XX + 10211 IFE XX, + 10212 + 10213 ;MULTIPLY -1 BY A RIPPLED 1 + 10214 IFG XX,< + 10215 777777 777777 V1=-1 + 10216 777777 777740 V2=-XX> + 10217 IFL XX,< + 10218 V1=1 + 10219 V2=0> + 10220 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10222 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10223 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10225 + 10226 000040 F34440: AA1=XX ;INITIAL C(AC) + 10227 037122 200 03 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10228 000000 AA2=0 ;INITIAL C(AC+1) + 10229 037123 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10230 777777 777777 AEE=-1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0208 + + 10231 037124 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10232 037125 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10234 037126 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10235 037127 003 03 0 00 034441 ER3 AC,34441 ;HIGH PRODUCT FAILED + 10236 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10237 037130 312 04 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10238 037131 004 04 0 00 034442 ER4 AC+1,34442 ;LOW PRODUCT FAILED + 10239 777777 777777 AEE=-1 ;INITIAL C(E) + 10240 037132 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10241 037133 005 01 0 00 034443 ER5 E,34443 ;C(E) WAS CLOBBERED + 10242 037134 321 05 0 00 037122 JUMPL AC+2,F34440 ;LOOP ON ERROR SWITCH^ + 10243 ;LAST CASE IS DIFFERENT + 10244 003445 ADR=ADR+1 + 10245 000100 XX=XX+XX + 10246 IFE XX, + 10247 + 10248 ;MULTIPLY -1 BY A RIPPLED 1 + 10249 IFG XX,< + 10250 777777 777777 V1=-1 + 10251 777777 777700 V2=-XX> + 10252 IFL XX,< + 10253 V1=1 + 10254 V2=0> + 10255 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10256 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10257 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10258 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10259 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10260 + 10261 000100 F34450: AA1=XX ;INITIAL C(AC) + 10262 037135 200 03 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10263 000000 AA2=0 ;INITIAL C(AC+1) + 10264 037136 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10265 777777 777777 AEE=-1 ;INITIAL C(E) + 10266 037137 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10267 037140 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10268 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10269 037141 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10270 037142 003 03 0 00 034451 ER3 AC,34451 ;HIGH PRODUCT FAILED + 10271 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10272 037143 312 04 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10273 037144 004 04 0 00 034452 ER4 AC+1,34452 ;LOW PRODUCT FAILED + 10274 777777 777777 AEE=-1 ;INITIAL C(E) + 10275 037145 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10276 037146 005 01 0 00 034453 ER5 E,34453 ;C(E) WAS CLOBBERED + 10277 037147 321 05 0 00 037135 JUMPL AC+2,F34450 ;LOOP ON ERROR SWITCH^ + 10278 ;LAST CASE IS DIFFERENT + 10279 003446 ADR=ADR+1 + 10280 000200 XX=XX+XX + 10281 IFE XX, + 10282 + 10283 ;MULTIPLY -1 BY A RIPPLED 1 + 10284 IFG XX,< + 10285 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0209 + + 10286 777777 777600 V2=-XX> + 10287 IFL XX,< + 10288 V1=1 + 10289 V2=0> + 10290 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10292 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10293 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10295 + 10296 000200 F34460: AA1=XX ;INITIAL C(AC) + 10297 037150 200 03 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10298 000000 AA2=0 ;INITIAL C(AC+1) + 10299 037151 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10300 777777 777777 AEE=-1 ;INITIAL C(E) + 10301 037152 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10302 037153 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10303 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10304 037154 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10305 037155 003 03 0 00 034461 ER3 AC,34461 ;HIGH PRODUCT FAILED + 10306 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10307 037156 312 04 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10308 037157 004 04 0 00 034462 ER4 AC+1,34462 ;LOW PRODUCT FAILED + 10309 777777 777777 AEE=-1 ;INITIAL C(E) + 10310 037160 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10311 037161 005 01 0 00 034463 ER5 E,34463 ;C(E) WAS CLOBBERED + 10312 037162 321 05 0 00 037150 JUMPL AC+2,F34460 ;LOOP ON ERROR SWITCH^ + 10313 ;LAST CASE IS DIFFERENT + 10314 003447 ADR=ADR+1 + 10315 000400 XX=XX+XX + 10316 IFE XX, + 10317 + 10318 ;MULTIPLY -1 BY A RIPPLED 1 + 10319 IFG XX,< + 10320 777777 777777 V1=-1 + 10321 777777 777400 V2=-XX> + 10322 IFL XX,< + 10323 V1=1 + 10324 V2=0> + 10325 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10326 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10327 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10328 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10329 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10330 + 10331 000400 F34470: AA1=XX ;INITIAL C(AC) + 10332 037163 200 03 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10333 000000 AA2=0 ;INITIAL C(AC+1) + 10334 037164 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10335 777777 777777 AEE=-1 ;INITIAL C(E) + 10336 037165 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10337 037166 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10338 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10339 037167 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10340 037170 003 03 0 00 034471 ER3 AC,34471 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0210 + + 10341 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10342 037171 312 04 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10343 037172 004 04 0 00 034472 ER4 AC+1,34472 ;LOW PRODUCT FAILED + 10344 777777 777777 AEE=-1 ;INITIAL C(E) + 10345 037173 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10346 037174 005 01 0 00 034473 ER5 E,34473 ;C(E) WAS CLOBBERED + 10347 037175 321 05 0 00 037163 JUMPL AC+2,F34470 ;LOOP ON ERROR SWITCH^ + 10348 ;LAST CASE IS DIFFERENT + 10349 003450 ADR=ADR+1 + 10350 001000 XX=XX+XX + 10351 IFE XX, + 10352 + 10353 ;MULTIPLY -1 BY A RIPPLED 1 + 10354 IFG XX,< + 10355 777777 777777 V1=-1 + 10356 777777 777000 V2=-XX> + 10357 IFL XX,< + 10358 V1=1 + 10359 V2=0> + 10360 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10363 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10365 + 10366 001000 F34500: AA1=XX ;INITIAL C(AC) + 10367 037176 200 03 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10368 000000 AA2=0 ;INITIAL C(AC+1) + 10369 037177 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10370 777777 777777 AEE=-1 ;INITIAL C(E) + 10371 037200 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10372 037201 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10373 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10374 037202 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10375 037203 003 03 0 00 034501 ER3 AC,34501 ;HIGH PRODUCT FAILED + 10376 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10377 037204 312 04 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10378 037205 004 04 0 00 034502 ER4 AC+1,34502 ;LOW PRODUCT FAILED + 10379 777777 777777 AEE=-1 ;INITIAL C(E) + 10380 037206 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10381 037207 005 01 0 00 034503 ER5 E,34503 ;C(E) WAS CLOBBERED + 10382 037210 321 05 0 00 037176 JUMPL AC+2,F34500 ;LOOP ON ERROR SWITCH^ + 10383 ;LAST CASE IS DIFFERENT + 10384 003451 ADR=ADR+1 + 10385 002000 XX=XX+XX + 10386 IFE XX, + 10387 + 10388 ;MULTIPLY -1 BY A RIPPLED 1 + 10389 IFG XX,< + 10390 777777 777777 V1=-1 + 10391 777777 776000 V2=-XX> + 10392 IFL XX,< + 10393 V1=1 + 10394 V2=0> + 10395 MOP1 (\ADR,XX,0,-1,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0211 + + 10396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10397 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10398 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10400 + 10401 002000 F34510: AA1=XX ;INITIAL C(AC) + 10402 037211 200 03 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10403 000000 AA2=0 ;INITIAL C(AC+1) + 10404 037212 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10405 777777 777777 AEE=-1 ;INITIAL C(E) + 10406 037213 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10407 037214 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10408 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10409 037215 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10410 037216 003 03 0 00 034511 ER3 AC,34511 ;HIGH PRODUCT FAILED + 10411 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10412 037217 312 04 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10413 037220 004 04 0 00 034512 ER4 AC+1,34512 ;LOW PRODUCT FAILED + 10414 777777 777777 AEE=-1 ;INITIAL C(E) + 10415 037221 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10416 037222 005 01 0 00 034513 ER5 E,34513 ;C(E) WAS CLOBBERED + 10417 037223 321 05 0 00 037211 JUMPL AC+2,F34510 ;LOOP ON ERROR SWITCH^ + 10418 ;LAST CASE IS DIFFERENT + 10419 003452 ADR=ADR+1 + 10420 004000 XX=XX+XX + 10421 IFE XX, + 10422 + 10423 ;MULTIPLY -1 BY A RIPPLED 1 + 10424 IFG XX,< + 10425 777777 777777 V1=-1 + 10426 777777 774000 V2=-XX> + 10427 IFL XX,< + 10428 V1=1 + 10429 V2=0> + 10430 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10431 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10432 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10433 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10434 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10435 + 10436 004000 F34520: AA1=XX ;INITIAL C(AC) + 10437 037224 200 03 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10438 000000 AA2=0 ;INITIAL C(AC+1) + 10439 037225 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10440 777777 777777 AEE=-1 ;INITIAL C(E) + 10441 037226 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10442 037227 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10443 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10444 037230 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10445 037231 003 03 0 00 034521 ER3 AC,34521 ;HIGH PRODUCT FAILED + 10446 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10447 037232 312 04 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10448 037233 004 04 0 00 034522 ER4 AC+1,34522 ;LOW PRODUCT FAILED + 10449 777777 777777 AEE=-1 ;INITIAL C(E) + 10450 037234 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0212 + + 10451 037235 005 01 0 00 034523 ER5 E,34523 ;C(E) WAS CLOBBERED + 10452 037236 321 05 0 00 037224 JUMPL AC+2,F34520 ;LOOP ON ERROR SWITCH^ + 10453 ;LAST CASE IS DIFFERENT + 10454 003453 ADR=ADR+1 + 10455 010000 XX=XX+XX + 10456 IFE XX, + 10457 + 10458 ;MULTIPLY -1 BY A RIPPLED 1 + 10459 IFG XX,< + 10460 777777 777777 V1=-1 + 10461 777777 770000 V2=-XX> + 10462 IFL XX,< + 10463 V1=1 + 10464 V2=0> + 10465 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10466 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10467 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10468 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10469 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10470 + 10471 010000 F34530: AA1=XX ;INITIAL C(AC) + 10472 037237 200 03 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10473 000000 AA2=0 ;INITIAL C(AC+1) + 10474 037240 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10475 777777 777777 AEE=-1 ;INITIAL C(E) + 10476 037241 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10477 037242 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10478 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10479 037243 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10480 037244 003 03 0 00 034531 ER3 AC,34531 ;HIGH PRODUCT FAILED + 10481 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10482 037245 312 04 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10483 037246 004 04 0 00 034532 ER4 AC+1,34532 ;LOW PRODUCT FAILED + 10484 777777 777777 AEE=-1 ;INITIAL C(E) + 10485 037247 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10486 037250 005 01 0 00 034533 ER5 E,34533 ;C(E) WAS CLOBBERED + 10487 037251 321 05 0 00 037237 JUMPL AC+2,F34530 ;LOOP ON ERROR SWITCH^ + 10488 ;LAST CASE IS DIFFERENT + 10489 003454 ADR=ADR+1 + 10490 020000 XX=XX+XX + 10491 IFE XX, + 10492 + 10493 ;MULTIPLY -1 BY A RIPPLED 1 + 10494 IFG XX,< + 10495 777777 777777 V1=-1 + 10496 777777 760000 V2=-XX> + 10497 IFL XX,< + 10498 V1=1 + 10499 V2=0> + 10500 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10501 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10502 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10503 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10504 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10505 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0213 + + 10506 020000 F34540: AA1=XX ;INITIAL C(AC) + 10507 037252 200 03 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10508 000000 AA2=0 ;INITIAL C(AC+1) + 10509 037253 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10510 777777 777777 AEE=-1 ;INITIAL C(E) + 10511 037254 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10512 037255 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10513 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10514 037256 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10515 037257 003 03 0 00 034541 ER3 AC,34541 ;HIGH PRODUCT FAILED + 10516 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10517 037260 312 04 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10518 037261 004 04 0 00 034542 ER4 AC+1,34542 ;LOW PRODUCT FAILED + 10519 777777 777777 AEE=-1 ;INITIAL C(E) + 10520 037262 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10521 037263 005 01 0 00 034543 ER5 E,34543 ;C(E) WAS CLOBBERED + 10522 037264 321 05 0 00 037252 JUMPL AC+2,F34540 ;LOOP ON ERROR SWITCH^ + 10523 ;LAST CASE IS DIFFERENT + 10524 003455 ADR=ADR+1 + 10525 040000 XX=XX+XX + 10526 IFE XX, + 10527 + 10528 ;MULTIPLY -1 BY A RIPPLED 1 + 10529 IFG XX,< + 10530 777777 777777 V1=-1 + 10531 777777 740000 V2=-XX> + 10532 IFL XX,< + 10533 V1=1 + 10534 V2=0> + 10535 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10536 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10537 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10538 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10539 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10540 + 10541 040000 F34550: AA1=XX ;INITIAL C(AC) + 10542 037265 200 03 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10543 000000 AA2=0 ;INITIAL C(AC+1) + 10544 037266 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10545 777777 777777 AEE=-1 ;INITIAL C(E) + 10546 037267 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10547 037270 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10548 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10549 037271 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10550 037272 003 03 0 00 034551 ER3 AC,34551 ;HIGH PRODUCT FAILED + 10551 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10552 037273 312 04 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10553 037274 004 04 0 00 034552 ER4 AC+1,34552 ;LOW PRODUCT FAILED + 10554 777777 777777 AEE=-1 ;INITIAL C(E) + 10555 037275 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10556 037276 005 01 0 00 034553 ER5 E,34553 ;C(E) WAS CLOBBERED + 10557 037277 321 05 0 00 037265 JUMPL AC+2,F34550 ;LOOP ON ERROR SWITCH^ + 10558 ;LAST CASE IS DIFFERENT + 10559 003456 ADR=ADR+1 + 10560 100000 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0214 + + 10561 IFE XX, + 10562 + 10563 ;MULTIPLY -1 BY A RIPPLED 1 + 10564 IFG XX,< + 10565 777777 777777 V1=-1 + 10566 777777 700000 V2=-XX> + 10567 IFL XX,< + 10568 V1=1 + 10569 V2=0> + 10570 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10571 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10572 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10573 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10574 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10575 + 10576 100000 F34560: AA1=XX ;INITIAL C(AC) + 10577 037300 200 03 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10578 000000 AA2=0 ;INITIAL C(AC+1) + 10579 037301 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10580 777777 777777 AEE=-1 ;INITIAL C(E) + 10581 037302 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10582 037303 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10583 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10584 037304 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10585 037305 003 03 0 00 034561 ER3 AC,34561 ;HIGH PRODUCT FAILED + 10586 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10587 037306 312 04 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10588 037307 004 04 0 00 034562 ER4 AC+1,34562 ;LOW PRODUCT FAILED + 10589 777777 777777 AEE=-1 ;INITIAL C(E) + 10590 037310 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10591 037311 005 01 0 00 034563 ER5 E,34563 ;C(E) WAS CLOBBERED + 10592 037312 321 05 0 00 037300 JUMPL AC+2,F34560 ;LOOP ON ERROR SWITCH^ + 10593 ;LAST CASE IS DIFFERENT + 10594 003457 ADR=ADR+1 + 10595 200000 XX=XX+XX + 10596 IFE XX, + 10597 + 10598 ;MULTIPLY -1 BY A RIPPLED 1 + 10599 IFG XX,< + 10600 777777 777777 V1=-1 + 10601 777777 600000 V2=-XX> + 10602 IFL XX,< + 10603 V1=1 + 10604 V2=0> + 10605 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10607 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10608 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10610 + 10611 200000 F34570: AA1=XX ;INITIAL C(AC) + 10612 037313 200 03 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10613 000000 AA2=0 ;INITIAL C(AC+1) + 10614 037314 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10615 777777 777777 AEE=-1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0215 + + 10616 037315 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10617 037316 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10618 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10619 037317 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10620 037320 003 03 0 00 034571 ER3 AC,34571 ;HIGH PRODUCT FAILED + 10621 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10622 037321 312 04 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10623 037322 004 04 0 00 034572 ER4 AC+1,34572 ;LOW PRODUCT FAILED + 10624 777777 777777 AEE=-1 ;INITIAL C(E) + 10625 037323 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10626 037324 005 01 0 00 034573 ER5 E,34573 ;C(E) WAS CLOBBERED + 10627 037325 321 05 0 00 037313 JUMPL AC+2,F34570 ;LOOP ON ERROR SWITCH^ + 10628 ;LAST CASE IS DIFFERENT + 10629 003460 ADR=ADR+1 + 10630 400000 XX=XX+XX + 10631 IFE XX, + 10632 + 10633 ;MULTIPLY -1 BY A RIPPLED 1 + 10634 IFG XX,< + 10635 777777 777777 V1=-1 + 10636 777777 400000 V2=-XX> + 10637 IFL XX,< + 10638 V1=1 + 10639 V2=0> + 10640 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10642 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10643 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10645 + 10646 400000 F34600: AA1=XX ;INITIAL C(AC) + 10647 037326 200 03 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10648 000000 AA2=0 ;INITIAL C(AC+1) + 10649 037327 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10650 777777 777777 AEE=-1 ;INITIAL C(E) + 10651 037330 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10652 037331 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10653 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10654 037332 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10655 037333 003 03 0 00 034601 ER3 AC,34601 ;HIGH PRODUCT FAILED + 10656 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10657 037334 312 04 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10658 037335 004 04 0 00 034602 ER4 AC+1,34602 ;LOW PRODUCT FAILED + 10659 777777 777777 AEE=-1 ;INITIAL C(E) + 10660 037336 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10661 037337 005 01 0 00 034603 ER5 E,34603 ;C(E) WAS CLOBBERED + 10662 037340 321 05 0 00 037326 JUMPL AC+2,F34600 ;LOOP ON ERROR SWITCH^ + 10663 ;LAST CASE IS DIFFERENT + 10664 003461 ADR=ADR+1 + 10665 000001 000000 XX=XX+XX + 10666 IFE XX, + 10667 + 10668 ;MULTIPLY -1 BY A RIPPLED 1 + 10669 IFG XX,< + 10670 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0216 + + 10671 777777 000000 V2=-XX> + 10672 IFL XX,< + 10673 V1=1 + 10674 V2=0> + 10675 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10676 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10677 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10678 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10679 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10680 + 10681 000001 000000 F34610: AA1=XX ;INITIAL C(AC) + 10682 037341 200 03 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10683 000000 AA2=0 ;INITIAL C(AC+1) + 10684 037342 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10685 777777 777777 AEE=-1 ;INITIAL C(E) + 10686 037343 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10687 037344 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10688 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10689 037345 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10690 037346 003 03 0 00 034611 ER3 AC,34611 ;HIGH PRODUCT FAILED + 10691 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10692 037347 312 04 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10693 037350 004 04 0 00 034612 ER4 AC+1,34612 ;LOW PRODUCT FAILED + 10694 777777 777777 AEE=-1 ;INITIAL C(E) + 10695 037351 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10696 037352 005 01 0 00 034613 ER5 E,34613 ;C(E) WAS CLOBBERED + 10697 037353 321 05 0 00 037341 JUMPL AC+2,F34610 ;LOOP ON ERROR SWITCH^ + 10698 ;LAST CASE IS DIFFERENT + 10699 003462 ADR=ADR+1 + 10700 000002 000000 XX=XX+XX + 10701 IFE XX, + 10702 + 10703 ;MULTIPLY -1 BY A RIPPLED 1 + 10704 IFG XX,< + 10705 777777 777777 V1=-1 + 10706 777776 000000 V2=-XX> + 10707 IFL XX,< + 10708 V1=1 + 10709 V2=0> + 10710 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10712 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10713 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10715 + 10716 000002 000000 F34620: AA1=XX ;INITIAL C(AC) + 10717 037354 200 03 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10718 000000 AA2=0 ;INITIAL C(AC+1) + 10719 037355 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10720 777777 777777 AEE=-1 ;INITIAL C(E) + 10721 037356 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10722 037357 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10723 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10724 037360 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10725 037361 003 03 0 00 034621 ER3 AC,34621 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0217 + + 10726 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10727 037362 312 04 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10728 037363 004 04 0 00 034622 ER4 AC+1,34622 ;LOW PRODUCT FAILED + 10729 777777 777777 AEE=-1 ;INITIAL C(E) + 10730 037364 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10731 037365 005 01 0 00 034623 ER5 E,34623 ;C(E) WAS CLOBBERED + 10732 037366 321 05 0 00 037354 JUMPL AC+2,F34620 ;LOOP ON ERROR SWITCH^ + 10733 ;LAST CASE IS DIFFERENT + 10734 003463 ADR=ADR+1 + 10735 000004 000000 XX=XX+XX + 10736 IFE XX, + 10737 + 10738 ;MULTIPLY -1 BY A RIPPLED 1 + 10739 IFG XX,< + 10740 777777 777777 V1=-1 + 10741 777774 000000 V2=-XX> + 10742 IFL XX,< + 10743 V1=1 + 10744 V2=0> + 10745 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10747 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10748 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10750 + 10751 000004 000000 F34630: AA1=XX ;INITIAL C(AC) + 10752 037367 200 03 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10753 000000 AA2=0 ;INITIAL C(AC+1) + 10754 037370 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10755 777777 777777 AEE=-1 ;INITIAL C(E) + 10756 037371 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10757 037372 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10759 037373 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10760 037374 003 03 0 00 034631 ER3 AC,34631 ;HIGH PRODUCT FAILED + 10761 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10762 037375 312 04 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10763 037376 004 04 0 00 034632 ER4 AC+1,34632 ;LOW PRODUCT FAILED + 10764 777777 777777 AEE=-1 ;INITIAL C(E) + 10765 037377 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10766 037400 005 01 0 00 034633 ER5 E,34633 ;C(E) WAS CLOBBERED + 10767 037401 321 05 0 00 037367 JUMPL AC+2,F34630 ;LOOP ON ERROR SWITCH^ + 10768 ;LAST CASE IS DIFFERENT + 10769 003464 ADR=ADR+1 + 10770 000010 000000 XX=XX+XX + 10771 IFE XX, + 10772 + 10773 ;MULTIPLY -1 BY A RIPPLED 1 + 10774 IFG XX,< + 10775 777777 777777 V1=-1 + 10776 777770 000000 V2=-XX> + 10777 IFL XX,< + 10778 V1=1 + 10779 V2=0> + 10780 MOP1 (\ADR,XX,0,-1,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0218 + + 10781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10782 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10783 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10785 + 10786 000010 000000 F34640: AA1=XX ;INITIAL C(AC) + 10787 037402 200 03 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10788 000000 AA2=0 ;INITIAL C(AC+1) + 10789 037403 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10790 777777 777777 AEE=-1 ;INITIAL C(E) + 10791 037404 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10792 037405 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10793 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10794 037406 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10795 037407 003 03 0 00 034641 ER3 AC,34641 ;HIGH PRODUCT FAILED + 10796 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10797 037410 312 04 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10798 037411 004 04 0 00 034642 ER4 AC+1,34642 ;LOW PRODUCT FAILED + 10799 777777 777777 AEE=-1 ;INITIAL C(E) + 10800 037412 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10801 037413 005 01 0 00 034643 ER5 E,34643 ;C(E) WAS CLOBBERED + 10802 037414 321 05 0 00 037402 JUMPL AC+2,F34640 ;LOOP ON ERROR SWITCH^ + 10803 ;LAST CASE IS DIFFERENT + 10804 003465 ADR=ADR+1 + 10805 000020 000000 XX=XX+XX + 10806 IFE XX, + 10807 + 10808 ;MULTIPLY -1 BY A RIPPLED 1 + 10809 IFG XX,< + 10810 777777 777777 V1=-1 + 10811 777760 000000 V2=-XX> + 10812 IFL XX,< + 10813 V1=1 + 10814 V2=0> + 10815 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10816 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10817 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10818 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10819 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10820 + 10821 000020 000000 F34650: AA1=XX ;INITIAL C(AC) + 10822 037415 200 03 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10823 000000 AA2=0 ;INITIAL C(AC+1) + 10824 037416 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10825 777777 777777 AEE=-1 ;INITIAL C(E) + 10826 037417 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10827 037420 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10828 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10829 037421 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10830 037422 003 03 0 00 034651 ER3 AC,34651 ;HIGH PRODUCT FAILED + 10831 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10832 037423 312 04 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10833 037424 004 04 0 00 034652 ER4 AC+1,34652 ;LOW PRODUCT FAILED + 10834 777777 777777 AEE=-1 ;INITIAL C(E) + 10835 037425 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0219 + + 10836 037426 005 01 0 00 034653 ER5 E,34653 ;C(E) WAS CLOBBERED + 10837 037427 321 05 0 00 037415 JUMPL AC+2,F34650 ;LOOP ON ERROR SWITCH^ + 10838 ;LAST CASE IS DIFFERENT + 10839 003466 ADR=ADR+1 + 10840 000040 000000 XX=XX+XX + 10841 IFE XX, + 10842 + 10843 ;MULTIPLY -1 BY A RIPPLED 1 + 10844 IFG XX,< + 10845 777777 777777 V1=-1 + 10846 777740 000000 V2=-XX> + 10847 IFL XX,< + 10848 V1=1 + 10849 V2=0> + 10850 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10851 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10852 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10853 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10854 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10855 + 10856 000040 000000 F34660: AA1=XX ;INITIAL C(AC) + 10857 037430 200 03 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10858 000000 AA2=0 ;INITIAL C(AC+1) + 10859 037431 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10860 777777 777777 AEE=-1 ;INITIAL C(E) + 10861 037432 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10862 037433 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10863 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10864 037434 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10865 037435 003 03 0 00 034661 ER3 AC,34661 ;HIGH PRODUCT FAILED + 10866 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10867 037436 312 04 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10868 037437 004 04 0 00 034662 ER4 AC+1,34662 ;LOW PRODUCT FAILED + 10869 777777 777777 AEE=-1 ;INITIAL C(E) + 10870 037440 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10871 037441 005 01 0 00 034663 ER5 E,34663 ;C(E) WAS CLOBBERED + 10872 037442 321 05 0 00 037430 JUMPL AC+2,F34660 ;LOOP ON ERROR SWITCH^ + 10873 ;LAST CASE IS DIFFERENT + 10874 003467 ADR=ADR+1 + 10875 000100 000000 XX=XX+XX + 10876 IFE XX, + 10877 + 10878 ;MULTIPLY -1 BY A RIPPLED 1 + 10879 IFG XX,< + 10880 777777 777777 V1=-1 + 10881 777700 000000 V2=-XX> + 10882 IFL XX,< + 10883 V1=1 + 10884 V2=0> + 10885 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10886 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10887 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10888 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10889 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10890 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0220 + + 10891 000100 000000 F34670: AA1=XX ;INITIAL C(AC) + 10892 037443 200 03 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10893 000000 AA2=0 ;INITIAL C(AC+1) + 10894 037444 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10895 777777 777777 AEE=-1 ;INITIAL C(E) + 10896 037445 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10897 037446 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10898 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10899 037447 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10900 037450 003 03 0 00 034671 ER3 AC,34671 ;HIGH PRODUCT FAILED + 10901 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10902 037451 312 04 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10903 037452 004 04 0 00 034672 ER4 AC+1,34672 ;LOW PRODUCT FAILED + 10904 777777 777777 AEE=-1 ;INITIAL C(E) + 10905 037453 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10906 037454 005 01 0 00 034673 ER5 E,34673 ;C(E) WAS CLOBBERED + 10907 037455 321 05 0 00 037443 JUMPL AC+2,F34670 ;LOOP ON ERROR SWITCH^ + 10908 ;LAST CASE IS DIFFERENT + 10909 003470 ADR=ADR+1 + 10910 000200 000000 XX=XX+XX + 10911 IFE XX, + 10912 + 10913 ;MULTIPLY -1 BY A RIPPLED 1 + 10914 IFG XX,< + 10915 777777 777777 V1=-1 + 10916 777600 000000 V2=-XX> + 10917 IFL XX,< + 10918 V1=1 + 10919 V2=0> + 10920 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10921 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10922 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10923 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10924 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10925 + 10926 000200 000000 F34700: AA1=XX ;INITIAL C(AC) + 10927 037456 200 03 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10928 000000 AA2=0 ;INITIAL C(AC+1) + 10929 037457 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10930 777777 777777 AEE=-1 ;INITIAL C(E) + 10931 037460 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10932 037461 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10933 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10934 037462 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10935 037463 003 03 0 00 034701 ER3 AC,34701 ;HIGH PRODUCT FAILED + 10936 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10937 037464 312 04 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10938 037465 004 04 0 00 034702 ER4 AC+1,34702 ;LOW PRODUCT FAILED + 10939 777777 777777 AEE=-1 ;INITIAL C(E) + 10940 037466 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10941 037467 005 01 0 00 034703 ER5 E,34703 ;C(E) WAS CLOBBERED + 10942 037470 321 05 0 00 037456 JUMPL AC+2,F34700 ;LOOP ON ERROR SWITCH^ + 10943 ;LAST CASE IS DIFFERENT + 10944 003471 ADR=ADR+1 + 10945 000400 000000 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0221 + + 10946 IFE XX, + 10947 + 10948 ;MULTIPLY -1 BY A RIPPLED 1 + 10949 IFG XX,< + 10950 777777 777777 V1=-1 + 10951 777400 000000 V2=-XX> + 10952 IFL XX,< + 10953 V1=1 + 10954 V2=0> + 10955 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10956 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10957 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10958 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10959 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10960 + 10961 000400 000000 F34710: AA1=XX ;INITIAL C(AC) + 10962 037471 200 03 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10963 000000 AA2=0 ;INITIAL C(AC+1) + 10964 037472 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 10965 777777 777777 AEE=-1 ;INITIAL C(E) + 10966 037473 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 10967 037474 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 10968 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 10969 037475 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 10970 037476 003 03 0 00 034711 ER3 AC,34711 ;HIGH PRODUCT FAILED + 10971 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 10972 037477 312 04 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 10973 037500 004 04 0 00 034712 ER4 AC+1,34712 ;LOW PRODUCT FAILED + 10974 777777 777777 AEE=-1 ;INITIAL C(E) + 10975 037501 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 10976 037502 005 01 0 00 034713 ER5 E,34713 ;C(E) WAS CLOBBERED + 10977 037503 321 05 0 00 037471 JUMPL AC+2,F34710 ;LOOP ON ERROR SWITCH^ + 10978 ;LAST CASE IS DIFFERENT + 10979 003472 ADR=ADR+1 + 10980 001000 000000 XX=XX+XX + 10981 IFE XX, + 10982 + 10983 ;MULTIPLY -1 BY A RIPPLED 1 + 10984 IFG XX,< + 10985 777777 777777 V1=-1 + 10986 777000 000000 V2=-XX> + 10987 IFL XX,< + 10988 V1=1 + 10989 V2=0> + 10990 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 10991 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 10992 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 10993 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 10994 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 10995 + 10996 001000 000000 F34720: AA1=XX ;INITIAL C(AC) + 10997 037504 200 03 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 10998 000000 AA2=0 ;INITIAL C(AC+1) + 10999 037505 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11000 777777 777777 AEE=-1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0222 + + 11001 037506 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11002 037507 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11003 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11004 037510 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11005 037511 003 03 0 00 034721 ER3 AC,34721 ;HIGH PRODUCT FAILED + 11006 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11007 037512 312 04 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11008 037513 004 04 0 00 034722 ER4 AC+1,34722 ;LOW PRODUCT FAILED + 11009 777777 777777 AEE=-1 ;INITIAL C(E) + 11010 037514 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11011 037515 005 01 0 00 034723 ER5 E,34723 ;C(E) WAS CLOBBERED + 11012 037516 321 05 0 00 037504 JUMPL AC+2,F34720 ;LOOP ON ERROR SWITCH^ + 11013 ;LAST CASE IS DIFFERENT + 11014 003473 ADR=ADR+1 + 11015 002000 000000 XX=XX+XX + 11016 IFE XX, + 11017 + 11018 ;MULTIPLY -1 BY A RIPPLED 1 + 11019 IFG XX,< + 11020 777777 777777 V1=-1 + 11021 776000 000000 V2=-XX> + 11022 IFL XX,< + 11023 V1=1 + 11024 V2=0> + 11025 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11026 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11027 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11028 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11029 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11030 + 11031 002000 000000 F34730: AA1=XX ;INITIAL C(AC) + 11032 037517 200 03 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11033 000000 AA2=0 ;INITIAL C(AC+1) + 11034 037520 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11035 777777 777777 AEE=-1 ;INITIAL C(E) + 11036 037521 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11037 037522 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11038 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11039 037523 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11040 037524 003 03 0 00 034731 ER3 AC,34731 ;HIGH PRODUCT FAILED + 11041 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11042 037525 312 04 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11043 037526 004 04 0 00 034732 ER4 AC+1,34732 ;LOW PRODUCT FAILED + 11044 777777 777777 AEE=-1 ;INITIAL C(E) + 11045 037527 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11046 037530 005 01 0 00 034733 ER5 E,34733 ;C(E) WAS CLOBBERED + 11047 037531 321 05 0 00 037517 JUMPL AC+2,F34730 ;LOOP ON ERROR SWITCH^ + 11048 ;LAST CASE IS DIFFERENT + 11049 003474 ADR=ADR+1 + 11050 004000 000000 XX=XX+XX + 11051 IFE XX, + 11052 + 11053 ;MULTIPLY -1 BY A RIPPLED 1 + 11054 IFG XX,< + 11055 777777 777777 V1=-1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0223 + + 11056 774000 000000 V2=-XX> + 11057 IFL XX,< + 11058 V1=1 + 11059 V2=0> + 11060 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11062 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11063 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11065 + 11066 004000 000000 F34740: AA1=XX ;INITIAL C(AC) + 11067 037532 200 03 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11068 000000 AA2=0 ;INITIAL C(AC+1) + 11069 037533 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11070 777777 777777 AEE=-1 ;INITIAL C(E) + 11071 037534 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11072 037535 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11073 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11074 037536 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11075 037537 003 03 0 00 034741 ER3 AC,34741 ;HIGH PRODUCT FAILED + 11076 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11077 037540 312 04 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11078 037541 004 04 0 00 034742 ER4 AC+1,34742 ;LOW PRODUCT FAILED + 11079 777777 777777 AEE=-1 ;INITIAL C(E) + 11080 037542 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11081 037543 005 01 0 00 034743 ER5 E,34743 ;C(E) WAS CLOBBERED + 11082 037544 321 05 0 00 037532 JUMPL AC+2,F34740 ;LOOP ON ERROR SWITCH^ + 11083 ;LAST CASE IS DIFFERENT + 11084 003475 ADR=ADR+1 + 11085 010000 000000 XX=XX+XX + 11086 IFE XX, + 11087 + 11088 ;MULTIPLY -1 BY A RIPPLED 1 + 11089 IFG XX,< + 11090 777777 777777 V1=-1 + 11091 770000 000000 V2=-XX> + 11092 IFL XX,< + 11093 V1=1 + 11094 V2=0> + 11095 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11096 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11097 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11098 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11099 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11100 + 11101 010000 000000 F34750: AA1=XX ;INITIAL C(AC) + 11102 037545 200 03 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11103 000000 AA2=0 ;INITIAL C(AC+1) + 11104 037546 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11105 777777 777777 AEE=-1 ;INITIAL C(E) + 11106 037547 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11107 037550 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11108 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11109 037551 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11110 037552 003 03 0 00 034751 ER3 AC,34751 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0224 + + 11111 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11112 037553 312 04 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11113 037554 004 04 0 00 034752 ER4 AC+1,34752 ;LOW PRODUCT FAILED + 11114 777777 777777 AEE=-1 ;INITIAL C(E) + 11115 037555 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11116 037556 005 01 0 00 034753 ER5 E,34753 ;C(E) WAS CLOBBERED + 11117 037557 321 05 0 00 037545 JUMPL AC+2,F34750 ;LOOP ON ERROR SWITCH^ + 11118 ;LAST CASE IS DIFFERENT + 11119 003476 ADR=ADR+1 + 11120 020000 000000 XX=XX+XX + 11121 IFE XX, + 11122 + 11123 ;MULTIPLY -1 BY A RIPPLED 1 + 11124 IFG XX,< + 11125 777777 777777 V1=-1 + 11126 760000 000000 V2=-XX> + 11127 IFL XX,< + 11128 V1=1 + 11129 V2=0> + 11130 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11131 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11132 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11133 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11134 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11135 + 11136 020000 000000 F34760: AA1=XX ;INITIAL C(AC) + 11137 037560 200 03 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11138 000000 AA2=0 ;INITIAL C(AC+1) + 11139 037561 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11140 777777 777777 AEE=-1 ;INITIAL C(E) + 11141 037562 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11142 037563 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11143 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11144 037564 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11145 037565 003 03 0 00 034761 ER3 AC,34761 ;HIGH PRODUCT FAILED + 11146 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11147 037566 312 04 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11148 037567 004 04 0 00 034762 ER4 AC+1,34762 ;LOW PRODUCT FAILED + 11149 777777 777777 AEE=-1 ;INITIAL C(E) + 11150 037570 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11151 037571 005 01 0 00 034763 ER5 E,34763 ;C(E) WAS CLOBBERED + 11152 037572 321 05 0 00 037560 JUMPL AC+2,F34760 ;LOOP ON ERROR SWITCH^ + 11153 ;LAST CASE IS DIFFERENT + 11154 003477 ADR=ADR+1 + 11155 040000 000000 XX=XX+XX + 11156 IFE XX, + 11157 + 11158 ;MULTIPLY -1 BY A RIPPLED 1 + 11159 IFG XX,< + 11160 777777 777777 V1=-1 + 11161 740000 000000 V2=-XX> + 11162 IFL XX,< + 11163 V1=1 + 11164 V2=0> + 11165 MOP1 (\ADR,XX,0,-1,V1,V2)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0225 + + 11166 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11167 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11168 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11169 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11170 + 11171 040000 000000 F34770: AA1=XX ;INITIAL C(AC) + 11172 037573 200 03 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11173 000000 AA2=0 ;INITIAL C(AC+1) + 11174 037574 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11175 777777 777777 AEE=-1 ;INITIAL C(E) + 11176 037575 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11177 037576 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11178 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11179 037577 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11180 037600 003 03 0 00 034771 ER3 AC,34771 ;HIGH PRODUCT FAILED + 11181 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11182 037601 312 04 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11183 037602 004 04 0 00 034772 ER4 AC+1,34772 ;LOW PRODUCT FAILED + 11184 777777 777777 AEE=-1 ;INITIAL C(E) + 11185 037603 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11186 037604 005 01 0 00 034773 ER5 E,34773 ;C(E) WAS CLOBBERED + 11187 037605 321 05 0 00 037573 JUMPL AC+2,F34770 ;LOOP ON ERROR SWITCH^ + 11188 ;LAST CASE IS DIFFERENT + 11189 003500 ADR=ADR+1 + 11190 100000 000000 XX=XX+XX + 11191 IFE XX, + 11192 + 11193 ;MULTIPLY -1 BY A RIPPLED 1 + 11194 IFG XX,< + 11195 777777 777777 V1=-1 + 11196 700000 000000 V2=-XX> + 11197 IFL XX,< + 11198 V1=1 + 11199 V2=0> + 11200 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11203 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11205 + 11206 100000 000000 F35000: AA1=XX ;INITIAL C(AC) + 11207 037606 200 03 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11208 000000 AA2=0 ;INITIAL C(AC+1) + 11209 037607 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11210 777777 777777 AEE=-1 ;INITIAL C(E) + 11211 037610 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11212 037611 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11213 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11214 037612 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11215 037613 003 03 0 00 035001 ER3 AC,35001 ;HIGH PRODUCT FAILED + 11216 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11217 037614 312 04 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11218 037615 004 04 0 00 035002 ER4 AC+1,35002 ;LOW PRODUCT FAILED + 11219 777777 777777 AEE=-1 ;INITIAL C(E) + 11220 037616 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-22 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0226 + + 11221 037617 005 01 0 00 035003 ER5 E,35003 ;C(E) WAS CLOBBERED + 11222 037620 321 05 0 00 037606 JUMPL AC+2,F35000 ;LOOP ON ERROR SWITCH^ + 11223 ;LAST CASE IS DIFFERENT + 11224 003501 ADR=ADR+1 + 11225 200000 000000 XX=XX+XX + 11226 IFE XX, + 11227 + 11228 ;MULTIPLY -1 BY A RIPPLED 1 + 11229 IFG XX,< + 11230 777777 777777 V1=-1 + 11231 600000 000000 V2=-XX> + 11232 IFL XX,< + 11233 V1=1 + 11234 V2=0> + 11235 MOP1 (\ADR,XX,0,-1,V1,V2)^ + 11236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11237 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11238 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. + 11239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11240 + 11241 200000 000000 F35010: AA1=XX ;INITIAL C(AC) + 11242 037621 200 03 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11243 000000 AA2=0 ;INITIAL C(AC+1) + 11244 037622 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11245 777777 777777 AEE=-1 ;INITIAL C(E) + 11246 037623 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11247 037624 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11248 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11249 037625 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11250 037626 003 03 0 00 035011 ER3 AC,35011 ;HIGH PRODUCT FAILED + 11251 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 11252 037627 312 04 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 11253 037630 004 04 0 00 035012 ER4 AC+1,35012 ;LOW PRODUCT FAILED + 11254 777777 777777 AEE=-1 ;INITIAL C(E) + 11255 037631 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11256 037632 005 01 0 00 035013 ER5 E,35013 ;C(E) WAS CLOBBERED + 11257 037633 321 05 0 00 037621 JUMPL AC+2,F35010 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0227 + + 11258 ;MULTIPLY A -1 BY 400000,,0 + 11259 003502 ADR=ADR+1 + 11260 400000 000000 XX=400000000000 + 11261 + 11262 MOP1 (\ADR,XX,0,-1,-1,XX)^ + 11263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 11264 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11265 ;AND E AGAINST [-1], [XX] AND [-1] RESPECTIVELY. + 11266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11267 + 11268 400000 000000 F35020: AA1=XX ;INITIAL C(AC) + 11269 037634 200 03 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 11270 000000 AA2=0 ;INITIAL C(AC+1) + 11271 037635 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11272 777777 777777 AEE=-1 ;INITIAL C(E) + 11273 037636 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 11274 037637 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11275 777777 777777 AR1=-1 ;EXPECTED RESULT IN AC + 11276 037640 312 03 0 00 043777 CAME AC,[-1] ;IS HIGH PRODUCT CORRECT? + 11277 037641 003 03 0 00 035021 ER3 AC,35021 ;HIGH PRODUCT FAILED + 11278 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 + 11279 037642 312 04 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11280 037643 004 04 0 00 035022 ER4 AC+1,35022 ;LOW PRODUCT FAILED + 11281 777777 777777 AEE=-1 ;INITIAL C(E) + 11282 037644 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 11283 037645 005 01 0 00 035023 ER5 E,35023 ;C(E) WAS CLOBBERED + 11284 037646 321 05 0 00 037634 JUMPL AC+2,F35020 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0228 + + 11285 000002 AC=2 + 11286 000000 E=&17 + 11287 SAVEAC (1,1)^ + 11288 037647 201 04 0 00 037647 MOVEI AC+2,. ;SAVE TEST PC + 11289 037650 202 04 0 00 030051 MOVEM AC+2,TESTPC + 11290 037651 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 11291 037652 202 04 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 11292 000000 XX=0 + 11293 + 11294 REPEAT ^D36,< + 11295 ADR=ADR+1 + 11296 XX=XX+XX+1 + 11297 IFE , + 11298 + 11299 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11300 IFL XX, + 11301 IFG XX, + 11302 MOP1 (\ADR,1,0,XX,V1,XX)> + 11303 + 11304 003503 ADR=ADR+1 + 11305 000001 XX=XX+XX+1 + 11306 777777 777776 IFE , + 11307 + 11308 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11309 777777 777777 IFL XX, + 11310 IFG XX, + 11311 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11312 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11313 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11314 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11315 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11316 + 11317 000001 F35030: AA1=1 ;INITIAL C(AC) + 11318 037653 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11319 000000 AA2=0 ;INITIAL C(AC+1) + 11320 037654 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11321 777777 777776 AEE=XX ;INITIAL C(E) + 11322 037655 200 00 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11323 037656 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11324 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11325 037657 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11326 037660 003 02 0 00 035031 ER3 AC,35031 ;HIGH PRODUCT FAILED + 11327 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1 + 11328 037661 312 03 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11329 037662 004 03 0 00 035032 ER4 AC+1,35032 ;LOW PRODUCT FAILED + 11330 777777 777776 AEE=XX ;INITIAL C(E) + 11331 037663 312 00 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11332 037664 005 00 0 00 035033 ER5 E,35033 ;C(E) WAS CLOBBERED + 11333 037665 321 04 0 00 037653 JUMPL AC+2,F35030 ;LOOP ON ERROR SWITCH^ + 11334 + 11335 003504 ADR=ADR+1 + 11336 777777 777775 XX=XX+XX+1 + 11337 IFE , + 11338 + 11339 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0229 + + 11340 777777 777777 IFL XX, + 11341 IFG XX, + 11342 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11343 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11344 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11345 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11346 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11347 + 11348 000001 F35040: AA1=1 ;INITIAL C(AC) + 11349 037666 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11350 000000 AA2=0 ;INITIAL C(AC+1) + 11351 037667 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11352 777777 777775 AEE=XX ;INITIAL C(E) + 11353 037670 200 00 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11354 037671 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11355 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11356 037672 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11357 037673 003 02 0 00 035041 ER3 AC,35041 ;HIGH PRODUCT FAILED + 11358 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1 + 11359 037674 312 03 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11360 037675 004 03 0 00 035042 ER4 AC+1,35042 ;LOW PRODUCT FAILED + 11361 777777 777775 AEE=XX ;INITIAL C(E) + 11362 037676 312 00 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11363 037677 005 00 0 00 035043 ER5 E,35043 ;C(E) WAS CLOBBERED + 11364 037700 321 04 0 00 037666 JUMPL AC+2,F35040 ;LOOP ON ERROR SWITCH^ + 11365 + 11366 003505 ADR=ADR+1 + 11367 777777 777773 XX=XX+XX+1 + 11368 IFE , + 11369 + 11370 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11371 777777 777777 IFL XX, + 11372 IFG XX, + 11373 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11374 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11375 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11376 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11377 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11378 + 11379 000001 F35050: AA1=1 ;INITIAL C(AC) + 11380 037701 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11381 000000 AA2=0 ;INITIAL C(AC+1) + 11382 037702 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11383 777777 777773 AEE=XX ;INITIAL C(E) + 11384 037703 200 00 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11385 037704 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11386 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11387 037705 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11388 037706 003 02 0 00 035051 ER3 AC,35051 ;HIGH PRODUCT FAILED + 11389 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1 + 11390 037707 312 03 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11391 037710 004 03 0 00 035052 ER4 AC+1,35052 ;LOW PRODUCT FAILED + 11392 777777 777773 AEE=XX ;INITIAL C(E) + 11393 037711 312 00 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11394 037712 005 00 0 00 035053 ER5 E,35053 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0230 + + 11395 037713 321 04 0 00 037701 JUMPL AC+2,F35050 ;LOOP ON ERROR SWITCH^ + 11396 + 11397 003506 ADR=ADR+1 + 11398 777777 777767 XX=XX+XX+1 + 11399 IFE , + 11400 + 11401 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11402 777777 777777 IFL XX, + 11403 IFG XX, + 11404 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11405 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11406 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11407 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11408 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11409 + 11410 000001 F35060: AA1=1 ;INITIAL C(AC) + 11411 037714 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11412 000000 AA2=0 ;INITIAL C(AC+1) + 11413 037715 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11414 777777 777767 AEE=XX ;INITIAL C(E) + 11415 037716 200 00 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11416 037717 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11417 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11418 037720 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11419 037721 003 02 0 00 035061 ER3 AC,35061 ;HIGH PRODUCT FAILED + 11420 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1 + 11421 037722 312 03 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11422 037723 004 03 0 00 035062 ER4 AC+1,35062 ;LOW PRODUCT FAILED + 11423 777777 777767 AEE=XX ;INITIAL C(E) + 11424 037724 312 00 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11425 037725 005 00 0 00 035063 ER5 E,35063 ;C(E) WAS CLOBBERED + 11426 037726 321 04 0 00 037714 JUMPL AC+2,F35060 ;LOOP ON ERROR SWITCH^ + 11427 + 11428 003507 ADR=ADR+1 + 11429 777777 777757 XX=XX+XX+1 + 11430 IFE , + 11431 + 11432 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11433 777777 777777 IFL XX, + 11434 IFG XX, + 11435 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11438 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11440 + 11441 000001 F35070: AA1=1 ;INITIAL C(AC) + 11442 037727 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11443 000000 AA2=0 ;INITIAL C(AC+1) + 11444 037730 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11445 777777 777757 AEE=XX ;INITIAL C(E) + 11446 037731 200 00 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11447 037732 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11448 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11449 037733 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0231 + + 11450 037734 003 02 0 00 035071 ER3 AC,35071 ;HIGH PRODUCT FAILED + 11451 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1 + 11452 037735 312 03 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11453 037736 004 03 0 00 035072 ER4 AC+1,35072 ;LOW PRODUCT FAILED + 11454 777777 777757 AEE=XX ;INITIAL C(E) + 11455 037737 312 00 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11456 037740 005 00 0 00 035073 ER5 E,35073 ;C(E) WAS CLOBBERED + 11457 037741 321 04 0 00 037727 JUMPL AC+2,F35070 ;LOOP ON ERROR SWITCH^ + 11458 + 11459 003510 ADR=ADR+1 + 11460 777777 777737 XX=XX+XX+1 + 11461 IFE , + 11462 + 11463 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11464 777777 777777 IFL XX, + 11465 IFG XX, + 11466 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11469 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11471 + 11472 000001 F35100: AA1=1 ;INITIAL C(AC) + 11473 037742 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11474 000000 AA2=0 ;INITIAL C(AC+1) + 11475 037743 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11476 777777 777737 AEE=XX ;INITIAL C(E) + 11477 037744 200 00 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11478 037745 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11479 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11480 037746 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11481 037747 003 02 0 00 035101 ER3 AC,35101 ;HIGH PRODUCT FAILED + 11482 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1 + 11483 037750 312 03 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11484 037751 004 03 0 00 035102 ER4 AC+1,35102 ;LOW PRODUCT FAILED + 11485 777777 777737 AEE=XX ;INITIAL C(E) + 11486 037752 312 00 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11487 037753 005 00 0 00 035103 ER5 E,35103 ;C(E) WAS CLOBBERED + 11488 037754 321 04 0 00 037742 JUMPL AC+2,F35100 ;LOOP ON ERROR SWITCH^ + 11489 + 11490 003511 ADR=ADR+1 + 11491 777777 777677 XX=XX+XX+1 + 11492 IFE , + 11493 + 11494 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11495 777777 777777 IFL XX, + 11496 IFG XX, + 11497 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11498 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11499 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11500 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11501 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11502 + 11503 000001 F35110: AA1=1 ;INITIAL C(AC) + 11504 037755 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0232 + + 11505 000000 AA2=0 ;INITIAL C(AC+1) + 11506 037756 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11507 777777 777677 AEE=XX ;INITIAL C(E) + 11508 037757 200 00 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11509 037760 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11510 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11511 037761 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11512 037762 003 02 0 00 035111 ER3 AC,35111 ;HIGH PRODUCT FAILED + 11513 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1 + 11514 037763 312 03 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11515 037764 004 03 0 00 035112 ER4 AC+1,35112 ;LOW PRODUCT FAILED + 11516 777777 777677 AEE=XX ;INITIAL C(E) + 11517 037765 312 00 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11518 037766 005 00 0 00 035113 ER5 E,35113 ;C(E) WAS CLOBBERED + 11519 037767 321 04 0 00 037755 JUMPL AC+2,F35110 ;LOOP ON ERROR SWITCH^ + 11520 + 11521 003512 ADR=ADR+1 + 11522 777777 777577 XX=XX+XX+1 + 11523 IFE , + 11524 + 11525 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11526 777777 777777 IFL XX, + 11527 IFG XX, + 11528 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11529 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11530 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11531 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11532 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11533 + 11534 000001 F35120: AA1=1 ;INITIAL C(AC) + 11535 037770 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11536 000000 AA2=0 ;INITIAL C(AC+1) + 11537 037771 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11538 777777 777577 AEE=XX ;INITIAL C(E) + 11539 037772 200 00 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11540 037773 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11541 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11542 037774 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11543 037775 003 02 0 00 035121 ER3 AC,35121 ;HIGH PRODUCT FAILED + 11544 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1 + 11545 037776 312 03 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11546 037777 004 03 0 00 035122 ER4 AC+1,35122 ;LOW PRODUCT FAILED + 11547 777777 777577 AEE=XX ;INITIAL C(E) + 11548 040000 312 00 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11549 040001 005 00 0 00 035123 ER5 E,35123 ;C(E) WAS CLOBBERED + 11550 040002 321 04 0 00 037770 JUMPL AC+2,F35120 ;LOOP ON ERROR SWITCH^ + 11551 + 11552 003513 ADR=ADR+1 + 11553 777777 777377 XX=XX+XX+1 + 11554 IFE , + 11555 + 11556 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11557 777777 777777 IFL XX, + 11558 IFG XX, + 11559 MOP1 (\ADR,1,0,XX,V1,XX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0233 + + 11560 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11561 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11562 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11563 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11564 + 11565 000001 F35130: AA1=1 ;INITIAL C(AC) + 11566 040003 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11567 000000 AA2=0 ;INITIAL C(AC+1) + 11568 040004 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11569 777777 777377 AEE=XX ;INITIAL C(E) + 11570 040005 200 00 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11571 040006 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11572 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11573 040007 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11574 040010 003 02 0 00 035131 ER3 AC,35131 ;HIGH PRODUCT FAILED + 11575 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1 + 11576 040011 312 03 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11577 040012 004 03 0 00 035132 ER4 AC+1,35132 ;LOW PRODUCT FAILED + 11578 777777 777377 AEE=XX ;INITIAL C(E) + 11579 040013 312 00 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11580 040014 005 00 0 00 035133 ER5 E,35133 ;C(E) WAS CLOBBERED + 11581 040015 321 04 0 00 040003 JUMPL AC+2,F35130 ;LOOP ON ERROR SWITCH^ + 11582 + 11583 003514 ADR=ADR+1 + 11584 777777 776777 XX=XX+XX+1 + 11585 IFE , + 11586 + 11587 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11588 777777 777777 IFL XX, + 11589 IFG XX, + 11590 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11591 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11592 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11593 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11594 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11595 + 11596 000001 F35140: AA1=1 ;INITIAL C(AC) + 11597 040016 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11598 000000 AA2=0 ;INITIAL C(AC+1) + 11599 040017 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11600 777777 776777 AEE=XX ;INITIAL C(E) + 11601 040020 200 00 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11602 040021 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11603 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11604 040022 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11605 040023 003 02 0 00 035141 ER3 AC,35141 ;HIGH PRODUCT FAILED + 11606 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11607 040024 312 03 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11608 040025 004 03 0 00 035142 ER4 AC+1,35142 ;LOW PRODUCT FAILED + 11609 777777 776777 AEE=XX ;INITIAL C(E) + 11610 040026 312 00 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11611 040027 005 00 0 00 035143 ER5 E,35143 ;C(E) WAS CLOBBERED + 11612 040030 321 04 0 00 040016 JUMPL AC+2,F35140 ;LOOP ON ERROR SWITCH^ + 11613 + 11614 003515 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0234 + + 11615 777777 775777 XX=XX+XX+1 + 11616 IFE , + 11617 + 11618 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11619 777777 777777 IFL XX, + 11620 IFG XX, + 11621 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11623 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11624 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11626 + 11627 000001 F35150: AA1=1 ;INITIAL C(AC) + 11628 040031 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11629 000000 AA2=0 ;INITIAL C(AC+1) + 11630 040032 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11631 777777 775777 AEE=XX ;INITIAL C(E) + 11632 040033 200 00 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11633 040034 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11634 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11635 040035 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11636 040036 003 02 0 00 035151 ER3 AC,35151 ;HIGH PRODUCT FAILED + 11637 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11638 040037 312 03 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11639 040040 004 03 0 00 035152 ER4 AC+1,35152 ;LOW PRODUCT FAILED + 11640 777777 775777 AEE=XX ;INITIAL C(E) + 11641 040041 312 00 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11642 040042 005 00 0 00 035153 ER5 E,35153 ;C(E) WAS CLOBBERED + 11643 040043 321 04 0 00 040031 JUMPL AC+2,F35150 ;LOOP ON ERROR SWITCH^ + 11644 + 11645 003516 ADR=ADR+1 + 11646 777777 773777 XX=XX+XX+1 + 11647 IFE , + 11648 + 11649 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11650 777777 777777 IFL XX, + 11651 IFG XX, + 11652 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11654 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11655 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11657 + 11658 000001 F35160: AA1=1 ;INITIAL C(AC) + 11659 040044 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11660 000000 AA2=0 ;INITIAL C(AC+1) + 11661 040045 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11662 777777 773777 AEE=XX ;INITIAL C(E) + 11663 040046 200 00 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11664 040047 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11665 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11666 040050 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11667 040051 003 02 0 00 035161 ER3 AC,35161 ;HIGH PRODUCT FAILED + 11668 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11669 040052 312 03 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0235 + + 11670 040053 004 03 0 00 035162 ER4 AC+1,35162 ;LOW PRODUCT FAILED + 11671 777777 773777 AEE=XX ;INITIAL C(E) + 11672 040054 312 00 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11673 040055 005 00 0 00 035163 ER5 E,35163 ;C(E) WAS CLOBBERED + 11674 040056 321 04 0 00 040044 JUMPL AC+2,F35160 ;LOOP ON ERROR SWITCH^ + 11675 + 11676 003517 ADR=ADR+1 + 11677 777777 767777 XX=XX+XX+1 + 11678 IFE , + 11679 + 11680 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11681 777777 777777 IFL XX, + 11682 IFG XX, + 11683 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11684 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11685 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11686 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11687 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11688 + 11689 000001 F35170: AA1=1 ;INITIAL C(AC) + 11690 040057 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11691 000000 AA2=0 ;INITIAL C(AC+1) + 11692 040060 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11693 777777 767777 AEE=XX ;INITIAL C(E) + 11694 040061 200 00 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11695 040062 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11696 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11697 040063 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11698 040064 003 02 0 00 035171 ER3 AC,35171 ;HIGH PRODUCT FAILED + 11699 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11700 040065 312 03 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11701 040066 004 03 0 00 035172 ER4 AC+1,35172 ;LOW PRODUCT FAILED + 11702 777777 767777 AEE=XX ;INITIAL C(E) + 11703 040067 312 00 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11704 040070 005 00 0 00 035173 ER5 E,35173 ;C(E) WAS CLOBBERED + 11705 040071 321 04 0 00 040057 JUMPL AC+2,F35170 ;LOOP ON ERROR SWITCH^ + 11706 + 11707 003520 ADR=ADR+1 + 11708 777777 757777 XX=XX+XX+1 + 11709 IFE , + 11710 + 11711 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11712 777777 777777 IFL XX, + 11713 IFG XX, + 11714 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11715 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11716 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11717 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11718 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11719 + 11720 000001 F35200: AA1=1 ;INITIAL C(AC) + 11721 040072 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11722 000000 AA2=0 ;INITIAL C(AC+1) + 11723 040073 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11724 777777 757777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0236 + + 11725 040074 200 00 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11726 040075 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11727 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11728 040076 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11729 040077 003 02 0 00 035201 ER3 AC,35201 ;HIGH PRODUCT FAILED + 11730 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11731 040100 312 03 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11732 040101 004 03 0 00 035202 ER4 AC+1,35202 ;LOW PRODUCT FAILED + 11733 777777 757777 AEE=XX ;INITIAL C(E) + 11734 040102 312 00 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11735 040103 005 00 0 00 035203 ER5 E,35203 ;C(E) WAS CLOBBERED + 11736 040104 321 04 0 00 040072 JUMPL AC+2,F35200 ;LOOP ON ERROR SWITCH^ + 11737 + 11738 003521 ADR=ADR+1 + 11739 777777 737777 XX=XX+XX+1 + 11740 IFE , + 11741 + 11742 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11743 777777 777777 IFL XX, + 11744 IFG XX, + 11745 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11747 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11748 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11750 + 11751 000001 F35210: AA1=1 ;INITIAL C(AC) + 11752 040105 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11753 000000 AA2=0 ;INITIAL C(AC+1) + 11754 040106 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11755 777777 737777 AEE=XX ;INITIAL C(E) + 11756 040107 200 00 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11757 040110 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11759 040111 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11760 040112 003 02 0 00 035211 ER3 AC,35211 ;HIGH PRODUCT FAILED + 11761 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11762 040113 312 03 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11763 040114 004 03 0 00 035212 ER4 AC+1,35212 ;LOW PRODUCT FAILED + 11764 777777 737777 AEE=XX ;INITIAL C(E) + 11765 040115 312 00 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11766 040116 005 00 0 00 035213 ER5 E,35213 ;C(E) WAS CLOBBERED + 11767 040117 321 04 0 00 040105 JUMPL AC+2,F35210 ;LOOP ON ERROR SWITCH^ + 11768 + 11769 003522 ADR=ADR+1 + 11770 777777 677777 XX=XX+XX+1 + 11771 IFE , + 11772 + 11773 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11774 777777 777777 IFL XX, + 11775 IFG XX, + 11776 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11778 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11779 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0237 + + 11780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11781 + 11782 000001 F35220: AA1=1 ;INITIAL C(AC) + 11783 040120 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11784 000000 AA2=0 ;INITIAL C(AC+1) + 11785 040121 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11786 777777 677777 AEE=XX ;INITIAL C(E) + 11787 040122 200 00 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11788 040123 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11789 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11790 040124 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11791 040125 003 02 0 00 035221 ER3 AC,35221 ;HIGH PRODUCT FAILED + 11792 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11793 040126 312 03 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11794 040127 004 03 0 00 035222 ER4 AC+1,35222 ;LOW PRODUCT FAILED + 11795 777777 677777 AEE=XX ;INITIAL C(E) + 11796 040130 312 00 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11797 040131 005 00 0 00 035223 ER5 E,35223 ;C(E) WAS CLOBBERED + 11798 040132 321 04 0 00 040120 JUMPL AC+2,F35220 ;LOOP ON ERROR SWITCH^ + 11799 + 11800 003523 ADR=ADR+1 + 11801 777777 577777 XX=XX+XX+1 + 11802 IFE , + 11803 + 11804 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11805 777777 777777 IFL XX, + 11806 IFG XX, + 11807 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11808 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11809 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11810 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11811 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11812 + 11813 000001 F35230: AA1=1 ;INITIAL C(AC) + 11814 040133 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11815 000000 AA2=0 ;INITIAL C(AC+1) + 11816 040134 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11817 777777 577777 AEE=XX ;INITIAL C(E) + 11818 040135 200 00 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11819 040136 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11820 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11821 040137 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11822 040140 003 02 0 00 035231 ER3 AC,35231 ;HIGH PRODUCT FAILED + 11823 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11824 040141 312 03 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11825 040142 004 03 0 00 035232 ER4 AC+1,35232 ;LOW PRODUCT FAILED + 11826 777777 577777 AEE=XX ;INITIAL C(E) + 11827 040143 312 00 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11828 040144 005 00 0 00 035233 ER5 E,35233 ;C(E) WAS CLOBBERED + 11829 040145 321 04 0 00 040133 JUMPL AC+2,F35230 ;LOOP ON ERROR SWITCH^ + 11830 + 11831 003524 ADR=ADR+1 + 11832 777777 377777 XX=XX+XX+1 + 11833 IFE , + 11834 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0238 + + 11835 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11836 777777 777777 IFL XX, + 11837 IFG XX, + 11838 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11839 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11840 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11841 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11842 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11843 + 11844 000001 F35240: AA1=1 ;INITIAL C(AC) + 11845 040146 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11846 000000 AA2=0 ;INITIAL C(AC+1) + 11847 040147 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11848 777777 377777 AEE=XX ;INITIAL C(E) + 11849 040150 200 00 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11850 040151 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11851 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11852 040152 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11853 040153 003 02 0 00 035241 ER3 AC,35241 ;HIGH PRODUCT FAILED + 11854 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11855 040154 312 03 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11856 040155 004 03 0 00 035242 ER4 AC+1,35242 ;LOW PRODUCT FAILED + 11857 777777 377777 AEE=XX ;INITIAL C(E) + 11858 040156 312 00 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11859 040157 005 00 0 00 035243 ER5 E,35243 ;C(E) WAS CLOBBERED + 11860 040160 321 04 0 00 040146 JUMPL AC+2,F35240 ;LOOP ON ERROR SWITCH^ + 11861 + 11862 003525 ADR=ADR+1 + 11863 777776 777777 XX=XX+XX+1 + 11864 IFE , + 11865 + 11866 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11867 777777 777777 IFL XX, + 11868 IFG XX, + 11869 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11872 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11874 + 11875 000001 F35250: AA1=1 ;INITIAL C(AC) + 11876 040161 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11877 000000 AA2=0 ;INITIAL C(AC+1) + 11878 040162 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11879 777776 777777 AEE=XX ;INITIAL C(E) + 11880 040163 200 00 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11881 040164 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11882 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11883 040165 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11884 040166 003 02 0 00 035251 ER3 AC,35251 ;HIGH PRODUCT FAILED + 11885 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11886 040167 312 03 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11887 040170 004 03 0 00 035252 ER4 AC+1,35252 ;LOW PRODUCT FAILED + 11888 777776 777777 AEE=XX ;INITIAL C(E) + 11889 040171 312 00 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0239 + + 11890 040172 005 00 0 00 035253 ER5 E,35253 ;C(E) WAS CLOBBERED + 11891 040173 321 04 0 00 040161 JUMPL AC+2,F35250 ;LOOP ON ERROR SWITCH^ + 11892 + 11893 003526 ADR=ADR+1 + 11894 777775 777777 XX=XX+XX+1 + 11895 IFE , + 11896 + 11897 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11898 777777 777777 IFL XX, + 11899 IFG XX, + 11900 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11901 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11902 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11903 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11904 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11905 + 11906 000001 F35260: AA1=1 ;INITIAL C(AC) + 11907 040174 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11908 000000 AA2=0 ;INITIAL C(AC+1) + 11909 040175 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11910 777775 777777 AEE=XX ;INITIAL C(E) + 11911 040176 200 00 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11912 040177 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11913 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11914 040200 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11915 040201 003 02 0 00 035261 ER3 AC,35261 ;HIGH PRODUCT FAILED + 11916 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11917 040202 312 03 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11918 040203 004 03 0 00 035262 ER4 AC+1,35262 ;LOW PRODUCT FAILED + 11919 777775 777777 AEE=XX ;INITIAL C(E) + 11920 040204 312 00 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11921 040205 005 00 0 00 035263 ER5 E,35263 ;C(E) WAS CLOBBERED + 11922 040206 321 04 0 00 040174 JUMPL AC+2,F35260 ;LOOP ON ERROR SWITCH^ + 11923 + 11924 003527 ADR=ADR+1 + 11925 777773 777777 XX=XX+XX+1 + 11926 IFE , + 11927 + 11928 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11929 777777 777777 IFL XX, + 11930 IFG XX, + 11931 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11932 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11933 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11934 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11935 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11936 + 11937 000001 F35270: AA1=1 ;INITIAL C(AC) + 11938 040207 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11939 000000 AA2=0 ;INITIAL C(AC+1) + 11940 040210 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11941 777773 777777 AEE=XX ;INITIAL C(E) + 11942 040211 200 00 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11943 040212 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11944 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0240 + + 11945 040213 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11946 040214 003 02 0 00 035271 ER3 AC,35271 ;HIGH PRODUCT FAILED + 11947 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11948 040215 312 03 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11949 040216 004 03 0 00 035272 ER4 AC+1,35272 ;LOW PRODUCT FAILED + 11950 777773 777777 AEE=XX ;INITIAL C(E) + 11951 040217 312 00 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11952 040220 005 00 0 00 035273 ER5 E,35273 ;C(E) WAS CLOBBERED + 11953 040221 321 04 0 00 040207 JUMPL AC+2,F35270 ;LOOP ON ERROR SWITCH^ + 11954 + 11955 003530 ADR=ADR+1 + 11956 777767 777777 XX=XX+XX+1 + 11957 IFE , + 11958 + 11959 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11960 777777 777777 IFL XX, + 11961 IFG XX, + 11962 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11963 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11964 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11965 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11966 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11967 + 11968 000001 F35300: AA1=1 ;INITIAL C(AC) + 11969 040222 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 11970 000000 AA2=0 ;INITIAL C(AC+1) + 11971 040223 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 11972 777767 777777 AEE=XX ;INITIAL C(E) + 11973 040224 200 00 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 11974 040225 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 11975 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 11976 040226 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 11977 040227 003 02 0 00 035301 ER3 AC,35301 ;HIGH PRODUCT FAILED + 11978 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 11979 040230 312 03 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 11980 040231 004 03 0 00 035302 ER4 AC+1,35302 ;LOW PRODUCT FAILED + 11981 777767 777777 AEE=XX ;INITIAL C(E) + 11982 040232 312 00 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? + 11983 040233 005 00 0 00 035303 ER5 E,35303 ;C(E) WAS CLOBBERED + 11984 040234 321 04 0 00 040222 JUMPL AC+2,F35300 ;LOOP ON ERROR SWITCH^ + 11985 + 11986 003531 ADR=ADR+1 + 11987 777757 777777 XX=XX+XX+1 + 11988 IFE , + 11989 + 11990 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 11991 777777 777777 IFL XX, + 11992 IFG XX, + 11993 MOP1 (\ADR,1,0,XX,V1,XX)^ + 11994 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 11995 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 11996 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 11997 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 11998 + 11999 000001 F35310: AA1=1 ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0241 + + 12000 040235 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12001 000000 AA2=0 ;INITIAL C(AC+1) + 12002 040236 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12003 777757 777777 AEE=XX ;INITIAL C(E) + 12004 040237 200 00 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12005 040240 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12006 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12007 040241 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12008 040242 003 02 0 00 035311 ER3 AC,35311 ;HIGH PRODUCT FAILED + 12009 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12010 040243 312 03 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12011 040244 004 03 0 00 035312 ER4 AC+1,35312 ;LOW PRODUCT FAILED + 12012 777757 777777 AEE=XX ;INITIAL C(E) + 12013 040245 312 00 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12014 040246 005 00 0 00 035313 ER5 E,35313 ;C(E) WAS CLOBBERED + 12015 040247 321 04 0 00 040235 JUMPL AC+2,F35310 ;LOOP ON ERROR SWITCH^ + 12016 + 12017 003532 ADR=ADR+1 + 12018 777737 777777 XX=XX+XX+1 + 12019 IFE , + 12020 + 12021 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12022 777777 777777 IFL XX, + 12023 IFG XX, + 12024 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12025 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12026 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12027 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12028 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12029 + 12030 000001 F35320: AA1=1 ;INITIAL C(AC) + 12031 040250 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12032 000000 AA2=0 ;INITIAL C(AC+1) + 12033 040251 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12034 777737 777777 AEE=XX ;INITIAL C(E) + 12035 040252 200 00 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12036 040253 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12037 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12038 040254 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12039 040255 003 02 0 00 035321 ER3 AC,35321 ;HIGH PRODUCT FAILED + 12040 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12041 040256 312 03 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12042 040257 004 03 0 00 035322 ER4 AC+1,35322 ;LOW PRODUCT FAILED + 12043 777737 777777 AEE=XX ;INITIAL C(E) + 12044 040260 312 00 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12045 040261 005 00 0 00 035323 ER5 E,35323 ;C(E) WAS CLOBBERED + 12046 040262 321 04 0 00 040250 JUMPL AC+2,F35320 ;LOOP ON ERROR SWITCH^ + 12047 + 12048 003533 ADR=ADR+1 + 12049 777677 777777 XX=XX+XX+1 + 12050 IFE , + 12051 + 12052 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12053 777777 777777 IFL XX, + 12054 IFG XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0242 + + 12055 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12056 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12057 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12058 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12059 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12060 + 12061 000001 F35330: AA1=1 ;INITIAL C(AC) + 12062 040263 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12063 000000 AA2=0 ;INITIAL C(AC+1) + 12064 040264 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12065 777677 777777 AEE=XX ;INITIAL C(E) + 12066 040265 200 00 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12067 040266 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12068 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12069 040267 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12070 040270 003 02 0 00 035331 ER3 AC,35331 ;HIGH PRODUCT FAILED + 12071 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12072 040271 312 03 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12073 040272 004 03 0 00 035332 ER4 AC+1,35332 ;LOW PRODUCT FAILED + 12074 777677 777777 AEE=XX ;INITIAL C(E) + 12075 040273 312 00 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12076 040274 005 00 0 00 035333 ER5 E,35333 ;C(E) WAS CLOBBERED + 12077 040275 321 04 0 00 040263 JUMPL AC+2,F35330 ;LOOP ON ERROR SWITCH^ + 12078 + 12079 003534 ADR=ADR+1 + 12080 777577 777777 XX=XX+XX+1 + 12081 IFE , + 12082 + 12083 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12084 777777 777777 IFL XX, + 12085 IFG XX, + 12086 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12087 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12088 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12089 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12090 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12091 + 12092 000001 F35340: AA1=1 ;INITIAL C(AC) + 12093 040276 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12094 000000 AA2=0 ;INITIAL C(AC+1) + 12095 040277 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12096 777577 777777 AEE=XX ;INITIAL C(E) + 12097 040300 200 00 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12098 040301 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12099 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12100 040302 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12101 040303 003 02 0 00 035341 ER3 AC,35341 ;HIGH PRODUCT FAILED + 12102 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12103 040304 312 03 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12104 040305 004 03 0 00 035342 ER4 AC+1,35342 ;LOW PRODUCT FAILED + 12105 777577 777777 AEE=XX ;INITIAL C(E) + 12106 040306 312 00 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12107 040307 005 00 0 00 035343 ER5 E,35343 ;C(E) WAS CLOBBERED + 12108 040310 321 04 0 00 040276 JUMPL AC+2,F35340 ;LOOP ON ERROR SWITCH^ + 12109 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0243 + + 12110 003535 ADR=ADR+1 + 12111 777377 777777 XX=XX+XX+1 + 12112 IFE , + 12113 + 12114 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12115 777777 777777 IFL XX, + 12116 IFG XX, + 12117 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12119 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12120 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12122 + 12123 000001 F35350: AA1=1 ;INITIAL C(AC) + 12124 040311 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12125 000000 AA2=0 ;INITIAL C(AC+1) + 12126 040312 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12127 777377 777777 AEE=XX ;INITIAL C(E) + 12128 040313 200 00 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12129 040314 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12130 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12131 040315 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12132 040316 003 02 0 00 035351 ER3 AC,35351 ;HIGH PRODUCT FAILED + 12133 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12134 040317 312 03 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12135 040320 004 03 0 00 035352 ER4 AC+1,35352 ;LOW PRODUCT FAILED + 12136 777377 777777 AEE=XX ;INITIAL C(E) + 12137 040321 312 00 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12138 040322 005 00 0 00 035353 ER5 E,35353 ;C(E) WAS CLOBBERED + 12139 040323 321 04 0 00 040311 JUMPL AC+2,F35350 ;LOOP ON ERROR SWITCH^ + 12140 + 12141 003536 ADR=ADR+1 + 12142 776777 777777 XX=XX+XX+1 + 12143 IFE , + 12144 + 12145 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12146 777777 777777 IFL XX, + 12147 IFG XX, + 12148 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12151 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12153 + 12154 000001 F35360: AA1=1 ;INITIAL C(AC) + 12155 040324 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12156 000000 AA2=0 ;INITIAL C(AC+1) + 12157 040325 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12158 776777 777777 AEE=XX ;INITIAL C(E) + 12159 040326 200 00 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12160 040327 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12162 040330 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12163 040331 003 02 0 00 035361 ER3 AC,35361 ;HIGH PRODUCT FAILED + 12164 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0244 + + 12165 040332 312 03 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12166 040333 004 03 0 00 035362 ER4 AC+1,35362 ;LOW PRODUCT FAILED + 12167 776777 777777 AEE=XX ;INITIAL C(E) + 12168 040334 312 00 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12169 040335 005 00 0 00 035363 ER5 E,35363 ;C(E) WAS CLOBBERED + 12170 040336 321 04 0 00 040324 JUMPL AC+2,F35360 ;LOOP ON ERROR SWITCH^ + 12171 + 12172 003537 ADR=ADR+1 + 12173 775777 777777 XX=XX+XX+1 + 12174 IFE , + 12175 + 12176 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12177 777777 777777 IFL XX, + 12178 IFG XX, + 12179 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12181 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12182 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12184 + 12185 000001 F35370: AA1=1 ;INITIAL C(AC) + 12186 040337 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12187 000000 AA2=0 ;INITIAL C(AC+1) + 12188 040340 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12189 775777 777777 AEE=XX ;INITIAL C(E) + 12190 040341 200 00 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12191 040342 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12192 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12193 040343 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12194 040344 003 02 0 00 035371 ER3 AC,35371 ;HIGH PRODUCT FAILED + 12195 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12196 040345 312 03 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12197 040346 004 03 0 00 035372 ER4 AC+1,35372 ;LOW PRODUCT FAILED + 12198 775777 777777 AEE=XX ;INITIAL C(E) + 12199 040347 312 00 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12200 040350 005 00 0 00 035373 ER5 E,35373 ;C(E) WAS CLOBBERED + 12201 040351 321 04 0 00 040337 JUMPL AC+2,F35370 ;LOOP ON ERROR SWITCH^ + 12202 + 12203 003540 ADR=ADR+1 + 12204 773777 777777 XX=XX+XX+1 + 12205 IFE , + 12206 + 12207 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12208 777777 777777 IFL XX, + 12209 IFG XX, + 12210 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12211 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12212 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12213 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12214 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12215 + 12216 000001 F35400: AA1=1 ;INITIAL C(AC) + 12217 040352 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12218 000000 AA2=0 ;INITIAL C(AC+1) + 12219 040353 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0245 + + 12220 773777 777777 AEE=XX ;INITIAL C(E) + 12221 040354 200 00 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12222 040355 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12223 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12224 040356 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12225 040357 003 02 0 00 035401 ER3 AC,35401 ;HIGH PRODUCT FAILED + 12226 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12227 040360 312 03 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12228 040361 004 03 0 00 035402 ER4 AC+1,35402 ;LOW PRODUCT FAILED + 12229 773777 777777 AEE=XX ;INITIAL C(E) + 12230 040362 312 00 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12231 040363 005 00 0 00 035403 ER5 E,35403 ;C(E) WAS CLOBBERED + 12232 040364 321 04 0 00 040352 JUMPL AC+2,F35400 ;LOOP ON ERROR SWITCH^ + 12233 + 12234 003541 ADR=ADR+1 + 12235 767777 777777 XX=XX+XX+1 + 12236 IFE , + 12237 + 12238 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12239 777777 777777 IFL XX, + 12240 IFG XX, + 12241 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12242 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12243 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12244 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12245 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12246 + 12247 000001 F35410: AA1=1 ;INITIAL C(AC) + 12248 040365 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12249 000000 AA2=0 ;INITIAL C(AC+1) + 12250 040366 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12251 767777 777777 AEE=XX ;INITIAL C(E) + 12252 040367 200 00 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12253 040370 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12254 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12255 040371 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12256 040372 003 02 0 00 035411 ER3 AC,35411 ;HIGH PRODUCT FAILED + 12257 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12258 040373 312 03 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12259 040374 004 03 0 00 035412 ER4 AC+1,35412 ;LOW PRODUCT FAILED + 12260 767777 777777 AEE=XX ;INITIAL C(E) + 12261 040375 312 00 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12262 040376 005 00 0 00 035413 ER5 E,35413 ;C(E) WAS CLOBBERED + 12263 040377 321 04 0 00 040365 JUMPL AC+2,F35410 ;LOOP ON ERROR SWITCH^ + 12264 + 12265 003542 ADR=ADR+1 + 12266 757777 777777 XX=XX+XX+1 + 12267 IFE , + 12268 + 12269 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12270 777777 777777 IFL XX, + 12271 IFG XX, + 12272 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12273 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12274 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0246 + + 12275 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12276 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12277 + 12278 000001 F35420: AA1=1 ;INITIAL C(AC) + 12279 040400 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12280 000000 AA2=0 ;INITIAL C(AC+1) + 12281 040401 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12282 757777 777777 AEE=XX ;INITIAL C(E) + 12283 040402 200 00 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12284 040403 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12285 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12286 040404 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12287 040405 003 02 0 00 035421 ER3 AC,35421 ;HIGH PRODUCT FAILED + 12288 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12289 040406 312 03 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12290 040407 004 03 0 00 035422 ER4 AC+1,35422 ;LOW PRODUCT FAILED + 12291 757777 777777 AEE=XX ;INITIAL C(E) + 12292 040410 312 00 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12293 040411 005 00 0 00 035423 ER5 E,35423 ;C(E) WAS CLOBBERED + 12294 040412 321 04 0 00 040400 JUMPL AC+2,F35420 ;LOOP ON ERROR SWITCH^ + 12295 + 12296 003543 ADR=ADR+1 + 12297 737777 777777 XX=XX+XX+1 + 12298 IFE , + 12299 + 12300 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12301 777777 777777 IFL XX, + 12302 IFG XX, + 12303 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12304 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12305 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12306 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12307 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12308 + 12309 000001 F35430: AA1=1 ;INITIAL C(AC) + 12310 040413 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12311 000000 AA2=0 ;INITIAL C(AC+1) + 12312 040414 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12313 737777 777777 AEE=XX ;INITIAL C(E) + 12314 040415 200 00 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12315 040416 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12316 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12317 040417 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12318 040420 003 02 0 00 035431 ER3 AC,35431 ;HIGH PRODUCT FAILED + 12319 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12320 040421 312 03 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12321 040422 004 03 0 00 035432 ER4 AC+1,35432 ;LOW PRODUCT FAILED + 12322 737777 777777 AEE=XX ;INITIAL C(E) + 12323 040423 312 00 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12324 040424 005 00 0 00 035433 ER5 E,35433 ;C(E) WAS CLOBBERED + 12325 040425 321 04 0 00 040413 JUMPL AC+2,F35430 ;LOOP ON ERROR SWITCH^ + 12326 + 12327 003544 ADR=ADR+1 + 12328 677777 777777 XX=XX+XX+1 + 12329 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0247 + + 12330 + 12331 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12332 777777 777777 IFL XX, + 12333 IFG XX, + 12334 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12335 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12336 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12337 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12338 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12339 + 12340 000001 F35440: AA1=1 ;INITIAL C(AC) + 12341 040426 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12342 000000 AA2=0 ;INITIAL C(AC+1) + 12343 040427 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12344 677777 777777 AEE=XX ;INITIAL C(E) + 12345 040430 200 00 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12346 040431 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12347 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12348 040432 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12349 040433 003 02 0 00 035441 ER3 AC,35441 ;HIGH PRODUCT FAILED + 12350 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12351 040434 312 03 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12352 040435 004 03 0 00 035442 ER4 AC+1,35442 ;LOW PRODUCT FAILED + 12353 677777 777777 AEE=XX ;INITIAL C(E) + 12354 040436 312 00 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12355 040437 005 00 0 00 035443 ER5 E,35443 ;C(E) WAS CLOBBERED + 12356 040440 321 04 0 00 040426 JUMPL AC+2,F35440 ;LOOP ON ERROR SWITCH^ + 12357 + 12358 003545 ADR=ADR+1 + 12359 577777 777777 XX=XX+XX+1 + 12360 IFE , + 12361 + 12362 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12363 777777 777777 IFL XX, + 12364 IFG XX, + 12365 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12366 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12367 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12368 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12369 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12370 + 12371 000001 F35450: AA1=1 ;INITIAL C(AC) + 12372 040441 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12373 000000 AA2=0 ;INITIAL C(AC+1) + 12374 040442 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12375 577777 777777 AEE=XX ;INITIAL C(E) + 12376 040443 200 00 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12377 040444 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12378 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12379 040445 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12380 040446 003 02 0 00 035451 ER3 AC,35451 ;HIGH PRODUCT FAILED + 12381 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12382 040447 312 03 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12383 040450 004 03 0 00 035452 ER4 AC+1,35452 ;LOW PRODUCT FAILED + 12384 577777 777777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0248 + + 12385 040451 312 00 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12386 040452 005 00 0 00 035453 ER5 E,35453 ;C(E) WAS CLOBBERED + 12387 040453 321 04 0 00 040441 JUMPL AC+2,F35450 ;LOOP ON ERROR SWITCH^ + 12388 + 12389 003546 ADR=ADR+1 + 12390 377777 777777 XX=XX+XX+1 + 12391 IFE , + 12392 + 12393 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + 12394 IFL XX, + 12395 000000 IFG XX, + 12396 MOP1 (\ADR,1,0,XX,V1,XX)^ + 12397 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND + 12398 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12399 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. + 12400 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12401 + 12402 000001 F35460: AA1=1 ;INITIAL C(AC) + 12403 040454 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) + 12404 000000 AA2=0 ;INITIAL C(AC+1) + 12405 040455 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12406 377777 777777 AEE=XX ;INITIAL C(E) + 12407 040456 200 00 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 12408 040457 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12409 000000 AR1=V1 ;EXPECTED RESULT IN AC + 12410 040460 312 02 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12411 040461 003 02 0 00 035461 ER3 AC,35461 ;HIGH PRODUCT FAILED + 12412 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12413 040462 312 03 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12414 040463 004 03 0 00 035462 ER4 AC+1,35462 ;LOW PRODUCT FAILED + 12415 377777 777777 AEE=XX ;INITIAL C(E) + 12416 040464 312 00 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? + 12417 040465 005 00 0 00 035463 ER5 E,35463 ;C(E) WAS CLOBBERED + 12418 040466 321 04 0 00 040454 JUMPL AC+2,F35460 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0249 + + 12419 000010 AC=10 + 12420 000006 E=&17 + 12421 SAVEAC (1,1)^ + 12422 040467 201 12 0 00 040467 MOVEI AC+2,. ;SAVE TEST PC + 12423 040470 202 12 0 00 030051 MOVEM AC+2,TESTPC + 12424 040471 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 12425 040472 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 12426 000000 XX=0 + 12427 + 12428 REPEAT ^D36,< + 12429 ADR=ADR+1 + 12430 XX=XX+XX+1 + 12431 IFE , + 12432 + 12433 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12434 IFL XX, + 12435 IFG XX, + 12436 MOP1 (\ADR,XX,0,1,V1,XX)> + 12437 + 12438 003547 ADR=ADR+1 + 12439 000001 XX=XX+XX+1 + 12440 777777 777776 IFE , + 12441 + 12442 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12443 777777 777777 IFL XX, + 12444 IFG XX, + 12445 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12447 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12448 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12450 + 12451 777777 777776 F35470: AA1=XX ;INITIAL C(AC) + 12452 040473 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12453 000000 AA2=0 ;INITIAL C(AC+1) + 12454 040474 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12455 000001 AEE=1 ;INITIAL C(E) + 12456 040475 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12457 040476 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12458 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12459 040477 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12460 040500 003 10 0 00 035471 ER3 AC,35471 ;HIGH PRODUCT FAILED + 12461 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1 + 12462 040501 312 11 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12463 040502 004 11 0 00 035472 ER4 AC+1,35472 ;LOW PRODUCT FAILED + 12464 000001 AEE=1 ;INITIAL C(E) + 12465 040503 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12466 040504 005 06 0 00 035473 ER5 E,35473 ;C(E) WAS CLOBBERED + 12467 040505 321 12 0 00 040473 JUMPL AC+2,F35470 ;LOOP ON ERROR SWITCH^ + 12468 + 12469 003550 ADR=ADR+1 + 12470 777777 777775 XX=XX+XX+1 + 12471 IFE , + 12472 + 12473 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0250 + + 12474 777777 777777 IFL XX, + 12475 IFG XX, + 12476 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12478 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12479 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12481 + 12482 777777 777775 F35500: AA1=XX ;INITIAL C(AC) + 12483 040506 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12484 000000 AA2=0 ;INITIAL C(AC+1) + 12485 040507 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12486 000001 AEE=1 ;INITIAL C(E) + 12487 040510 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12488 040511 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12489 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12490 040512 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12491 040513 003 10 0 00 035501 ER3 AC,35501 ;HIGH PRODUCT FAILED + 12492 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1 + 12493 040514 312 11 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12494 040515 004 11 0 00 035502 ER4 AC+1,35502 ;LOW PRODUCT FAILED + 12495 000001 AEE=1 ;INITIAL C(E) + 12496 040516 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12497 040517 005 06 0 00 035503 ER5 E,35503 ;C(E) WAS CLOBBERED + 12498 040520 321 12 0 00 040506 JUMPL AC+2,F35500 ;LOOP ON ERROR SWITCH^ + 12499 + 12500 003551 ADR=ADR+1 + 12501 777777 777773 XX=XX+XX+1 + 12502 IFE , + 12503 + 12504 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12505 777777 777777 IFL XX, + 12506 IFG XX, + 12507 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12509 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12510 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12512 + 12513 777777 777773 F35510: AA1=XX ;INITIAL C(AC) + 12514 040521 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12515 000000 AA2=0 ;INITIAL C(AC+1) + 12516 040522 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12517 000001 AEE=1 ;INITIAL C(E) + 12518 040523 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12519 040524 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12520 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12521 040525 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12522 040526 003 10 0 00 035511 ER3 AC,35511 ;HIGH PRODUCT FAILED + 12523 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1 + 12524 040527 312 11 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12525 040530 004 11 0 00 035512 ER4 AC+1,35512 ;LOW PRODUCT FAILED + 12526 000001 AEE=1 ;INITIAL C(E) + 12527 040531 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12528 040532 005 06 0 00 035513 ER5 E,35513 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0251 + + 12529 040533 321 12 0 00 040521 JUMPL AC+2,F35510 ;LOOP ON ERROR SWITCH^ + 12530 + 12531 003552 ADR=ADR+1 + 12532 777777 777767 XX=XX+XX+1 + 12533 IFE , + 12534 + 12535 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12536 777777 777777 IFL XX, + 12537 IFG XX, + 12538 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12539 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12540 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12541 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12542 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12543 + 12544 777777 777767 F35520: AA1=XX ;INITIAL C(AC) + 12545 040534 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12546 000000 AA2=0 ;INITIAL C(AC+1) + 12547 040535 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12548 000001 AEE=1 ;INITIAL C(E) + 12549 040536 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12550 040537 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12551 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12552 040540 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12553 040541 003 10 0 00 035521 ER3 AC,35521 ;HIGH PRODUCT FAILED + 12554 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1 + 12555 040542 312 11 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12556 040543 004 11 0 00 035522 ER4 AC+1,35522 ;LOW PRODUCT FAILED + 12557 000001 AEE=1 ;INITIAL C(E) + 12558 040544 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12559 040545 005 06 0 00 035523 ER5 E,35523 ;C(E) WAS CLOBBERED + 12560 040546 321 12 0 00 040534 JUMPL AC+2,F35520 ;LOOP ON ERROR SWITCH^ + 12561 + 12562 003553 ADR=ADR+1 + 12563 777777 777757 XX=XX+XX+1 + 12564 IFE , + 12565 + 12566 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12567 777777 777777 IFL XX, + 12568 IFG XX, + 12569 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12570 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12571 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12572 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12573 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12574 + 12575 777777 777757 F35530: AA1=XX ;INITIAL C(AC) + 12576 040547 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12577 000000 AA2=0 ;INITIAL C(AC+1) + 12578 040550 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12579 000001 AEE=1 ;INITIAL C(E) + 12580 040551 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12581 040552 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12582 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12583 040553 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0252 + + 12584 040554 003 10 0 00 035531 ER3 AC,35531 ;HIGH PRODUCT FAILED + 12585 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1 + 12586 040555 312 11 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12587 040556 004 11 0 00 035532 ER4 AC+1,35532 ;LOW PRODUCT FAILED + 12588 000001 AEE=1 ;INITIAL C(E) + 12589 040557 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12590 040560 005 06 0 00 035533 ER5 E,35533 ;C(E) WAS CLOBBERED + 12591 040561 321 12 0 00 040547 JUMPL AC+2,F35530 ;LOOP ON ERROR SWITCH^ + 12592 + 12593 003554 ADR=ADR+1 + 12594 777777 777737 XX=XX+XX+1 + 12595 IFE , + 12596 + 12597 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12598 777777 777777 IFL XX, + 12599 IFG XX, + 12600 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12601 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12602 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12603 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12604 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12605 + 12606 777777 777737 F35540: AA1=XX ;INITIAL C(AC) + 12607 040562 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12608 000000 AA2=0 ;INITIAL C(AC+1) + 12609 040563 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12610 000001 AEE=1 ;INITIAL C(E) + 12611 040564 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12612 040565 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12613 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12614 040566 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12615 040567 003 10 0 00 035541 ER3 AC,35541 ;HIGH PRODUCT FAILED + 12616 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1 + 12617 040570 312 11 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12618 040571 004 11 0 00 035542 ER4 AC+1,35542 ;LOW PRODUCT FAILED + 12619 000001 AEE=1 ;INITIAL C(E) + 12620 040572 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12621 040573 005 06 0 00 035543 ER5 E,35543 ;C(E) WAS CLOBBERED + 12622 040574 321 12 0 00 040562 JUMPL AC+2,F35540 ;LOOP ON ERROR SWITCH^ + 12623 + 12624 003555 ADR=ADR+1 + 12625 777777 777677 XX=XX+XX+1 + 12626 IFE , + 12627 + 12628 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12629 777777 777777 IFL XX, + 12630 IFG XX, + 12631 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12632 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12633 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12634 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12635 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12636 + 12637 777777 777677 F35550: AA1=XX ;INITIAL C(AC) + 12638 040575 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0253 + + 12639 000000 AA2=0 ;INITIAL C(AC+1) + 12640 040576 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12641 000001 AEE=1 ;INITIAL C(E) + 12642 040577 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12643 040600 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12644 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12645 040601 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12646 040602 003 10 0 00 035551 ER3 AC,35551 ;HIGH PRODUCT FAILED + 12647 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1 + 12648 040603 312 11 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12649 040604 004 11 0 00 035552 ER4 AC+1,35552 ;LOW PRODUCT FAILED + 12650 000001 AEE=1 ;INITIAL C(E) + 12651 040605 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12652 040606 005 06 0 00 035553 ER5 E,35553 ;C(E) WAS CLOBBERED + 12653 040607 321 12 0 00 040575 JUMPL AC+2,F35550 ;LOOP ON ERROR SWITCH^ + 12654 + 12655 003556 ADR=ADR+1 + 12656 777777 777577 XX=XX+XX+1 + 12657 IFE , + 12658 + 12659 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12660 777777 777777 IFL XX, + 12661 IFG XX, + 12662 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12663 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12664 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12665 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12666 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12667 + 12668 777777 777577 F35560: AA1=XX ;INITIAL C(AC) + 12669 040610 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12670 000000 AA2=0 ;INITIAL C(AC+1) + 12671 040611 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12672 000001 AEE=1 ;INITIAL C(E) + 12673 040612 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12674 040613 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12675 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12676 040614 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12677 040615 003 10 0 00 035561 ER3 AC,35561 ;HIGH PRODUCT FAILED + 12678 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1 + 12679 040616 312 11 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12680 040617 004 11 0 00 035562 ER4 AC+1,35562 ;LOW PRODUCT FAILED + 12681 000001 AEE=1 ;INITIAL C(E) + 12682 040620 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12683 040621 005 06 0 00 035563 ER5 E,35563 ;C(E) WAS CLOBBERED + 12684 040622 321 12 0 00 040610 JUMPL AC+2,F35560 ;LOOP ON ERROR SWITCH^ + 12685 + 12686 003557 ADR=ADR+1 + 12687 777777 777377 XX=XX+XX+1 + 12688 IFE , + 12689 + 12690 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12691 777777 777777 IFL XX, + 12692 IFG XX, + 12693 MOP1 (\ADR,XX,0,1,V1,XX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0254 + + 12694 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12695 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12696 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12697 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12698 + 12699 777777 777377 F35570: AA1=XX ;INITIAL C(AC) + 12700 040623 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12701 000000 AA2=0 ;INITIAL C(AC+1) + 12702 040624 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12703 000001 AEE=1 ;INITIAL C(E) + 12704 040625 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12705 040626 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12706 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12707 040627 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12708 040630 003 10 0 00 035571 ER3 AC,35571 ;HIGH PRODUCT FAILED + 12709 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1 + 12710 040631 312 11 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12711 040632 004 11 0 00 035572 ER4 AC+1,35572 ;LOW PRODUCT FAILED + 12712 000001 AEE=1 ;INITIAL C(E) + 12713 040633 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12714 040634 005 06 0 00 035573 ER5 E,35573 ;C(E) WAS CLOBBERED + 12715 040635 321 12 0 00 040623 JUMPL AC+2,F35570 ;LOOP ON ERROR SWITCH^ + 12716 + 12717 003560 ADR=ADR+1 + 12718 777777 776777 XX=XX+XX+1 + 12719 IFE , + 12720 + 12721 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12722 777777 777777 IFL XX, + 12723 IFG XX, + 12724 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12725 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12726 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12727 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12728 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12729 + 12730 777777 776777 F35600: AA1=XX ;INITIAL C(AC) + 12731 040636 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12732 000000 AA2=0 ;INITIAL C(AC+1) + 12733 040637 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12734 000001 AEE=1 ;INITIAL C(E) + 12735 040640 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12736 040641 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12737 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12738 040642 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12739 040643 003 10 0 00 035601 ER3 AC,35601 ;HIGH PRODUCT FAILED + 12740 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12741 040644 312 11 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12742 040645 004 11 0 00 035602 ER4 AC+1,35602 ;LOW PRODUCT FAILED + 12743 000001 AEE=1 ;INITIAL C(E) + 12744 040646 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12745 040647 005 06 0 00 035603 ER5 E,35603 ;C(E) WAS CLOBBERED + 12746 040650 321 12 0 00 040636 JUMPL AC+2,F35600 ;LOOP ON ERROR SWITCH^ + 12747 + 12748 003561 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0255 + + 12749 777777 775777 XX=XX+XX+1 + 12750 IFE , + 12751 + 12752 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12753 777777 777777 IFL XX, + 12754 IFG XX, + 12755 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12756 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12757 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12758 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12759 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12760 + 12761 777777 775777 F35610: AA1=XX ;INITIAL C(AC) + 12762 040651 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12763 000000 AA2=0 ;INITIAL C(AC+1) + 12764 040652 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12765 000001 AEE=1 ;INITIAL C(E) + 12766 040653 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12767 040654 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12768 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12769 040655 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12770 040656 003 10 0 00 035611 ER3 AC,35611 ;HIGH PRODUCT FAILED + 12771 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12772 040657 312 11 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12773 040660 004 11 0 00 035612 ER4 AC+1,35612 ;LOW PRODUCT FAILED + 12774 000001 AEE=1 ;INITIAL C(E) + 12775 040661 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12776 040662 005 06 0 00 035613 ER5 E,35613 ;C(E) WAS CLOBBERED + 12777 040663 321 12 0 00 040651 JUMPL AC+2,F35610 ;LOOP ON ERROR SWITCH^ + 12778 + 12779 003562 ADR=ADR+1 + 12780 777777 773777 XX=XX+XX+1 + 12781 IFE , + 12782 + 12783 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12784 777777 777777 IFL XX, + 12785 IFG XX, + 12786 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12787 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12788 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12789 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12790 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12791 + 12792 777777 773777 F35620: AA1=XX ;INITIAL C(AC) + 12793 040664 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12794 000000 AA2=0 ;INITIAL C(AC+1) + 12795 040665 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12796 000001 AEE=1 ;INITIAL C(E) + 12797 040666 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12798 040667 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12799 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12800 040670 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12801 040671 003 10 0 00 035621 ER3 AC,35621 ;HIGH PRODUCT FAILED + 12802 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12803 040672 312 11 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0256 + + 12804 040673 004 11 0 00 035622 ER4 AC+1,35622 ;LOW PRODUCT FAILED + 12805 000001 AEE=1 ;INITIAL C(E) + 12806 040674 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12807 040675 005 06 0 00 035623 ER5 E,35623 ;C(E) WAS CLOBBERED + 12808 040676 321 12 0 00 040664 JUMPL AC+2,F35620 ;LOOP ON ERROR SWITCH^ + 12809 + 12810 003563 ADR=ADR+1 + 12811 777777 767777 XX=XX+XX+1 + 12812 IFE , + 12813 + 12814 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12815 777777 777777 IFL XX, + 12816 IFG XX, + 12817 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12818 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12819 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12820 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12821 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12822 + 12823 777777 767777 F35630: AA1=XX ;INITIAL C(AC) + 12824 040677 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12825 000000 AA2=0 ;INITIAL C(AC+1) + 12826 040700 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12827 000001 AEE=1 ;INITIAL C(E) + 12828 040701 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12829 040702 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12830 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12831 040703 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12832 040704 003 10 0 00 035631 ER3 AC,35631 ;HIGH PRODUCT FAILED + 12833 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12834 040705 312 11 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12835 040706 004 11 0 00 035632 ER4 AC+1,35632 ;LOW PRODUCT FAILED + 12836 000001 AEE=1 ;INITIAL C(E) + 12837 040707 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12838 040710 005 06 0 00 035633 ER5 E,35633 ;C(E) WAS CLOBBERED + 12839 040711 321 12 0 00 040677 JUMPL AC+2,F35630 ;LOOP ON ERROR SWITCH^ + 12840 + 12841 003564 ADR=ADR+1 + 12842 777777 757777 XX=XX+XX+1 + 12843 IFE , + 12844 + 12845 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12846 777777 777777 IFL XX, + 12847 IFG XX, + 12848 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12850 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12851 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12853 + 12854 777777 757777 F35640: AA1=XX ;INITIAL C(AC) + 12855 040712 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12856 000000 AA2=0 ;INITIAL C(AC+1) + 12857 040713 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12858 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0257 + + 12859 040714 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12860 040715 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12862 040716 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12863 040717 003 10 0 00 035641 ER3 AC,35641 ;HIGH PRODUCT FAILED + 12864 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12865 040720 312 11 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12866 040721 004 11 0 00 035642 ER4 AC+1,35642 ;LOW PRODUCT FAILED + 12867 000001 AEE=1 ;INITIAL C(E) + 12868 040722 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12869 040723 005 06 0 00 035643 ER5 E,35643 ;C(E) WAS CLOBBERED + 12870 040724 321 12 0 00 040712 JUMPL AC+2,F35640 ;LOOP ON ERROR SWITCH^ + 12871 + 12872 003565 ADR=ADR+1 + 12873 777777 737777 XX=XX+XX+1 + 12874 IFE , + 12875 + 12876 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12877 777777 777777 IFL XX, + 12878 IFG XX, + 12879 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12881 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12882 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12884 + 12885 777777 737777 F35650: AA1=XX ;INITIAL C(AC) + 12886 040725 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12887 000000 AA2=0 ;INITIAL C(AC+1) + 12888 040726 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12889 000001 AEE=1 ;INITIAL C(E) + 12890 040727 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12891 040730 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12892 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12893 040731 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12894 040732 003 10 0 00 035651 ER3 AC,35651 ;HIGH PRODUCT FAILED + 12895 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12896 040733 312 11 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12897 040734 004 11 0 00 035652 ER4 AC+1,35652 ;LOW PRODUCT FAILED + 12898 000001 AEE=1 ;INITIAL C(E) + 12899 040735 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12900 040736 005 06 0 00 035653 ER5 E,35653 ;C(E) WAS CLOBBERED + 12901 040737 321 12 0 00 040725 JUMPL AC+2,F35650 ;LOOP ON ERROR SWITCH^ + 12902 + 12903 003566 ADR=ADR+1 + 12904 777777 677777 XX=XX+XX+1 + 12905 IFE , + 12906 + 12907 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12908 777777 777777 IFL XX, + 12909 IFG XX, + 12910 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12911 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12912 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12913 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0258 + + 12914 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12915 + 12916 777777 677777 F35660: AA1=XX ;INITIAL C(AC) + 12917 040740 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12918 000000 AA2=0 ;INITIAL C(AC+1) + 12919 040741 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12920 000001 AEE=1 ;INITIAL C(E) + 12921 040742 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12922 040743 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12923 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12924 040744 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12925 040745 003 10 0 00 035661 ER3 AC,35661 ;HIGH PRODUCT FAILED + 12926 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12927 040746 312 11 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12928 040747 004 11 0 00 035662 ER4 AC+1,35662 ;LOW PRODUCT FAILED + 12929 000001 AEE=1 ;INITIAL C(E) + 12930 040750 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12931 040751 005 06 0 00 035663 ER5 E,35663 ;C(E) WAS CLOBBERED + 12932 040752 321 12 0 00 040740 JUMPL AC+2,F35660 ;LOOP ON ERROR SWITCH^ + 12933 + 12934 003567 ADR=ADR+1 + 12935 777777 577777 XX=XX+XX+1 + 12936 IFE , + 12937 + 12938 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12939 777777 777777 IFL XX, + 12940 IFG XX, + 12941 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12942 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12943 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12944 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12945 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12946 + 12947 777777 577777 F35670: AA1=XX ;INITIAL C(AC) + 12948 040753 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12949 000000 AA2=0 ;INITIAL C(AC+1) + 12950 040754 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12951 000001 AEE=1 ;INITIAL C(E) + 12952 040755 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12953 040756 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12954 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12955 040757 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12956 040760 003 10 0 00 035671 ER3 AC,35671 ;HIGH PRODUCT FAILED + 12957 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12958 040761 312 11 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12959 040762 004 11 0 00 035672 ER4 AC+1,35672 ;LOW PRODUCT FAILED + 12960 000001 AEE=1 ;INITIAL C(E) + 12961 040763 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12962 040764 005 06 0 00 035673 ER5 E,35673 ;C(E) WAS CLOBBERED + 12963 040765 321 12 0 00 040753 JUMPL AC+2,F35670 ;LOOP ON ERROR SWITCH^ + 12964 + 12965 003570 ADR=ADR+1 + 12966 777777 377777 XX=XX+XX+1 + 12967 IFE , + 12968 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0259 + + 12969 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 12970 777777 777777 IFL XX, + 12971 IFG XX, + 12972 MOP1 (\ADR,XX,0,1,V1,XX)^ + 12973 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 12974 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 12975 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 12976 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 12977 + 12978 777777 377777 F35700: AA1=XX ;INITIAL C(AC) + 12979 040766 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 12980 000000 AA2=0 ;INITIAL C(AC+1) + 12981 040767 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 12982 000001 AEE=1 ;INITIAL C(E) + 12983 040770 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 12984 040771 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 12985 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 12986 040772 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 12987 040773 003 10 0 00 035701 ER3 AC,35701 ;HIGH PRODUCT FAILED + 12988 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1 + 12989 040774 312 11 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 12990 040775 004 11 0 00 035702 ER4 AC+1,35702 ;LOW PRODUCT FAILED + 12991 000001 AEE=1 ;INITIAL C(E) + 12992 040776 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 12993 040777 005 06 0 00 035703 ER5 E,35703 ;C(E) WAS CLOBBERED + 12994 041000 321 12 0 00 040766 JUMPL AC+2,F35700 ;LOOP ON ERROR SWITCH^ + 12995 + 12996 003571 ADR=ADR+1 + 12997 777776 777777 XX=XX+XX+1 + 12998 IFE , + 12999 + 13000 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13001 777777 777777 IFL XX, + 13002 IFG XX, + 13003 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13005 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13006 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13008 + 13009 777776 777777 F35710: AA1=XX ;INITIAL C(AC) + 13010 041001 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13011 000000 AA2=0 ;INITIAL C(AC+1) + 13012 041002 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13013 000001 AEE=1 ;INITIAL C(E) + 13014 041003 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13015 041004 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13016 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13017 041005 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13018 041006 003 10 0 00 035711 ER3 AC,35711 ;HIGH PRODUCT FAILED + 13019 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13020 041007 312 11 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13021 041010 004 11 0 00 035712 ER4 AC+1,35712 ;LOW PRODUCT FAILED + 13022 000001 AEE=1 ;INITIAL C(E) + 13023 041011 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0260 + + 13024 041012 005 06 0 00 035713 ER5 E,35713 ;C(E) WAS CLOBBERED + 13025 041013 321 12 0 00 041001 JUMPL AC+2,F35710 ;LOOP ON ERROR SWITCH^ + 13026 + 13027 003572 ADR=ADR+1 + 13028 777775 777777 XX=XX+XX+1 + 13029 IFE , + 13030 + 13031 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13032 777777 777777 IFL XX, + 13033 IFG XX, + 13034 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13035 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13036 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13037 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13038 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13039 + 13040 777775 777777 F35720: AA1=XX ;INITIAL C(AC) + 13041 041014 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13042 000000 AA2=0 ;INITIAL C(AC+1) + 13043 041015 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13044 000001 AEE=1 ;INITIAL C(E) + 13045 041016 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13046 041017 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13047 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13048 041020 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13049 041021 003 10 0 00 035721 ER3 AC,35721 ;HIGH PRODUCT FAILED + 13050 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13051 041022 312 11 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13052 041023 004 11 0 00 035722 ER4 AC+1,35722 ;LOW PRODUCT FAILED + 13053 000001 AEE=1 ;INITIAL C(E) + 13054 041024 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13055 041025 005 06 0 00 035723 ER5 E,35723 ;C(E) WAS CLOBBERED + 13056 041026 321 12 0 00 041014 JUMPL AC+2,F35720 ;LOOP ON ERROR SWITCH^ + 13057 + 13058 003573 ADR=ADR+1 + 13059 777773 777777 XX=XX+XX+1 + 13060 IFE , + 13061 + 13062 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13063 777777 777777 IFL XX, + 13064 IFG XX, + 13065 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13066 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13067 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13068 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13069 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13070 + 13071 777773 777777 F35730: AA1=XX ;INITIAL C(AC) + 13072 041027 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13073 000000 AA2=0 ;INITIAL C(AC+1) + 13074 041030 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13075 000001 AEE=1 ;INITIAL C(E) + 13076 041031 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13077 041032 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13078 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0261 + + 13079 041033 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13080 041034 003 10 0 00 035731 ER3 AC,35731 ;HIGH PRODUCT FAILED + 13081 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13082 041035 312 11 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13083 041036 004 11 0 00 035732 ER4 AC+1,35732 ;LOW PRODUCT FAILED + 13084 000001 AEE=1 ;INITIAL C(E) + 13085 041037 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13086 041040 005 06 0 00 035733 ER5 E,35733 ;C(E) WAS CLOBBERED + 13087 041041 321 12 0 00 041027 JUMPL AC+2,F35730 ;LOOP ON ERROR SWITCH^ + 13088 + 13089 003574 ADR=ADR+1 + 13090 777767 777777 XX=XX+XX+1 + 13091 IFE , + 13092 + 13093 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13094 777777 777777 IFL XX, + 13095 IFG XX, + 13096 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13097 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13098 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13099 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13100 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13101 + 13102 777767 777777 F35740: AA1=XX ;INITIAL C(AC) + 13103 041042 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13104 000000 AA2=0 ;INITIAL C(AC+1) + 13105 041043 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13106 000001 AEE=1 ;INITIAL C(E) + 13107 041044 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13108 041045 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13109 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13110 041046 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13111 041047 003 10 0 00 035741 ER3 AC,35741 ;HIGH PRODUCT FAILED + 13112 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13113 041050 312 11 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13114 041051 004 11 0 00 035742 ER4 AC+1,35742 ;LOW PRODUCT FAILED + 13115 000001 AEE=1 ;INITIAL C(E) + 13116 041052 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13117 041053 005 06 0 00 035743 ER5 E,35743 ;C(E) WAS CLOBBERED + 13118 041054 321 12 0 00 041042 JUMPL AC+2,F35740 ;LOOP ON ERROR SWITCH^ + 13119 + 13120 003575 ADR=ADR+1 + 13121 777757 777777 XX=XX+XX+1 + 13122 IFE , + 13123 + 13124 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13125 777777 777777 IFL XX, + 13126 IFG XX, + 13127 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13128 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13129 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13130 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13131 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13132 + 13133 777757 777777 F35750: AA1=XX ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0262 + + 13134 041055 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13135 000000 AA2=0 ;INITIAL C(AC+1) + 13136 041056 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13137 000001 AEE=1 ;INITIAL C(E) + 13138 041057 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13139 041060 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13140 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13141 041061 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13142 041062 003 10 0 00 035751 ER3 AC,35751 ;HIGH PRODUCT FAILED + 13143 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13144 041063 312 11 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13145 041064 004 11 0 00 035752 ER4 AC+1,35752 ;LOW PRODUCT FAILED + 13146 000001 AEE=1 ;INITIAL C(E) + 13147 041065 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13148 041066 005 06 0 00 035753 ER5 E,35753 ;C(E) WAS CLOBBERED + 13149 041067 321 12 0 00 041055 JUMPL AC+2,F35750 ;LOOP ON ERROR SWITCH^ + 13150 + 13151 003576 ADR=ADR+1 + 13152 777737 777777 XX=XX+XX+1 + 13153 IFE , + 13154 + 13155 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13156 777777 777777 IFL XX, + 13157 IFG XX, + 13158 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13159 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13160 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13161 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13162 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13163 + 13164 777737 777777 F35760: AA1=XX ;INITIAL C(AC) + 13165 041070 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13166 000000 AA2=0 ;INITIAL C(AC+1) + 13167 041071 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13168 000001 AEE=1 ;INITIAL C(E) + 13169 041072 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13170 041073 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13171 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13172 041074 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13173 041075 003 10 0 00 035761 ER3 AC,35761 ;HIGH PRODUCT FAILED + 13174 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13175 041076 312 11 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13176 041077 004 11 0 00 035762 ER4 AC+1,35762 ;LOW PRODUCT FAILED + 13177 000001 AEE=1 ;INITIAL C(E) + 13178 041100 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13179 041101 005 06 0 00 035763 ER5 E,35763 ;C(E) WAS CLOBBERED + 13180 041102 321 12 0 00 041070 JUMPL AC+2,F35760 ;LOOP ON ERROR SWITCH^ + 13181 + 13182 003577 ADR=ADR+1 + 13183 777677 777777 XX=XX+XX+1 + 13184 IFE , + 13185 + 13186 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13187 777777 777777 IFL XX, + 13188 IFG XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0263 + + 13189 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13191 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13192 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13194 + 13195 777677 777777 F35770: AA1=XX ;INITIAL C(AC) + 13196 041103 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13197 000000 AA2=0 ;INITIAL C(AC+1) + 13198 041104 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13199 000001 AEE=1 ;INITIAL C(E) + 13200 041105 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13201 041106 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13202 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13203 041107 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13204 041110 003 10 0 00 035771 ER3 AC,35771 ;HIGH PRODUCT FAILED + 13205 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13206 041111 312 11 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13207 041112 004 11 0 00 035772 ER4 AC+1,35772 ;LOW PRODUCT FAILED + 13208 000001 AEE=1 ;INITIAL C(E) + 13209 041113 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13210 041114 005 06 0 00 035773 ER5 E,35773 ;C(E) WAS CLOBBERED + 13211 041115 321 12 0 00 041103 JUMPL AC+2,F35770 ;LOOP ON ERROR SWITCH^ + 13212 + 13213 003600 ADR=ADR+1 + 13214 777577 777777 XX=XX+XX+1 + 13215 IFE , + 13216 + 13217 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13218 777777 777777 IFL XX, + 13219 IFG XX, + 13220 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13222 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13223 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13225 + 13226 777577 777777 F36000: AA1=XX ;INITIAL C(AC) + 13227 041116 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13228 000000 AA2=0 ;INITIAL C(AC+1) + 13229 041117 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13230 000001 AEE=1 ;INITIAL C(E) + 13231 041120 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13232 041121 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13234 041122 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13235 041123 003 10 0 00 036001 ER3 AC,36001 ;HIGH PRODUCT FAILED + 13236 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13237 041124 312 11 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13238 041125 004 11 0 00 036002 ER4 AC+1,36002 ;LOW PRODUCT FAILED + 13239 000001 AEE=1 ;INITIAL C(E) + 13240 041126 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13241 041127 005 06 0 00 036003 ER5 E,36003 ;C(E) WAS CLOBBERED + 13242 041130 321 12 0 00 041116 JUMPL AC+2,F36000 ;LOOP ON ERROR SWITCH^ + 13243 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0264 + + 13244 003601 ADR=ADR+1 + 13245 777377 777777 XX=XX+XX+1 + 13246 IFE , + 13247 + 13248 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13249 777777 777777 IFL XX, + 13250 IFG XX, + 13251 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13252 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13253 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13254 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13255 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13256 + 13257 777377 777777 F36010: AA1=XX ;INITIAL C(AC) + 13258 041131 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13259 000000 AA2=0 ;INITIAL C(AC+1) + 13260 041132 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13261 000001 AEE=1 ;INITIAL C(E) + 13262 041133 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13263 041134 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13264 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13265 041135 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13266 041136 003 10 0 00 036011 ER3 AC,36011 ;HIGH PRODUCT FAILED + 13267 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13268 041137 312 11 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13269 041140 004 11 0 00 036012 ER4 AC+1,36012 ;LOW PRODUCT FAILED + 13270 000001 AEE=1 ;INITIAL C(E) + 13271 041141 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13272 041142 005 06 0 00 036013 ER5 E,36013 ;C(E) WAS CLOBBERED + 13273 041143 321 12 0 00 041131 JUMPL AC+2,F36010 ;LOOP ON ERROR SWITCH^ + 13274 + 13275 003602 ADR=ADR+1 + 13276 776777 777777 XX=XX+XX+1 + 13277 IFE , + 13278 + 13279 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13280 777777 777777 IFL XX, + 13281 IFG XX, + 13282 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13283 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13284 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13285 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13286 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13287 + 13288 776777 777777 F36020: AA1=XX ;INITIAL C(AC) + 13289 041144 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13290 000000 AA2=0 ;INITIAL C(AC+1) + 13291 041145 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13292 000001 AEE=1 ;INITIAL C(E) + 13293 041146 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13294 041147 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13295 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13296 041150 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13297 041151 003 10 0 00 036021 ER3 AC,36021 ;HIGH PRODUCT FAILED + 13298 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0265 + + 13299 041152 312 11 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13300 041153 004 11 0 00 036022 ER4 AC+1,36022 ;LOW PRODUCT FAILED + 13301 000001 AEE=1 ;INITIAL C(E) + 13302 041154 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13303 041155 005 06 0 00 036023 ER5 E,36023 ;C(E) WAS CLOBBERED + 13304 041156 321 12 0 00 041144 JUMPL AC+2,F36020 ;LOOP ON ERROR SWITCH^ + 13305 + 13306 003603 ADR=ADR+1 + 13307 775777 777777 XX=XX+XX+1 + 13308 IFE , + 13309 + 13310 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13311 777777 777777 IFL XX, + 13312 IFG XX, + 13313 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13314 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13315 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13316 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13317 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13318 + 13319 775777 777777 F36030: AA1=XX ;INITIAL C(AC) + 13320 041157 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13321 000000 AA2=0 ;INITIAL C(AC+1) + 13322 041160 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13323 000001 AEE=1 ;INITIAL C(E) + 13324 041161 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13325 041162 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13326 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13327 041163 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13328 041164 003 10 0 00 036031 ER3 AC,36031 ;HIGH PRODUCT FAILED + 13329 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13330 041165 312 11 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13331 041166 004 11 0 00 036032 ER4 AC+1,36032 ;LOW PRODUCT FAILED + 13332 000001 AEE=1 ;INITIAL C(E) + 13333 041167 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13334 041170 005 06 0 00 036033 ER5 E,36033 ;C(E) WAS CLOBBERED + 13335 041171 321 12 0 00 041157 JUMPL AC+2,F36030 ;LOOP ON ERROR SWITCH^ + 13336 + 13337 003604 ADR=ADR+1 + 13338 773777 777777 XX=XX+XX+1 + 13339 IFE , + 13340 + 13341 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13342 777777 777777 IFL XX, + 13343 IFG XX, + 13344 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13345 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13346 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13347 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13348 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13349 + 13350 773777 777777 F36040: AA1=XX ;INITIAL C(AC) + 13351 041172 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13352 000000 AA2=0 ;INITIAL C(AC+1) + 13353 041173 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0266 + + 13354 000001 AEE=1 ;INITIAL C(E) + 13355 041174 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13356 041175 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13357 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13358 041176 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13359 041177 003 10 0 00 036041 ER3 AC,36041 ;HIGH PRODUCT FAILED + 13360 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13361 041200 312 11 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13362 041201 004 11 0 00 036042 ER4 AC+1,36042 ;LOW PRODUCT FAILED + 13363 000001 AEE=1 ;INITIAL C(E) + 13364 041202 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13365 041203 005 06 0 00 036043 ER5 E,36043 ;C(E) WAS CLOBBERED + 13366 041204 321 12 0 00 041172 JUMPL AC+2,F36040 ;LOOP ON ERROR SWITCH^ + 13367 + 13368 003605 ADR=ADR+1 + 13369 767777 777777 XX=XX+XX+1 + 13370 IFE , + 13371 + 13372 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13373 777777 777777 IFL XX, + 13374 IFG XX, + 13375 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13376 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13377 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13378 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13379 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13380 + 13381 767777 777777 F36050: AA1=XX ;INITIAL C(AC) + 13382 041205 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13383 000000 AA2=0 ;INITIAL C(AC+1) + 13384 041206 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13385 000001 AEE=1 ;INITIAL C(E) + 13386 041207 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13387 041210 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13388 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13389 041211 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13390 041212 003 10 0 00 036051 ER3 AC,36051 ;HIGH PRODUCT FAILED + 13391 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13392 041213 312 11 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13393 041214 004 11 0 00 036052 ER4 AC+1,36052 ;LOW PRODUCT FAILED + 13394 000001 AEE=1 ;INITIAL C(E) + 13395 041215 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13396 041216 005 06 0 00 036053 ER5 E,36053 ;C(E) WAS CLOBBERED + 13397 041217 321 12 0 00 041205 JUMPL AC+2,F36050 ;LOOP ON ERROR SWITCH^ + 13398 + 13399 003606 ADR=ADR+1 + 13400 757777 777777 XX=XX+XX+1 + 13401 IFE , + 13402 + 13403 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13404 777777 777777 IFL XX, + 13405 IFG XX, + 13406 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13408 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0267 + + 13409 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13411 + 13412 757777 777777 F36060: AA1=XX ;INITIAL C(AC) + 13413 041220 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13414 000000 AA2=0 ;INITIAL C(AC+1) + 13415 041221 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13416 000001 AEE=1 ;INITIAL C(E) + 13417 041222 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13418 041223 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13419 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13420 041224 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13421 041225 003 10 0 00 036061 ER3 AC,36061 ;HIGH PRODUCT FAILED + 13422 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13423 041226 312 11 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13424 041227 004 11 0 00 036062 ER4 AC+1,36062 ;LOW PRODUCT FAILED + 13425 000001 AEE=1 ;INITIAL C(E) + 13426 041230 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13427 041231 005 06 0 00 036063 ER5 E,36063 ;C(E) WAS CLOBBERED + 13428 041232 321 12 0 00 041220 JUMPL AC+2,F36060 ;LOOP ON ERROR SWITCH^ + 13429 + 13430 003607 ADR=ADR+1 + 13431 737777 777777 XX=XX+XX+1 + 13432 IFE , + 13433 + 13434 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13435 777777 777777 IFL XX, + 13436 IFG XX, + 13437 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13439 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13440 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13442 + 13443 737777 777777 F36070: AA1=XX ;INITIAL C(AC) + 13444 041233 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13445 000000 AA2=0 ;INITIAL C(AC+1) + 13446 041234 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13447 000001 AEE=1 ;INITIAL C(E) + 13448 041235 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13449 041236 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13450 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13451 041237 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13452 041240 003 10 0 00 036071 ER3 AC,36071 ;HIGH PRODUCT FAILED + 13453 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13454 041241 312 11 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13455 041242 004 11 0 00 036072 ER4 AC+1,36072 ;LOW PRODUCT FAILED + 13456 000001 AEE=1 ;INITIAL C(E) + 13457 041243 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13458 041244 005 06 0 00 036073 ER5 E,36073 ;C(E) WAS CLOBBERED + 13459 041245 321 12 0 00 041233 JUMPL AC+2,F36070 ;LOOP ON ERROR SWITCH^ + 13460 + 13461 003610 ADR=ADR+1 + 13462 677777 777777 XX=XX+XX+1 + 13463 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0268 + + 13464 + 13465 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13466 777777 777777 IFL XX, + 13467 IFG XX, + 13468 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13469 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13470 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13471 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13472 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13473 + 13474 677777 777777 F36100: AA1=XX ;INITIAL C(AC) + 13475 041246 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13476 000000 AA2=0 ;INITIAL C(AC+1) + 13477 041247 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13478 000001 AEE=1 ;INITIAL C(E) + 13479 041250 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13480 041251 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13481 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13482 041252 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13483 041253 003 10 0 00 036101 ER3 AC,36101 ;HIGH PRODUCT FAILED + 13484 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13485 041254 312 11 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13486 041255 004 11 0 00 036102 ER4 AC+1,36102 ;LOW PRODUCT FAILED + 13487 000001 AEE=1 ;INITIAL C(E) + 13488 041256 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13489 041257 005 06 0 00 036103 ER5 E,36103 ;C(E) WAS CLOBBERED + 13490 041260 321 12 0 00 041246 JUMPL AC+2,F36100 ;LOOP ON ERROR SWITCH^ + 13491 + 13492 003611 ADR=ADR+1 + 13493 577777 777777 XX=XX+XX+1 + 13494 IFE , + 13495 + 13496 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13497 777777 777777 IFL XX, + 13498 IFG XX, + 13499 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13500 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13501 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13502 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13503 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13504 + 13505 577777 777777 F36110: AA1=XX ;INITIAL C(AC) + 13506 041261 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13507 000000 AA2=0 ;INITIAL C(AC+1) + 13508 041262 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13509 000001 AEE=1 ;INITIAL C(E) + 13510 041263 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13511 041264 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13512 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 13513 041265 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13514 041266 003 10 0 00 036111 ER3 AC,36111 ;HIGH PRODUCT FAILED + 13515 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13516 041267 312 11 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13517 041270 004 11 0 00 036112 ER4 AC+1,36112 ;LOW PRODUCT FAILED + 13518 000001 AEE=1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0269 + + 13519 041271 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13520 041272 005 06 0 00 036113 ER5 E,36113 ;C(E) WAS CLOBBERED + 13521 041273 321 12 0 00 041261 JUMPL AC+2,F36110 ;LOOP ON ERROR SWITCH^ + 13522 + 13523 003612 ADR=ADR+1 + 13524 377777 777777 XX=XX+XX+1 + 13525 IFE , + 13526 + 13527 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + 13528 IFL XX, + 13529 000000 IFG XX, + 13530 MOP1 (\ADR,XX,0,1,V1,XX)^ + 13531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 13532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13533 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. + 13534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13535 + 13536 377777 777777 F36120: AA1=XX ;INITIAL C(AC) + 13537 041274 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 13538 000000 AA2=0 ;INITIAL C(AC+1) + 13539 041275 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 13540 000001 AEE=1 ;INITIAL C(E) + 13541 041276 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) + 13542 041277 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13543 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13544 041300 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13545 041301 003 10 0 00 036121 ER3 AC,36121 ;HIGH PRODUCT FAILED + 13546 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 + 13547 041302 312 11 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? + 13548 041303 004 11 0 00 036122 ER4 AC+1,36122 ;LOW PRODUCT FAILED + 13549 000001 AEE=1 ;INITIAL C(E) + 13550 041304 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? + 13551 041305 005 06 0 00 036123 ER5 E,36123 ;C(E) WAS CLOBBERED + 13552 041306 321 12 0 00 041274 JUMPL AC+2,F36120 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0270 + + 13553 000010 AC=10 + 13554 000006 E=&17 + 13555 SAVEAC (1,1)^ + 13556 041307 201 12 0 00 041307 MOVEI AC+2,. ;SAVE TEST PC + 13557 041310 202 12 0 00 030051 MOVEM AC+2,TESTPC + 13558 041311 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 13559 041312 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 13560 000000 XX=0 + 13561 + 13562 REPEAT ^D36, < + 13563 ADR=ADR+1 + 13564 XX=XX+XX+1 + 13565 IFE , + 13566 + 13567 ;MULTIPLY A RIPPLED 0 BY -1 + 13568 MX=-XX + 13569 IFL XX, + 13570 IFG XX, + 13571 MOP1 (\ADR,-1,-1,XX,V1,MX)> + 13572 + 13573 003613 ADR=ADR+1 + 13574 000001 XX=XX+XX+1 + 13575 777777 777776 IFE , + 13576 + 13577 ;MULTIPLY A RIPPLED 0 BY -1 + 13578 000002 MX=-XX + 13579 000000 IFL XX, + 13580 IFG XX, + 13581 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13582 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13583 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13584 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13585 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13586 + 13587 777777 777777 F36130: AA1=-1 ;INITIAL C(AC) + 13588 041313 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13589 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13590 041314 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13591 777777 777776 AEE=XX ;INITIAL C(E) + 13592 041315 200 06 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13593 041316 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13594 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13595 041317 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13596 041320 003 10 0 00 036131 ER3 AC,36131 ;HIGH PRODUCT FAILED + 13597 000002 AR2=MX ;EXPECTED RESULT IN AC+1 + 13598 041321 312 11 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13599 041322 004 11 0 00 036132 ER4 AC+1,36132 ;LOW PRODUCT FAILED + 13600 777777 777776 AEE=XX ;INITIAL C(E) + 13601 041323 312 06 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13602 041324 005 06 0 00 036133 ER5 E,36133 ;C(E) WAS CLOBBERED + 13603 041325 321 12 0 00 041313 JUMPL AC+2,F36130 ;LOOP ON ERROR SWITCH^ + 13604 + 13605 003614 ADR=ADR+1 + 13606 777777 777775 XX=XX+XX+1 + 13607 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0271 + + 13608 + 13609 ;MULTIPLY A RIPPLED 0 BY -1 + 13610 000003 MX=-XX + 13611 000000 IFL XX, + 13612 IFG XX, + 13613 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13614 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13615 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13616 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13617 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13618 + 13619 777777 777777 F36140: AA1=-1 ;INITIAL C(AC) + 13620 041326 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13621 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13622 041327 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13623 777777 777775 AEE=XX ;INITIAL C(E) + 13624 041330 200 06 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13625 041331 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13626 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13627 041332 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13628 041333 003 10 0 00 036141 ER3 AC,36141 ;HIGH PRODUCT FAILED + 13629 000003 AR2=MX ;EXPECTED RESULT IN AC+1 + 13630 041334 312 11 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13631 041335 004 11 0 00 036142 ER4 AC+1,36142 ;LOW PRODUCT FAILED + 13632 777777 777775 AEE=XX ;INITIAL C(E) + 13633 041336 312 06 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13634 041337 005 06 0 00 036143 ER5 E,36143 ;C(E) WAS CLOBBERED + 13635 041340 321 12 0 00 041326 JUMPL AC+2,F36140 ;LOOP ON ERROR SWITCH^ + 13636 + 13637 003615 ADR=ADR+1 + 13638 777777 777773 XX=XX+XX+1 + 13639 IFE , + 13640 + 13641 ;MULTIPLY A RIPPLED 0 BY -1 + 13642 000005 MX=-XX + 13643 000000 IFL XX, + 13644 IFG XX, + 13645 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13646 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13647 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13648 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13649 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13650 + 13651 777777 777777 F36150: AA1=-1 ;INITIAL C(AC) + 13652 041341 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13653 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13654 041342 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13655 777777 777773 AEE=XX ;INITIAL C(E) + 13656 041343 200 06 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13657 041344 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13658 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13659 041345 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13660 041346 003 10 0 00 036151 ER3 AC,36151 ;HIGH PRODUCT FAILED + 13661 000005 AR2=MX ;EXPECTED RESULT IN AC+1 + 13662 041347 312 11 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0272 + + 13663 041350 004 11 0 00 036152 ER4 AC+1,36152 ;LOW PRODUCT FAILED + 13664 777777 777773 AEE=XX ;INITIAL C(E) + 13665 041351 312 06 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13666 041352 005 06 0 00 036153 ER5 E,36153 ;C(E) WAS CLOBBERED + 13667 041353 321 12 0 00 041341 JUMPL AC+2,F36150 ;LOOP ON ERROR SWITCH^ + 13668 + 13669 003616 ADR=ADR+1 + 13670 777777 777767 XX=XX+XX+1 + 13671 IFE , + 13672 + 13673 ;MULTIPLY A RIPPLED 0 BY -1 + 13674 000011 MX=-XX + 13675 000000 IFL XX, + 13676 IFG XX, + 13677 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13680 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13682 + 13683 777777 777777 F36160: AA1=-1 ;INITIAL C(AC) + 13684 041354 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13685 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13686 041355 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13687 777777 777767 AEE=XX ;INITIAL C(E) + 13688 041356 200 06 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13689 041357 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13690 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13691 041360 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13692 041361 003 10 0 00 036161 ER3 AC,36161 ;HIGH PRODUCT FAILED + 13693 000011 AR2=MX ;EXPECTED RESULT IN AC+1 + 13694 041362 312 11 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13695 041363 004 11 0 00 036162 ER4 AC+1,36162 ;LOW PRODUCT FAILED + 13696 777777 777767 AEE=XX ;INITIAL C(E) + 13697 041364 312 06 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13698 041365 005 06 0 00 036163 ER5 E,36163 ;C(E) WAS CLOBBERED + 13699 041366 321 12 0 00 041354 JUMPL AC+2,F36160 ;LOOP ON ERROR SWITCH^ + 13700 + 13701 003617 ADR=ADR+1 + 13702 777777 777757 XX=XX+XX+1 + 13703 IFE , + 13704 + 13705 ;MULTIPLY A RIPPLED 0 BY -1 + 13706 000021 MX=-XX + 13707 000000 IFL XX, + 13708 IFG XX, + 13709 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13710 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13711 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13712 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13713 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13714 + 13715 777777 777777 F36170: AA1=-1 ;INITIAL C(AC) + 13716 041367 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13717 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0273 + + 13718 041370 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13719 777777 777757 AEE=XX ;INITIAL C(E) + 13720 041371 200 06 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13721 041372 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13722 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13723 041373 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13724 041374 003 10 0 00 036171 ER3 AC,36171 ;HIGH PRODUCT FAILED + 13725 000021 AR2=MX ;EXPECTED RESULT IN AC+1 + 13726 041375 312 11 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13727 041376 004 11 0 00 036172 ER4 AC+1,36172 ;LOW PRODUCT FAILED + 13728 777777 777757 AEE=XX ;INITIAL C(E) + 13729 041377 312 06 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13730 041400 005 06 0 00 036173 ER5 E,36173 ;C(E) WAS CLOBBERED + 13731 041401 321 12 0 00 041367 JUMPL AC+2,F36170 ;LOOP ON ERROR SWITCH^ + 13732 + 13733 003620 ADR=ADR+1 + 13734 777777 777737 XX=XX+XX+1 + 13735 IFE , + 13736 + 13737 ;MULTIPLY A RIPPLED 0 BY -1 + 13738 000041 MX=-XX + 13739 000000 IFL XX, + 13740 IFG XX, + 13741 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13742 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13743 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13744 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13745 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13746 + 13747 777777 777777 F36200: AA1=-1 ;INITIAL C(AC) + 13748 041402 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13749 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13750 041403 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13751 777777 777737 AEE=XX ;INITIAL C(E) + 13752 041404 200 06 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13753 041405 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13754 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13755 041406 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13756 041407 003 10 0 00 036201 ER3 AC,36201 ;HIGH PRODUCT FAILED + 13757 000041 AR2=MX ;EXPECTED RESULT IN AC+1 + 13758 041410 312 11 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13759 041411 004 11 0 00 036202 ER4 AC+1,36202 ;LOW PRODUCT FAILED + 13760 777777 777737 AEE=XX ;INITIAL C(E) + 13761 041412 312 06 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13762 041413 005 06 0 00 036203 ER5 E,36203 ;C(E) WAS CLOBBERED + 13763 041414 321 12 0 00 041402 JUMPL AC+2,F36200 ;LOOP ON ERROR SWITCH^ + 13764 + 13765 003621 ADR=ADR+1 + 13766 777777 777677 XX=XX+XX+1 + 13767 IFE , + 13768 + 13769 ;MULTIPLY A RIPPLED 0 BY -1 + 13770 000101 MX=-XX + 13771 000000 IFL XX, + 13772 IFG XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0274 + + 13773 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13774 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13775 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13776 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13777 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13778 + 13779 777777 777777 F36210: AA1=-1 ;INITIAL C(AC) + 13780 041415 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13781 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13782 041416 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13783 777777 777677 AEE=XX ;INITIAL C(E) + 13784 041417 200 06 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13785 041420 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13786 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13787 041421 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13788 041422 003 10 0 00 036211 ER3 AC,36211 ;HIGH PRODUCT FAILED + 13789 000101 AR2=MX ;EXPECTED RESULT IN AC+1 + 13790 041423 312 11 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13791 041424 004 11 0 00 036212 ER4 AC+1,36212 ;LOW PRODUCT FAILED + 13792 777777 777677 AEE=XX ;INITIAL C(E) + 13793 041425 312 06 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13794 041426 005 06 0 00 036213 ER5 E,36213 ;C(E) WAS CLOBBERED + 13795 041427 321 12 0 00 041415 JUMPL AC+2,F36210 ;LOOP ON ERROR SWITCH^ + 13796 + 13797 003622 ADR=ADR+1 + 13798 777777 777577 XX=XX+XX+1 + 13799 IFE , + 13800 + 13801 ;MULTIPLY A RIPPLED 0 BY -1 + 13802 000201 MX=-XX + 13803 000000 IFL XX, + 13804 IFG XX, + 13805 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13806 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13807 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13808 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13809 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13810 + 13811 777777 777777 F36220: AA1=-1 ;INITIAL C(AC) + 13812 041430 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13813 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13814 041431 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13815 777777 777577 AEE=XX ;INITIAL C(E) + 13816 041432 200 06 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13817 041433 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13818 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13819 041434 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13820 041435 003 10 0 00 036221 ER3 AC,36221 ;HIGH PRODUCT FAILED + 13821 000201 AR2=MX ;EXPECTED RESULT IN AC+1 + 13822 041436 312 11 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13823 041437 004 11 0 00 036222 ER4 AC+1,36222 ;LOW PRODUCT FAILED + 13824 777777 777577 AEE=XX ;INITIAL C(E) + 13825 041440 312 06 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13826 041441 005 06 0 00 036223 ER5 E,36223 ;C(E) WAS CLOBBERED + 13827 041442 321 12 0 00 041430 JUMPL AC+2,F36220 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0275 + + 13828 + 13829 003623 ADR=ADR+1 + 13830 777777 777377 XX=XX+XX+1 + 13831 IFE , + 13832 + 13833 ;MULTIPLY A RIPPLED 0 BY -1 + 13834 000401 MX=-XX + 13835 000000 IFL XX, + 13836 IFG XX, + 13837 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13838 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13839 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13840 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13841 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13842 + 13843 777777 777777 F36230: AA1=-1 ;INITIAL C(AC) + 13844 041443 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13845 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13846 041444 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13847 777777 777377 AEE=XX ;INITIAL C(E) + 13848 041445 200 06 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13849 041446 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13850 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13851 041447 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13852 041450 003 10 0 00 036231 ER3 AC,36231 ;HIGH PRODUCT FAILED + 13853 000401 AR2=MX ;EXPECTED RESULT IN AC+1 + 13854 041451 312 11 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13855 041452 004 11 0 00 036232 ER4 AC+1,36232 ;LOW PRODUCT FAILED + 13856 777777 777377 AEE=XX ;INITIAL C(E) + 13857 041453 312 06 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13858 041454 005 06 0 00 036233 ER5 E,36233 ;C(E) WAS CLOBBERED + 13859 041455 321 12 0 00 041443 JUMPL AC+2,F36230 ;LOOP ON ERROR SWITCH^ + 13860 + 13861 003624 ADR=ADR+1 + 13862 777777 776777 XX=XX+XX+1 + 13863 IFE , + 13864 + 13865 ;MULTIPLY A RIPPLED 0 BY -1 + 13866 001001 MX=-XX + 13867 000000 IFL XX, + 13868 IFG XX, + 13869 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13872 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13874 + 13875 777777 777777 F36240: AA1=-1 ;INITIAL C(AC) + 13876 041456 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13877 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13878 041457 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13879 777777 776777 AEE=XX ;INITIAL C(E) + 13880 041460 200 06 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13881 041461 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13882 000000 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0276 + + 13883 041462 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13884 041463 003 10 0 00 036241 ER3 AC,36241 ;HIGH PRODUCT FAILED + 13885 001001 AR2=MX ;EXPECTED RESULT IN AC+1 + 13886 041464 312 11 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13887 041465 004 11 0 00 036242 ER4 AC+1,36242 ;LOW PRODUCT FAILED + 13888 777777 776777 AEE=XX ;INITIAL C(E) + 13889 041466 312 06 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13890 041467 005 06 0 00 036243 ER5 E,36243 ;C(E) WAS CLOBBERED + 13891 041470 321 12 0 00 041456 JUMPL AC+2,F36240 ;LOOP ON ERROR SWITCH^ + 13892 + 13893 003625 ADR=ADR+1 + 13894 777777 775777 XX=XX+XX+1 + 13895 IFE , + 13896 + 13897 ;MULTIPLY A RIPPLED 0 BY -1 + 13898 002001 MX=-XX + 13899 000000 IFL XX, + 13900 IFG XX, + 13901 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13902 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13903 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13904 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13905 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13906 + 13907 777777 777777 F36250: AA1=-1 ;INITIAL C(AC) + 13908 041471 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13909 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13910 041472 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13911 777777 775777 AEE=XX ;INITIAL C(E) + 13912 041473 200 06 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13913 041474 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13914 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13915 041475 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13916 041476 003 10 0 00 036251 ER3 AC,36251 ;HIGH PRODUCT FAILED + 13917 002001 AR2=MX ;EXPECTED RESULT IN AC+1 + 13918 041477 312 11 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13919 041500 004 11 0 00 036252 ER4 AC+1,36252 ;LOW PRODUCT FAILED + 13920 777777 775777 AEE=XX ;INITIAL C(E) + 13921 041501 312 06 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13922 041502 005 06 0 00 036253 ER5 E,36253 ;C(E) WAS CLOBBERED + 13923 041503 321 12 0 00 041471 JUMPL AC+2,F36250 ;LOOP ON ERROR SWITCH^ + 13924 + 13925 003626 ADR=ADR+1 + 13926 777777 773777 XX=XX+XX+1 + 13927 IFE , + 13928 + 13929 ;MULTIPLY A RIPPLED 0 BY -1 + 13930 004001 MX=-XX + 13931 000000 IFL XX, + 13932 IFG XX, + 13933 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13934 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13935 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13936 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13937 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0277 + + 13938 + 13939 777777 777777 F36260: AA1=-1 ;INITIAL C(AC) + 13940 041504 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13941 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13942 041505 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13943 777777 773777 AEE=XX ;INITIAL C(E) + 13944 041506 200 06 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13945 041507 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13946 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13947 041510 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13948 041511 003 10 0 00 036261 ER3 AC,36261 ;HIGH PRODUCT FAILED + 13949 004001 AR2=MX ;EXPECTED RESULT IN AC+1 + 13950 041512 312 11 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13951 041513 004 11 0 00 036262 ER4 AC+1,36262 ;LOW PRODUCT FAILED + 13952 777777 773777 AEE=XX ;INITIAL C(E) + 13953 041514 312 06 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13954 041515 005 06 0 00 036263 ER5 E,36263 ;C(E) WAS CLOBBERED + 13955 041516 321 12 0 00 041504 JUMPL AC+2,F36260 ;LOOP ON ERROR SWITCH^ + 13956 + 13957 003627 ADR=ADR+1 + 13958 777777 767777 XX=XX+XX+1 + 13959 IFE , + 13960 + 13961 ;MULTIPLY A RIPPLED 0 BY -1 + 13962 010001 MX=-XX + 13963 000000 IFL XX, + 13964 IFG XX, + 13965 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13967 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 13968 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 13969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 13970 + 13971 777777 777777 F36270: AA1=-1 ;INITIAL C(AC) + 13972 041517 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 13973 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 13974 041520 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 13975 777777 767777 AEE=XX ;INITIAL C(E) + 13976 041521 200 06 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 13977 041522 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 13978 000000 AR1=V1 ;EXPECTED RESULT IN AC + 13979 041523 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 13980 041524 003 10 0 00 036271 ER3 AC,36271 ;HIGH PRODUCT FAILED + 13981 010001 AR2=MX ;EXPECTED RESULT IN AC+1 + 13982 041525 312 11 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 13983 041526 004 11 0 00 036272 ER4 AC+1,36272 ;LOW PRODUCT FAILED + 13984 777777 767777 AEE=XX ;INITIAL C(E) + 13985 041527 312 06 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? + 13986 041530 005 06 0 00 036273 ER5 E,36273 ;C(E) WAS CLOBBERED + 13987 041531 321 12 0 00 041517 JUMPL AC+2,F36270 ;LOOP ON ERROR SWITCH^ + 13988 + 13989 003630 ADR=ADR+1 + 13990 777777 757777 XX=XX+XX+1 + 13991 IFE , + 13992 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0278 + + 13993 ;MULTIPLY A RIPPLED 0 BY -1 + 13994 020001 MX=-XX + 13995 000000 IFL XX, + 13996 IFG XX, + 13997 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 13998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 13999 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14000 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14002 + 14003 777777 777777 F36300: AA1=-1 ;INITIAL C(AC) + 14004 041532 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14005 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14006 041533 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14007 777777 757777 AEE=XX ;INITIAL C(E) + 14008 041534 200 06 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14009 041535 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14010 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14011 041536 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14012 041537 003 10 0 00 036301 ER3 AC,36301 ;HIGH PRODUCT FAILED + 14013 020001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14014 041540 312 11 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14015 041541 004 11 0 00 036302 ER4 AC+1,36302 ;LOW PRODUCT FAILED + 14016 777777 757777 AEE=XX ;INITIAL C(E) + 14017 041542 312 06 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14018 041543 005 06 0 00 036303 ER5 E,36303 ;C(E) WAS CLOBBERED + 14019 041544 321 12 0 00 041532 JUMPL AC+2,F36300 ;LOOP ON ERROR SWITCH^ + 14020 + 14021 003631 ADR=ADR+1 + 14022 777777 737777 XX=XX+XX+1 + 14023 IFE , + 14024 + 14025 ;MULTIPLY A RIPPLED 0 BY -1 + 14026 040001 MX=-XX + 14027 000000 IFL XX, + 14028 IFG XX, + 14029 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14032 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14034 + 14035 777777 777777 F36310: AA1=-1 ;INITIAL C(AC) + 14036 041545 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14037 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14038 041546 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14039 777777 737777 AEE=XX ;INITIAL C(E) + 14040 041547 200 06 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14041 041550 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14042 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14043 041551 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14044 041552 003 10 0 00 036311 ER3 AC,36311 ;HIGH PRODUCT FAILED + 14045 040001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14046 041553 312 11 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14047 041554 004 11 0 00 036312 ER4 AC+1,36312 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0279 + + 14048 777777 737777 AEE=XX ;INITIAL C(E) + 14049 041555 312 06 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14050 041556 005 06 0 00 036313 ER5 E,36313 ;C(E) WAS CLOBBERED + 14051 041557 321 12 0 00 041545 JUMPL AC+2,F36310 ;LOOP ON ERROR SWITCH^ + 14052 + 14053 003632 ADR=ADR+1 + 14054 777777 677777 XX=XX+XX+1 + 14055 IFE , + 14056 + 14057 ;MULTIPLY A RIPPLED 0 BY -1 + 14058 100001 MX=-XX + 14059 000000 IFL XX, + 14060 IFG XX, + 14061 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14062 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14063 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14064 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14065 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14066 + 14067 777777 777777 F36320: AA1=-1 ;INITIAL C(AC) + 14068 041560 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14069 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14070 041561 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14071 777777 677777 AEE=XX ;INITIAL C(E) + 14072 041562 200 06 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14073 041563 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14074 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14075 041564 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14076 041565 003 10 0 00 036321 ER3 AC,36321 ;HIGH PRODUCT FAILED + 14077 100001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14078 041566 312 11 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14079 041567 004 11 0 00 036322 ER4 AC+1,36322 ;LOW PRODUCT FAILED + 14080 777777 677777 AEE=XX ;INITIAL C(E) + 14081 041570 312 06 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14082 041571 005 06 0 00 036323 ER5 E,36323 ;C(E) WAS CLOBBERED + 14083 041572 321 12 0 00 041560 JUMPL AC+2,F36320 ;LOOP ON ERROR SWITCH^ + 14084 + 14085 003633 ADR=ADR+1 + 14086 777777 577777 XX=XX+XX+1 + 14087 IFE , + 14088 + 14089 ;MULTIPLY A RIPPLED 0 BY -1 + 14090 200001 MX=-XX + 14091 000000 IFL XX, + 14092 IFG XX, + 14093 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14094 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14095 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14096 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14097 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14098 + 14099 777777 777777 F36330: AA1=-1 ;INITIAL C(AC) + 14100 041573 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14101 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14102 041574 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0280 + + 14103 777777 577777 AEE=XX ;INITIAL C(E) + 14104 041575 200 06 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14105 041576 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14106 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14107 041577 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14108 041600 003 10 0 00 036331 ER3 AC,36331 ;HIGH PRODUCT FAILED + 14109 200001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14110 041601 312 11 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14111 041602 004 11 0 00 036332 ER4 AC+1,36332 ;LOW PRODUCT FAILED + 14112 777777 577777 AEE=XX ;INITIAL C(E) + 14113 041603 312 06 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14114 041604 005 06 0 00 036333 ER5 E,36333 ;C(E) WAS CLOBBERED + 14115 041605 321 12 0 00 041573 JUMPL AC+2,F36330 ;LOOP ON ERROR SWITCH^ + 14116 + 14117 003634 ADR=ADR+1 + 14118 777777 377777 XX=XX+XX+1 + 14119 IFE , + 14120 + 14121 ;MULTIPLY A RIPPLED 0 BY -1 + 14122 400001 MX=-XX + 14123 000000 IFL XX, + 14124 IFG XX, + 14125 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14126 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14127 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14128 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14129 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14130 + 14131 777777 777777 F36340: AA1=-1 ;INITIAL C(AC) + 14132 041606 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14133 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14134 041607 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14135 777777 377777 AEE=XX ;INITIAL C(E) + 14136 041610 200 06 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14137 041611 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14138 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14139 041612 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14140 041613 003 10 0 00 036341 ER3 AC,36341 ;HIGH PRODUCT FAILED + 14141 400001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14142 041614 312 11 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14143 041615 004 11 0 00 036342 ER4 AC+1,36342 ;LOW PRODUCT FAILED + 14144 777777 377777 AEE=XX ;INITIAL C(E) + 14145 041616 312 06 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14146 041617 005 06 0 00 036343 ER5 E,36343 ;C(E) WAS CLOBBERED + 14147 041620 321 12 0 00 041606 JUMPL AC+2,F36340 ;LOOP ON ERROR SWITCH^ + 14148 + 14149 003635 ADR=ADR+1 + 14150 777776 777777 XX=XX+XX+1 + 14151 IFE , + 14152 + 14153 ;MULTIPLY A RIPPLED 0 BY -1 + 14154 000001 000001 MX=-XX + 14155 000000 IFL XX, + 14156 IFG XX, + 14157 MOP1 (\ADR,-1,-1,XX,V1,MX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0281 + + 14158 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14159 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14160 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14161 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14162 + 14163 777777 777777 F36350: AA1=-1 ;INITIAL C(AC) + 14164 041621 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14165 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14166 041622 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14167 777776 777777 AEE=XX ;INITIAL C(E) + 14168 041623 200 06 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14169 041624 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14170 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14171 041625 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14172 041626 003 10 0 00 036351 ER3 AC,36351 ;HIGH PRODUCT FAILED + 14173 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14174 041627 312 11 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14175 041630 004 11 0 00 036352 ER4 AC+1,36352 ;LOW PRODUCT FAILED + 14176 777776 777777 AEE=XX ;INITIAL C(E) + 14177 041631 312 06 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14178 041632 005 06 0 00 036353 ER5 E,36353 ;C(E) WAS CLOBBERED + 14179 041633 321 12 0 00 041621 JUMPL AC+2,F36350 ;LOOP ON ERROR SWITCH^ + 14180 + 14181 003636 ADR=ADR+1 + 14182 777775 777777 XX=XX+XX+1 + 14183 IFE , + 14184 + 14185 ;MULTIPLY A RIPPLED 0 BY -1 + 14186 000002 000001 MX=-XX + 14187 000000 IFL XX, + 14188 IFG XX, + 14189 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14191 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14192 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14194 + 14195 777777 777777 F36360: AA1=-1 ;INITIAL C(AC) + 14196 041634 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14197 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14198 041635 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14199 777775 777777 AEE=XX ;INITIAL C(E) + 14200 041636 200 06 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14201 041637 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14202 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14203 041640 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14204 041641 003 10 0 00 036361 ER3 AC,36361 ;HIGH PRODUCT FAILED + 14205 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14206 041642 312 11 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14207 041643 004 11 0 00 036362 ER4 AC+1,36362 ;LOW PRODUCT FAILED + 14208 777775 777777 AEE=XX ;INITIAL C(E) + 14209 041644 312 06 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14210 041645 005 06 0 00 036363 ER5 E,36363 ;C(E) WAS CLOBBERED + 14211 041646 321 12 0 00 041634 JUMPL AC+2,F36360 ;LOOP ON ERROR SWITCH^ + 14212 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0282 + + 14213 003637 ADR=ADR+1 + 14214 777773 777777 XX=XX+XX+1 + 14215 IFE , + 14216 + 14217 ;MULTIPLY A RIPPLED 0 BY -1 + 14218 000004 000001 MX=-XX + 14219 000000 IFL XX, + 14220 IFG XX, + 14221 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14222 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14223 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14224 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14225 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14226 + 14227 777777 777777 F36370: AA1=-1 ;INITIAL C(AC) + 14228 041647 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14229 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14230 041650 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14231 777773 777777 AEE=XX ;INITIAL C(E) + 14232 041651 200 06 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14233 041652 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14234 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14235 041653 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14236 041654 003 10 0 00 036371 ER3 AC,36371 ;HIGH PRODUCT FAILED + 14237 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14238 041655 312 11 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14239 041656 004 11 0 00 036372 ER4 AC+1,36372 ;LOW PRODUCT FAILED + 14240 777773 777777 AEE=XX ;INITIAL C(E) + 14241 041657 312 06 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14242 041660 005 06 0 00 036373 ER5 E,36373 ;C(E) WAS CLOBBERED + 14243 041661 321 12 0 00 041647 JUMPL AC+2,F36370 ;LOOP ON ERROR SWITCH^ + 14244 + 14245 003640 ADR=ADR+1 + 14246 777767 777777 XX=XX+XX+1 + 14247 IFE , + 14248 + 14249 ;MULTIPLY A RIPPLED 0 BY -1 + 14250 000010 000001 MX=-XX + 14251 000000 IFL XX, + 14252 IFG XX, + 14253 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14256 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14258 + 14259 777777 777777 F36400: AA1=-1 ;INITIAL C(AC) + 14260 041662 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14261 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14262 041663 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14263 777767 777777 AEE=XX ;INITIAL C(E) + 14264 041664 200 06 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14265 041665 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14266 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14267 041666 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0283 + + 14268 041667 003 10 0 00 036401 ER3 AC,36401 ;HIGH PRODUCT FAILED + 14269 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14270 041670 312 11 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14271 041671 004 11 0 00 036402 ER4 AC+1,36402 ;LOW PRODUCT FAILED + 14272 777767 777777 AEE=XX ;INITIAL C(E) + 14273 041672 312 06 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14274 041673 005 06 0 00 036403 ER5 E,36403 ;C(E) WAS CLOBBERED + 14275 041674 321 12 0 00 041662 JUMPL AC+2,F36400 ;LOOP ON ERROR SWITCH^ + 14276 + 14277 003641 ADR=ADR+1 + 14278 777757 777777 XX=XX+XX+1 + 14279 IFE , + 14280 + 14281 ;MULTIPLY A RIPPLED 0 BY -1 + 14282 000020 000001 MX=-XX + 14283 000000 IFL XX, + 14284 IFG XX, + 14285 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14286 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14287 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14288 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14289 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14290 + 14291 777777 777777 F36410: AA1=-1 ;INITIAL C(AC) + 14292 041675 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14293 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14294 041676 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14295 777757 777777 AEE=XX ;INITIAL C(E) + 14296 041677 200 06 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14297 041700 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14298 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14299 041701 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14300 041702 003 10 0 00 036411 ER3 AC,36411 ;HIGH PRODUCT FAILED + 14301 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14302 041703 312 11 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14303 041704 004 11 0 00 036412 ER4 AC+1,36412 ;LOW PRODUCT FAILED + 14304 777757 777777 AEE=XX ;INITIAL C(E) + 14305 041705 312 06 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14306 041706 005 06 0 00 036413 ER5 E,36413 ;C(E) WAS CLOBBERED + 14307 041707 321 12 0 00 041675 JUMPL AC+2,F36410 ;LOOP ON ERROR SWITCH^ + 14308 + 14309 003642 ADR=ADR+1 + 14310 777737 777777 XX=XX+XX+1 + 14311 IFE , + 14312 + 14313 ;MULTIPLY A RIPPLED 0 BY -1 + 14314 000040 000001 MX=-XX + 14315 000000 IFL XX, + 14316 IFG XX, + 14317 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14319 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14320 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14322 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0284 + + 14323 777777 777777 F36420: AA1=-1 ;INITIAL C(AC) + 14324 041710 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14325 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14326 041711 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14327 777737 777777 AEE=XX ;INITIAL C(E) + 14328 041712 200 06 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14329 041713 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14330 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14331 041714 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14332 041715 003 10 0 00 036421 ER3 AC,36421 ;HIGH PRODUCT FAILED + 14333 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14334 041716 312 11 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14335 041717 004 11 0 00 036422 ER4 AC+1,36422 ;LOW PRODUCT FAILED + 14336 777737 777777 AEE=XX ;INITIAL C(E) + 14337 041720 312 06 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14338 041721 005 06 0 00 036423 ER5 E,36423 ;C(E) WAS CLOBBERED + 14339 041722 321 12 0 00 041710 JUMPL AC+2,F36420 ;LOOP ON ERROR SWITCH^ + 14340 + 14341 003643 ADR=ADR+1 + 14342 777677 777777 XX=XX+XX+1 + 14343 IFE , + 14344 + 14345 ;MULTIPLY A RIPPLED 0 BY -1 + 14346 000100 000001 MX=-XX + 14347 000000 IFL XX, + 14348 IFG XX, + 14349 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14350 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14351 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14352 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14353 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14354 + 14355 777777 777777 F36430: AA1=-1 ;INITIAL C(AC) + 14356 041723 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14357 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14358 041724 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14359 777677 777777 AEE=XX ;INITIAL C(E) + 14360 041725 200 06 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14361 041726 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14362 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14363 041727 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14364 041730 003 10 0 00 036431 ER3 AC,36431 ;HIGH PRODUCT FAILED + 14365 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14366 041731 312 11 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14367 041732 004 11 0 00 036432 ER4 AC+1,36432 ;LOW PRODUCT FAILED + 14368 777677 777777 AEE=XX ;INITIAL C(E) + 14369 041733 312 06 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14370 041734 005 06 0 00 036433 ER5 E,36433 ;C(E) WAS CLOBBERED + 14371 041735 321 12 0 00 041723 JUMPL AC+2,F36430 ;LOOP ON ERROR SWITCH^ + 14372 + 14373 003644 ADR=ADR+1 + 14374 777577 777777 XX=XX+XX+1 + 14375 IFE , + 14376 + 14377 ;MULTIPLY A RIPPLED 0 BY -1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0285 + + 14378 000200 000001 MX=-XX + 14379 000000 IFL XX, + 14380 IFG XX, + 14381 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14382 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14383 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14384 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14385 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14386 + 14387 777777 777777 F36440: AA1=-1 ;INITIAL C(AC) + 14388 041736 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14389 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14390 041737 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14391 777577 777777 AEE=XX ;INITIAL C(E) + 14392 041740 200 06 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14393 041741 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14394 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14395 041742 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14396 041743 003 10 0 00 036441 ER3 AC,36441 ;HIGH PRODUCT FAILED + 14397 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14398 041744 312 11 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14399 041745 004 11 0 00 036442 ER4 AC+1,36442 ;LOW PRODUCT FAILED + 14400 777577 777777 AEE=XX ;INITIAL C(E) + 14401 041746 312 06 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14402 041747 005 06 0 00 036443 ER5 E,36443 ;C(E) WAS CLOBBERED + 14403 041750 321 12 0 00 041736 JUMPL AC+2,F36440 ;LOOP ON ERROR SWITCH^ + 14404 + 14405 003645 ADR=ADR+1 + 14406 777377 777777 XX=XX+XX+1 + 14407 IFE , + 14408 + 14409 ;MULTIPLY A RIPPLED 0 BY -1 + 14410 000400 000001 MX=-XX + 14411 000000 IFL XX, + 14412 IFG XX, + 14413 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14415 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14416 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14418 + 14419 777777 777777 F36450: AA1=-1 ;INITIAL C(AC) + 14420 041751 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14421 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14422 041752 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14423 777377 777777 AEE=XX ;INITIAL C(E) + 14424 041753 200 06 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14425 041754 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14426 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14427 041755 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14428 041756 003 10 0 00 036451 ER3 AC,36451 ;HIGH PRODUCT FAILED + 14429 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14430 041757 312 11 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14431 041760 004 11 0 00 036452 ER4 AC+1,36452 ;LOW PRODUCT FAILED + 14432 777377 777777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0286 + + 14433 041761 312 06 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14434 041762 005 06 0 00 036453 ER5 E,36453 ;C(E) WAS CLOBBERED + 14435 041763 321 12 0 00 041751 JUMPL AC+2,F36450 ;LOOP ON ERROR SWITCH^ + 14436 + 14437 003646 ADR=ADR+1 + 14438 776777 777777 XX=XX+XX+1 + 14439 IFE , + 14440 + 14441 ;MULTIPLY A RIPPLED 0 BY -1 + 14442 001000 000001 MX=-XX + 14443 000000 IFL XX, + 14444 IFG XX, + 14445 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14447 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14448 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14450 + 14451 777777 777777 F36460: AA1=-1 ;INITIAL C(AC) + 14452 041764 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14453 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14454 041765 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14455 776777 777777 AEE=XX ;INITIAL C(E) + 14456 041766 200 06 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14457 041767 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14458 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14459 041770 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14460 041771 003 10 0 00 036461 ER3 AC,36461 ;HIGH PRODUCT FAILED + 14461 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14462 041772 312 11 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14463 041773 004 11 0 00 036462 ER4 AC+1,36462 ;LOW PRODUCT FAILED + 14464 776777 777777 AEE=XX ;INITIAL C(E) + 14465 041774 312 06 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14466 041775 005 06 0 00 036463 ER5 E,36463 ;C(E) WAS CLOBBERED + 14467 041776 321 12 0 00 041764 JUMPL AC+2,F36460 ;LOOP ON ERROR SWITCH^ + 14468 + 14469 003647 ADR=ADR+1 + 14470 775777 777777 XX=XX+XX+1 + 14471 IFE , + 14472 + 14473 ;MULTIPLY A RIPPLED 0 BY -1 + 14474 002000 000001 MX=-XX + 14475 000000 IFL XX, + 14476 IFG XX, + 14477 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14478 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14479 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14480 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14481 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14482 + 14483 777777 777777 F36470: AA1=-1 ;INITIAL C(AC) + 14484 041777 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14485 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14486 042000 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14487 775777 777777 AEE=XX ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0287 + + 14488 042001 200 06 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14489 042002 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14490 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14491 042003 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14492 042004 003 10 0 00 036471 ER3 AC,36471 ;HIGH PRODUCT FAILED + 14493 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14494 042005 312 11 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14495 042006 004 11 0 00 036472 ER4 AC+1,36472 ;LOW PRODUCT FAILED + 14496 775777 777777 AEE=XX ;INITIAL C(E) + 14497 042007 312 06 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14498 042010 005 06 0 00 036473 ER5 E,36473 ;C(E) WAS CLOBBERED + 14499 042011 321 12 0 00 041777 JUMPL AC+2,F36470 ;LOOP ON ERROR SWITCH^ + 14500 + 14501 003650 ADR=ADR+1 + 14502 773777 777777 XX=XX+XX+1 + 14503 IFE , + 14504 + 14505 ;MULTIPLY A RIPPLED 0 BY -1 + 14506 004000 000001 MX=-XX + 14507 000000 IFL XX, + 14508 IFG XX, + 14509 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14511 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14512 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14514 + 14515 777777 777777 F36500: AA1=-1 ;INITIAL C(AC) + 14516 042012 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14517 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14518 042013 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14519 773777 777777 AEE=XX ;INITIAL C(E) + 14520 042014 200 06 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14521 042015 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14522 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14523 042016 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14524 042017 003 10 0 00 036501 ER3 AC,36501 ;HIGH PRODUCT FAILED + 14525 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14526 042020 312 11 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14527 042021 004 11 0 00 036502 ER4 AC+1,36502 ;LOW PRODUCT FAILED + 14528 773777 777777 AEE=XX ;INITIAL C(E) + 14529 042022 312 06 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14530 042023 005 06 0 00 036503 ER5 E,36503 ;C(E) WAS CLOBBERED + 14531 042024 321 12 0 00 042012 JUMPL AC+2,F36500 ;LOOP ON ERROR SWITCH^ + 14532 + 14533 003651 ADR=ADR+1 + 14534 767777 777777 XX=XX+XX+1 + 14535 IFE , + 14536 + 14537 ;MULTIPLY A RIPPLED 0 BY -1 + 14538 010000 000001 MX=-XX + 14539 000000 IFL XX, + 14540 IFG XX, + 14541 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14542 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0288 + + 14543 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14544 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14545 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14546 + 14547 777777 777777 F36510: AA1=-1 ;INITIAL C(AC) + 14548 042025 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14549 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14550 042026 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14551 767777 777777 AEE=XX ;INITIAL C(E) + 14552 042027 200 06 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14553 042030 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14554 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14555 042031 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14556 042032 003 10 0 00 036511 ER3 AC,36511 ;HIGH PRODUCT FAILED + 14557 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14558 042033 312 11 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14559 042034 004 11 0 00 036512 ER4 AC+1,36512 ;LOW PRODUCT FAILED + 14560 767777 777777 AEE=XX ;INITIAL C(E) + 14561 042035 312 06 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14562 042036 005 06 0 00 036513 ER5 E,36513 ;C(E) WAS CLOBBERED + 14563 042037 321 12 0 00 042025 JUMPL AC+2,F36510 ;LOOP ON ERROR SWITCH^ + 14564 + 14565 003652 ADR=ADR+1 + 14566 757777 777777 XX=XX+XX+1 + 14567 IFE , + 14568 + 14569 ;MULTIPLY A RIPPLED 0 BY -1 + 14570 020000 000001 MX=-XX + 14571 000000 IFL XX, + 14572 IFG XX, + 14573 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14574 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14575 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14576 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14577 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14578 + 14579 777777 777777 F36520: AA1=-1 ;INITIAL C(AC) + 14580 042040 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14581 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14582 042041 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14583 757777 777777 AEE=XX ;INITIAL C(E) + 14584 042042 200 06 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14585 042043 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14586 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14587 042044 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14588 042045 003 10 0 00 036521 ER3 AC,36521 ;HIGH PRODUCT FAILED + 14589 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14590 042046 312 11 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14591 042047 004 11 0 00 036522 ER4 AC+1,36522 ;LOW PRODUCT FAILED + 14592 757777 777777 AEE=XX ;INITIAL C(E) + 14593 042050 312 06 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14594 042051 005 06 0 00 036523 ER5 E,36523 ;C(E) WAS CLOBBERED + 14595 042052 321 12 0 00 042040 JUMPL AC+2,F36520 ;LOOP ON ERROR SWITCH^ + 14596 + 14597 003653 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0289 + + 14598 737777 777777 XX=XX+XX+1 + 14599 IFE , + 14600 + 14601 ;MULTIPLY A RIPPLED 0 BY -1 + 14602 040000 000001 MX=-XX + 14603 000000 IFL XX, + 14604 IFG XX, + 14605 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14607 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14608 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14610 + 14611 777777 777777 F36530: AA1=-1 ;INITIAL C(AC) + 14612 042053 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14613 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14614 042054 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14615 737777 777777 AEE=XX ;INITIAL C(E) + 14616 042055 200 06 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14617 042056 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14618 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14619 042057 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14620 042060 003 10 0 00 036531 ER3 AC,36531 ;HIGH PRODUCT FAILED + 14621 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14622 042061 312 11 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14623 042062 004 11 0 00 036532 ER4 AC+1,36532 ;LOW PRODUCT FAILED + 14624 737777 777777 AEE=XX ;INITIAL C(E) + 14625 042063 312 06 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14626 042064 005 06 0 00 036533 ER5 E,36533 ;C(E) WAS CLOBBERED + 14627 042065 321 12 0 00 042053 JUMPL AC+2,F36530 ;LOOP ON ERROR SWITCH^ + 14628 + 14629 003654 ADR=ADR+1 + 14630 677777 777777 XX=XX+XX+1 + 14631 IFE , + 14632 + 14633 ;MULTIPLY A RIPPLED 0 BY -1 + 14634 100000 000001 MX=-XX + 14635 000000 IFL XX, + 14636 IFG XX, + 14637 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14638 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14639 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14640 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14641 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14642 + 14643 777777 777777 F36540: AA1=-1 ;INITIAL C(AC) + 14644 042066 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14645 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14646 042067 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14647 677777 777777 AEE=XX ;INITIAL C(E) + 14648 042070 200 06 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14649 042071 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14650 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14651 042072 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14652 042073 003 10 0 00 036541 ER3 AC,36541 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0290 + + 14653 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14654 042074 312 11 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14655 042075 004 11 0 00 036542 ER4 AC+1,36542 ;LOW PRODUCT FAILED + 14656 677777 777777 AEE=XX ;INITIAL C(E) + 14657 042076 312 06 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14658 042077 005 06 0 00 036543 ER5 E,36543 ;C(E) WAS CLOBBERED + 14659 042100 321 12 0 00 042066 JUMPL AC+2,F36540 ;LOOP ON ERROR SWITCH^ + 14660 + 14661 003655 ADR=ADR+1 + 14662 577777 777777 XX=XX+XX+1 + 14663 IFE , + 14664 + 14665 ;MULTIPLY A RIPPLED 0 BY -1 + 14666 200000 000001 MX=-XX + 14667 000000 IFL XX, + 14668 IFG XX, + 14669 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14672 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14674 + 14675 777777 777777 F36550: AA1=-1 ;INITIAL C(AC) + 14676 042101 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14677 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14678 042102 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14679 577777 777777 AEE=XX ;INITIAL C(E) + 14680 042103 200 06 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14681 042104 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14682 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14683 042105 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14684 042106 003 10 0 00 036551 ER3 AC,36551 ;HIGH PRODUCT FAILED + 14685 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14686 042107 312 11 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14687 042110 004 11 0 00 036552 ER4 AC+1,36552 ;LOW PRODUCT FAILED + 14688 577777 777777 AEE=XX ;INITIAL C(E) + 14689 042111 312 06 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14690 042112 005 06 0 00 036553 ER5 E,36553 ;C(E) WAS CLOBBERED + 14691 042113 321 12 0 00 042101 JUMPL AC+2,F36550 ;LOOP ON ERROR SWITCH^ + 14692 + 14693 003656 ADR=ADR+1 + 14694 377777 777777 XX=XX+XX+1 + 14695 IFE , + 14696 + 14697 ;MULTIPLY A RIPPLED 0 BY -1 + 14698 400000 000001 MX=-XX + 14699 IFL XX, + 14700 777777 777777 IFG XX, + 14701 MOP1 (\ADR,-1,-1,XX,V1,MX)^ + 14702 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND + 14703 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14704 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. + 14705 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14706 + 14707 777777 777777 F36560: AA1=-1 ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0291 + + 14708 042114 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) + 14709 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14710 042115 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14711 377777 777777 AEE=XX ;INITIAL C(E) + 14712 042116 200 06 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) + 14713 042117 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14714 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 14715 042120 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14716 042121 003 10 0 00 036561 ER3 AC,36561 ;HIGH PRODUCT FAILED + 14717 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 14718 042122 312 11 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14719 042123 004 11 0 00 036562 ER4 AC+1,36562 ;LOW PRODUCT FAILED + 14720 377777 777777 AEE=XX ;INITIAL C(E) + 14721 042124 312 06 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? + 14722 042125 005 06 0 00 036563 ER5 E,36563 ;C(E) WAS CLOBBERED + 14723 042126 321 12 0 00 042114 JUMPL AC+2,F36560 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0292 + + 14724 000014 AC=14 + 14725 000012 E=&17 + 14726 SAVEAC (1,1)^ + 14727 042127 201 16 0 00 042127 MOVEI AC+2,. ;SAVE TEST PC + 14728 042130 202 16 0 00 030051 MOVEM AC+2,TESTPC + 14729 042131 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 14730 042132 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 14731 000000 XX=0 + 14732 + 14733 REPEAT ^D36, < + 14734 ADR=ADR+1 + 14735 XX=XX+XX+1 + 14736 IFE , + 14737 + 14738 ;MULTIPLY -1 BY A RIPPLED 0 + 14739 MX=-XX + 14740 IFL XX, + 14741 IFG XX, + 14742 MOP1 (\ADR,XX,-1,-1,V1,MX)> + 14743 + 14744 003657 ADR=ADR+1 + 14745 000001 XX=XX+XX+1 + 14746 777777 777776 IFE , + 14747 + 14748 ;MULTIPLY -1 BY A RIPPLED 0 + 14749 000002 MX=-XX + 14750 000000 IFL XX, + 14751 IFG XX, + 14752 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14753 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14754 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14755 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14756 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14757 + 14758 777777 777776 F36570: AA1=XX ;INITIAL C(AC) + 14759 042133 200 14 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14760 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14761 042134 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14762 777777 777777 AEE=-1 ;INITIAL C(E) + 14763 042135 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14764 042136 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14765 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14766 042137 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14767 042140 003 14 0 00 036571 ER3 AC,36571 ;HIGH PRODUCT FAILED + 14768 000002 AR2=MX ;EXPECTED RESULT IN AC+1 + 14769 042141 312 15 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14770 042142 004 15 0 00 036572 ER4 AC+1,36572 ;LOW PRODUCT FAILED + 14771 777777 777777 AEE=-1 ;INITIAL C(E) + 14772 042143 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14773 042144 005 12 0 00 036573 ER5 E,36573 ;C(E) WAS CLOBBERED + 14774 042145 321 16 0 00 042133 JUMPL AC+2,F36570 ;LOOP ON ERROR SWITCH^ + 14775 + 14776 003660 ADR=ADR+1 + 14777 777777 777775 XX=XX+XX+1 + 14778 IFE , +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0293 + + 14779 + 14780 ;MULTIPLY -1 BY A RIPPLED 0 + 14781 000003 MX=-XX + 14782 000000 IFL XX, + 14783 IFG XX, + 14784 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14785 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14786 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14787 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14788 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14789 + 14790 777777 777775 F36600: AA1=XX ;INITIAL C(AC) + 14791 042146 200 14 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14792 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14793 042147 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14794 777777 777777 AEE=-1 ;INITIAL C(E) + 14795 042150 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14796 042151 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14797 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14798 042152 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14799 042153 003 14 0 00 036601 ER3 AC,36601 ;HIGH PRODUCT FAILED + 14800 000003 AR2=MX ;EXPECTED RESULT IN AC+1 + 14801 042154 312 15 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14802 042155 004 15 0 00 036602 ER4 AC+1,36602 ;LOW PRODUCT FAILED + 14803 777777 777777 AEE=-1 ;INITIAL C(E) + 14804 042156 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14805 042157 005 12 0 00 036603 ER5 E,36603 ;C(E) WAS CLOBBERED + 14806 042160 321 16 0 00 042146 JUMPL AC+2,F36600 ;LOOP ON ERROR SWITCH^ + 14807 + 14808 003661 ADR=ADR+1 + 14809 777777 777773 XX=XX+XX+1 + 14810 IFE , + 14811 + 14812 ;MULTIPLY -1 BY A RIPPLED 0 + 14813 000005 MX=-XX + 14814 000000 IFL XX, + 14815 IFG XX, + 14816 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14817 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14818 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14819 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14820 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14821 + 14822 777777 777773 F36610: AA1=XX ;INITIAL C(AC) + 14823 042161 200 14 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14824 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14825 042162 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14826 777777 777777 AEE=-1 ;INITIAL C(E) + 14827 042163 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14828 042164 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14829 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14830 042165 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14831 042166 003 14 0 00 036611 ER3 AC,36611 ;HIGH PRODUCT FAILED + 14832 000005 AR2=MX ;EXPECTED RESULT IN AC+1 + 14833 042167 312 15 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0294 + + 14834 042170 004 15 0 00 036612 ER4 AC+1,36612 ;LOW PRODUCT FAILED + 14835 777777 777777 AEE=-1 ;INITIAL C(E) + 14836 042171 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14837 042172 005 12 0 00 036613 ER5 E,36613 ;C(E) WAS CLOBBERED + 14838 042173 321 16 0 00 042161 JUMPL AC+2,F36610 ;LOOP ON ERROR SWITCH^ + 14839 + 14840 003662 ADR=ADR+1 + 14841 777777 777767 XX=XX+XX+1 + 14842 IFE , + 14843 + 14844 ;MULTIPLY -1 BY A RIPPLED 0 + 14845 000011 MX=-XX + 14846 000000 IFL XX, + 14847 IFG XX, + 14848 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14850 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14851 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14853 + 14854 777777 777767 F36620: AA1=XX ;INITIAL C(AC) + 14855 042174 200 14 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14856 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14857 042175 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14858 777777 777777 AEE=-1 ;INITIAL C(E) + 14859 042176 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14860 042177 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14861 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14862 042200 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14863 042201 003 14 0 00 036621 ER3 AC,36621 ;HIGH PRODUCT FAILED + 14864 000011 AR2=MX ;EXPECTED RESULT IN AC+1 + 14865 042202 312 15 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14866 042203 004 15 0 00 036622 ER4 AC+1,36622 ;LOW PRODUCT FAILED + 14867 777777 777777 AEE=-1 ;INITIAL C(E) + 14868 042204 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14869 042205 005 12 0 00 036623 ER5 E,36623 ;C(E) WAS CLOBBERED + 14870 042206 321 16 0 00 042174 JUMPL AC+2,F36620 ;LOOP ON ERROR SWITCH^ + 14871 + 14872 003663 ADR=ADR+1 + 14873 777777 777757 XX=XX+XX+1 + 14874 IFE , + 14875 + 14876 ;MULTIPLY -1 BY A RIPPLED 0 + 14877 000021 MX=-XX + 14878 000000 IFL XX, + 14879 IFG XX, + 14880 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14881 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14882 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14883 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14884 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14885 + 14886 777777 777757 F36630: AA1=XX ;INITIAL C(AC) + 14887 042207 200 14 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14888 777777 777777 AA2=-1 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0295 + + 14889 042210 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14890 777777 777777 AEE=-1 ;INITIAL C(E) + 14891 042211 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14892 042212 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14893 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14894 042213 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14895 042214 003 14 0 00 036631 ER3 AC,36631 ;HIGH PRODUCT FAILED + 14896 000021 AR2=MX ;EXPECTED RESULT IN AC+1 + 14897 042215 312 15 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14898 042216 004 15 0 00 036632 ER4 AC+1,36632 ;LOW PRODUCT FAILED + 14899 777777 777777 AEE=-1 ;INITIAL C(E) + 14900 042217 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14901 042220 005 12 0 00 036633 ER5 E,36633 ;C(E) WAS CLOBBERED + 14902 042221 321 16 0 00 042207 JUMPL AC+2,F36630 ;LOOP ON ERROR SWITCH^ + 14903 + 14904 003664 ADR=ADR+1 + 14905 777777 777737 XX=XX+XX+1 + 14906 IFE , + 14907 + 14908 ;MULTIPLY -1 BY A RIPPLED 0 + 14909 000041 MX=-XX + 14910 000000 IFL XX, + 14911 IFG XX, + 14912 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14913 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14914 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14915 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14916 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14917 + 14918 777777 777737 F36640: AA1=XX ;INITIAL C(AC) + 14919 042222 200 14 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14920 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14921 042223 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14922 777777 777777 AEE=-1 ;INITIAL C(E) + 14923 042224 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14924 042225 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14925 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14926 042226 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14927 042227 003 14 0 00 036641 ER3 AC,36641 ;HIGH PRODUCT FAILED + 14928 000041 AR2=MX ;EXPECTED RESULT IN AC+1 + 14929 042230 312 15 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14930 042231 004 15 0 00 036642 ER4 AC+1,36642 ;LOW PRODUCT FAILED + 14931 777777 777777 AEE=-1 ;INITIAL C(E) + 14932 042232 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14933 042233 005 12 0 00 036643 ER5 E,36643 ;C(E) WAS CLOBBERED + 14934 042234 321 16 0 00 042222 JUMPL AC+2,F36640 ;LOOP ON ERROR SWITCH^ + 14935 + 14936 003665 ADR=ADR+1 + 14937 777777 777677 XX=XX+XX+1 + 14938 IFE , + 14939 + 14940 ;MULTIPLY -1 BY A RIPPLED 0 + 14941 000101 MX=-XX + 14942 000000 IFL XX, + 14943 IFG XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0296 + + 14944 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14946 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14947 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14949 + 14950 777777 777677 F36650: AA1=XX ;INITIAL C(AC) + 14951 042235 200 14 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14952 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14953 042236 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14954 777777 777777 AEE=-1 ;INITIAL C(E) + 14955 042237 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14956 042240 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14957 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14958 042241 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14959 042242 003 14 0 00 036651 ER3 AC,36651 ;HIGH PRODUCT FAILED + 14960 000101 AR2=MX ;EXPECTED RESULT IN AC+1 + 14961 042243 312 15 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14962 042244 004 15 0 00 036652 ER4 AC+1,36652 ;LOW PRODUCT FAILED + 14963 777777 777777 AEE=-1 ;INITIAL C(E) + 14964 042245 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14965 042246 005 12 0 00 036653 ER5 E,36653 ;C(E) WAS CLOBBERED + 14966 042247 321 16 0 00 042235 JUMPL AC+2,F36650 ;LOOP ON ERROR SWITCH^ + 14967 + 14968 003666 ADR=ADR+1 + 14969 777777 777577 XX=XX+XX+1 + 14970 IFE , + 14971 + 14972 ;MULTIPLY -1 BY A RIPPLED 0 + 14973 000201 MX=-XX + 14974 000000 IFL XX, + 14975 IFG XX, + 14976 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 14977 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 14978 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 14979 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 14980 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 14981 + 14982 777777 777577 F36660: AA1=XX ;INITIAL C(AC) + 14983 042250 200 14 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 14984 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 14985 042251 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 14986 777777 777777 AEE=-1 ;INITIAL C(E) + 14987 042252 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 14988 042253 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 14989 000000 AR1=V1 ;EXPECTED RESULT IN AC + 14990 042254 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 14991 042255 003 14 0 00 036661 ER3 AC,36661 ;HIGH PRODUCT FAILED + 14992 000201 AR2=MX ;EXPECTED RESULT IN AC+1 + 14993 042256 312 15 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 14994 042257 004 15 0 00 036662 ER4 AC+1,36662 ;LOW PRODUCT FAILED + 14995 777777 777777 AEE=-1 ;INITIAL C(E) + 14996 042260 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 14997 042261 005 12 0 00 036663 ER5 E,36663 ;C(E) WAS CLOBBERED + 14998 042262 321 16 0 00 042250 JUMPL AC+2,F36660 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0297 + + 14999 + 15000 003667 ADR=ADR+1 + 15001 777777 777377 XX=XX+XX+1 + 15002 IFE , + 15003 + 15004 ;MULTIPLY -1 BY A RIPPLED 0 + 15005 000401 MX=-XX + 15006 000000 IFL XX, + 15007 IFG XX, + 15008 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15010 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15011 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15013 + 15014 777777 777377 F36670: AA1=XX ;INITIAL C(AC) + 15015 042263 200 14 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15016 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15017 042264 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15018 777777 777777 AEE=-1 ;INITIAL C(E) + 15019 042265 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15020 042266 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15021 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15022 042267 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15023 042270 003 14 0 00 036671 ER3 AC,36671 ;HIGH PRODUCT FAILED + 15024 000401 AR2=MX ;EXPECTED RESULT IN AC+1 + 15025 042271 312 15 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15026 042272 004 15 0 00 036672 ER4 AC+1,36672 ;LOW PRODUCT FAILED + 15027 777777 777777 AEE=-1 ;INITIAL C(E) + 15028 042273 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15029 042274 005 12 0 00 036673 ER5 E,36673 ;C(E) WAS CLOBBERED + 15030 042275 321 16 0 00 042263 JUMPL AC+2,F36670 ;LOOP ON ERROR SWITCH^ + 15031 + 15032 003670 ADR=ADR+1 + 15033 777777 776777 XX=XX+XX+1 + 15034 IFE , + 15035 + 15036 ;MULTIPLY -1 BY A RIPPLED 0 + 15037 001001 MX=-XX + 15038 000000 IFL XX, + 15039 IFG XX, + 15040 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15041 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15042 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15043 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15044 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15045 + 15046 777777 776777 F36700: AA1=XX ;INITIAL C(AC) + 15047 042276 200 14 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15048 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15049 042277 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15050 777777 777777 AEE=-1 ;INITIAL C(E) + 15051 042300 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15052 042301 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15053 000000 AR1=V1 ;EXPECTED RESULT IN AC +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0298 + + 15054 042302 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15055 042303 003 14 0 00 036701 ER3 AC,36701 ;HIGH PRODUCT FAILED + 15056 001001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15057 042304 312 15 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15058 042305 004 15 0 00 036702 ER4 AC+1,36702 ;LOW PRODUCT FAILED + 15059 777777 777777 AEE=-1 ;INITIAL C(E) + 15060 042306 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15061 042307 005 12 0 00 036703 ER5 E,36703 ;C(E) WAS CLOBBERED + 15062 042310 321 16 0 00 042276 JUMPL AC+2,F36700 ;LOOP ON ERROR SWITCH^ + 15063 + 15064 003671 ADR=ADR+1 + 15065 777777 775777 XX=XX+XX+1 + 15066 IFE , + 15067 + 15068 ;MULTIPLY -1 BY A RIPPLED 0 + 15069 002001 MX=-XX + 15070 000000 IFL XX, + 15071 IFG XX, + 15072 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15073 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15074 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15075 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15076 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15077 + 15078 777777 775777 F36710: AA1=XX ;INITIAL C(AC) + 15079 042311 200 14 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15080 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15081 042312 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15082 777777 777777 AEE=-1 ;INITIAL C(E) + 15083 042313 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15084 042314 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15085 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15086 042315 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15087 042316 003 14 0 00 036711 ER3 AC,36711 ;HIGH PRODUCT FAILED + 15088 002001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15089 042317 312 15 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15090 042320 004 15 0 00 036712 ER4 AC+1,36712 ;LOW PRODUCT FAILED + 15091 777777 777777 AEE=-1 ;INITIAL C(E) + 15092 042321 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15093 042322 005 12 0 00 036713 ER5 E,36713 ;C(E) WAS CLOBBERED + 15094 042323 321 16 0 00 042311 JUMPL AC+2,F36710 ;LOOP ON ERROR SWITCH^ + 15095 + 15096 003672 ADR=ADR+1 + 15097 777777 773777 XX=XX+XX+1 + 15098 IFE , + 15099 + 15100 ;MULTIPLY -1 BY A RIPPLED 0 + 15101 004001 MX=-XX + 15102 000000 IFL XX, + 15103 IFG XX, + 15104 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15107 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0299 + + 15109 + 15110 777777 773777 F36720: AA1=XX ;INITIAL C(AC) + 15111 042324 200 14 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15112 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15113 042325 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15114 777777 777777 AEE=-1 ;INITIAL C(E) + 15115 042326 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15116 042327 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15117 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15118 042330 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15119 042331 003 14 0 00 036721 ER3 AC,36721 ;HIGH PRODUCT FAILED + 15120 004001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15121 042332 312 15 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15122 042333 004 15 0 00 036722 ER4 AC+1,36722 ;LOW PRODUCT FAILED + 15123 777777 777777 AEE=-1 ;INITIAL C(E) + 15124 042334 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15125 042335 005 12 0 00 036723 ER5 E,36723 ;C(E) WAS CLOBBERED + 15126 042336 321 16 0 00 042324 JUMPL AC+2,F36720 ;LOOP ON ERROR SWITCH^ + 15127 + 15128 003673 ADR=ADR+1 + 15129 777777 767777 XX=XX+XX+1 + 15130 IFE , + 15131 + 15132 ;MULTIPLY -1 BY A RIPPLED 0 + 15133 010001 MX=-XX + 15134 000000 IFL XX, + 15135 IFG XX, + 15136 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15137 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15138 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15139 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15140 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15141 + 15142 777777 767777 F36730: AA1=XX ;INITIAL C(AC) + 15143 042337 200 14 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15144 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15145 042340 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15146 777777 777777 AEE=-1 ;INITIAL C(E) + 15147 042341 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15148 042342 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15149 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15150 042343 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15151 042344 003 14 0 00 036731 ER3 AC,36731 ;HIGH PRODUCT FAILED + 15152 010001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15153 042345 312 15 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15154 042346 004 15 0 00 036732 ER4 AC+1,36732 ;LOW PRODUCT FAILED + 15155 777777 777777 AEE=-1 ;INITIAL C(E) + 15156 042347 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15157 042350 005 12 0 00 036733 ER5 E,36733 ;C(E) WAS CLOBBERED + 15158 042351 321 16 0 00 042337 JUMPL AC+2,F36730 ;LOOP ON ERROR SWITCH^ + 15159 + 15160 003674 ADR=ADR+1 + 15161 777777 757777 XX=XX+XX+1 + 15162 IFE , + 15163 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0300 + + 15164 ;MULTIPLY -1 BY A RIPPLED 0 + 15165 020001 MX=-XX + 15166 000000 IFL XX, + 15167 IFG XX, + 15168 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15169 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15170 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15171 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15172 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15173 + 15174 777777 757777 F36740: AA1=XX ;INITIAL C(AC) + 15175 042352 200 14 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15176 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15177 042353 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15178 777777 777777 AEE=-1 ;INITIAL C(E) + 15179 042354 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15180 042355 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15181 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15182 042356 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15183 042357 003 14 0 00 036741 ER3 AC,36741 ;HIGH PRODUCT FAILED + 15184 020001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15185 042360 312 15 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15186 042361 004 15 0 00 036742 ER4 AC+1,36742 ;LOW PRODUCT FAILED + 15187 777777 777777 AEE=-1 ;INITIAL C(E) + 15188 042362 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15189 042363 005 12 0 00 036743 ER5 E,36743 ;C(E) WAS CLOBBERED + 15190 042364 321 16 0 00 042352 JUMPL AC+2,F36740 ;LOOP ON ERROR SWITCH^ + 15191 + 15192 003675 ADR=ADR+1 + 15193 777777 737777 XX=XX+XX+1 + 15194 IFE , + 15195 + 15196 ;MULTIPLY -1 BY A RIPPLED 0 + 15197 040001 MX=-XX + 15198 000000 IFL XX, + 15199 IFG XX, + 15200 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15203 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15205 + 15206 777777 737777 F36750: AA1=XX ;INITIAL C(AC) + 15207 042365 200 14 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15208 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15209 042366 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15210 777777 777777 AEE=-1 ;INITIAL C(E) + 15211 042367 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15212 042370 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15213 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15214 042371 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15215 042372 003 14 0 00 036751 ER3 AC,36751 ;HIGH PRODUCT FAILED + 15216 040001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15217 042373 312 15 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15218 042374 004 15 0 00 036752 ER4 AC+1,36752 ;LOW PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0301 + + 15219 777777 777777 AEE=-1 ;INITIAL C(E) + 15220 042375 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15221 042376 005 12 0 00 036753 ER5 E,36753 ;C(E) WAS CLOBBERED + 15222 042377 321 16 0 00 042365 JUMPL AC+2,F36750 ;LOOP ON ERROR SWITCH^ + 15223 + 15224 003676 ADR=ADR+1 + 15225 777777 677777 XX=XX+XX+1 + 15226 IFE , + 15227 + 15228 ;MULTIPLY -1 BY A RIPPLED 0 + 15229 100001 MX=-XX + 15230 000000 IFL XX, + 15231 IFG XX, + 15232 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15234 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15235 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15237 + 15238 777777 677777 F36760: AA1=XX ;INITIAL C(AC) + 15239 042400 200 14 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15240 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15241 042401 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15242 777777 777777 AEE=-1 ;INITIAL C(E) + 15243 042402 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15244 042403 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15245 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15246 042404 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15247 042405 003 14 0 00 036761 ER3 AC,36761 ;HIGH PRODUCT FAILED + 15248 100001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15249 042406 312 15 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15250 042407 004 15 0 00 036762 ER4 AC+1,36762 ;LOW PRODUCT FAILED + 15251 777777 777777 AEE=-1 ;INITIAL C(E) + 15252 042410 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15253 042411 005 12 0 00 036763 ER5 E,36763 ;C(E) WAS CLOBBERED + 15254 042412 321 16 0 00 042400 JUMPL AC+2,F36760 ;LOOP ON ERROR SWITCH^ + 15255 + 15256 003677 ADR=ADR+1 + 15257 777777 577777 XX=XX+XX+1 + 15258 IFE , + 15259 + 15260 ;MULTIPLY -1 BY A RIPPLED 0 + 15261 200001 MX=-XX + 15262 000000 IFL XX, + 15263 IFG XX, + 15264 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15265 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15266 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15267 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15268 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15269 + 15270 777777 577777 F36770: AA1=XX ;INITIAL C(AC) + 15271 042413 200 14 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15272 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15273 042414 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0302 + + 15274 777777 777777 AEE=-1 ;INITIAL C(E) + 15275 042415 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15276 042416 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15277 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15278 042417 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15279 042420 003 14 0 00 036771 ER3 AC,36771 ;HIGH PRODUCT FAILED + 15280 200001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15281 042421 312 15 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15282 042422 004 15 0 00 036772 ER4 AC+1,36772 ;LOW PRODUCT FAILED + 15283 777777 777777 AEE=-1 ;INITIAL C(E) + 15284 042423 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15285 042424 005 12 0 00 036773 ER5 E,36773 ;C(E) WAS CLOBBERED + 15286 042425 321 16 0 00 042413 JUMPL AC+2,F36770 ;LOOP ON ERROR SWITCH^ + 15287 + 15288 003700 ADR=ADR+1 + 15289 777777 377777 XX=XX+XX+1 + 15290 IFE , + 15291 + 15292 ;MULTIPLY -1 BY A RIPPLED 0 + 15293 400001 MX=-XX + 15294 000000 IFL XX, + 15295 IFG XX, + 15296 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15298 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15299 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15301 + 15302 777777 377777 F37000: AA1=XX ;INITIAL C(AC) + 15303 042426 200 14 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15304 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15305 042427 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15306 777777 777777 AEE=-1 ;INITIAL C(E) + 15307 042430 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15308 042431 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15309 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15310 042432 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15311 042433 003 14 0 00 037001 ER3 AC,37001 ;HIGH PRODUCT FAILED + 15312 400001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15313 042434 312 15 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15314 042435 004 15 0 00 037002 ER4 AC+1,37002 ;LOW PRODUCT FAILED + 15315 777777 777777 AEE=-1 ;INITIAL C(E) + 15316 042436 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15317 042437 005 12 0 00 037003 ER5 E,37003 ;C(E) WAS CLOBBERED + 15318 042440 321 16 0 00 042426 JUMPL AC+2,F37000 ;LOOP ON ERROR SWITCH^ + 15319 + 15320 003701 ADR=ADR+1 + 15321 777776 777777 XX=XX+XX+1 + 15322 IFE , + 15323 + 15324 ;MULTIPLY -1 BY A RIPPLED 0 + 15325 000001 000001 MX=-XX + 15326 000000 IFL XX, + 15327 IFG XX, + 15328 MOP1 (\ADR,XX,-1,-1,V1,MX)^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0303 + + 15329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15330 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15331 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15333 + 15334 777776 777777 F37010: AA1=XX ;INITIAL C(AC) + 15335 042441 200 14 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15336 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15337 042442 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15338 777777 777777 AEE=-1 ;INITIAL C(E) + 15339 042443 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15340 042444 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15341 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15342 042445 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15343 042446 003 14 0 00 037011 ER3 AC,37011 ;HIGH PRODUCT FAILED + 15344 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15345 042447 312 15 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15346 042450 004 15 0 00 037012 ER4 AC+1,37012 ;LOW PRODUCT FAILED + 15347 777777 777777 AEE=-1 ;INITIAL C(E) + 15348 042451 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15349 042452 005 12 0 00 037013 ER5 E,37013 ;C(E) WAS CLOBBERED + 15350 042453 321 16 0 00 042441 JUMPL AC+2,F37010 ;LOOP ON ERROR SWITCH^ + 15351 + 15352 003702 ADR=ADR+1 + 15353 777775 777777 XX=XX+XX+1 + 15354 IFE , + 15355 + 15356 ;MULTIPLY -1 BY A RIPPLED 0 + 15357 000002 000001 MX=-XX + 15358 000000 IFL XX, + 15359 IFG XX, + 15360 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15363 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15365 + 15366 777775 777777 F37020: AA1=XX ;INITIAL C(AC) + 15367 042454 200 14 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15368 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15369 042455 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15370 777777 777777 AEE=-1 ;INITIAL C(E) + 15371 042456 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15372 042457 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15373 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15374 042460 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15375 042461 003 14 0 00 037021 ER3 AC,37021 ;HIGH PRODUCT FAILED + 15376 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15377 042462 312 15 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15378 042463 004 15 0 00 037022 ER4 AC+1,37022 ;LOW PRODUCT FAILED + 15379 777777 777777 AEE=-1 ;INITIAL C(E) + 15380 042464 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15381 042465 005 12 0 00 037023 ER5 E,37023 ;C(E) WAS CLOBBERED + 15382 042466 321 16 0 00 042454 JUMPL AC+2,F37020 ;LOOP ON ERROR SWITCH^ + 15383 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0304 + + 15384 003703 ADR=ADR+1 + 15385 777773 777777 XX=XX+XX+1 + 15386 IFE , + 15387 + 15388 ;MULTIPLY -1 BY A RIPPLED 0 + 15389 000004 000001 MX=-XX + 15390 000000 IFL XX, + 15391 IFG XX, + 15392 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15393 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15394 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15395 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15396 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15397 + 15398 777773 777777 F37030: AA1=XX ;INITIAL C(AC) + 15399 042467 200 14 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15400 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15401 042470 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15402 777777 777777 AEE=-1 ;INITIAL C(E) + 15403 042471 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15404 042472 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15405 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15406 042473 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15407 042474 003 14 0 00 037031 ER3 AC,37031 ;HIGH PRODUCT FAILED + 15408 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15409 042475 312 15 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15410 042476 004 15 0 00 037032 ER4 AC+1,37032 ;LOW PRODUCT FAILED + 15411 777777 777777 AEE=-1 ;INITIAL C(E) + 15412 042477 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15413 042500 005 12 0 00 037033 ER5 E,37033 ;C(E) WAS CLOBBERED + 15414 042501 321 16 0 00 042467 JUMPL AC+2,F37030 ;LOOP ON ERROR SWITCH^ + 15415 + 15416 003704 ADR=ADR+1 + 15417 777767 777777 XX=XX+XX+1 + 15418 IFE , + 15419 + 15420 ;MULTIPLY -1 BY A RIPPLED 0 + 15421 000010 000001 MX=-XX + 15422 000000 IFL XX, + 15423 IFG XX, + 15424 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15425 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15426 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15427 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15428 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15429 + 15430 777767 777777 F37040: AA1=XX ;INITIAL C(AC) + 15431 042502 200 14 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15432 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15433 042503 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15434 777777 777777 AEE=-1 ;INITIAL C(E) + 15435 042504 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15436 042505 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15437 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15438 042506 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0305 + + 15439 042507 003 14 0 00 037041 ER3 AC,37041 ;HIGH PRODUCT FAILED + 15440 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15441 042510 312 15 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15442 042511 004 15 0 00 037042 ER4 AC+1,37042 ;LOW PRODUCT FAILED + 15443 777777 777777 AEE=-1 ;INITIAL C(E) + 15444 042512 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15445 042513 005 12 0 00 037043 ER5 E,37043 ;C(E) WAS CLOBBERED + 15446 042514 321 16 0 00 042502 JUMPL AC+2,F37040 ;LOOP ON ERROR SWITCH^ + 15447 + 15448 003705 ADR=ADR+1 + 15449 777757 777777 XX=XX+XX+1 + 15450 IFE , + 15451 + 15452 ;MULTIPLY -1 BY A RIPPLED 0 + 15453 000020 000001 MX=-XX + 15454 000000 IFL XX, + 15455 IFG XX, + 15456 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15457 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15458 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15459 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15460 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15461 + 15462 777757 777777 F37050: AA1=XX ;INITIAL C(AC) + 15463 042515 200 14 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15464 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15465 042516 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15466 777777 777777 AEE=-1 ;INITIAL C(E) + 15467 042517 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15468 042520 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15469 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15470 042521 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15471 042522 003 14 0 00 037051 ER3 AC,37051 ;HIGH PRODUCT FAILED + 15472 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15473 042523 312 15 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15474 042524 004 15 0 00 037052 ER4 AC+1,37052 ;LOW PRODUCT FAILED + 15475 777777 777777 AEE=-1 ;INITIAL C(E) + 15476 042525 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15477 042526 005 12 0 00 037053 ER5 E,37053 ;C(E) WAS CLOBBERED + 15478 042527 321 16 0 00 042515 JUMPL AC+2,F37050 ;LOOP ON ERROR SWITCH^ + 15479 + 15480 003706 ADR=ADR+1 + 15481 777737 777777 XX=XX+XX+1 + 15482 IFE , + 15483 + 15484 ;MULTIPLY -1 BY A RIPPLED 0 + 15485 000040 000001 MX=-XX + 15486 000000 IFL XX, + 15487 IFG XX, + 15488 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15489 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15490 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15491 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15492 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15493 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0306 + + 15494 777737 777777 F37060: AA1=XX ;INITIAL C(AC) + 15495 042530 200 14 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15496 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15497 042531 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15498 777777 777777 AEE=-1 ;INITIAL C(E) + 15499 042532 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15500 042533 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15501 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15502 042534 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15503 042535 003 14 0 00 037061 ER3 AC,37061 ;HIGH PRODUCT FAILED + 15504 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15505 042536 312 15 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15506 042537 004 15 0 00 037062 ER4 AC+1,37062 ;LOW PRODUCT FAILED + 15507 777777 777777 AEE=-1 ;INITIAL C(E) + 15508 042540 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15509 042541 005 12 0 00 037063 ER5 E,37063 ;C(E) WAS CLOBBERED + 15510 042542 321 16 0 00 042530 JUMPL AC+2,F37060 ;LOOP ON ERROR SWITCH^ + 15511 + 15512 003707 ADR=ADR+1 + 15513 777677 777777 XX=XX+XX+1 + 15514 IFE , + 15515 + 15516 ;MULTIPLY -1 BY A RIPPLED 0 + 15517 000100 000001 MX=-XX + 15518 000000 IFL XX, + 15519 IFG XX, + 15520 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15521 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15522 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15523 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15524 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15525 + 15526 777677 777777 F37070: AA1=XX ;INITIAL C(AC) + 15527 042543 200 14 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15528 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15529 042544 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15530 777777 777777 AEE=-1 ;INITIAL C(E) + 15531 042545 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15532 042546 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15533 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15534 042547 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15535 042550 003 14 0 00 037071 ER3 AC,37071 ;HIGH PRODUCT FAILED + 15536 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15537 042551 312 15 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15538 042552 004 15 0 00 037072 ER4 AC+1,37072 ;LOW PRODUCT FAILED + 15539 777777 777777 AEE=-1 ;INITIAL C(E) + 15540 042553 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15541 042554 005 12 0 00 037073 ER5 E,37073 ;C(E) WAS CLOBBERED + 15542 042555 321 16 0 00 042543 JUMPL AC+2,F37070 ;LOOP ON ERROR SWITCH^ + 15543 + 15544 003710 ADR=ADR+1 + 15545 777577 777777 XX=XX+XX+1 + 15546 IFE , + 15547 + 15548 ;MULTIPLY -1 BY A RIPPLED 0 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0307 + + 15549 000200 000001 MX=-XX + 15550 000000 IFL XX, + 15551 IFG XX, + 15552 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15553 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15554 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15555 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15556 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15557 + 15558 777577 777777 F37100: AA1=XX ;INITIAL C(AC) + 15559 042556 200 14 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15560 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15561 042557 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15562 777777 777777 AEE=-1 ;INITIAL C(E) + 15563 042560 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15564 042561 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15565 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15566 042562 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15567 042563 003 14 0 00 037101 ER3 AC,37101 ;HIGH PRODUCT FAILED + 15568 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15569 042564 312 15 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15570 042565 004 15 0 00 037102 ER4 AC+1,37102 ;LOW PRODUCT FAILED + 15571 777777 777777 AEE=-1 ;INITIAL C(E) + 15572 042566 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15573 042567 005 12 0 00 037103 ER5 E,37103 ;C(E) WAS CLOBBERED + 15574 042570 321 16 0 00 042556 JUMPL AC+2,F37100 ;LOOP ON ERROR SWITCH^ + 15575 + 15576 003711 ADR=ADR+1 + 15577 777377 777777 XX=XX+XX+1 + 15578 IFE , + 15579 + 15580 ;MULTIPLY -1 BY A RIPPLED 0 + 15581 000400 000001 MX=-XX + 15582 000000 IFL XX, + 15583 IFG XX, + 15584 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15586 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15587 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15589 + 15590 777377 777777 F37110: AA1=XX ;INITIAL C(AC) + 15591 042571 200 14 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15592 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15593 042572 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15594 777777 777777 AEE=-1 ;INITIAL C(E) + 15595 042573 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15596 042574 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15597 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15598 042575 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15599 042576 003 14 0 00 037111 ER3 AC,37111 ;HIGH PRODUCT FAILED + 15600 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15601 042577 312 15 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15602 042600 004 15 0 00 037112 ER4 AC+1,37112 ;LOW PRODUCT FAILED + 15603 777777 777777 AEE=-1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0308 + + 15604 042601 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15605 042602 005 12 0 00 037113 ER5 E,37113 ;C(E) WAS CLOBBERED + 15606 042603 321 16 0 00 042571 JUMPL AC+2,F37110 ;LOOP ON ERROR SWITCH^ + 15607 + 15608 003712 ADR=ADR+1 + 15609 776777 777777 XX=XX+XX+1 + 15610 IFE , + 15611 + 15612 ;MULTIPLY -1 BY A RIPPLED 0 + 15613 001000 000001 MX=-XX + 15614 000000 IFL XX, + 15615 IFG XX, + 15616 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15617 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15618 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15619 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15620 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15621 + 15622 776777 777777 F37120: AA1=XX ;INITIAL C(AC) + 15623 042604 200 14 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15624 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15625 042605 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15626 777777 777777 AEE=-1 ;INITIAL C(E) + 15627 042606 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15628 042607 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15629 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15630 042610 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15631 042611 003 14 0 00 037121 ER3 AC,37121 ;HIGH PRODUCT FAILED + 15632 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15633 042612 312 15 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15634 042613 004 15 0 00 037122 ER4 AC+1,37122 ;LOW PRODUCT FAILED + 15635 777777 777777 AEE=-1 ;INITIAL C(E) + 15636 042614 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15637 042615 005 12 0 00 037123 ER5 E,37123 ;C(E) WAS CLOBBERED + 15638 042616 321 16 0 00 042604 JUMPL AC+2,F37120 ;LOOP ON ERROR SWITCH^ + 15639 + 15640 003713 ADR=ADR+1 + 15641 775777 777777 XX=XX+XX+1 + 15642 IFE , + 15643 + 15644 ;MULTIPLY -1 BY A RIPPLED 0 + 15645 002000 000001 MX=-XX + 15646 000000 IFL XX, + 15647 IFG XX, + 15648 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15650 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15651 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15653 + 15654 775777 777777 F37130: AA1=XX ;INITIAL C(AC) + 15655 042617 200 14 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15656 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15657 042620 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15658 777777 777777 AEE=-1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0309 + + 15659 042621 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15660 042622 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15661 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15662 042623 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15663 042624 003 14 0 00 037131 ER3 AC,37131 ;HIGH PRODUCT FAILED + 15664 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15665 042625 312 15 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15666 042626 004 15 0 00 037132 ER4 AC+1,37132 ;LOW PRODUCT FAILED + 15667 777777 777777 AEE=-1 ;INITIAL C(E) + 15668 042627 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15669 042630 005 12 0 00 037133 ER5 E,37133 ;C(E) WAS CLOBBERED + 15670 042631 321 16 0 00 042617 JUMPL AC+2,F37130 ;LOOP ON ERROR SWITCH^ + 15671 + 15672 003714 ADR=ADR+1 + 15673 773777 777777 XX=XX+XX+1 + 15674 IFE , + 15675 + 15676 ;MULTIPLY -1 BY A RIPPLED 0 + 15677 004000 000001 MX=-XX + 15678 000000 IFL XX, + 15679 IFG XX, + 15680 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15681 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15682 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15683 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15684 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15685 + 15686 773777 777777 F37140: AA1=XX ;INITIAL C(AC) + 15687 042632 200 14 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15688 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15689 042633 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15690 777777 777777 AEE=-1 ;INITIAL C(E) + 15691 042634 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15692 042635 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15693 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15694 042636 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15695 042637 003 14 0 00 037141 ER3 AC,37141 ;HIGH PRODUCT FAILED + 15696 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15697 042640 312 15 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15698 042641 004 15 0 00 037142 ER4 AC+1,37142 ;LOW PRODUCT FAILED + 15699 777777 777777 AEE=-1 ;INITIAL C(E) + 15700 042642 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15701 042643 005 12 0 00 037143 ER5 E,37143 ;C(E) WAS CLOBBERED + 15702 042644 321 16 0 00 042632 JUMPL AC+2,F37140 ;LOOP ON ERROR SWITCH^ + 15703 + 15704 003715 ADR=ADR+1 + 15705 767777 777777 XX=XX+XX+1 + 15706 IFE , + 15707 + 15708 ;MULTIPLY -1 BY A RIPPLED 0 + 15709 010000 000001 MX=-XX + 15710 000000 IFL XX, + 15711 IFG XX, + 15712 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15713 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0310 + + 15714 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15715 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15716 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15717 + 15718 767777 777777 F37150: AA1=XX ;INITIAL C(AC) + 15719 042645 200 14 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15720 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15721 042646 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15722 777777 777777 AEE=-1 ;INITIAL C(E) + 15723 042647 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15724 042650 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15725 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15726 042651 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15727 042652 003 14 0 00 037151 ER3 AC,37151 ;HIGH PRODUCT FAILED + 15728 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15729 042653 312 15 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15730 042654 004 15 0 00 037152 ER4 AC+1,37152 ;LOW PRODUCT FAILED + 15731 777777 777777 AEE=-1 ;INITIAL C(E) + 15732 042655 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15733 042656 005 12 0 00 037153 ER5 E,37153 ;C(E) WAS CLOBBERED + 15734 042657 321 16 0 00 042645 JUMPL AC+2,F37150 ;LOOP ON ERROR SWITCH^ + 15735 + 15736 003716 ADR=ADR+1 + 15737 757777 777777 XX=XX+XX+1 + 15738 IFE , + 15739 + 15740 ;MULTIPLY -1 BY A RIPPLED 0 + 15741 020000 000001 MX=-XX + 15742 000000 IFL XX, + 15743 IFG XX, + 15744 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15747 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15749 + 15750 757777 777777 F37160: AA1=XX ;INITIAL C(AC) + 15751 042660 200 14 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15752 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15753 042661 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15754 777777 777777 AEE=-1 ;INITIAL C(E) + 15755 042662 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15756 042663 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15757 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15758 042664 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15759 042665 003 14 0 00 037161 ER3 AC,37161 ;HIGH PRODUCT FAILED + 15760 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15761 042666 312 15 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15762 042667 004 15 0 00 037162 ER4 AC+1,37162 ;LOW PRODUCT FAILED + 15763 777777 777777 AEE=-1 ;INITIAL C(E) + 15764 042670 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15765 042671 005 12 0 00 037163 ER5 E,37163 ;C(E) WAS CLOBBERED + 15766 042672 321 16 0 00 042660 JUMPL AC+2,F37160 ;LOOP ON ERROR SWITCH^ + 15767 + 15768 003717 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0311 + + 15769 737777 777777 XX=XX+XX+1 + 15770 IFE , + 15771 + 15772 ;MULTIPLY -1 BY A RIPPLED 0 + 15773 040000 000001 MX=-XX + 15774 000000 IFL XX, + 15775 IFG XX, + 15776 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15778 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15779 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15781 + 15782 737777 777777 F37170: AA1=XX ;INITIAL C(AC) + 15783 042673 200 14 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15784 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15785 042674 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15786 777777 777777 AEE=-1 ;INITIAL C(E) + 15787 042675 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15788 042676 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15789 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15790 042677 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15791 042700 003 14 0 00 037171 ER3 AC,37171 ;HIGH PRODUCT FAILED + 15792 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15793 042701 312 15 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15794 042702 004 15 0 00 037172 ER4 AC+1,37172 ;LOW PRODUCT FAILED + 15795 777777 777777 AEE=-1 ;INITIAL C(E) + 15796 042703 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15797 042704 005 12 0 00 037173 ER5 E,37173 ;C(E) WAS CLOBBERED + 15798 042705 321 16 0 00 042673 JUMPL AC+2,F37170 ;LOOP ON ERROR SWITCH^ + 15799 + 15800 003720 ADR=ADR+1 + 15801 677777 777777 XX=XX+XX+1 + 15802 IFE , + 15803 + 15804 ;MULTIPLY -1 BY A RIPPLED 0 + 15805 100000 000001 MX=-XX + 15806 000000 IFL XX, + 15807 IFG XX, + 15808 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15809 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15810 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15811 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15812 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15813 + 15814 677777 777777 F37200: AA1=XX ;INITIAL C(AC) + 15815 042706 200 14 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15816 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15817 042707 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15818 777777 777777 AEE=-1 ;INITIAL C(E) + 15819 042710 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15820 042711 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15821 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15822 042712 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15823 042713 003 14 0 00 037201 ER3 AC,37201 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0312 + + 15824 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15825 042714 312 15 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15826 042715 004 15 0 00 037202 ER4 AC+1,37202 ;LOW PRODUCT FAILED + 15827 777777 777777 AEE=-1 ;INITIAL C(E) + 15828 042716 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15829 042717 005 12 0 00 037203 ER5 E,37203 ;C(E) WAS CLOBBERED + 15830 042720 321 16 0 00 042706 JUMPL AC+2,F37200 ;LOOP ON ERROR SWITCH^ + 15831 + 15832 003721 ADR=ADR+1 + 15833 577777 777777 XX=XX+XX+1 + 15834 IFE , + 15835 + 15836 ;MULTIPLY -1 BY A RIPPLED 0 + 15837 200000 000001 MX=-XX + 15838 000000 IFL XX, + 15839 IFG XX, + 15840 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15841 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15842 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15843 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15844 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15845 + 15846 577777 777777 F37210: AA1=XX ;INITIAL C(AC) + 15847 042721 200 14 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15848 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15849 042722 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15850 777777 777777 AEE=-1 ;INITIAL C(E) + 15851 042723 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15852 042724 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15853 000000 AR1=V1 ;EXPECTED RESULT IN AC + 15854 042725 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15855 042726 003 14 0 00 037211 ER3 AC,37211 ;HIGH PRODUCT FAILED + 15856 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15857 042727 312 15 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15858 042730 004 15 0 00 037212 ER4 AC+1,37212 ;LOW PRODUCT FAILED + 15859 777777 777777 AEE=-1 ;INITIAL C(E) + 15860 042731 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15861 042732 005 12 0 00 037213 ER5 E,37213 ;C(E) WAS CLOBBERED + 15862 042733 321 16 0 00 042721 JUMPL AC+2,F37210 ;LOOP ON ERROR SWITCH^ + 15863 + 15864 003722 ADR=ADR+1 + 15865 377777 777777 XX=XX+XX+1 + 15866 IFE , + 15867 + 15868 ;MULTIPLY -1 BY A RIPPLED 0 + 15869 400000 000001 MX=-XX + 15870 IFL XX, + 15871 777777 777777 IFG XX, + 15872 MOP1 (\ADR,XX,-1,-1,V1,MX)^ + 15873 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND + 15874 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15875 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. + 15876 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15877 + 15878 377777 777777 F37220: AA1=XX ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0313 + + 15879 042734 200 14 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15880 777777 777777 AA2=-1 ;INITIAL C(AC+1) + 15881 042735 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 + 15882 777777 777777 AEE=-1 ;INITIAL C(E) + 15883 042736 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) + 15884 042737 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15885 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC + 15886 042740 312 14 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? + 15887 042741 003 14 0 00 037221 ER3 AC,37221 ;HIGH PRODUCT FAILED + 15888 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 + 15889 042742 312 15 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? + 15890 042743 004 15 0 00 037222 ER4 AC+1,37222 ;LOW PRODUCT FAILED + 15891 777777 777777 AEE=-1 ;INITIAL C(E) + 15892 042744 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? + 15893 042745 005 12 0 00 037223 ER5 E,37223 ;C(E) WAS CLOBBERED + 15894 042746 321 16 0 00 042734 JUMPL AC+2,F37220 ;LOOP ON ERROR SWITCH^ +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0314 + + 15895 525252 525252 N1=525252525252 + 15896 252525 252525 N2=252525252525 + 15897 000013 AC=13 + 15898 000011 E=&17 + 15899 SAVEAC (1,1)^ + 15900 042747 201 15 0 00 042747 MOVEI AC+2,. ;SAVE TEST PC + 15901 042750 202 15 0 00 030051 MOVEM AC+2,TESTPC + 15902 042751 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH + 15903 042752 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ + 15904 000044 WW=^D36 + 15905 000000 XX=0 + 15906 000000 ZZ=0 + 15907 + 15908 REPEAT ^D35, < ;LAST CASE DIFFERENT + 15909 + 15910 ADR=ADR+1 + 15911 WW=WW-1 + 15912 XX=XX+XX + 15913 ZZ=ZZ+1 + 15914 IFE XX, + 15915 IFE XX, + 15916 + 15917 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 15918 V1=N1 + 15919 V2=!1B0 + 15920 IFE WW, + 15921 IFL XX, + 15922 IFG XX,>!>>> + 15923 MOP1 (\ADR,XX,0,V1,V3,V2)> + 15924 ;LAST CASE DIFFERENT + 15925 + 15926 003723 ADR=ADR+1 + 15927 000043 WW=WW-1 + 15928 000000 XX=XX+XX + 15929 000001 ZZ=ZZ+1 + 15930 000000 IFE XX, + 15931 000001 IFE XX, + 15932 + 15933 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 15934 525252 525252 V1=N1 + 15935 525252 525252 V2=!1B0 + 15936 IFE WW, + 15937 IFL XX, + 15938 777777 777777 IFG XX,>!>>> + 15939 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 15940 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 15941 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15942 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 15943 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15944 + 15945 000001 F37230: AA1=XX ;INITIAL C(AC) + 15946 042753 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15947 000000 AA2=0 ;INITIAL C(AC+1) + 15948 042754 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 15949 525252 525252 AEE=V1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-1 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0315 + + 15950 042755 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 15951 042756 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15952 777777 777777 AR1=V3 ;EXPECTED RESULT IN AC + 15953 042757 312 13 0 00 043777 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 15954 042760 003 13 0 00 037231 ER3 AC,37231 ;HIGH PRODUCT FAILED + 15955 525252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1 + 15956 042761 312 14 0 00 044234 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 15957 042762 004 14 0 00 037232 ER4 AC+1,37232 ;LOW PRODUCT FAILED + 15958 525252 525252 AEE=V1 ;INITIAL C(E) + 15959 042763 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 15960 042764 005 11 0 00 037233 ER5 E,37233 ;C(E) WAS CLOBBERED + 15961 042765 321 15 0 00 042753 JUMPL AC+2,F37230 ;LOOP ON ERROR SWITCH^ + 15962 ;LAST CASE DIFFERENT + 15963 + 15964 003724 ADR=ADR+1 + 15965 000042 WW=WW-1 + 15966 000002 XX=XX+XX + 15967 000001 ZZ=ZZ+1 + 15968 IFE XX, + 15969 IFE XX, + 15970 + 15971 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 15972 525252 525252 V1=N1 + 15973 652525 252524 V2=!1B0 + 15974 IFE WW, + 15975 IFL XX, + 15976 777777 777776 IFG XX,>!>>> + 15977 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 15978 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 15979 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 15980 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 15981 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 15982 + 15983 000002 F37240: AA1=XX ;INITIAL C(AC) + 15984 042766 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 15985 000000 AA2=0 ;INITIAL C(AC+1) + 15986 042767 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 15987 525252 525252 AEE=V1 ;INITIAL C(E) + 15988 042770 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 15989 042771 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 15990 777777 777776 AR1=V3 ;EXPECTED RESULT IN AC + 15991 042772 312 13 0 00 044044 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 15992 042773 003 13 0 00 037241 ER3 AC,37241 ;HIGH PRODUCT FAILED + 15993 652525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1 + 15994 042774 312 14 0 00 044235 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 15995 042775 004 14 0 00 037242 ER4 AC+1,37242 ;LOW PRODUCT FAILED + 15996 525252 525252 AEE=V1 ;INITIAL C(E) + 15997 042776 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 15998 042777 005 11 0 00 037243 ER5 E,37243 ;C(E) WAS CLOBBERED + 15999 043000 321 15 0 00 042766 JUMPL AC+2,F37240 ;LOOP ON ERROR SWITCH^ + 16000 ;LAST CASE DIFFERENT + 16001 + 16002 003725 ADR=ADR+1 + 16003 000041 WW=WW-1 + 16004 000004 XX=XX+XX +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-2 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0316 + + 16005 000002 ZZ=ZZ+1 + 16006 IFE XX, + 16007 IFE XX, + 16008 + 16009 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16010 525252 525252 V1=N1 + 16011 525252 525250 V2=!1B0 + 16012 IFE WW, + 16013 IFL XX, + 16014 777777 777775 IFG XX,>!>>> + 16015 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16016 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16017 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16018 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16019 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16020 + 16021 000004 F37250: AA1=XX ;INITIAL C(AC) + 16022 043001 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16023 000000 AA2=0 ;INITIAL C(AC+1) + 16024 043002 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16025 525252 525252 AEE=V1 ;INITIAL C(E) + 16026 043003 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16027 043004 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16028 777777 777775 AR1=V3 ;EXPECTED RESULT IN AC + 16029 043005 312 13 0 00 044045 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16030 043006 003 13 0 00 037251 ER3 AC,37251 ;HIGH PRODUCT FAILED + 16031 525252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16032 043007 312 14 0 00 044236 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16033 043010 004 14 0 00 037252 ER4 AC+1,37252 ;LOW PRODUCT FAILED + 16034 525252 525252 AEE=V1 ;INITIAL C(E) + 16035 043011 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16036 043012 005 11 0 00 037253 ER5 E,37253 ;C(E) WAS CLOBBERED + 16037 043013 321 15 0 00 043001 JUMPL AC+2,F37250 ;LOOP ON ERROR SWITCH^ + 16038 ;LAST CASE DIFFERENT + 16039 + 16040 003726 ADR=ADR+1 + 16041 000040 WW=WW-1 + 16042 000010 XX=XX+XX + 16043 000003 ZZ=ZZ+1 + 16044 IFE XX, + 16045 IFE XX, + 16046 + 16047 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16048 525252 525252 V1=N1 + 16049 652525 252520 V2=!1B0 + 16050 IFE WW, + 16051 IFL XX, + 16052 777777 777772 IFG XX,>!>>> + 16053 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16054 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16055 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16056 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16057 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16058 + 16059 000010 F37260: AA1=XX ;INITIAL C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-3 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0317 + + 16060 043014 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16061 000000 AA2=0 ;INITIAL C(AC+1) + 16062 043015 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16063 525252 525252 AEE=V1 ;INITIAL C(E) + 16064 043016 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16065 043017 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16066 777777 777772 AR1=V3 ;EXPECTED RESULT IN AC + 16067 043020 312 13 0 00 044124 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16068 043021 003 13 0 00 037261 ER3 AC,37261 ;HIGH PRODUCT FAILED + 16069 652525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16070 043022 312 14 0 00 044237 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16071 043023 004 14 0 00 037262 ER4 AC+1,37262 ;LOW PRODUCT FAILED + 16072 525252 525252 AEE=V1 ;INITIAL C(E) + 16073 043024 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16074 043025 005 11 0 00 037263 ER5 E,37263 ;C(E) WAS CLOBBERED + 16075 043026 321 15 0 00 043014 JUMPL AC+2,F37260 ;LOOP ON ERROR SWITCH^ + 16076 ;LAST CASE DIFFERENT + 16077 + 16078 003727 ADR=ADR+1 + 16079 000037 WW=WW-1 + 16080 000020 XX=XX+XX + 16081 000004 ZZ=ZZ+1 + 16082 IFE XX, + 16083 IFE XX, + 16084 + 16085 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16086 525252 525252 V1=N1 + 16087 525252 525240 V2=!1B0 + 16088 IFE WW, + 16089 IFL XX, + 16090 777777 777765 IFG XX,>!>>> + 16091 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16092 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16093 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16094 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16095 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16096 + 16097 000020 F37270: AA1=XX ;INITIAL C(AC) + 16098 043027 200 13 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16099 000000 AA2=0 ;INITIAL C(AC+1) + 16100 043030 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16101 525252 525252 AEE=V1 ;INITIAL C(E) + 16102 043031 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16103 043032 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16104 777777 777765 AR1=V3 ;EXPECTED RESULT IN AC + 16105 043033 312 13 0 00 044130 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16106 043034 003 13 0 00 037271 ER3 AC,37271 ;HIGH PRODUCT FAILED + 16107 525252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16108 043035 312 14 0 00 044240 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16109 043036 004 14 0 00 037272 ER4 AC+1,37272 ;LOW PRODUCT FAILED + 16110 525252 525252 AEE=V1 ;INITIAL C(E) + 16111 043037 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16112 043040 005 11 0 00 037273 ER5 E,37273 ;C(E) WAS CLOBBERED + 16113 043041 321 15 0 00 043027 JUMPL AC+2,F37270 ;LOOP ON ERROR SWITCH^ + 16114 ;LAST CASE DIFFERENT +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-4 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0318 + + 16115 + 16116 003730 ADR=ADR+1 + 16117 000036 WW=WW-1 + 16118 000040 XX=XX+XX + 16119 000005 ZZ=ZZ+1 + 16120 IFE XX, + 16121 IFE XX, + 16122 + 16123 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16124 525252 525252 V1=N1 + 16125 652525 252500 V2=!1B0 + 16126 IFE WW, + 16127 IFL XX, + 16128 777777 777752 IFG XX,>!>>> + 16129 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16130 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16131 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16132 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16133 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16134 + 16135 000040 F37300: AA1=XX ;INITIAL C(AC) + 16136 043042 200 13 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16137 000000 AA2=0 ;INITIAL C(AC+1) + 16138 043043 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16139 525252 525252 AEE=V1 ;INITIAL C(E) + 16140 043044 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16141 043045 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16142 777777 777752 AR1=V3 ;EXPECTED RESULT IN AC + 16143 043046 312 13 0 00 044241 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16144 043047 003 13 0 00 037301 ER3 AC,37301 ;HIGH PRODUCT FAILED + 16145 652525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16146 043050 312 14 0 00 044242 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16147 043051 004 14 0 00 037302 ER4 AC+1,37302 ;LOW PRODUCT FAILED + 16148 525252 525252 AEE=V1 ;INITIAL C(E) + 16149 043052 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16150 043053 005 11 0 00 037303 ER5 E,37303 ;C(E) WAS CLOBBERED + 16151 043054 321 15 0 00 043042 JUMPL AC+2,F37300 ;LOOP ON ERROR SWITCH^ + 16152 ;LAST CASE DIFFERENT + 16153 + 16154 003731 ADR=ADR+1 + 16155 000035 WW=WW-1 + 16156 000100 XX=XX+XX + 16157 000006 ZZ=ZZ+1 + 16158 IFE XX, + 16159 IFE XX, + 16160 + 16161 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16162 525252 525252 V1=N1 + 16163 525252 525200 V2=!1B0 + 16164 IFE WW, + 16165 IFL XX, + 16166 777777 777725 IFG XX,>!>>> + 16167 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16168 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16169 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-5 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0319 + + 16170 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16171 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16172 + 16173 000100 F37310: AA1=XX ;INITIAL C(AC) + 16174 043055 200 13 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16175 000000 AA2=0 ;INITIAL C(AC+1) + 16176 043056 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16177 525252 525252 AEE=V1 ;INITIAL C(E) + 16178 043057 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16179 043060 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16180 777777 777725 AR1=V3 ;EXPECTED RESULT IN AC + 16181 043061 312 13 0 00 044243 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16182 043062 003 13 0 00 037311 ER3 AC,37311 ;HIGH PRODUCT FAILED + 16183 525252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16184 043063 312 14 0 00 044244 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16185 043064 004 14 0 00 037312 ER4 AC+1,37312 ;LOW PRODUCT FAILED + 16186 525252 525252 AEE=V1 ;INITIAL C(E) + 16187 043065 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16188 043066 005 11 0 00 037313 ER5 E,37313 ;C(E) WAS CLOBBERED + 16189 043067 321 15 0 00 043055 JUMPL AC+2,F37310 ;LOOP ON ERROR SWITCH^ + 16190 ;LAST CASE DIFFERENT + 16191 + 16192 003732 ADR=ADR+1 + 16193 000034 WW=WW-1 + 16194 000200 XX=XX+XX + 16195 000007 ZZ=ZZ+1 + 16196 IFE XX, + 16197 IFE XX, + 16198 + 16199 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16200 525252 525252 V1=N1 + 16201 652525 252400 V2=!1B0 + 16202 IFE WW, + 16203 IFL XX, + 16204 777777 777652 IFG XX,>!>>> + 16205 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16207 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16208 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16210 + 16211 000200 F37320: AA1=XX ;INITIAL C(AC) + 16212 043070 200 13 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16213 000000 AA2=0 ;INITIAL C(AC+1) + 16214 043071 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16215 525252 525252 AEE=V1 ;INITIAL C(E) + 16216 043072 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16217 043073 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16218 777777 777652 AR1=V3 ;EXPECTED RESULT IN AC + 16219 043074 312 13 0 00 044245 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16220 043075 003 13 0 00 037321 ER3 AC,37321 ;HIGH PRODUCT FAILED + 16221 652525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16222 043076 312 14 0 00 044246 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16223 043077 004 14 0 00 037322 ER4 AC+1,37322 ;LOW PRODUCT FAILED + 16224 525252 525252 AEE=V1 ;INITIAL C(E) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-6 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0320 + + 16225 043100 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16226 043101 005 11 0 00 037323 ER5 E,37323 ;C(E) WAS CLOBBERED + 16227 043102 321 15 0 00 043070 JUMPL AC+2,F37320 ;LOOP ON ERROR SWITCH^ + 16228 ;LAST CASE DIFFERENT + 16229 + 16230 003733 ADR=ADR+1 + 16231 000033 WW=WW-1 + 16232 000400 XX=XX+XX + 16233 000010 ZZ=ZZ+1 + 16234 IFE XX, + 16235 IFE XX, + 16236 + 16237 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16238 525252 525252 V1=N1 + 16239 525252 525000 V2=!1B0 + 16240 IFE WW, + 16241 IFL XX, + 16242 777777 777525 IFG XX,>!>>> + 16243 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16244 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16245 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16246 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16247 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16248 + 16249 000400 F37330: AA1=XX ;INITIAL C(AC) + 16250 043103 200 13 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16251 000000 AA2=0 ;INITIAL C(AC+1) + 16252 043104 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16253 525252 525252 AEE=V1 ;INITIAL C(E) + 16254 043105 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16255 043106 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16256 777777 777525 AR1=V3 ;EXPECTED RESULT IN AC + 16257 043107 312 13 0 00 044247 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16258 043110 003 13 0 00 037331 ER3 AC,37331 ;HIGH PRODUCT FAILED + 16259 525252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16260 043111 312 14 0 00 044250 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16261 043112 004 14 0 00 037332 ER4 AC+1,37332 ;LOW PRODUCT FAILED + 16262 525252 525252 AEE=V1 ;INITIAL C(E) + 16263 043113 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16264 043114 005 11 0 00 037333 ER5 E,37333 ;C(E) WAS CLOBBERED + 16265 043115 321 15 0 00 043103 JUMPL AC+2,F37330 ;LOOP ON ERROR SWITCH^ + 16266 ;LAST CASE DIFFERENT + 16267 + 16268 003734 ADR=ADR+1 + 16269 000032 WW=WW-1 + 16270 001000 XX=XX+XX + 16271 000011 ZZ=ZZ+1 + 16272 IFE XX, + 16273 IFE XX, + 16274 + 16275 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16276 525252 525252 V1=N1 + 16277 652525 252000 V2=!1B0 + 16278 IFE WW, + 16279 IFL XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-7 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0321 + + 16280 777777 777252 IFG XX,>!>>> + 16281 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16282 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16283 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16284 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16285 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16286 + 16287 001000 F37340: AA1=XX ;INITIAL C(AC) + 16288 043116 200 13 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16289 000000 AA2=0 ;INITIAL C(AC+1) + 16290 043117 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16291 525252 525252 AEE=V1 ;INITIAL C(E) + 16292 043120 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16293 043121 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16294 777777 777252 AR1=V3 ;EXPECTED RESULT IN AC + 16295 043122 312 13 0 00 044251 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16296 043123 003 13 0 00 037341 ER3 AC,37341 ;HIGH PRODUCT FAILED + 16297 652525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16298 043124 312 14 0 00 044252 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16299 043125 004 14 0 00 037342 ER4 AC+1,37342 ;LOW PRODUCT FAILED + 16300 525252 525252 AEE=V1 ;INITIAL C(E) + 16301 043126 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16302 043127 005 11 0 00 037343 ER5 E,37343 ;C(E) WAS CLOBBERED + 16303 043130 321 15 0 00 043116 JUMPL AC+2,F37340 ;LOOP ON ERROR SWITCH^ + 16304 ;LAST CASE DIFFERENT + 16305 + 16306 003735 ADR=ADR+1 + 16307 000031 WW=WW-1 + 16308 002000 XX=XX+XX + 16309 000012 ZZ=ZZ+1 + 16310 IFE XX, + 16311 IFE XX, + 16312 + 16313 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16314 525252 525252 V1=N1 + 16315 525252 524000 V2=!1B0 + 16316 IFE WW, + 16317 IFL XX, + 16318 777777 776525 IFG XX,>!>>> + 16319 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16321 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16322 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16324 + 16325 002000 F37350: AA1=XX ;INITIAL C(AC) + 16326 043131 200 13 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16327 000000 AA2=0 ;INITIAL C(AC+1) + 16328 043132 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16329 525252 525252 AEE=V1 ;INITIAL C(E) + 16330 043133 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16331 043134 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16332 777777 776525 AR1=V3 ;EXPECTED RESULT IN AC + 16333 043135 312 13 0 00 044253 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16334 043136 003 13 0 00 037351 ER3 AC,37351 ;HIGH PRODUCT FAILED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-8 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0322 + + 16335 525252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16336 043137 312 14 0 00 044254 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16337 043140 004 14 0 00 037352 ER4 AC+1,37352 ;LOW PRODUCT FAILED + 16338 525252 525252 AEE=V1 ;INITIAL C(E) + 16339 043141 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16340 043142 005 11 0 00 037353 ER5 E,37353 ;C(E) WAS CLOBBERED + 16341 043143 321 15 0 00 043131 JUMPL AC+2,F37350 ;LOOP ON ERROR SWITCH^ + 16342 ;LAST CASE DIFFERENT + 16343 + 16344 003736 ADR=ADR+1 + 16345 000030 WW=WW-1 + 16346 004000 XX=XX+XX + 16347 000013 ZZ=ZZ+1 + 16348 IFE XX, + 16349 IFE XX, + 16350 + 16351 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16352 525252 525252 V1=N1 + 16353 652525 250000 V2=!1B0 + 16354 IFE WW, + 16355 IFL XX, + 16356 777777 775252 IFG XX,>!>>> + 16357 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16358 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16359 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16360 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16361 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16362 + 16363 004000 F37360: AA1=XX ;INITIAL C(AC) + 16364 043144 200 13 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16365 000000 AA2=0 ;INITIAL C(AC+1) + 16366 043145 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16367 525252 525252 AEE=V1 ;INITIAL C(E) + 16368 043146 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16369 043147 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16370 777777 775252 AR1=V3 ;EXPECTED RESULT IN AC + 16371 043150 312 13 0 00 044255 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16372 043151 003 13 0 00 037361 ER3 AC,37361 ;HIGH PRODUCT FAILED + 16373 652525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16374 043152 312 14 0 00 044256 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16375 043153 004 14 0 00 037362 ER4 AC+1,37362 ;LOW PRODUCT FAILED + 16376 525252 525252 AEE=V1 ;INITIAL C(E) + 16377 043154 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16378 043155 005 11 0 00 037363 ER5 E,37363 ;C(E) WAS CLOBBERED + 16379 043156 321 15 0 00 043144 JUMPL AC+2,F37360 ;LOOP ON ERROR SWITCH^ + 16380 ;LAST CASE DIFFERENT + 16381 + 16382 003737 ADR=ADR+1 + 16383 000027 WW=WW-1 + 16384 010000 XX=XX+XX + 16385 000014 ZZ=ZZ+1 + 16386 IFE XX, + 16387 IFE XX, + 16388 + 16389 ;MULTIPLY 1010...1010 BY A FLOATING 1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-9 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0323 + + 16390 525252 525252 V1=N1 + 16391 525252 520000 V2=!1B0 + 16392 IFE WW, + 16393 IFL XX, + 16394 777777 772525 IFG XX,>!>>> + 16395 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16397 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16398 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16400 + 16401 010000 F37370: AA1=XX ;INITIAL C(AC) + 16402 043157 200 13 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16403 000000 AA2=0 ;INITIAL C(AC+1) + 16404 043160 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16405 525252 525252 AEE=V1 ;INITIAL C(E) + 16406 043161 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16407 043162 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16408 777777 772525 AR1=V3 ;EXPECTED RESULT IN AC + 16409 043163 312 13 0 00 044257 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16410 043164 003 13 0 00 037371 ER3 AC,37371 ;HIGH PRODUCT FAILED + 16411 525252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16412 043165 312 14 0 00 044260 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16413 043166 004 14 0 00 037372 ER4 AC+1,37372 ;LOW PRODUCT FAILED + 16414 525252 525252 AEE=V1 ;INITIAL C(E) + 16415 043167 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16416 043170 005 11 0 00 037373 ER5 E,37373 ;C(E) WAS CLOBBERED + 16417 043171 321 15 0 00 043157 JUMPL AC+2,F37370 ;LOOP ON ERROR SWITCH^ + 16418 ;LAST CASE DIFFERENT + 16419 + 16420 003740 ADR=ADR+1 + 16421 000026 WW=WW-1 + 16422 020000 XX=XX+XX + 16423 000015 ZZ=ZZ+1 + 16424 IFE XX, + 16425 IFE XX, + 16426 + 16427 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16428 525252 525252 V1=N1 + 16429 652525 240000 V2=!1B0 + 16430 IFE WW, + 16431 IFL XX, + 16432 777777 765252 IFG XX,>!>>> + 16433 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16434 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16435 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16436 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16437 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16438 + 16439 020000 F37400: AA1=XX ;INITIAL C(AC) + 16440 043172 200 13 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16441 000000 AA2=0 ;INITIAL C(AC+1) + 16442 043173 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16443 525252 525252 AEE=V1 ;INITIAL C(E) + 16444 043174 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-10 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0324 + + 16445 043175 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16446 777777 765252 AR1=V3 ;EXPECTED RESULT IN AC + 16447 043176 312 13 0 00 044261 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16448 043177 003 13 0 00 037401 ER3 AC,37401 ;HIGH PRODUCT FAILED + 16449 652525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16450 043200 312 14 0 00 044262 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16451 043201 004 14 0 00 037402 ER4 AC+1,37402 ;LOW PRODUCT FAILED + 16452 525252 525252 AEE=V1 ;INITIAL C(E) + 16453 043202 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16454 043203 005 11 0 00 037403 ER5 E,37403 ;C(E) WAS CLOBBERED + 16455 043204 321 15 0 00 043172 JUMPL AC+2,F37400 ;LOOP ON ERROR SWITCH^ + 16456 ;LAST CASE DIFFERENT + 16457 + 16458 003741 ADR=ADR+1 + 16459 000025 WW=WW-1 + 16460 040000 XX=XX+XX + 16461 000016 ZZ=ZZ+1 + 16462 IFE XX, + 16463 IFE XX, + 16464 + 16465 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16466 525252 525252 V1=N1 + 16467 525252 500000 V2=!1B0 + 16468 IFE WW, + 16469 IFL XX, + 16470 777777 752525 IFG XX,>!>>> + 16471 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16472 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16473 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16474 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16475 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16476 + 16477 040000 F37410: AA1=XX ;INITIAL C(AC) + 16478 043205 200 13 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16479 000000 AA2=0 ;INITIAL C(AC+1) + 16480 043206 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16481 525252 525252 AEE=V1 ;INITIAL C(E) + 16482 043207 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16483 043210 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16484 777777 752525 AR1=V3 ;EXPECTED RESULT IN AC + 16485 043211 312 13 0 00 044263 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16486 043212 003 13 0 00 037411 ER3 AC,37411 ;HIGH PRODUCT FAILED + 16487 525252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16488 043213 312 14 0 00 044264 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16489 043214 004 14 0 00 037412 ER4 AC+1,37412 ;LOW PRODUCT FAILED + 16490 525252 525252 AEE=V1 ;INITIAL C(E) + 16491 043215 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16492 043216 005 11 0 00 037413 ER5 E,37413 ;C(E) WAS CLOBBERED + 16493 043217 321 15 0 00 043205 JUMPL AC+2,F37410 ;LOOP ON ERROR SWITCH^ + 16494 ;LAST CASE DIFFERENT + 16495 + 16496 003742 ADR=ADR+1 + 16497 000024 WW=WW-1 + 16498 100000 XX=XX+XX + 16499 000017 ZZ=ZZ+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-11 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0325 + + 16500 IFE XX, + 16501 IFE XX, + 16502 + 16503 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16504 525252 525252 V1=N1 + 16505 652525 200000 V2=!1B0 + 16506 IFE WW, + 16507 IFL XX, + 16508 777777 725252 IFG XX,>!>>> + 16509 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16511 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16512 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16514 + 16515 100000 F37420: AA1=XX ;INITIAL C(AC) + 16516 043220 200 13 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16517 000000 AA2=0 ;INITIAL C(AC+1) + 16518 043221 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16519 525252 525252 AEE=V1 ;INITIAL C(E) + 16520 043222 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16521 043223 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16522 777777 725252 AR1=V3 ;EXPECTED RESULT IN AC + 16523 043224 312 13 0 00 044265 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16524 043225 003 13 0 00 037421 ER3 AC,37421 ;HIGH PRODUCT FAILED + 16525 652525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16526 043226 312 14 0 00 044266 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16527 043227 004 14 0 00 037422 ER4 AC+1,37422 ;LOW PRODUCT FAILED + 16528 525252 525252 AEE=V1 ;INITIAL C(E) + 16529 043230 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16530 043231 005 11 0 00 037423 ER5 E,37423 ;C(E) WAS CLOBBERED + 16531 043232 321 15 0 00 043220 JUMPL AC+2,F37420 ;LOOP ON ERROR SWITCH^ + 16532 ;LAST CASE DIFFERENT + 16533 + 16534 003743 ADR=ADR+1 + 16535 000023 WW=WW-1 + 16536 200000 XX=XX+XX + 16537 000020 ZZ=ZZ+1 + 16538 IFE XX, + 16539 IFE XX, + 16540 + 16541 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16542 525252 525252 V1=N1 + 16543 525252 400000 V2=!1B0 + 16544 IFE WW, + 16545 IFL XX, + 16546 777777 652525 IFG XX,>!>>> + 16547 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16548 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16549 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16550 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16551 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16552 + 16553 200000 F37430: AA1=XX ;INITIAL C(AC) + 16554 043233 200 13 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-12 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0326 + + 16555 000000 AA2=0 ;INITIAL C(AC+1) + 16556 043234 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16557 525252 525252 AEE=V1 ;INITIAL C(E) + 16558 043235 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16559 043236 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16560 777777 652525 AR1=V3 ;EXPECTED RESULT IN AC + 16561 043237 312 13 0 00 044267 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16562 043240 003 13 0 00 037431 ER3 AC,37431 ;HIGH PRODUCT FAILED + 16563 525252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16564 043241 312 14 0 00 044270 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16565 043242 004 14 0 00 037432 ER4 AC+1,37432 ;LOW PRODUCT FAILED + 16566 525252 525252 AEE=V1 ;INITIAL C(E) + 16567 043243 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16568 043244 005 11 0 00 037433 ER5 E,37433 ;C(E) WAS CLOBBERED + 16569 043245 321 15 0 00 043233 JUMPL AC+2,F37430 ;LOOP ON ERROR SWITCH^ + 16570 ;LAST CASE DIFFERENT + 16571 + 16572 003744 ADR=ADR+1 + 16573 000022 WW=WW-1 + 16574 400000 XX=XX+XX + 16575 000021 ZZ=ZZ+1 + 16576 IFE XX, + 16577 IFE XX, + 16578 + 16579 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16580 525252 525252 V1=N1 + 16581 652525 000000 V2=!1B0 + 16582 IFE WW, + 16583 IFL XX, + 16584 777777 525252 IFG XX,>!>>> + 16585 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16586 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16587 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16588 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16589 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16590 + 16591 400000 F37440: AA1=XX ;INITIAL C(AC) + 16592 043246 200 13 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16593 000000 AA2=0 ;INITIAL C(AC+1) + 16594 043247 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16595 525252 525252 AEE=V1 ;INITIAL C(E) + 16596 043250 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16597 043251 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16598 777777 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16599 043252 312 13 0 00 044271 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16600 043253 003 13 0 00 037441 ER3 AC,37441 ;HIGH PRODUCT FAILED + 16601 652525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16602 043254 312 14 0 00 044272 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16603 043255 004 14 0 00 037442 ER4 AC+1,37442 ;LOW PRODUCT FAILED + 16604 525252 525252 AEE=V1 ;INITIAL C(E) + 16605 043256 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16606 043257 005 11 0 00 037443 ER5 E,37443 ;C(E) WAS CLOBBERED + 16607 043260 321 15 0 00 043246 JUMPL AC+2,F37440 ;LOOP ON ERROR SWITCH^ + 16608 ;LAST CASE DIFFERENT + 16609 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-13 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0327 + + 16610 003745 ADR=ADR+1 + 16611 000021 WW=WW-1 + 16612 000001 000000 XX=XX+XX + 16613 000022 ZZ=ZZ+1 + 16614 IFE XX, + 16615 IFE XX, + 16616 + 16617 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16618 525252 525252 V1=N1 + 16619 525252 000000 V2=!1B0 + 16620 IFE WW, + 16621 IFL XX, + 16622 777777 252525 IFG XX,>!>>> + 16623 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16625 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16626 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16628 + 16629 000001 000000 F37450: AA1=XX ;INITIAL C(AC) + 16630 043261 200 13 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16631 000000 AA2=0 ;INITIAL C(AC+1) + 16632 043262 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16633 525252 525252 AEE=V1 ;INITIAL C(E) + 16634 043263 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16635 043264 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16636 777777 252525 AR1=V3 ;EXPECTED RESULT IN AC + 16637 043265 312 13 0 00 044273 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16638 043266 003 13 0 00 037451 ER3 AC,37451 ;HIGH PRODUCT FAILED + 16639 525252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16640 043267 312 14 0 00 044274 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16641 043270 004 14 0 00 037452 ER4 AC+1,37452 ;LOW PRODUCT FAILED + 16642 525252 525252 AEE=V1 ;INITIAL C(E) + 16643 043271 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16644 043272 005 11 0 00 037453 ER5 E,37453 ;C(E) WAS CLOBBERED + 16645 043273 321 15 0 00 043261 JUMPL AC+2,F37450 ;LOOP ON ERROR SWITCH^ + 16646 ;LAST CASE DIFFERENT + 16647 + 16648 003746 ADR=ADR+1 + 16649 000020 WW=WW-1 + 16650 000002 000000 XX=XX+XX + 16651 000023 ZZ=ZZ+1 + 16652 IFE XX, + 16653 IFE XX, + 16654 + 16655 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16656 525252 525252 V1=N1 + 16657 652524 000000 V2=!1B0 + 16658 IFE WW, + 16659 IFL XX, + 16660 777776 525252 IFG XX,>!>>> + 16661 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16662 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16663 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16664 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-14 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0328 + + 16665 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16666 + 16667 000002 000000 F37460: AA1=XX ;INITIAL C(AC) + 16668 043274 200 13 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16669 000000 AA2=0 ;INITIAL C(AC+1) + 16670 043275 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16671 525252 525252 AEE=V1 ;INITIAL C(E) + 16672 043276 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16673 043277 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16674 777776 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16675 043300 312 13 0 00 044275 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16676 043301 003 13 0 00 037461 ER3 AC,37461 ;HIGH PRODUCT FAILED + 16677 652524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16678 043302 312 14 0 00 044276 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16679 043303 004 14 0 00 037462 ER4 AC+1,37462 ;LOW PRODUCT FAILED + 16680 525252 525252 AEE=V1 ;INITIAL C(E) + 16681 043304 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16682 043305 005 11 0 00 037463 ER5 E,37463 ;C(E) WAS CLOBBERED + 16683 043306 321 15 0 00 043274 JUMPL AC+2,F37460 ;LOOP ON ERROR SWITCH^ + 16684 ;LAST CASE DIFFERENT + 16685 + 16686 003747 ADR=ADR+1 + 16687 000017 WW=WW-1 + 16688 000004 000000 XX=XX+XX + 16689 000024 ZZ=ZZ+1 + 16690 IFE XX, + 16691 IFE XX, + 16692 + 16693 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16694 525252 525252 V1=N1 + 16695 525250 000000 V2=!1B0 + 16696 IFE WW, + 16697 IFL XX, + 16698 777775 252525 IFG XX,>!>>> + 16699 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16701 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16702 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16704 + 16705 000004 000000 F37470: AA1=XX ;INITIAL C(AC) + 16706 043307 200 13 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16707 000000 AA2=0 ;INITIAL C(AC+1) + 16708 043310 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16709 525252 525252 AEE=V1 ;INITIAL C(E) + 16710 043311 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16711 043312 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16712 777775 252525 AR1=V3 ;EXPECTED RESULT IN AC + 16713 043313 312 13 0 00 044277 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16714 043314 003 13 0 00 037471 ER3 AC,37471 ;HIGH PRODUCT FAILED + 16715 525250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16716 043315 312 14 0 00 044300 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16717 043316 004 14 0 00 037472 ER4 AC+1,37472 ;LOW PRODUCT FAILED + 16718 525252 525252 AEE=V1 ;INITIAL C(E) + 16719 043317 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-15 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0329 + + 16720 043320 005 11 0 00 037473 ER5 E,37473 ;C(E) WAS CLOBBERED + 16721 043321 321 15 0 00 043307 JUMPL AC+2,F37470 ;LOOP ON ERROR SWITCH^ + 16722 ;LAST CASE DIFFERENT + 16723 + 16724 003750 ADR=ADR+1 + 16725 000016 WW=WW-1 + 16726 000010 000000 XX=XX+XX + 16727 000025 ZZ=ZZ+1 + 16728 IFE XX, + 16729 IFE XX, + 16730 + 16731 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16732 525252 525252 V1=N1 + 16733 652520 000000 V2=!1B0 + 16734 IFE WW, + 16735 IFL XX, + 16736 777772 525252 IFG XX,>!>>> + 16737 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16739 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16740 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16742 + 16743 000010 000000 F37500: AA1=XX ;INITIAL C(AC) + 16744 043322 200 13 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16745 000000 AA2=0 ;INITIAL C(AC+1) + 16746 043323 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16747 525252 525252 AEE=V1 ;INITIAL C(E) + 16748 043324 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16749 043325 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16750 777772 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16751 043326 312 13 0 00 044301 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16752 043327 003 13 0 00 037501 ER3 AC,37501 ;HIGH PRODUCT FAILED + 16753 652520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16754 043330 312 14 0 00 044302 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16755 043331 004 14 0 00 037502 ER4 AC+1,37502 ;LOW PRODUCT FAILED + 16756 525252 525252 AEE=V1 ;INITIAL C(E) + 16757 043332 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16758 043333 005 11 0 00 037503 ER5 E,37503 ;C(E) WAS CLOBBERED + 16759 043334 321 15 0 00 043322 JUMPL AC+2,F37500 ;LOOP ON ERROR SWITCH^ + 16760 ;LAST CASE DIFFERENT + 16761 + 16762 003751 ADR=ADR+1 + 16763 000015 WW=WW-1 + 16764 000020 000000 XX=XX+XX + 16765 000026 ZZ=ZZ+1 + 16766 IFE XX, + 16767 IFE XX, + 16768 + 16769 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16770 525252 525252 V1=N1 + 16771 525240 000000 V2=!1B0 + 16772 IFE WW, + 16773 IFL XX, + 16774 777765 252525 IFG XX,>!>>> +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-16 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0330 + + 16775 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16776 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16777 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16778 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16779 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16780 + 16781 000020 000000 F37510: AA1=XX ;INITIAL C(AC) + 16782 043335 200 13 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16783 000000 AA2=0 ;INITIAL C(AC+1) + 16784 043336 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16785 525252 525252 AEE=V1 ;INITIAL C(E) + 16786 043337 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16787 043340 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16788 777765 252525 AR1=V3 ;EXPECTED RESULT IN AC + 16789 043341 312 13 0 00 044303 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16790 043342 003 13 0 00 037511 ER3 AC,37511 ;HIGH PRODUCT FAILED + 16791 525240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16792 043343 312 14 0 00 044304 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16793 043344 004 14 0 00 037512 ER4 AC+1,37512 ;LOW PRODUCT FAILED + 16794 525252 525252 AEE=V1 ;INITIAL C(E) + 16795 043345 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16796 043346 005 11 0 00 037513 ER5 E,37513 ;C(E) WAS CLOBBERED + 16797 043347 321 15 0 00 043335 JUMPL AC+2,F37510 ;LOOP ON ERROR SWITCH^ + 16798 ;LAST CASE DIFFERENT + 16799 + 16800 003752 ADR=ADR+1 + 16801 000014 WW=WW-1 + 16802 000040 000000 XX=XX+XX + 16803 000027 ZZ=ZZ+1 + 16804 IFE XX, + 16805 IFE XX, + 16806 + 16807 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16808 525252 525252 V1=N1 + 16809 652500 000000 V2=!1B0 + 16810 IFE WW, + 16811 IFL XX, + 16812 777752 525252 IFG XX,>!>>> + 16813 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16815 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16816 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16818 + 16819 000040 000000 F37520: AA1=XX ;INITIAL C(AC) + 16820 043350 200 13 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16821 000000 AA2=0 ;INITIAL C(AC+1) + 16822 043351 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16823 525252 525252 AEE=V1 ;INITIAL C(E) + 16824 043352 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16825 043353 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16826 777752 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16827 043354 312 13 0 00 044305 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16828 043355 003 13 0 00 037521 ER3 AC,37521 ;HIGH PRODUCT FAILED + 16829 652500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-17 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0331 + + 16830 043356 312 14 0 00 044306 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16831 043357 004 14 0 00 037522 ER4 AC+1,37522 ;LOW PRODUCT FAILED + 16832 525252 525252 AEE=V1 ;INITIAL C(E) + 16833 043360 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16834 043361 005 11 0 00 037523 ER5 E,37523 ;C(E) WAS CLOBBERED + 16835 043362 321 15 0 00 043350 JUMPL AC+2,F37520 ;LOOP ON ERROR SWITCH^ + 16836 ;LAST CASE DIFFERENT + 16837 + 16838 003753 ADR=ADR+1 + 16839 000013 WW=WW-1 + 16840 000100 000000 XX=XX+XX + 16841 000030 ZZ=ZZ+1 + 16842 IFE XX, + 16843 IFE XX, + 16844 + 16845 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16846 525252 525252 V1=N1 + 16847 525200 000000 V2=!1B0 + 16848 IFE WW, + 16849 IFL XX, + 16850 777725 252525 IFG XX,>!>>> + 16851 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16852 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16853 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16854 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16855 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16856 + 16857 000100 000000 F37530: AA1=XX ;INITIAL C(AC) + 16858 043363 200 13 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16859 000000 AA2=0 ;INITIAL C(AC+1) + 16860 043364 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16861 525252 525252 AEE=V1 ;INITIAL C(E) + 16862 043365 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16863 043366 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16864 777725 252525 AR1=V3 ;EXPECTED RESULT IN AC + 16865 043367 312 13 0 00 044307 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16866 043370 003 13 0 00 037531 ER3 AC,37531 ;HIGH PRODUCT FAILED + 16867 525200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16868 043371 312 14 0 00 044310 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16869 043372 004 14 0 00 037532 ER4 AC+1,37532 ;LOW PRODUCT FAILED + 16870 525252 525252 AEE=V1 ;INITIAL C(E) + 16871 043373 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16872 043374 005 11 0 00 037533 ER5 E,37533 ;C(E) WAS CLOBBERED + 16873 043375 321 15 0 00 043363 JUMPL AC+2,F37530 ;LOOP ON ERROR SWITCH^ + 16874 ;LAST CASE DIFFERENT + 16875 + 16876 003754 ADR=ADR+1 + 16877 000012 WW=WW-1 + 16878 000200 000000 XX=XX+XX + 16879 000031 ZZ=ZZ+1 + 16880 IFE XX, + 16881 IFE XX, + 16882 + 16883 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16884 525252 525252 V1=N1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-18 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0332 + + 16885 652400 000000 V2=!1B0 + 16886 IFE WW, + 16887 IFL XX, + 16888 777652 525252 IFG XX,>!>>> + 16889 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16890 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16891 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16892 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16893 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16894 + 16895 000200 000000 F37540: AA1=XX ;INITIAL C(AC) + 16896 043376 200 13 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16897 000000 AA2=0 ;INITIAL C(AC+1) + 16898 043377 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16899 525252 525252 AEE=V1 ;INITIAL C(E) + 16900 043400 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16901 043401 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16902 777652 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16903 043402 312 13 0 00 044311 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16904 043403 003 13 0 00 037541 ER3 AC,37541 ;HIGH PRODUCT FAILED + 16905 652400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16906 043404 312 14 0 00 044312 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16907 043405 004 14 0 00 037542 ER4 AC+1,37542 ;LOW PRODUCT FAILED + 16908 525252 525252 AEE=V1 ;INITIAL C(E) + 16909 043406 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16910 043407 005 11 0 00 037543 ER5 E,37543 ;C(E) WAS CLOBBERED + 16911 043410 321 15 0 00 043376 JUMPL AC+2,F37540 ;LOOP ON ERROR SWITCH^ + 16912 ;LAST CASE DIFFERENT + 16913 + 16914 003755 ADR=ADR+1 + 16915 000011 WW=WW-1 + 16916 000400 000000 XX=XX+XX + 16917 000032 ZZ=ZZ+1 + 16918 IFE XX, + 16919 IFE XX, + 16920 + 16921 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16922 525252 525252 V1=N1 + 16923 525000 000000 V2=!1B0 + 16924 IFE WW, + 16925 IFL XX, + 16926 777525 252525 IFG XX,>!>>> + 16927 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16928 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16929 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16930 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16931 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16932 + 16933 000400 000000 F37550: AA1=XX ;INITIAL C(AC) + 16934 043411 200 13 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16935 000000 AA2=0 ;INITIAL C(AC+1) + 16936 043412 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16937 525252 525252 AEE=V1 ;INITIAL C(E) + 16938 043413 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16939 043414 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-19 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0333 + + 16940 777525 252525 AR1=V3 ;EXPECTED RESULT IN AC + 16941 043415 312 13 0 00 044313 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16942 043416 003 13 0 00 037551 ER3 AC,37551 ;HIGH PRODUCT FAILED + 16943 525000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16944 043417 312 14 0 00 044314 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16945 043420 004 14 0 00 037552 ER4 AC+1,37552 ;LOW PRODUCT FAILED + 16946 525252 525252 AEE=V1 ;INITIAL C(E) + 16947 043421 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16948 043422 005 11 0 00 037553 ER5 E,37553 ;C(E) WAS CLOBBERED + 16949 043423 321 15 0 00 043411 JUMPL AC+2,F37550 ;LOOP ON ERROR SWITCH^ + 16950 ;LAST CASE DIFFERENT + 16951 + 16952 003756 ADR=ADR+1 + 16953 000010 WW=WW-1 + 16954 001000 000000 XX=XX+XX + 16955 000033 ZZ=ZZ+1 + 16956 IFE XX, + 16957 IFE XX, + 16958 + 16959 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16960 525252 525252 V1=N1 + 16961 652000 000000 V2=!1B0 + 16962 IFE WW, + 16963 IFL XX, + 16964 777252 525252 IFG XX,>!>>> + 16965 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 16966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 16967 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 16968 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 16969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 16970 + 16971 001000 000000 F37560: AA1=XX ;INITIAL C(AC) + 16972 043424 200 13 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 16973 000000 AA2=0 ;INITIAL C(AC+1) + 16974 043425 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 16975 525252 525252 AEE=V1 ;INITIAL C(E) + 16976 043426 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 16977 043427 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 16978 777252 525252 AR1=V3 ;EXPECTED RESULT IN AC + 16979 043430 312 13 0 00 044315 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 16980 043431 003 13 0 00 037561 ER3 AC,37561 ;HIGH PRODUCT FAILED + 16981 652000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 16982 043432 312 14 0 00 044316 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 16983 043433 004 14 0 00 037562 ER4 AC+1,37562 ;LOW PRODUCT FAILED + 16984 525252 525252 AEE=V1 ;INITIAL C(E) + 16985 043434 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 16986 043435 005 11 0 00 037563 ER5 E,37563 ;C(E) WAS CLOBBERED + 16987 043436 321 15 0 00 043424 JUMPL AC+2,F37560 ;LOOP ON ERROR SWITCH^ + 16988 ;LAST CASE DIFFERENT + 16989 + 16990 003757 ADR=ADR+1 + 16991 000007 WW=WW-1 + 16992 002000 000000 XX=XX+XX + 16993 000034 ZZ=ZZ+1 + 16994 IFE XX, +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-20 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0334 + + 16995 IFE XX, + 16996 + 16997 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 16998 525252 525252 V1=N1 + 16999 524000 000000 V2=!1B0 + 17000 IFE WW, + 17001 IFL XX, + 17002 776525 252525 IFG XX,>!>>> + 17003 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17005 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17006 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17008 + 17009 002000 000000 F37570: AA1=XX ;INITIAL C(AC) + 17010 043437 200 13 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17011 000000 AA2=0 ;INITIAL C(AC+1) + 17012 043440 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17013 525252 525252 AEE=V1 ;INITIAL C(E) + 17014 043441 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17015 043442 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17016 776525 252525 AR1=V3 ;EXPECTED RESULT IN AC + 17017 043443 312 13 0 00 044317 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17018 043444 003 13 0 00 037571 ER3 AC,37571 ;HIGH PRODUCT FAILED + 17019 524000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17020 043445 312 14 0 00 044320 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17021 043446 004 14 0 00 037572 ER4 AC+1,37572 ;LOW PRODUCT FAILED + 17022 525252 525252 AEE=V1 ;INITIAL C(E) + 17023 043447 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17024 043450 005 11 0 00 037573 ER5 E,37573 ;C(E) WAS CLOBBERED + 17025 043451 321 15 0 00 043437 JUMPL AC+2,F37570 ;LOOP ON ERROR SWITCH^ + 17026 ;LAST CASE DIFFERENT + 17027 + 17028 003760 ADR=ADR+1 + 17029 000006 WW=WW-1 + 17030 004000 000000 XX=XX+XX + 17031 000035 ZZ=ZZ+1 + 17032 IFE XX, + 17033 IFE XX, + 17034 + 17035 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17036 525252 525252 V1=N1 + 17037 650000 000000 V2=!1B0 + 17038 IFE WW, + 17039 IFL XX, + 17040 775252 525252 IFG XX,>!>>> + 17041 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17042 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17043 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17044 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17045 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17046 + 17047 004000 000000 F37600: AA1=XX ;INITIAL C(AC) + 17048 043452 200 13 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17049 000000 AA2=0 ;INITIAL C(AC+1) +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0335 + + 17050 043453 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17051 525252 525252 AEE=V1 ;INITIAL C(E) + 17052 043454 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17053 043455 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17054 775252 525252 AR1=V3 ;EXPECTED RESULT IN AC + 17055 043456 312 13 0 00 044321 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17056 043457 003 13 0 00 037601 ER3 AC,37601 ;HIGH PRODUCT FAILED + 17057 650000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17058 043460 312 14 0 00 044322 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17059 043461 004 14 0 00 037602 ER4 AC+1,37602 ;LOW PRODUCT FAILED + 17060 525252 525252 AEE=V1 ;INITIAL C(E) + 17061 043462 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17062 043463 005 11 0 00 037603 ER5 E,37603 ;C(E) WAS CLOBBERED + 17063 043464 321 15 0 00 043452 JUMPL AC+2,F37600 ;LOOP ON ERROR SWITCH^ + 17064 ;LAST CASE DIFFERENT + 17065 + 17066 003761 ADR=ADR+1 + 17067 000005 WW=WW-1 + 17068 010000 000000 XX=XX+XX + 17069 000036 ZZ=ZZ+1 + 17070 IFE XX, + 17071 IFE XX, + 17072 + 17073 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17074 525252 525252 V1=N1 + 17075 520000 000000 V2=!1B0 + 17076 IFE WW, + 17077 IFL XX, + 17078 772525 252525 IFG XX,>!>>> + 17079 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17080 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17081 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17082 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17083 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17084 + 17085 010000 000000 F37610: AA1=XX ;INITIAL C(AC) + 17086 043465 200 13 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17087 000000 AA2=0 ;INITIAL C(AC+1) + 17088 043466 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17089 525252 525252 AEE=V1 ;INITIAL C(E) + 17090 043467 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17091 043470 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17092 772525 252525 AR1=V3 ;EXPECTED RESULT IN AC + 17093 043471 312 13 0 00 044323 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17094 043472 003 13 0 00 037611 ER3 AC,37611 ;HIGH PRODUCT FAILED + 17095 520000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17096 043473 312 14 0 00 044324 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17097 043474 004 14 0 00 037612 ER4 AC+1,37612 ;LOW PRODUCT FAILED + 17098 525252 525252 AEE=V1 ;INITIAL C(E) + 17099 043475 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17100 043476 005 11 0 00 037613 ER5 E,37613 ;C(E) WAS CLOBBERED + 17101 043477 321 15 0 00 043465 JUMPL AC+2,F37610 ;LOOP ON ERROR SWITCH^ + 17102 ;LAST CASE DIFFERENT + 17103 + 17104 003762 ADR=ADR+1 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-22 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0336 + + 17105 000004 WW=WW-1 + 17106 020000 000000 XX=XX+XX + 17107 000037 ZZ=ZZ+1 + 17108 IFE XX, + 17109 IFE XX, + 17110 + 17111 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17112 525252 525252 V1=N1 + 17113 640000 000000 V2=!1B0 + 17114 IFE WW, + 17115 IFL XX, + 17116 765252 525252 IFG XX,>!>>> + 17117 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17119 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17120 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17122 + 17123 020000 000000 F37620: AA1=XX ;INITIAL C(AC) + 17124 043500 200 13 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17125 000000 AA2=0 ;INITIAL C(AC+1) + 17126 043501 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17127 525252 525252 AEE=V1 ;INITIAL C(E) + 17128 043502 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17129 043503 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17130 765252 525252 AR1=V3 ;EXPECTED RESULT IN AC + 17131 043504 312 13 0 00 044325 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17132 043505 003 13 0 00 037621 ER3 AC,37621 ;HIGH PRODUCT FAILED + 17133 640000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17134 043506 312 14 0 00 044326 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17135 043507 004 14 0 00 037622 ER4 AC+1,37622 ;LOW PRODUCT FAILED + 17136 525252 525252 AEE=V1 ;INITIAL C(E) + 17137 043510 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17138 043511 005 11 0 00 037623 ER5 E,37623 ;C(E) WAS CLOBBERED + 17139 043512 321 15 0 00 043500 JUMPL AC+2,F37620 ;LOOP ON ERROR SWITCH^ + 17140 ;LAST CASE DIFFERENT + 17141 + 17142 003763 ADR=ADR+1 + 17143 000003 WW=WW-1 + 17144 040000 000000 XX=XX+XX + 17145 000040 ZZ=ZZ+1 + 17146 IFE XX, + 17147 IFE XX, + 17148 + 17149 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17150 525252 525252 V1=N1 + 17151 500000 000000 V2=!1B0 + 17152 IFE WW, + 17153 IFL XX, + 17154 752525 252525 IFG XX,>!>>> + 17155 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17156 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17157 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17158 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17159 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-23 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0337 + + 17160 + 17161 040000 000000 F37630: AA1=XX ;INITIAL C(AC) + 17162 043513 200 13 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17163 000000 AA2=0 ;INITIAL C(AC+1) + 17164 043514 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17165 525252 525252 AEE=V1 ;INITIAL C(E) + 17166 043515 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17167 043516 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17168 752525 252525 AR1=V3 ;EXPECTED RESULT IN AC + 17169 043517 312 13 0 00 044327 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17170 043520 003 13 0 00 037631 ER3 AC,37631 ;HIGH PRODUCT FAILED + 17171 500000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17172 043521 312 14 0 00 044330 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17173 043522 004 14 0 00 037632 ER4 AC+1,37632 ;LOW PRODUCT FAILED + 17174 525252 525252 AEE=V1 ;INITIAL C(E) + 17175 043523 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17176 043524 005 11 0 00 037633 ER5 E,37633 ;C(E) WAS CLOBBERED + 17177 043525 321 15 0 00 043513 JUMPL AC+2,F37630 ;LOOP ON ERROR SWITCH^ + 17178 ;LAST CASE DIFFERENT + 17179 + 17180 003764 ADR=ADR+1 + 17181 000002 WW=WW-1 + 17182 100000 000000 XX=XX+XX + 17183 000041 ZZ=ZZ+1 + 17184 IFE XX, + 17185 IFE XX, + 17186 + 17187 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17188 525252 525252 V1=N1 + 17189 600000 000000 V2=!1B0 + 17190 IFE WW, + 17191 IFL XX, + 17192 725252 525252 IFG XX,>!>>> + 17193 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17194 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17195 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17196 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17197 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17198 + 17199 100000 000000 F37640: AA1=XX ;INITIAL C(AC) + 17200 043526 200 13 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17201 000000 AA2=0 ;INITIAL C(AC+1) + 17202 043527 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17203 525252 525252 AEE=V1 ;INITIAL C(E) + 17204 043530 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17205 043531 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17206 725252 525252 AR1=V3 ;EXPECTED RESULT IN AC + 17207 043532 312 13 0 00 044331 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17208 043533 003 13 0 00 037641 ER3 AC,37641 ;HIGH PRODUCT FAILED + 17209 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17210 043534 312 14 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17211 043535 004 14 0 00 037642 ER4 AC+1,37642 ;LOW PRODUCT FAILED + 17212 525252 525252 AEE=V1 ;INITIAL C(E) + 17213 043536 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17214 043537 005 11 0 00 037643 ER5 E,37643 ;C(E) WAS CLOBBERED +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-24 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0338 + + 17215 043540 321 15 0 00 043526 JUMPL AC+2,F37640 ;LOOP ON ERROR SWITCH^ + 17216 ;LAST CASE DIFFERENT + 17217 + 17218 003765 ADR=ADR+1 + 17219 000001 WW=WW-1 + 17220 200000 000000 XX=XX+XX + 17221 000042 ZZ=ZZ+1 + 17222 IFE XX, + 17223 IFE XX, + 17224 + 17225 ;MULTIPLY 1010...1010 BY A FLOATING 1 + 17226 525252 525252 V1=N1 + 17227 400000 000000 V2=!1B0 + 17228 IFE WW, + 17229 IFL XX, + 17230 652525 252525 IFG XX,>!>>> + 17231 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17232 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17233 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17234 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17235 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17236 + 17237 200000 000000 F37650: AA1=XX ;INITIAL C(AC) + 17238 043541 200 13 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17239 000000 AA2=0 ;INITIAL C(AC+1) + 17240 043542 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17241 525252 525252 AEE=V1 ;INITIAL C(E) + 17242 043543 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17243 043544 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17244 652525 252525 AR1=V3 ;EXPECTED RESULT IN AC + 17245 043545 312 13 0 00 044332 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17246 043546 003 13 0 00 037651 ER3 AC,37651 ;HIGH PRODUCT FAILED + 17247 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17248 043547 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17249 043550 004 14 0 00 037652 ER4 AC+1,37652 ;LOW PRODUCT FAILED + 17250 525252 525252 AEE=V1 ;INITIAL C(E) + 17251 043551 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17252 043552 005 11 0 00 037653 ER5 E,37653 ;C(E) WAS CLOBBERED + 17253 043553 321 15 0 00 043541 JUMPL AC+2,F37650 ;LOOP ON ERROR SWITCH^ + 17254 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 21 +DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0339 + + 17255 ;MULTIPLY A 1010...1010 BY 400000,,0 + 17256 003766 ADR=ADR+1 + 17257 400000 000000 XX=400000000000 + 17258 525252 525252 V1=525252525252 + 17259 525252 525252 V3=525252525252 + 17260 400000 000000 V2=400000000000 + 17261 + 17262 MOP1 (\ADR,XX,0,V1,V3,V2)^ + 17263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND + 17264 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 + 17265 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. + 17266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED + 17267 + 17268 400000 000000 F37660: AA1=XX ;INITIAL C(AC) + 17269 043554 200 13 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) + 17270 000000 AA2=0 ;INITIAL C(AC+1) + 17271 043555 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 + 17272 525252 525252 AEE=V1 ;INITIAL C(E) + 17273 043556 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) + 17274 043557 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) + 17275 525252 525252 AR1=V3 ;EXPECTED RESULT IN AC + 17276 043560 312 13 0 00 044234 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? + 17277 043561 003 13 0 00 037661 ER3 AC,37661 ;HIGH PRODUCT FAILED + 17278 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 + 17279 043562 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? + 17280 043563 004 14 0 00 037662 ER4 AC+1,37662 ;LOW PRODUCT FAILED + 17281 525252 525252 AEE=V1 ;INITIAL C(E) + 17282 043564 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? + 17283 043565 005 11 0 00 037663 ER5 E,37663 ;C(E) WAS CLOBBERED + 17284 043566 321 15 0 00 043554 JUMPL AC+2,F37660 ;LOOP ON ERROR SWITCH^ + 17285 043567 254 00 0 00 030057 LAST1: JRST BEGEND +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0340 + + 17286 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + 17287 + 17288 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + 17289 + 17290 043570 202 00 0 00 044452 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + 17291 IFDEF EXCASB,> + 17298 043577 202 01 0 00 044453 MOVEM 1,%ERAC1# ;SAVE AC1 + 17299 043600 202 02 0 00 044454 MOVEM 2,%ERAC2# ;SAVE AC2 + 17300 043601 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS + 17301 043602 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 17302 043603 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + 17303 043604 350 00 0 00 044447 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + 17304 043605 200 00 0 00 044447 MOVE 0,MICNT + 17305 043606 504 00 0 00 030114 HRL 0,$SVUPC + 17306 043607 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 + 17307 043610 332 00 0 00 030037 SKIPE USER ;AND NOT USER? + 17308 043611 254 00 0 00 043613 JRST .+2 + 17309 043612 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + 17310 043613 402 00 0 00 044450 SETZM PROCED# ;CLEAR PROCEED FLAG + 17311 043614 037 10 0 00 000002 SWITCH + 17312 043615 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? + 17313 043616 254 00 0 00 043731 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + 17314 043617 200 01 0 00 030113 MOVE 1,$SVUUO + 17315 043620 242 01 0 00 777745 LSH 1,-^D27 + 17316 043621 202 01 0 00 044451 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + 17317 043622 200 00 0 00 044452 MOVE 0,%ERAC0 + 17318 043623 200 01 0 00 044453 MOVE 1,%ERAC1 + 17319 043624 335 00 1 00 044446 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + 17320 043625 254 00 0 00 043771 JRST %ERRS4 ;NO, SEE IF PRINT ALL + 17321 043626 402 00 0 00 044447 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + 17322 043627 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? + 17323 043630 254 00 0 00 043634 JRST .+4 ;NO, DON'T NEED TITLE + 17324 043631 336 00 0 00 044455 SKIPN %ERFST# ;FIRST ERROR ? + 17325 043632 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE + 17326 043633 476 00 0 00 044455 SETOM %ERFST + 17327 043634 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? + 17328 043635 254 00 0 00 043641 JRST .+4 ;YES + 17329 PMSG <^TEST PASS COUNT = >^ + 17330 043636 037 02 0 00 044334 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ + 17331 043637 200 00 0 00 030047 MOVE PASCNT + 17332 043640 037 15 0 00 000000 PNTDEC + 17333 PMSG <^PC = >^ + 17334 043641 037 02 0 00 044340 PSIXM [SIXBIT\^PC = _\]^ + 17335 043642 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 17336 043643 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE + 17337 043644 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS + 17338 XLIST + 17339 IFDEF ERDIAG,^ + 17345 043645 037 02 0 00 044342 PSIXM [SIXBIT\^RESULT = _\]^ + 17346 043646 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO + 17347 043647 242 01 0 00 777751 LSH 1,-27 + 17348 043650 405 01 0 00 000017 ANDI 1,17 + 17349 043651 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 17350 043652 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ? + 17351 043653 200 00 0 01 044452 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 17352 043654 037 13 0 00 000000 PNTHW ;PRINT C(AC) + 17353 + 17354 043655 200 00 0 00 030046 MOVE CONSW + 17355 043656 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? + 17356 043657 254 00 0 00 043726 JRST %ERMORE ;NO, RESTORE AC'S ETC. + 17357 + 17358 ;PRINT FAILURE DESCRIPTOR + 17359 + 17360 043660 200 01 0 00 044451 MOVE 1,%ACS1A ;GET UUO NUMBER + 17361 043661 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ? + 17362 043662 254 00 0 00 043666 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER + 17363 043663 037 00 0 00 030242 PCRL + 17364 043664 200 00 0 01 043712 MOVE %FLTTB(1) + 17365 043665 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR + 17366 + 17367 ;PRINT FAULT NUMBER + 17368 + 17369 043666 %ERMS3: PMSG <^FAULT NUMBER = >^ + 17370 043666 037 02 0 00 044344 PSIXM [SIXBIT\^FAULT NUMBER = _\]^ + 17371 043667 201 00 0 00 043711 MOVEI TLET + 17372 043670 037 00 0 00 000000 PNTA ;PRINT TEST LETTER +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0342 + + 17373 + 17374 043671 550 00 0 00 030113 HRRZ $SVUUO + 17375 043672 602 00 0 00 700000 TRNE 700000 + 17376 043673 254 00 0 00 043707 JRST %ER6X + 17377 043674 602 00 0 00 070000 TRNE 070000 + 17378 043675 254 00 0 00 043705 JRST %ER5X + 17379 043676 602 00 0 00 007000 TRNE 007000 + 17380 043677 254 00 0 00 043703 JRST %ER4X + 17381 043700 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER + 17382 043701 037 00 0 00 030242 %ER7X: PCRL + 17383 043702 254 00 0 00 043726 JRST %ERMORE + 17384 + 17385 043703 037 04 0 00 000000 %ER4X: PNT4 + 17386 043704 254 00 0 00 043701 JRST %ER7X + 17387 043705 037 05 0 00 000000 %ER5X: PNT5 + 17388 043706 254 00 0 00 043701 JRST %ER7X + 17389 043707 037 06 0 00 000000 %ER6X: PNT6 + 17390 043710 254 00 0 00 043701 JRST %ER7X + 17391 + 17392 ;FAILURE DESCRIPTORS + 17393 + 17394 043711 000000 000000 TLET: 0 ;TEST LETTER + 17395 043712 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE + 17396 043713 000000 043776 %NODES: [0] ;NO DESCRIPTOR + 17397 043714 000000 043776 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR + 17398 043715 000000 044347 $ACF: [ASCIZ/C(AC) FAILED/] + 17399 043716 000000 044352 %AC1F: [ASCIZ/C(AC+1) FAILED/] + 17400 043717 000000 044355 %EF: [ASCIZ/C(E) FAILED/] + 17401 043720 000000 044360 %E1F: [ASCIZ/C(E+1) FAILED/] + 17402 043721 000000 044363 %ARF: [ASCIZ/C(C(ACR)) FAILED/] + 17403 043722 000000 044367 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] + 17404 043723 000000 044373 %ALF: [ASCIZ/C(C(ACL)) FAILED/] + 17405 043724 000000 044377 %EEF: [ASCIZ/C(C(E)) FAILED/] + 17406 043725 000000 044402 %FF: [ASCIZ/FLAG FAILED/] + 17407 > + 17408 XLIST + 17409 LIST +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0343 + + 17410 ;RESTORE AC'S AND RETURN OR HALT + 17411 + 17412 043726 256 00 0 00 030101 %ERMORE:XCT ERMORE + 17413 043727 037 16 0 00 000002 PNTMGN ;PRINT MARGINS + 17414 043730 037 10 0 00 000002 SWITCH + 17415 + 17416 043731 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK + 17417 043732 254 00 0 00 043736 JRST .+4 ;NONE + 17418 043733 201 00 0 00 043736 MOVEI .+3 ;SAVE CONT ADDRESS + 17419 043734 202 00 0 00 000130 MOVEM JOBOPC + 17420 043735 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER + 17421 043736 200 00 0 00 030046 MOVE CONSW + 17422 043737 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + 17423 043740 037 14 0 00 000004 ERRHLT ;YES + 17424 043741 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + 17425 043742 476 00 0 00 044450 SETOM PROCED ;NO, SET THE PROCEED FLAG + 17426 043743 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? + 17427 043744 037 01 0 00 000007 PBELL ;YES, GO RING BELL + 17428 + 17429 043745 200 02 0 00 044454 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + 17430 043746 200 01 0 00 044453 MOVE 1,%ERAC1 + 17431 043747 476 00 1 00 044446 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + 17432 043750 336 00 0 00 044450 SKIPN PROCED ;LOOP ON ERROR ? + 17433 043751 254 00 0 00 043761 JRST %ERRS5 ;YES + 17434 043752 350 00 1 00 044446 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + 17435 043753 350 00 1 00 044446 AOS @ERRLOP ;SO IT ='S 1 + 17436 043754 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + 17437 043755 254 00 0 00 043761 JRST %ERRS5 ;NO, CONTINUE PROGRAM + 17438 043756 200 00 0 00 030053 MOVE 0,ERRTLS ;YES + 17439 043757 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + 17440 043760 254 00 0 00 030061 JRST $BEND2 + 17441 + 17442 043761 200 00 0 00 044452 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + 17443 IFDEF EXCASB,> + 17450 043770 254 00 0 00 030065 JRST UUOEXT + 17451 + 17452 043771 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW + 17453 043772 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? + 17454 043773 254 00 0 00 043731 JRST %ERRS1 ;NO + 17455 043774 254 00 0 00 043626 JRST %ERMS1 ;YES +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0344 + + 17456 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 17457 + 17458 ;PROGRAM LITERALS + 17459 + 17460 XLIST + 17461 IFNDEF $LPAPER, + 17462 043775 LIT + 17463 043775 101 113 000 000 000 + 17464 043776 000000 000000 + 17465 043777 777777 777777 + 17466 044000 000000 000001 + 17467 044001 000000 000002 + 17468 044002 000000 000004 + 17469 044003 000000 000010 + 17470 044004 000000 000020 + 17471 044005 000000 000040 + 17472 044006 000000 000100 + 17473 044007 000000 000200 + 17474 044010 000000 000400 + 17475 044011 000000 001000 + 17476 044012 000000 002000 + 17477 044013 000000 004000 + 17478 044014 000000 010000 + 17479 044015 000000 020000 + 17480 044016 000000 040000 + 17481 044017 000000 100000 + 17482 044020 000000 200000 + 17483 044021 000000 400000 + 17484 044022 000001 000000 + 17485 044023 000002 000000 + 17486 044024 000004 000000 + 17487 044025 000010 000000 + 17488 044026 000020 000000 + 17489 044027 000040 000000 + 17490 044030 000100 000000 + 17491 044031 000200 000000 + 17492 044032 000400 000000 + 17493 044033 001000 000000 + 17494 044034 002000 000000 + 17495 044035 004000 000000 + 17496 044036 010000 000000 + 17497 044037 020000 000000 + 17498 044040 040000 000000 + 17499 044041 100000 000000 + 17500 044042 200000 000000 + 17501 044043 400000 000000 + 17502 044044 777777 777776 + 17503 044045 777777 777775 + 17504 044046 777777 777773 + 17505 044047 777777 777767 + 17506 044050 777777 777757 + 17507 044051 777777 777737 + 17508 044052 777777 777677 + 17509 044053 777777 777577 + 17510 044054 777777 777377 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0345 + + 17511 044055 777777 776777 + 17512 044056 777777 775777 + 17513 044057 777777 773777 + 17514 044060 777777 767777 + 17515 044061 777777 757777 + 17516 044062 777777 737777 + 17517 044063 777777 677777 + 17518 044064 777777 577777 + 17519 044065 777777 377777 + 17520 044066 777776 777777 + 17521 044067 777775 777777 + 17522 044070 777773 777777 + 17523 044071 777767 777777 + 17524 044072 777757 777777 + 17525 044073 777737 777777 + 17526 044074 777677 777777 + 17527 044075 777577 777777 + 17528 044076 777377 777777 + 17529 044077 776777 777777 + 17530 044100 775777 777777 + 17531 044101 773777 777777 + 17532 044102 767777 777777 + 17533 044103 757777 777777 + 17534 044104 737777 777777 + 17535 044105 677777 777777 + 17536 044106 577777 777777 + 17537 044107 377777 777777 + 17538 044110 000000 000003 + 17539 044111 000000 000005 + 17540 044112 000000 000006 + 17541 044113 000000 000007 + 17542 044114 000000 000011 + 17543 044115 000000 000012 + 17544 044116 000000 000013 + 17545 044117 000000 000014 + 17546 044120 000000 000015 + 17547 044121 000000 000016 + 17548 044122 000000 000017 + 17549 044123 777777 777774 + 17550 044124 777777 777772 + 17551 044125 777777 777771 + 17552 044126 777777 777770 + 17553 044127 777777 777766 + 17554 044130 777777 777765 + 17555 044131 777777 777764 + 17556 044132 777777 777763 + 17557 044133 777777 777762 + 17558 044134 777777 777761 + 17559 044135 777777 777760 + 17560 044136 777777 777740 + 17561 044137 777777 777700 + 17562 044140 777777 777600 + 17563 044141 777777 777400 + 17564 044142 777777 777000 + 17565 044143 777777 776000 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-2 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0346 + + 17566 044144 777777 774000 + 17567 044145 777777 770000 + 17568 044146 777777 760000 + 17569 044147 777777 740000 + 17570 044150 777777 700000 + 17571 044151 777777 600000 + 17572 044152 777777 400000 + 17573 044153 777777 000000 + 17574 044154 777776 000000 + 17575 044155 777774 000000 + 17576 044156 777770 000000 + 17577 044157 777760 000000 + 17578 044160 777740 000000 + 17579 044161 777700 000000 + 17580 044162 777600 000000 + 17581 044163 777400 000000 + 17582 044164 777000 000000 + 17583 044165 776000 000000 + 17584 044166 774000 000000 + 17585 044167 770000 000000 + 17586 044170 760000 000000 + 17587 044171 740000 000000 + 17588 044172 700000 000000 + 17589 044173 600000 000000 + 17590 044174 000000 000021 + 17591 044175 000000 000041 + 17592 044176 000000 000101 + 17593 044177 000000 000201 + 17594 044200 000000 000401 + 17595 044201 000000 001001 + 17596 044202 000000 002001 + 17597 044203 000000 004001 + 17598 044204 000000 010001 + 17599 044205 000000 020001 + 17600 044206 000000 040001 + 17601 044207 000000 100001 + 17602 044210 000000 200001 + 17603 044211 000000 400001 + 17604 044212 000001 000001 + 17605 044213 000002 000001 + 17606 044214 000004 000001 + 17607 044215 000010 000001 + 17608 044216 000020 000001 + 17609 044217 000040 000001 + 17610 044220 000100 000001 + 17611 044221 000200 000001 + 17612 044222 000400 000001 + 17613 044223 001000 000001 + 17614 044224 002000 000001 + 17615 044225 004000 000001 + 17616 044226 010000 000001 + 17617 044227 020000 000001 + 17618 044230 040000 000001 + 17619 044231 100000 000001 + 17620 044232 200000 000001 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-3 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0347 + + 17621 044233 400000 000001 + 17622 044234 525252 525252 + 17623 044235 652525 252524 + 17624 044236 525252 525250 + 17625 044237 652525 252520 + 17626 044240 525252 525240 + 17627 044241 777777 777752 + 17628 044242 652525 252500 + 17629 044243 777777 777725 + 17630 044244 525252 525200 + 17631 044245 777777 777652 + 17632 044246 652525 252400 + 17633 044247 777777 777525 + 17634 044250 525252 525000 + 17635 044251 777777 777252 + 17636 044252 652525 252000 + 17637 044253 777777 776525 + 17638 044254 525252 524000 + 17639 044255 777777 775252 + 17640 044256 652525 250000 + 17641 044257 777777 772525 + 17642 044260 525252 520000 + 17643 044261 777777 765252 + 17644 044262 652525 240000 + 17645 044263 777777 752525 + 17646 044264 525252 500000 + 17647 044265 777777 725252 + 17648 044266 652525 200000 + 17649 044267 777777 652525 + 17650 044270 525252 400000 + 17651 044271 777777 525252 + 17652 044272 652525 000000 + 17653 044273 777777 252525 + 17654 044274 525252 000000 + 17655 044275 777776 525252 + 17656 044276 652524 000000 + 17657 044277 777775 252525 + 17658 044300 525250 000000 + 17659 044301 777772 525252 + 17660 044302 652520 000000 + 17661 044303 777765 252525 + 17662 044304 525240 000000 + 17663 044305 777752 525252 + 17664 044306 652500 000000 + 17665 044307 777725 252525 + 17666 044310 525200 000000 + 17667 044311 777652 525252 + 17668 044312 652400 000000 + 17669 044313 777525 252525 + 17670 044314 525000 000000 + 17671 044315 777252 525252 + 17672 044316 652000 000000 + 17673 044317 776525 252525 + 17674 044320 524000 000000 + 17675 044321 775252 525252 +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-4 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0348 + + 17676 044322 650000 000000 + 17677 044323 772525 252525 + 17678 044324 520000 000000 + 17679 044325 765252 525252 + 17680 044326 640000 000000 + 17681 044327 752525 252525 + 17682 044330 500000 000000 + 17683 044331 725252 525252 + 17684 044332 652525 252525 + 17685 044333 002000 010000 + 17686 044334 76 64 45 63 64 00 + 17687 044335 60 41 63 63 00 43 + 17688 044336 57 65 56 64 00 35 + 17689 044337 00 77 00 00 00 00 + 17690 044340 76 60 43 00 35 00 + 17691 044341 00 00 77 00 00 00 + 17692 044342 76 62 45 63 65 54 + 17693 044343 64 00 00 35 00 77 + 17694 044344 76 46 41 65 54 64 + 17695 044345 00 56 65 55 42 45 + 17696 044346 62 00 35 00 77 00 + 17697 044347 103 050 101 103 051 + 17698 044350 040 106 101 111 114 + 17699 044351 105 104 000 000 000 + 17700 044352 103 050 101 103 053 + 17701 044353 061 051 040 106 101 + 17702 044354 111 114 105 104 000 + 17703 044355 103 050 105 051 040 + 17704 044356 106 101 111 114 105 + 17705 044357 104 000 000 000 000 + 17706 044360 103 050 105 053 061 + 17707 044361 051 040 106 101 111 + 17708 044362 114 105 104 000 000 + 17709 044363 103 050 103 050 101 + 17710 044364 103 122 051 051 040 + 17711 044365 106 101 111 114 105 + 17712 044366 104 000 000 000 000 + 17713 044367 103 050 103 050 101 + 17714 044370 103 122 053 061 051 + 17715 044371 051 040 106 101 111 + 17716 044372 114 105 104 000 000 + 17717 044373 103 050 103 050 101 + 17718 044374 103 114 051 051 040 + 17719 044375 106 101 111 114 105 + 17720 044376 104 000 000 000 000 + 17721 044377 103 050 103 050 105 + 17722 044400 051 051 040 106 101 + 17723 044401 111 114 105 104 000 + 17724 044402 106 114 101 107 040 + 17725 044403 106 101 111 114 105 + 17726 044404 104 000 000 000 000 + 17727 LIST + 17728 044405 000000 000000 ENDSLD: 0 + 17729 + 17730 IFDEF DEBUG,< +DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-5 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0349 + + 17731 044406 PATCH: BLOCK DEBUG ;PATCHING AREA + 17732 > + 17733 + 17734 ;PROGRAM VARIABLES + 17735 044446 VAR + 17736 + 17737 IFDEF PGMEND,< + 17738 044456 000000 000000 END: 0 + 17739 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 044457 +CPU TIME USED 01:27.393 + +17K CORE USED diff --git a/apps/pdp10/diags/klad/dakak/DAKAK.MAC.txt b/apps/pdp10/diags/klad/dakak/DAKAK.MAC.txt new file mode 100644 index 000000000..52290cf4e --- /dev/null +++ b/apps/pdp10/diags/klad/dakak/DAKAK.MAC.txt @@ -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,&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=&17 + +F00: SAVEAC (1,1) + +;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,0,0,0) + + AC=13 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,XX,0,0)> + AC=12 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,XX,0,0)> + ADR=ADR+1 + AC=14 + E=&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=&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=&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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + MOP1 (\ADR,XX,-1,0,0,0)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,XX,-1,0,0,0)> + AC=7 + E=&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=&17 + SAVEAC (1,1) + + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + IFG XX, + IFL XX, + MOP1 (\ADR,1,-1,XX,V1,XX)> + AC=5 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D35,< ;LAST CASE IS DIFFERENT + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + IFG XX, + IFL XX, + 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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D35,< ;LAST CASE IS DIFFERENT + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + IFL XX, + IFG XX, + MOP1 (\ADR,1,0,XX,V1,XX)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + IFL XX, + IFG XX, + MOP1 (\ADR,XX,0,1,V1,XX)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY A RIPPLED 0 BY -1 + MX=-XX + IFL XX, + IFG XX, + MOP1 (\ADR,-1,-1,XX,V1,MX)> + AC=14 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY -1 BY A RIPPLED 0 + MX=-XX + IFL XX, + IFG XX, + MOP1 (\ADR,XX,-1,-1,V1,MX)> + N1=525252525252 + N2=252525252525 + AC=13 + E=&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, + IFE XX, + +;MULTIPLY 1010...1010 BY A FLOATING 1 + V1=N1 + V2=!1B0 + IFE WW, + IFL XX, + IFG XX,>!>>> + 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 diff --git a/apps/pdp10/diags/klad/dakak/DAKAKM.MAC.txt b/apps/pdp10/diags/klad/dakak/DAKAKM.MAC.txt new file mode 100644 index 000000000..5161ad536 --- /dev/null +++ b/apps/pdp10/diags/klad/dakak/DAKAKM.MAC.txt @@ -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=&17 + +F00: SAVEAC (1,1) + +;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,0,0,0) + + AC=13 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,XX,0,0)> + AC=12 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,0,-1,XX,0,0)> + ADR=ADR+1 + AC=14 + E=&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=&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=&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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO + MOP1 (\ADR,XX,-1,0,0,0)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 + MOP1 (\ADR,XX,-1,0,0,0)> + AC=7 + E=&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=&17 + SAVEAC (1,1) + + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 + IFG XX, + IFL XX, + MOP1 (\ADR,1,-1,XX,V1,XX)> + AC=5 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D35,< ;LAST CASE IS DIFFERENT + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 + IFG XX, + IFL XX, + 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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D35,< ;LAST CASE IS DIFFERENT + ADR=ADR+1 + XX=XX+XX + IFE XX, + +;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=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 + IFL XX, + IFG XX, + MOP1 (\ADR,1,0,XX,V1,XX)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36,< + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 + IFL XX, + IFG XX, + MOP1 (\ADR,XX,0,1,V1,XX)> + AC=10 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY A RIPPLED 0 BY -1 + MX=-XX + IFL XX, + IFG XX, + MOP1 (\ADR,-1,-1,XX,V1,MX)> + AC=14 + E=&17 + SAVEAC (1,1) + XX=0 + + REPEAT ^D36, < + ADR=ADR+1 + XX=XX+XX+1 + IFE , + +;MULTIPLY -1 BY A RIPPLED 0 + MX=-XX + IFL XX, + IFG XX, + MOP1 (\ADR,XX,-1,-1,V1,MX)> + N1=525252525252 + N2=252525252525 + AC=13 + E=&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, + IFE XX, + +;MULTIPLY 1010...1010 BY A FLOATING 1 + V1=N1 + V2=!1B0 + IFE WW, + IFL XX, + IFG XX,>!>>> + 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 + diff --git a/apps/pdp10/diags/klad/dakak/DAKAKT.MAC.txt b/apps/pdp10/diags/klad/dakak/DAKAKT.MAC.txt new file mode 100644 index 000000000..2f53aa5d5 --- /dev/null +++ b/apps/pdp10/diags/klad/dakak/DAKAKT.MAC.txt @@ -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,&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> + diff --git a/apps/pdp10/diags/klad/dakak/README.md b/apps/pdp10/diags/klad/dakak/README.md new file mode 100644 index 000000000..c24a20e47 --- /dev/null +++ b/apps/pdp10/diags/klad/dakak/README.md @@ -0,0 +1,426 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #11 +permalink: /apps/pdp10/diags/klad/dakak/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a 'dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm' +--- + +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. + +Resources for this test include: + +- [Instructions](#dakaktxt) +- [History](#dakakhst) +- [Source Code](#dakakmac) +- [MACRO-10 Listing](DAKAK.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/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. + +--- + +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 %} diff --git a/devices/pdp10/machine/ka10/test/debugger/machine.xml b/devices/pdp10/machine/ka10/test/debugger/machine.xml index 7de859953..6573ef17c 100644 --- a/devices/pdp10/machine/ka10/test/debugger/machine.xml +++ b/devices/pdp10/machine/ka10/test/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-10 (Model KA10) with Debugger - + diff --git a/devices/pdp10/machine/ka10/test/machine.xml b/devices/pdp10/machine/ka10/test/machine.xml index 87d8a2038..2d7cc847b 100644 --- a/devices/pdp10/machine/ka10/test/machine.xml +++ b/devices/pdp10/machine/ka10/test/machine.xml @@ -4,7 +4,7 @@ PDP-10 Test Machine - + diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index fd8c1d110..95229cdb7 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -569,11 +569,11 @@ function Ns(a,b){var c,d=a.oa,e=a.C;if(e)if(e.La==os)d=Ds;else if(e.La>=aq){var 350>f?d=m?nt:ot:480<=f&&(d=a.ga==Tl?pt:qt):d=m?7-d:rt:d-=m?2:0);c=et(a)}}else e.Xc&8&&(e.Xc&2?(d=e.Xc&16?rt:st,e.Xc&4||--d):(d=e.Xc&1?Bs:tt,e.Xc&4&&--d));else a.oa=null,null==d&&(d=a.da);if(!Gs(a,d,b))return!1;ft(a,c);return!0} function Gs(a,b,c){if(null!=b&&(b!=a.oa||c)){a.Ad=0;a.oa=b;a.Ga=!1;b=a.C||(b==Ds?a.Y:a.K);if(b!=a.C||b.cb!=a.cb||b.Ob!=a.Ob){bt(a);if(a.cb){if(!Bc(a.ka,a.cb,a.Ob))return!1;a.C&&(a.C.rc=!1)}a.C=b;b.rc=!0;a.cb=b.cb;a.Ob=b.Ob;if(!oc(a.ka,b.cb,b.Ob,3,b===a.A?b:null))return!1}a:{a.I=0;a.F=a.Fb;a.J=a.sc;a.Ma=a.F;a.Eb=hs[Ds][2];b=0;if(c=hs[a.oa])a.F=c[0],a.J=c[1],a.Eb=c[2],b=c[3],a.I=c[4],4!=a.ga&&7!=a.ga||a.C!==a.A||a.I!=Vs||(7==(a.A.Wa[es]&31)?a.J=350>Jr(a.A,Vr)?43:50:a.I=a.La);a.Wc=a.F*a.J|0;a.Vc=a.Wc/ a.Eb|0;a.Xa=a.Vc;a.Pb=0;void 0!==b&&(a.Xa=(a.Xa<<1)+b|0,a.Pb=a.Xa+b>>1);if(a.va.length){a.qa=a.Z/a.F|0;a.ta=a.la/a.J|0;if(a.I){b=a.va[a.I];if(!b)break a;c=a.va[a.I<<1];a.Uc&&80==a.F?c&&a.qa>=3*c.Fc>>2&&(a.I<<=1,b=c):(c&&a.qa>=c.Fc&&(a.I<<=1,b=c),a.Uc||(a.qa=b.Fc,a.ta=b.Gc));a.Ya=a.ab=0;b&&(a.Ya=a.F*b.Fc,a.ab=a.J*b.Gc)}else a.qa=a.ta=1,a.Ya=a.F,a.ab=a.J;a.Ha=a.L.createImageData(a.Ya,a.ab);a.Ba=document.createElement("canvas");a.Ba.width=a.Ya;a.Ba.height=a.ab;a.Ca=a.Ba.getContext("2d");a.vc=a.zc=0; -a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0>1,a.Qb-=b);0>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function vt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);vt(a)} -function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Ut&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b, +a.Qb=a.Z;a.Rb=a.la;b=a.Z-a.F*a.qa;c=a.la-a.J*a.ta;0>1,a.Qb-=b);0>1,a.Rb-=c);if(b||c)a.L.fillStyle=a.O.style.backgroundColor,a.L.fillRect(0,0,a.Z,a.la)}}ut(a,!0);ys(a)}return!0}function $s(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Tt(a){a.xa=-1;a.ma=!1;var b=a.Vc;if(void 0===a.M||a.M.length!=b)a.M=Array(b)}function ut(a,b){b||(a.Ga=!1);Tt(a)} +function dt(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.va[a.I];h.jf&&(d=h.jf[d]);var k=g>>4&15;h.jf&&(k=h.jf[k]);e?(b*=h.Fc,c*=h.Gc,e.fillStyle=h.Be[k],e.fillRect(b,c,h.Fc,h.Gc)):(b=b*a.qa+a.vc,c=c*a.ta+a.zc,a.L.fillStyle=h.Be[k],a.L.fillRect(b,c,a.qa,a.ta));g&Vt&&(k=(f&15)*h.Fc,f=(f>>4)*h.Gc,e?e.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,h.Fc,h.Gc):a.L.drawImage(h.Sg[d],k,f,h.Fc,h.Gc,b,c,a.qa,a.ta));g&ct&&(f=a.md,g=a.Hc,e?(a.za&&a.za!==h.Gc&&(f=f*h.Gc/a.za|0,g=g*h.Gc/a.za|0),e.fillStyle=h.Be[d],e.fillRect(b, c+f,h.Fc,g)):(a.za&&a.za!==a.ta&&(f=f*a.ta/a.za|0,g=g*a.ta/a.za|0),a.L.fillStyle=h.Be[d],a.L.fillRect(b,c+f,a.qa,g)))} -function ys(a,b){if(a.ea.Yb){var c=!1,d=a.C;d&&(d!==a.A?d.Xc&8&&(c=!0):d.wd&32&&(c=!0));if(c||b){if(b)vt(a);else if(void 0===a.M)return;var e=!1;!(b||++a.Ad&15)&&0<=a.Aa&&(a.Aa++,e=!0);var f=0,g=a.Wc,h=a.cb,c=h,k=c+a.Ob;a.oa>=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&& -(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Ut<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c=kt&&(h=c=655360,k=c+65536);if(Wt(a,d)&8||d.Ye&&d.Ye=aq&&d.Wa[19]&&d.Wa[19]<<1!=d.Wa[1]+1&&(a.Ma=d.Wa[19]<<(a.I?1:d.Wa[20]&64?3:4),m=(a.Ma*(a.J-1)+a.F)/a.Eb|0,a.oa<=Ds&& +(m<<=1));c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(b=!b&&a.ma){b=a.ka;for(var p=!0,v=c>>>b.A;0f)return;g=f+1}}if(a.I){if(a.va[a.I]){d=f;f=0;e=a.xa=0;h=Vt<<8;b=1048575;p=a.C.Xc&32;a.La>=aq&&(p=a.C.Cc[16]&8);m=a.aa-a.C.vd;p&&(e=Hs<<8,b&=~e,a.Aa&2||(b&=~h));for(c+=d<<1;c>8|(u&255)<<8;var I=e,T=16;m>=h))>>(T-=h);$s(a.Ha,m++,p,b[ua])}m>E&&(E=m);p=H&&(H=p+1)}k+=2;d++;if(m>=a.F){m=0;p+=2;if(p>a.J)break;p==a.J&&(p=1,k=c+a.Pb)}}a.ma=!0; va.F?a.Ma-a.F-u>>3:0;c>=8;b>v&&(v=b);m=K&&(K=m+1)}c+=H;if(b>=a.F){b=0;if(++m>a.J)break;c+=I}}u||(a.ma=!0);pa.F?a.Ma-a.F-K>>3:0;cI&&(T=I)):(u<<=K,T-=K,a.ma=!1):(a.ma&&u===a.M[d]?(h+=T,T=0):a.M[d]=u,d++);if(T){hp&&(p=h);b=E&&(E=b+1)}if(h>=a.F){h=0;if(++b>a.J)break;c+=H}}K||(a.ma=!0);mthis.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a} -function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&= +function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&= f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&dy(a,null,d)}return d} -function ey(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=cy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?by(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null== +function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&ey(a,null,d)}return d} +function fy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=dy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?cy(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.la}if(null== e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f} -function dy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?by(a,c,32,8,1)+" "+c+".":by(a,c,32,16,1)+" "+by(a,c,32,8,1)+" "+by(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return dy(a,b,a.ga[b]);var c=0;for(b in a.ga)dy(a,b,a.ga[b]),c++;return 0=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var $x={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11}; -function gy(a){Vx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.L=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Vx);l=gy.prototype; -l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){py(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d, -b,ry),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+ -" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=hy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(uy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+vy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){py(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+ -a);break a}a=qy(d,b,ry)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.la));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?wy:xy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;mu;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I= -null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function yy(a,b,c,d,e,f){b=vy(a,b);var g=qy(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=zy(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)} -function Ay(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=By(a,b,4),h=By(a,b,4),k=hy(a,By(a,b,4),a.Yc(b,2));b=hy(a,By(a,b,4),a.Yc(b,2));b=vy(a,b).toUpperCase();var k=vy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=zy(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Cy(a,b,c){c=vy(a,c).toUpperCase();Dy(a,c,b)} -l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=hy(this,z(a)+12,a.Y.U);switch(By(this,d)){case 336:Ay(this,hy(this,a.G,b),!c,!!this.I)}}return!0}; -l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:yy(this,hy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Dy(this,null, -d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=hy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Ey(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Fy(a)),this.Gd(this.B,a,!0),jy(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:Ay(this,hy(this,b.G,f),!g,!!this.I);break;case 338:Cy(this,d,hy(this,b.J,f))}this.Ca=!1;return!this.I}; +function ey(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?cy(a,c,32,8,1)+" "+c+".":cy(a,c,32,16,1)+" "+cy(a,c,32,8,1)+" "+cy(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function gy(a,b){if(b)return ey(a,b,a.ga[b]);var c=0;for(b in a.ga)ey(a,b,a.ga[b]),c++;return 0=Math.abs(b)?5:11;b=pa(b,10,a);break;default:b=q(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c} +var ay={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},$x={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20}; +function hy(a){Vx.call(this,a);this.ta=4;this.ma=5;this.wa=1048575;this.L=iy(this);this.Ta=iy(this);this.aa=iy(this);this.D=[];this.B=this.Z=this.N=[];jy(this);this.xa=0;ky(this);this.Ba={};ly(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return my(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return my(b,a)})}ba(hy,Vx);l=hy.prototype; +l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Wb(a,"FDC");this.Xa=Wb(a,"HDC");this.Tc=Wb(a,"FPU");this.G=Wb(a,"Mouse");(a=yd(a,"messages"))&&ly(this,a);this.ma=b.I>>2;this.wa=b.N;this.ab=new Ud(this.H,7,"DBG");this.qa=ny;80186<=this.H.ca&&(this.qa=ny.slice(),this.qa[15]=oy,80286<=this.H.ca&&(this.qa[15]=py,80386<=this.H.ca&&(this.ta=8)));zl(this,64,function(a){qy(d,d.H.sc,a[0])});zl(this,4,function(a){if(a=a[0]){var b=Zx(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=ry(d, +b,sy),d.P("dumpSel("+sa(a?a.U:b)+"): %"+q(a?a.Lb:null,d.ma)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=ty[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+sa(a.ua&65535)+" off="+sa(a.Ka):"base="+q(a.ua,d.ma)+" limit="+uy(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+sa(a.ext&-65296)+ +" dpl="+r(a.qc))}}else d.P("no selector")});zl(this,134217728,function(a){var b;(a=a[0])&&(b=Zx(d,a));if(void 0===b)d.P("invalid MCB");else for(d.P("dumpMCB("+sa(b)+")");b;){a=iy(d,0,b);var c=d.Ia(a,1),e=d.Yc(a,2),k=d.Yc(a,5);if(77!=c&&90!=c)break;d.P(vy(0,b)+": '"+String.fromCharCode(c)+"' PID="+sa(e)+" LEN="+sa(k)+' "'+wy(d,a,8)+'"');b+=1+k}});zl(this,128,function(a){qy(d,d.H.aa,a[0],d.H.aa!==d.H.sc)});zl(this,8,function(a){a:{if(a=a[0]){var b=Zx(d,a);if(void 0===b){d.P("invalid task selector: "+ +a);break a}a=ry(d,b,sy)}else a=d.H.la;d.P("dumpTSS("+sa(a?a.U:b)+"): %"+q(a?a.ua:null,d.ma));if(a){var b="",c=a.type&-513,e=256==c?4:8,k=256==c?xy:yy,m,p,v,u;for(u in k)m=k[u],p=a.ua+m,v=xg(d.H,p,2),2304==c&&(v|=xg(d.H,p+2,2)<<16),b&&(b+="\n"),b+=sa(m)+" "+Aa(u+":",11)+q(v,e);if(2304==c)for(u=0,m=v>>>16;mu;){p=a.ua+m;v=xg(d.H,p,2);p=2;c="";if(!p||4>=8;b+="\n"+sa(m)+" ports "+sa(u)+"-"+sa(u+15)+": "+(""+c);u+=16;m+=2}d.P(b)}}});this.I= +null;this.Ma=0;this.Ca=!1;Rf(this.H,48,this.Ym.bind(this));Rf(this.H,65,this.Zm.bind(this));this.V=null;Rf(this.H,104,this.$m.bind(this));Ib(this)};function zy(a,b,c,d,e,f){b=wy(a,b);var g=ry(a,d),g=g?g.Ka+1:0,h=(e?"_CODE":"_DATA")+q(c,2);f&&t(a,128)&&a.message(b+" "+(e?"code":"data")+"("+q(c,4)+")=#"+q(d,4)+" len "+q(g));e=Ay(a,b,c);e[b+h]=0;$p(a,b,c,d,0,null,g,e)} +function By(a,b,c,d){var e=a.Yc(b,2),f=a.Yc(b,2),g=Cy(a,b,4),h=Cy(a,b,4),k=iy(a,Cy(a,b,4),a.Yc(b,2));b=iy(a,Cy(a,b,4),a.Yc(b,2));b=wy(a,b).toUpperCase();var k=wy(a,k).toUpperCase(),m=(c?"_CODE":"_DATA")+q(e,2);d&&t(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+q(e,4)+")="+q(f,4)+":"+q(g)+" len "+q(h));c=Ay(a,k,e);c[k+m]=g;$p(a,k,e,f,g,null,h,c)}function Dy(a,b,c){c=wy(a,c).toUpperCase();Ey(a,c,b)} +l.Ym=function(){var a=this.H;if(null!=this.I&&2752554==a.D){var b=a.L&65535,c=a.K&65535,d=iy(this,z(a)+12,a.Y.U);switch(Cy(this,d)){case 336:By(this,iy(this,a.G,b),!c,!!this.I)}}return!0}; +l.Zm=function(a){var b=this.H,c=b.D&65535,d=b.G&65535,e=b.I&65535,f=b.L&65535,g=b.K&65535,h=b.J&65535,k=b.oa.U;if(null==this.I)return 79==c&&Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x41 handling enabled",128),a.I=!0):(Lb(a,"INT 0x41 monitoring enabled",128),a.I=!1)}}(this)),!0;switch(c){case 79:this.I&&(b.D=b.D&-65536|62342,Lb(this,"INT 0x41 handling enabled",128));break;case 80:zy(this,iy(this,h,k),d+1,e,!(g&1),!!this.I);break;case 82:Ey(this,null, +d);break;case 127:this.I&&(b.D=b.D&-65536|(this.Ca?0:1));break;case 131:this.I&&(a=iy(this,b.L,e),this.Ma++?(this.P("TRAPFAULT failed"),Fy(this,this.B,a,!0,!0),this.Ma=0,this.Jb()):(this.P("INT 0x41 TRAPFAULT: fault="+sa(d)+" error="+q(b.K,8,!0)+" addr="+Gy(a)),this.Gd(this.B,a,!0),ky(this,!0)));break;case 141:this.I&&(b.D=b.D&-65536|1);break;case 336:By(this,iy(this,b.G,f),!g,!!this.I);break;case 338:Dy(this,d,iy(this,b.J,f))}this.Ca=!1;return!this.I}; l.$m=function(a){var b=this.H,c=b.D&255,d=b.D>>8&255,e=b.G&65535,f=b.I&65535,g=b.L&65535,h=b.J&65535,k=b.oa.U;if(null==this.V){if(67==d){if(609437257==b.ia((b.Z.U<<4)+10)||1111835735==b.ia((b.Z.U<<4)+95))return!0;Sf(b,a,function(a){return function(){62342!=(b.D&65535)?(b.D=b.D&-65536|62342,Lb(a,"INT 0x68 handling enabled",128),a.I=a.V=!0):(Lb(a,"INT 0x68 monitoring enabled",128),a.V=!1)}}(this))}return!0}switch(d){case 67:this.V&&(b.D=b.D&-65536|62342);break;case 68:this.V&&(a=Wd(b.Z,this.yl.bind(this)))&& -(b.J=a[0],ne(b,a[1]));break;case 72:Dy(this,null,e);break;case 80:32==c?yy(this,hy(this,h,k),0,f,!0,!!this.V):128>c?yy(this,hy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):Ay(this,hy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1}; -l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ly(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=qy(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Jy)|0,b&&Ky(this,a,b));return c}; -l.jb=function(a,b){return a.Hb?By(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Jy)|0,b&&Ky(this,a,b));return c};function By(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Jy)|0,c&&Ky(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Jy)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ky(this,a,c);d||Bd(this.H,!0)}}; -l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Jy?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ky(this,a,c),Bd(this.H,!0))};function hy(a,b,c,d,e,f,g){return Ly(a,{},b,c,d,e,f,g)}function Ly(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Hy(a)?ry:Iy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function My(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Ny(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}} -function Oy(a,b,c){if(null!=b.U&&(a=qy(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0f?null!=h?(g=cy(a,b,void 0),f=null):(f=cy(a,b,void 0),null==f&&(g=null)):(h=cy(a,b.substring(0,f),void 0),g=cy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=hy(a,g,h,f,c),d||Oy(a,e,!0)||(a.P("invalid offset: "+Fy(e)),e=null));return e}function Sy(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Py(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")}; -function Ky(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Oy(a,b)||(b.Ja=0,b.ya=null))}function uy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Fy(a){var b;switch(a.type){case Iy:case Ty:b="&";break;case ry:b="#";break;case Ry:b="%";break;case Jy:b="%%";break;default:b=a.U?"":"%"}return a.type>=Ry||null==a.U?b+q(a.ya):b+uy(a.Ja,a.U,a.dc)} -function vy(a,b,c){var d="";for(c=c||256;d.length>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<c&&(c=Ha(Vy,a.substr(b,2))));return c}; -function Wy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Xy:case Yy:case Zy:case $y:case az:case bz:case cz:case dz:c=2;break;case ez:case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz+oz:case nz+pz:case nz+qz:case nz+rz:case nz+sz:case nz+tz:c=4;break;case uz:case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:c=8;break;case Hz:c=a.ta}return c?q(d,c):"??"} -l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Xy:b=c.D&255;break;case Yy:b=c.I&255;break;case Zy:b=c.L&255;break;case $y:b=c.G&255;break;case az:b=c.D>>8&255;break;case bz:b=c.I>>8&255;break;case cz:b=c.L>>8&255;break;case dz:b=c.G>>8&255;break;case ez:b=c.D&65535;break;case fz:b=c.I&65535;break;case gz:b=c.L&65535;break;case hz:b=c.G&65535;break;case iz:b=z(c)&65535;break;case jz:b=c.M&65535;break;case kz:b=c.K&65535;break;case lz:b=c.J&65535;break;case mz:b=A(c)&65535;break;case Hz:b= -qe(c);break;case nz+oz:b=c.oa.U;break;case nz+pz:b=c.Z.U;break;case nz+qz:b=c.Y.U;break;case nz+rz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Cz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case uz:b=c.D;break;case vz:b=c.I;break;case wz:b=c.L;break;case xz:b=c.G;break;case yz:b=z(c);break;case zz:b=c.M;break;case Az:b=c.K;break;case Bz:b=c.J;break;case Cz:b=c.qa;break;case Dz:b=c.Og;break;case Ez:b=c.Cd;break;case Fz:b=c.Wc;break;case nz+sz:b=c.Ga.U;break;case nz+tz:b=c.Ha.U;break;case Gz:b=A(c)}}}return b}; -function Iz(a,b){b=ey(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Wy(a,e)+b.substr(c+1+Vy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Py(a,e))?(d=e+' "'+vy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Py(a,e))?(Ky(a,d), -d=e+' "'+vy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Fy(hy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))}; -function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Jz.indexOf(b),!d)){var g=Kz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Iz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+uy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d} -function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+uy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Lz(this);if(this.Ga){var a=this.Ga;this.Ga=null;ly(this,a)}}; -function jy(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Mz);for(c=0;c>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Tz(this,a,a.length-1,"set"),jy(this)));return d}; -function Ey(a,b,c,d,e){for(var f=!1,g=Uz(a,a.Sb(c)),h=1;h>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=bA[f])&&(v=u[E]);v&&(p=cA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=dA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==eA? -p="CWDE":m==fA?p="CDQ":m>=gA&&m<=hA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>iA);m==jA&&(f==kA?v="[%800]":f==lA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&mA;if(T!=nA)if(T==oA)E=!1;else{var L=I&pA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+= -8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=rA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=rA[rc+8],db&&(ib+="*"+(1<>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=By(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=mA;H==S&&(H=I.Hb?sA:U);switch(H){case tA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16"; -break}L="WORD";break;case sA:L="DWORD";break;case uA:if(T){L="INT32";break}case vA:L="REAL32";break;case wA:if(T){L="INT64";break}case xA:L="REAL64";break;case yA:L="REAL80";break;case zA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=AA(L,za,H,I);H=ca}else H=L==qA?AA(a,g&7,I,b):AA(a,g>>3&7,I,b);else if(L==BA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&mA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case CA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(By(H,L,4));break}case U:I=q(H.Yc(L,2),4);break; -case tA:L=hy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Fy(L);H=DA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==EA?(b.dc?(H=8,I=By(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==FA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=DA(a,hy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==GA?"ST":T==HA?"ST("+(g&7)+")":AA(a,(I&IA)>>8,I,b):L==JA?H=AA(a,(I&IA)>>8,KA,b):L==LA?H="DS:[SI]":L==MA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0< -v.length&&(v+=",");v+=H||"???"}}}g="";k=Fy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.catz||b>=sz&&80386>a.H.ca)return"??";b+=nz}else if(e==PA)b+=Cz;else if(e==QA)b+=RA;else if(e==SA)b+=TA;else if(a=c&mA,a>=U&&(b=ez&&b<=lz&&4a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+WA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+"\n");c+=XA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+XA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+XA(a,"ID", -null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+VA(a,Cz);80386<=a.H.ca&&(c+=VA(a,Ez)+VA(a,Fz))}else 80386<=a.H.ca&&(c+=WA(a,a.H.Ga,b)+" "+WA(a,a.H.Ha,b)+" ");return c+=VA(a,Hz)+UA(a,"V")+UA(a,"D")+UA(a,"I")+UA(a,"T")+UA(a,"S")+UA(a,"Z")+UA(a,"A")+UA(a,"P")+UA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]c?zy(this,iy(this,h,k),e+1,c&64?g:f,!(c&1),!!this.V):By(this,iy(this,h,k),!(c&1),!!this.V),this.V&&(b.D=b.D&-256|1)}return!this.V};l.yl=function(){var a=this.H;5==(a.D&255)&&(a.I=a.K=0,a.D=a.D&-256|1);return!1}; +l.Cb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.na[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",my(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A>>0)+1;a.mb=f;a.type=g;a.ext=k;a.Lb=d;Vd(a,!0,!0,!1)}}return a}l.Sb=function(a,b,c){var d=a&&a.ya;if(null==d&&(d=-1,a)){var e=ry(this,a.U,a.type);e&&(b=a.Ja||0,c=c||1,d=e=-1===e.Lb||e.Oc&&(b>>>0)+c>e.Nb||!e.Oc&&(b>>>0)+c<=e.Nb?e.ua+b|0:-1,a.ya=d)}return d};l.Ia=function(a,b){var c=255,d=this.Sb(a,!1,1);-1!==d&&(c=xg(this.H,d,1,a.type==Ky)|0,b&&Ly(this,a,b));return c}; +l.jb=function(a,b){return a.Hb?Cy(this,a,b?4:0):this.Yc(a,b?2:0)};l.Yc=function(a,b){var c=65535,d=this.Sb(a,!1,2);-1!==d&&(c=xg(this.H,d,2,a.type==Ky)|0,b&&Ly(this,a,b));return c};function Cy(a,b,c){var d=-1,e=a.Sb(b,!1,4);-1!==e&&(d=xg(a.H,e,4,b.type==Ky)|0,c&&Ly(a,b,c));return d}l.fc=function(a,b,c,d){var e=this.Sb(a,!0,1);if(-1!==e){if(a.type!=Ky)this.H.fc(e,b);else{var f=this.ka;f.aa[(e&f.C)>>>f.A].bf(e&f.D,b&255,e)}c&&Ly(this,a,c);d||Bd(this.H,!0)}}; +l.il=function(a,b,c){var d=this.Sb(a,!0,2);-1!==d&&(a.type!=Ky?this.H.fb(d,b):Jc(this.ka,d,b),c&&Ly(this,a,c),Bd(this.H,!0))};function iy(a,b,c,d,e,f,g){return My(a,{},b,c,d,e,f,g)}function My(a,b,c,d,e,f,g,h){b.Ja=c||0;b.U=d;b.ya=e;b.type=f||(Iy(a)?sy:Jy);b.Hb=null!=g?g:!(!a.H||4!=a.H.Z.W);b.dc=null!=h?h:!(!a.H||4!=a.H.Z.Jc);b.Jd=!1;return b}function Ny(a){return[a.Ja,a.U,a.ya,a.Jd,a.Hb,a.dc,a.Fe,a.bh]}function Oy(a){return{Ja:a[0],U:a[1],ya:a[2],Jd:a[3],Hb:a[4],dc:a[5],Fe:a[6],bh:a[7]}} +function Py(a,b,c){if(null!=b.U&&(a=ry(a,b.U,b.type))){var d=b.Ja&a.wa;if(!a.Oc){if(d>>>0>=a.Nb)return!1}else if(d>>>0f?null!=h?(g=dy(a,b,void 0),f=null):(f=dy(a,b,void 0),null==f&&(g=null)):(h=dy(a,b.substring(0,f),void 0),g=dy(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=iy(a,g,h,f,c),d||Py(a,e,!0)||(a.P("invalid offset: "+Gy(e)),e=null));return e}function Ty(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sl=a.Cg(b.Yk=c[2]))}l.Pk=function(a,b){var c=Qy(this,b);return a.replace("["+b+"]",c?q(this.jb(c),c.Hb?8:4):"undefined")}; +function Ly(a,b,c){c=c||1;null!=b.ya&&(b.ya+=c);null!=b.U&&(b.Ja+=c,Py(a,b)||(b.Ja=0,b.ya=null))}function vy(a,b,c){return null!=b?q(b,4)+":"+q(a,a&-65536||c?8:4):q(a)}function Gy(a){var b;switch(a.type){case Jy:case Uy:b="&";break;case sy:b="#";break;case Sy:b="%";break;case Ky:b="%%";break;default:b=a.U?"":"%"}return a.type>=Sy||null==a.U?b+q(a.ya):b+vy(a.Ja,a.U,a.dc)} +function wy(a,b,c){var d="";for(c=c||256;d.length>>a.H.hb;g=1}a.P("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.P("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&d.type==bd&&(d=sd(a.H,e,!1,!0)),d.type==c?h++||a.P("..."):(c=d.type,h=tc[c],c==dd&&(d=d.pd,h+=" -> "+tc[d.type]),d&&a.P(q(d.id,8)+" %"+q(f<c&&(c=Ha(Wy,a.substr(b,2))));return c}; +function Xy(a,b){var c=0,d=a.hh(b);if(null!=d)switch(b){case Yy:case Zy:case $y:case az:case bz:case cz:case dz:case ez:c=2;break;case fz:case gz:case hz:case iz:case jz:case kz:case lz:case mz:case nz:case oz+pz:case oz+qz:case oz+rz:case oz+sz:case oz+tz:case oz+uz:c=4;break;case vz:case wz:case xz:case yz:case zz:case Az:case Bz:case Cz:case Dz:case Ez:case Fz:case Gz:case Hz:c=8;break;case Iz:c=a.ta}return c?q(d,c):"??"} +l.hh=function(a){var b;if(0<=a){var c=this.H;switch(a){case Yy:b=c.D&255;break;case Zy:b=c.I&255;break;case $y:b=c.L&255;break;case az:b=c.G&255;break;case bz:b=c.D>>8&255;break;case cz:b=c.I>>8&255;break;case dz:b=c.L>>8&255;break;case ez:b=c.G>>8&255;break;case fz:b=c.D&65535;break;case gz:b=c.I&65535;break;case hz:b=c.L&65535;break;case iz:b=c.G&65535;break;case jz:b=z(c)&65535;break;case kz:b=c.M&65535;break;case lz:b=c.K&65535;break;case mz:b=c.J&65535;break;case nz:b=A(c)&65535;break;case Iz:b= +qe(c);break;case oz+pz:b=c.oa.U;break;case oz+qz:b=c.Z.U;break;case oz+rz:b=c.Y.U;break;case oz+sz:b=c.Ca.U;break;default:if(80286==this.H.ca)a==Dz&&(b=c.qa);else if(80386<=this.H.ca)switch(a){case vz:b=c.D;break;case wz:b=c.I;break;case xz:b=c.L;break;case yz:b=c.G;break;case zz:b=z(c);break;case Az:b=c.M;break;case Bz:b=c.K;break;case Cz:b=c.J;break;case Dz:b=c.qa;break;case Ez:b=c.Og;break;case Fz:b=c.Cd;break;case Gz:b=c.Wc;break;case oz+tz:b=c.Ga.U;break;case oz+uz:b=c.Ha.U;break;case Hz:b=A(c)}}}return b}; +function Jz(a,b){b=fy(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.gh(b,c+1),0<=e&&(b=b.substr(0,c)+Xy(a,e)+b.substr(c+1+Wy[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=oa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(d=e+' "'+wy(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Qy(a,e))?(Ly(a,d), +d=e+' "'+wy(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Gy(iy(this,A(this.H),this.H.Z.U))+" (%"+q(this.H.da)+")");this.za&&a==this.za||(this.za=a,this.ic&-2147483648&&(this.Jb(),a+=" (cpu halted)"),this.P(a),this.H&&(a=this.H,a.zc-=a.A,a.A=0,a.T.Ve=0,Bd(a)))}; +function Vk(a,b,c,d){var e,f;if(!d&&(d=t(a,1)&&0>Kz.indexOf(b),!d)){var g=Lz[b];g&&(d=t(a,g)?!0:524288==g&&t(a,g=1048576))}d&&(e=a.H.D>>8&255,f=a.H.L&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=Qb[b])&&g[e]||"")&&(g=" "+Jz(a,g)),a.message("INT "+r(b)+": AH="+r(e)+" at "+vy(c-2-a.H.Z.ua,a.H.Z.U)+g));return d} +function Mb(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.ic&h)==h)h=null,null!=e&&(h=a.H.Z.U,e-=a.H.Z.ua),a.message(b.be+"."+(null!=d?"outPort":"inPort")+"("+sa(c)+","+(f?f:"unknown")+(null!=d?","+r(d):"")+")"+(null!=g?": "+r(g):"")+(null!=e?" at "+vy(e,h):""))}l.ih=function(){this.P("Type ? for help with PCx86 Debugger commands");Mz(this);if(this.Ga){var a=this.Ga;this.Ga=null;my(this,a)}}; +function ky(a,b){var c;if(Ig(a)){if(!a.O||!a.O.length){a.O=Array(Nz);for(c=0;c>>f.hb].Gd(e&f.Db,a==this.N);g&&sc(f)}}d&&(a.push(b),c?(null!=b.ya&&(b.U=null),b.Jd=!0):(Uz(this,a,a.length-1,"set"),ky(this)));return d}; +function Fy(a,b,c,d,e){for(var f=!1,g=Vz(a,a.Sb(c)),h=1;h>3&7,E=(3>(g>>6&3)?0:48)+u;(217==f||219==f)&&52<=E&&(E=u<<4|g&7);(u=cA[f])&&(v=u[E]);v&&(p=dA,k=v,m=k[0])}m>=p.length&&(g=a.Ia(b,1),k=eA[m-p.length][g>>3&7],m=k[0]);p=p[m];u=k.length-1;v="";b.Hb&&(m==fA? +p="CWDE":m==gA?p="CDQ":m>=hA&&m<=iA&&(p+="D"));if(164<=f&&167>=f||170<=f&&175>=f)u=0,b.Hb&&"W"==p.slice(-1)&&(p=p.slice(0,-1)+"D");for(var f=-1,E=!0,K=1;K<=u;K++){var H,I;H="";I=k[K];if(void 0!==I){0>f&&(f=I>>jA);m==kA&&(f==lA?v="[%800]":f==mA&&(v="ES:["+(b.dc?"E":"")+"DI]"));var T=I&nA;if(T!=oA)if(T==pA)E=!1;else{var L=I&qA;if(L>=R)if(0>g&&(g=a.Ia(b,1)),L>6,za=g&7;if(3>xb){T=!p.indexOf("FI");if(!xb&&(!I.dc&&6==za||I.dc&&5==za))xb=2;else{if(I.dc)if(4!=za)za+= +8;else{var ca=L,cb=xb,Sa=I,rb=ca.Ia(Sa,1),db=rb>>6,rc=rb>>3&7,rb=rb&7,ib="";if(cb||5!=rb)ib=sA[rb+8];4!=rc&&(ib&&(ib+="+"),ib+=sA[rc+8],db&&(ib+="*"+(1<>24),2)):ca+("+"+q(L,2))):2==xb&&(ca&&(ca+="+"),I.dc?(L=Cy(L,I,4),ca+=q(L)):(L=L.Yc(I,2),ca+=q(L,4)));ca="["+ca+"]";if(1==ua){L="";H&=nA;H==S&&(H=I.Hb?tA:U);switch(H){case uA:L="FAR";break;case V:L="BYTE";break;case U:if(T){L="INT16"; +break}L="WORD";break;case tA:L="DWORD";break;case vA:if(T){L="INT32";break}case wA:L="REAL32";break;case xA:if(T){L="INT64";break}case yA:L="REAL64";break;case zA:L="REAL80";break;case AA:L="BCD80"}L&&(ca=L+" "+ca)}}else ca=BA(L,za,H,I);H=ca}else H=L==rA?BA(a,g&7,I,b):BA(a,g>>3&7,I,b);else if(L==CA)H="1";else if(L==W){H=a;T=I;L=b;I=" ";switch(T&nA){case V:T&X&&(I=q(H.Ia(L,1),2));break;case DA:I=q(H.Ia(L,1)<<24>>24,L.Hb?8:4);break;case S:if(L.Hb){I=q(Cy(H,L,4));break}case U:I=q(H.Yc(L,2),4);break; +case uA:L=iy(H,H.jb(L,!0),H.Yc(L,2),null,L.type,L.Hb,L.dc);I=Gy(L);H=EA(H,L);H[0]&&(I+=" ("+H[0]+")");break;default:I="imm("+sa(T)+")"}H=I}else L==FA?(b.dc?(H=8,I=Cy(a,b,4)):(H=4,I=a.Yc(b,2)),H="["+q(I,H)+"]"):L==GA?(H=T==V?a.Ia(b,1)<<24>>24:a.jb(b,!0),I=b.Ja+H&(b.Hb?-1:65535),H=q(I,b.Hb?8:4),I=EA(a,iy(a,I,b.U)),I[0]&&(H+=" ("+I[0]+")")):L==Y?H=T==HA?"ST":T==IA?"ST("+(g&7)+")":BA(a,(I&JA)>>8,I,b):L==KA?H=BA(a,(I&JA)>>8,LA,b):L==MA?H="DS:[SI]":L==NA&&(H="ES:[DI]");if(!H||!H.length){v="INVALID";break}0< +v.length&&(v+=",");v+=H||"???"}}}g="";k=Gy(e)+" ";if(-1!==e.ya&&-1!==b.ya){do if(g+=q(a.Ia(e,1),2),null==e.ya)break;while(e.ya!=b.ya)}k+=Aa(g,e.dc?24:16);k+=Aa(p,8);v&&(k+=" "+v);a.H.cauz||b>=tz&&80386>a.H.ca)return"??";b+=oz}else if(e==QA)b+=Dz;else if(e==RA)b+=SA;else if(e==TA)b+=UA;else if(a=c&nA,a>=U&&(b=fz&&b<=mz&&4a.H.ca&&(d="\n"+d,c+=e,e="");c+="\n"+XA(a,a.H.Z,b)+" ";80386<=a.H.ca&&(e+="\n",c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+"\n");c+=YA(a,"LD",a.H.Eb.U,a.H.Eb.ua,a.H.Eb.ua+a.H.Eb.Ka)+" "+YA(a,"GD",null,a.H.Kb,a.H.Pc)+" "+YA(a,"ID", +null,a.H.Pb,a.H.cd)+" ";c=c+(d+" "+e)+WA(a,Dz);80386<=a.H.ca&&(c+=WA(a,Fz)+WA(a,Gz))}else 80386<=a.H.ca&&(c+=XA(a,a.H.Ga,b)+" "+XA(a,a.H.Ha,b)+" ");return c+=WA(a,Iz)+VA(a,"V")+VA(a,"D")+VA(a,"I")+VA(a,"T")+VA(a,"S")+VA(a,"Z")+VA(a,"A")+VA(a,"P")+VA(a,"C")}l.gj=function(a,b){return a[0]>b[0]?1:a[0]>>0,p],H=Da(E,u,a.gj);0>H&&E.splice(-(H+1),0,u)}K&&(v.a=K.replace(/''/g,'"'))}a.D.push({Rf:b,pn:c,U:d,Ja:e,ya:f,en:g,Fd:h,Pi:m})} -function Dy(a,b,c){for(var d=0;d>>0,f=a.Sb(b)>>>0,g=0;g>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e=p&&fc?(a.P("out of data at address "+Fy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H, +function Ey(a,b,c){for(var d=0;d>>0,f=a.Sb(b)>>>0,g=0;g>>0,p=h.ya;null!=p&&(p>>>=0);var v=h.en;48==k&&(k=40);if(k==b.U&&e>=m&&e=p&&fc?(a.P("out of data at address "+Gy(b)),p=!0):(a.fc(b,c,1,!0),m++)})})(a,g);Bd(a.H, !0);a.P(m+" bytes read at "+b)}else a.P("sector "+e+" request out of range");else a.P("drive "+d+" not loaded");else a.P("invalid drive: "+d)}else a.P("disk controller not present")}}else a.P("load commands:"),a.P("\tl [address] [drive #] [sector #] [# sectors]")} -function Pz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1f;f++){var g=c,e=null;if(f=a.ta&&(h=null);switch(h){case "AL":a.H.D= +function Qz(a,b){var c;if(b&&"?"==b[1])a.P("register commands:"),a.P("\tr\tdump registers"),a.Tc&&a.P("\trfp\tdump floating-point registers"),a.P("\trp\tdump all registers"),a.P("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1f;f++){var g=c,e=null;if(f=a.ta&&(h=null);switch(h){case "AL":a.H.D= a.H.D&-256|g&255;break;case "AH":a.H.D=a.H.D&-65281|g<<8&255;break;case "AX":a.H.D=a.H.D&-65536|g&65535;break;case "BL":a.H.G=a.H.G&-256|g&255;break;case "BH":a.H.G=a.H.G&-65281|g<<8&255;break;case "BX":a.H.G=a.H.G&-65536|g&65535;break;case "CL":a.H.I=a.H.I&-256|g&255;break;case "CH":a.H.I=a.H.I&-65281|g<<8&255;break;case "CX":a.H.I=a.H.I&-65536|g&65535;break;case "DL":a.H.L=a.H.L&-256|g&255;break;case "DH":a.H.L=a.H.L&-65281|g<<8&255;break;case "DX":a.H.L=a.H.L&-65536|g&65535;break;case "SP":ge(a.H, -z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=hy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g? +z(a.H)&-65536|g&65535);break;case "BP":a.H.M=a.H.M&-65536|g&65535;break;case "SI":a.H.K=a.H.K&-65536|g&65535;break;case "DI":a.H.J=a.H.J&-65536|g&65535;break;case "DS":me(a.H,g);break;case "ES":ne(a.H,g);break;case "SS":fe(a.H,g);break;case "CS":Yf(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "IP":case "EIP":C(a.H,g);a.L=iy(a,A(a.H),a.H.Z.U);break;case "PC":case "PS":re(a.H,g);break;case "C":g?jg(a.H):kg(a.H);break;case "P":g?(e=a.H,e.resultType&=-3,e.O|=4):(e=a.H,e.resultType&=-3,e.O&=-5);break;case "A":g? rg(a.H):pg(a.H);break;case "Z":g?sg(a.H):qg(a.H);break;case "S":g?(e=a.H,e.resultType&=-17,e.O|=128):(e=a.H,e.resultType&=-17,e.O&=-129);break;case "I":g?(e=a.H,e.O|=512):(e=a.H,e.O&=-513);break;case "D":g?(e=a.H,e.O|=1024):(e=a.H,e.O&=-1025);break;case "V":g?lg(a.H):mg(a.H);break;default:var k=!0;if(80286<=a.H.ca)switch(k=!1,h){case "MS":tg(a.H,g);break;case "TR":-1===a.H.la.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.H.ca)switch(k=!1,h){case "EAX":a.H.D=g;break;case "EBX":a.H.G=g;break;case "ECX":a.H.I= -g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(YA(a,d));c&&(a.L=hy(a,A(a.H),a.H.Z.U),Qz(a,Fy(a.L)))}} -function fB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Iz(a,c[2])):cy(a,b,!1)}function gB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Xz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}} +g;break;case "EDX":a.H.L=g;break;case "ESP":ge(a.H,g);break;case "EBP":a.H.M=g;break;case "ESI":a.H.K=g;break;case "EDI":a.H.J=g;break;case "FS":a.H.Ga.load(g);break;case "GS":a.H.Ha.load(g);break;case "CR0":a.H.qa=g;ak.call(a.H,g);break;case "CR2":a.H.Cd=g;break;case "CR3":a.H.Wc=g;te.call(a.H,g);break;default:k=!0}}if(k){a.P("unknown register: "+e);return}}if(!f){a.P("invalid value: "+b);return}Bd(a.H);a.P("updated registers:")}}a.P(ZA(a,d));c&&(a.L=iy(a,A(a.H),a.H.Z.U),Rz(a,Gy(a.L)))}} +function gB(a,b){b=Ba(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.P(Jz(a,c[2])):dy(a,b,!1)}function hB(a,b,c){for(var d=null,e=b.Ja,f=e,g=1;6>=g&&e;g++){if(2h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.P(m)}h[3]&&(g=h[3],f=null);f=Yz(a,b,g,f);b.bh||d||d++;a.P(f);a.L=b;e-=b.ya-k;c++}}} l.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else a=this.C[this.A+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ba(a.substring(d,f))),d=f+1}}return b}; -function Wz(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.da&&(a.P("ended assemble at "+Fy(a.aa)),a.L=a.aa,a.da=!1),b="";else if(!c){var e=">> ";a.H.qa&1&&(e=a.H.O&131072?"-- ":"## ");a.P(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(Gb(a)&&0p||"z">>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Uy(pf.Ti,pf.Aj)),ve= -ve+(" %%"+Uy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var wt=a.Ba[xb];wt?(ca.shift(),ca.shift(),wt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var xt=cb,yt=Sa,zt="",At=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+xt||a.Ya,Rg=+yt||10;isNaN(uc)?uc=Rg:zt="more ";uc>jd.length&&(a.P("note: only "+ -jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==yt&&(Rg=1E5,rm=["CALL"]);for(void 0!==xt&&a.P(uc+" instructions earlier:");0=jd.length&&(Lc=0);a.Ya=uc;At++;Rg--}}At||(a.P("no "+zt+"history available"),a.Ya= -void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255>>0,65536>4||1;aC--&&0Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Gt)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i= -1,Ht=255,It=a.Ia,Jt=a.fc;"ew"==g[0]&&($i=2,Ht=65535,It=a.Yc,Jt=a.il);var Kt=$i<<1,Lt=g[1];if(null==Lt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Py(a,Lt);if(aj)for(var bj=2;bjAm;){for(var kd=null,fC=256;Sd.Ja>>>0>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Zg.U=Nt;if(kd=gB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=gB(a,Zg,!0)){Nt=a.jb(Sd,!0);0p||"z">>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=qf.aa[(Qa.Ti&qf.C)>>>qf.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Qg&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=qf.aa[(Qa.Ui&qf.C)>>>qf.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Qg&4095)}if(pf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Qg),ve=ve+(" %%"+Vy(pf.Ti,pf.Aj)),ve= +ve+(" %%"+Vy(pf.Ui,pf.Bj,!0)),ve=ve+(" %%"+q(pf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";eB(a,ca);break a}for(xb in Rb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.oa,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Rg=+xt||10;isNaN(uc)?uc=Rg:yt="more ";uc>jd.length&&(a.P("note: only "+ +jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Rg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0=jd.length&&(Lc=0);a.Ya=uc;zt++;Rg--}}zt||(a.P("no "+yt+"history available"),a.Ya= +void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Tg=Zx(a,sm);if(void 0===Tg||0>Tg||255>>0,65536>4||1;bC--&&0Zi?String.fromCharCode(Zi):".";Yi--}Ug&&(Ug+="\n");Ug+=cb+" "+um+(Wg?"":" "+Ft)}Ug&&a.P(Ug);a.Ta=rf}}}}}break;case "e":if("else"==g[0])break;var $i= +1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&($i=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=$i<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var aj=Qy(a,Kt);if(aj)for(var bj=2;bjAm;){for(var kd=null,gC=256;Sd.Ja>>>0>>0;){Zg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!gC--)break;Zg.U=Mt;if(kd=hB(a,Zg))break;Zg.U=a.jb(Sd);if(kd=hB(a,Zg,!0)){Mt=a.jb(Sd,!0);0\nLicense: GPL version 3 or later ");for(b=0;bDB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",NB);this.F.load()&&(OB(this,d),a=PB,QB(this.F));this.F.set(KB,Ea());RB(this.F);var e=this.A&&!this.I;if(a==LB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=JB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= -g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(SB,""),this.B=null)):this.P(f+": "+g),QB(d),d.load()?(c=JB(d),e=!0):c=!1))}e&&HB(this,c?d:null)}else a==PB&&d.clear()}else HB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(TB(this,this.H,b,c,a),this.H.lf());this.Y&&(OB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0}; -function OB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}} -function iB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",IB),h=Ea();g.set(KB,h);f.set(KB,h);f.set(UB,"1.34.3");f.set(VB,window?window.location.href:null);f.set(WB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k\nLicense: GPL version 3 or later ");for(b=0;bEB){if(d.load(this.L)){this.F=new Wf(this,"1.34.3",OB);this.F.load()&&(PB(this,d),a=QB,RB(this.F));this.F.set(LB,Ea());SB(this.F);var e=this.A&&!this.I;if(a==MB||qb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=KB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= +g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ra(TB,""),this.B=null)):this.P(f+": "+g),RB(d),d.load()?(c=KB(d),e=!0):c=!1))}e&&IB(this,c?d:null)}else a==QB&&d.clear()}else IB(this);delete this.L;delete this.M}e=sb(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(UB(this,this.H,b,c,a),this.H.lf());this.Y&&(PB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0}; +function PB(a,b){if(qb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.34.3"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}} +function jB(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Wf(a,"1.34.3"),g=new Wf(a,"1.34.3",JB),h=Ea();g.set(LB,h);f.set(LB,h);f.set(VB,"1.34.3");f.set(WB,window?window.location.href:null);f.set(XB,Ma());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k>>b.A;d=d+e-1>>>b.A;c.ah=0;for(c.Hd=0;f<=d;)e=b.aa[f],c.ah+=e.size,e.size&&(c.Rg.push(Fa(bc,f,0,0,e.type)),c.Hd++),f++;a.A=c;a.da=a.A.Hd*a.ka.B/(ac*kc);d=0;a.A.$i=0;a.A.kf||(a.A.kf=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.Nc>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var NB="failsafe",IB="validate",KB="timestamp",UB="version",VB="url",WB="browser",SB="user",MB=-1,DB=0,LB=1,PB=2,YB=3; -$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;bf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PCx86$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);oC(a,b,c)}})}else c(a,null)} -function pC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--lC||hb(!0));k=!1}var g,h,k=!0;lC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c|| -(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?mC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--lC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--lC||hb(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mC(b,a,d,!0,e,m):nC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function qC(a,b,c,d){hb(!1);return pC(a,b,c,d)}window.embedPC=qC;window.embedPCx86=qC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")}; +g),b.D.rotate(-Math.PI/2),c=g=0),h>1,b.I+=(b.J>>1)-2,hc(b,e),b.Y&&(b.D.restore(),b.Y=!1)}}else hc(a,"This space intentionally left blank");a.context.drawImage(a.K,0,0,a.K.width,a.K.height,a.Ga,a.Ma,a.xa,a.Aa);a.oa=!1}}var OB="failsafe",JB="validate",LB="timestamp",VB="version",WB="url",XB="browser",TB="user",NB=-1,EB=0,MB=1,QB=2,ZB=3; +$a(function(){for(var a=zb(document,"pcx86-machine"),b=0;bf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PCx86$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pcx86$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);pC(a,b,c)}})}else c(a,null)} +function qC(a,b,c,d){function e(a){if(void 0===h){var b=g&&zb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=xa(a))}function f(a){e("Error: "+a);k&&(--mC||hb(!0));k=!1}var g,h,k=!0;mC++;pb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c|| +(c="/versions/pcx86/1.34.3/components.xsl");m=function(d,h){h?nC(c,null,null,!1,e,function(d,k){k?(ob(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--mC||hb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--mC||hb(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nC(b,a,d,!0,e,m):oC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function rC(a,b,c,d){hb(!1);return qC(a,b,c,d)}window.embedPC=rC;window.embedPCx86=rC;window.findMachineComponent=function(a,b){return ub(b,a+".machine")}; window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Bb[a]){for(var c=!0,d=Bb,e=a,f=b.length,g=[],h=[],k="",m=null,p=0;p]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g, +function sC(a,b,c,d){if(!c&&b){d.push(b);a=pb[d[0]];b=null;for(var e in a)if(wa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ka(b,null,!0,function(a,b){tC(b,d)}):tC(null,d)}else gb("Error ("+c+") requesting "+a)} +function tC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=pb[f],k={},m;for(m in h){var p=h[m],v=va(m);if("xml"==v){for(v=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=ta(m)}else"xsl"==v&&(e=m=ta(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g, "©"),a=Wa(c,"javascript",!1,g),a=a+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('
\n')+"...\n",a=a+('