From 0c9f752f86dbe83e3f58c1b9d7277ec9086e3068 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 29 Mar 2017 16:52:20 -0700 Subject: [PATCH] More MACRO-10 updates (eg, LOC pseudo-op, SIXBIT/ASCII expression support) --- apps/pdp10/diags/klad/DFKCAT.MAC.txt | 571 + apps/pdp10/diags/klad/KLDDT.MAC.txt | 6773 +++++++ apps/pdp10/diags/klad/PARAM.KLM.txt | 1086 ++ apps/pdp10/diags/klad/README.md | 65 + .../diags/klad/{SMFILE.MAC => SMFILE.MAC.txt} | 0 apps/pdp10/diags/klad/UUOERR.KLM.txt | 289 + apps/pdp10/diags/klad/dakaa/README.md | 2 +- apps/pdp10/diags/klad/dakab/README.md | 2 +- apps/pdp10/diags/klad/dakac/README.md | 2 +- apps/pdp10/diags/klad/dakad/README.md | 2 +- apps/pdp10/diags/klad/dakae/README.md | 2 +- apps/pdp10/diags/klad/dakaf/README.md | 2 +- apps/pdp10/diags/klad/dakag/README.md | 2 +- apps/pdp10/diags/klad/dakah/DAKAH.LST.txt | 7091 +++++++ apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt | 1775 ++ apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt | 1775 ++ apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt | 117 + apps/pdp10/diags/klad/dakah/README.md | 279 + apps/pdp10/diags/klad/dakai/DAKAI.LST.txt | 16210 ++++++++++++++++ apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt | 1872 ++ apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt | 1733 ++ apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt | 136 + apps/pdp10/diags/klad/dakai/README.md | 422 + modules/pdp10/lib/macro10.js | 225 +- 24 files changed, 40339 insertions(+), 94 deletions(-) create mode 100644 apps/pdp10/diags/klad/DFKCAT.MAC.txt create mode 100644 apps/pdp10/diags/klad/KLDDT.MAC.txt create mode 100644 apps/pdp10/diags/klad/PARAM.KLM.txt rename apps/pdp10/diags/klad/{SMFILE.MAC => SMFILE.MAC.txt} (100%) create mode 100644 apps/pdp10/diags/klad/UUOERR.KLM.txt create mode 100644 apps/pdp10/diags/klad/dakah/DAKAH.LST.txt create mode 100644 apps/pdp10/diags/klad/dakah/DAKAH.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakah/DAKAHM.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakah/DAKAHT.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakah/README.md create mode 100644 apps/pdp10/diags/klad/dakai/DAKAI.LST.txt create mode 100644 apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakai/DAKAIM.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakai/DAKAIT.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakai/README.md diff --git a/apps/pdp10/diags/klad/DFKCAT.MAC.txt b/apps/pdp10/diags/klad/DFKCAT.MAC.txt new file mode 100644 index 000000000..8da332c9b --- /dev/null +++ b/apps/pdp10/diags/klad/DFKCAT.MAC.txt @@ -0,0 +1,571 @@ +;MAINDEC-10-DFKCA + +DECVER=002 +MCNVER=000 + + XLIST +DEFINE NAME (MCNVER,DECVER),< + +TITLE DFKCA KL10 ADVANCED INSTRUCTION DIAGNOSTIC #1, VERSION MCNVER,DECVER > + LIST + LALL + +NAME \MCNVER,\DECVER + + XALL + +;COPYRIGHT 1975 +;DIGITAL EQUIPMENT CORPORATION +;MARLBORO, MASS. 01752 + +;JOHN R. KIRCHOFF + +LOC 137 +MCNVER,,DECVER + NOSYM +SUBTTL DIAGNOSTIC PARAMETERS + +;OPERATOR DEFINITIONS + +OPDEF ER1 [1B8] +OPDEF ER2 [2B8] +OPDEF ER3 [3B8] +OPDEF ER4 [4B8] +OPDEF ER5 [5B8] +OPDEF ER6 [6B8] +OPDEF ER7 [7B8] +OPDEF ER10 [10B8] +OPDEF ER11 [11B8] +OPDEF ER12 [12B8] +OPDEF ER13 [13B8] + +LUUO1==ERRMES +LUUO2==ERRMES +LUUO3==ERRMES +LUUO4==ERRMES +LUUO5==ERRMES +LUUO6==ERRMES +LUUO7==ERRMES +LUUO10==ERRMES +LUUO11==ERRMES +LUUO12==ERRMES +LUUO13==ERRMES + +;SUBROUTINE ASSEMBLY DEFINITIONS + +DEBUG=100 +EXCASB=1 +USRASB=1 +KI10=1 +KL10=1 +KL10P0=1 +PGMEND=1 +ERDIAG=1 +KLOLD=1 +MODDVU=BEGIN +MODDVL=BEGIN +;MACROS + +DEFINE SAVEAC (A,B)< + MOVEI AC+2,. + MOVEM AC+2,TESTPC ;SETUP SUBTEST PC + MOVEI AC+2,&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/KLDDT.MAC.txt b/apps/pdp10/diags/klad/KLDDT.MAC.txt new file mode 100644 index 000000000..3bf5d6ce2 --- /dev/null +++ b/apps/pdp10/diags/klad/KLDDT.MAC.txt @@ -0,0 +1,6773 @@ +;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..f1b30908d --- /dev/null +++ b/apps/pdp10/diags/klad/PARAM.KLM.txt @@ -0,0 +1,1086 @@ +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 170a9cff8..7db33e335 100644 --- a/apps/pdp10/diags/klad/README.md +++ b/apps/pdp10/diags/klad/README.md @@ -11,8 +11,73 @@ PCjs has archived selected files from [PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html), including: - [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](dakaa/) + - TEST OF JUMP, JUMPA AND SKIPX INSTRUCTIONS + - TEST OF MOVE, SKIP AND COMPARE INSTRUCTIONS + - TEST OF SKIP, FULL WORD TRANSFER AND HALF WORD TRANSFER INSTRUCTIONS + - TEST OF BOOLEAN INSTRUCTIONS (SETM, SETZ, AND, XOR, EQV) - [KA10 Basic Instruction Diagnostic #2 (MAINDEC-10-DAKAB)](dakab/) + - TEST OF THE ADD INSTRUCTION + - SPECIAL KI10 FOUR BIT ADDER TEST + - TEST OF SUB AND COMPARE INSTRUCTIONS + - TEST OF COMPARE (CAMX) INSTRUCTIONS + - TEST OF MOVS INSTRUCTION + - TEST OF COMPARE (CAXX) INSTRUCTIONS + - TEST OF BOOLEAN INSTRUCTIONS + - TEST OF MOVN INSTRUCTION + - TEST OF MOVM INSTRUCTION - [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC)](dakac/) + - TEST OF LOGICAL TEST INSTRUCTIONS + - TEST OF HWT INSTRUCTIONS + - SUPPLEMENTARY ADDER TESTS - FLT 1 + 0 + - SUPPLEMENTARY ADDER TESTS - O + FLT 0 + - SUPPLEMENTARY ADDER TESTS - FLT 1 + FLT 1 + - SUPPLEMENTARY ADDER TESTS - FLT 0 + 0FLT - [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD)](dakad/) + - TEST OF AC HARDWARE AND INDEX REGISTERS + - TEST OF INDEX REGISTER ADDRESSING + - TEST OF EXCH INSTRUCTION + - TEST OF MOVEM INSTRUCTION + - TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS + - TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS + - TEST OF JSP INSTRUCTION + - TEST JRST INSTRUCTION + - TEST OF AOBJX INSTRUCTIONS + - TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX + - TEST OF AOS AND SOS INSTRUCTIONS + - TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS + - TEST OF JUMPX INSTRUCTIONS + - TEST OF AOJ AND SOJ INSTRUCTIONS + - TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS + - XCT INSTRUCTION - BASIC TESTS + - INDIRECT ADDRESSING - BASIC TESTS + - TEST INDIRECT ADDRESSING WITH INDEXING - [KA10 Basic Instruction Diagnostic #5 (MAINDEC-10-DAKAE)](dakae/) + - TEST OF JSR INSTRUCTION + - TEST OF JSA INSTRUCTION + - TEST OF JRA INSTRUCTION + - TESTS OF BIS FLAG + - TEST OF MSCL FWT INSTRUCTIONS + - TEST OF MSCL ADD/SUB INSTRUCTIONS + - TEST OF MSCL CAIX INSTRUCTIONS + - TEST OF MSCL CAMX INSTRUCTIONS + - TEST OF MSCL JUMPX INSTRUCTIONS + - TEST OF MSCL AOJX INSTRUCTIONS + - TEST OF MSCL AOSX INSTRUCTIONS + - TEST OF MSCL SOJX INSTRUCTIONS + - TEST OF MSCL SOSX INSTRUCTIONS - [KA10 Basic Instruction Diagnostic #6 (MAINDEC-10-DAKAF)](dakaf/) + - TEST OF MSCL BOOLEAN INSTRUCTIONS + - TEST OF MSCL HWT INSTRUCTIONS + - TEST OF MSCL LOGICAL TEST INSTRUCTIONS +- [KA10 Basic Instruction Diagnostic #7 (MAINDEC-10-DAKAG)](dakag/) + - TEST OF PUSH INSTRUCTION + - TEST OF PUSHJ INSTRUCTION + - TEST OF POP INSTRUCTION + - TEST OF POPJ INSTRUCTION + - XCT INSTRUCTION - ADDITIONAL TESTS + - TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING + - TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER +- [KA10 Basic Instruction Diagnostic #8 (MAINDEC-10-DAKAH)](dakah/) + - TESTS OF PI, INTERRUPTS, LUUO'S, I/O +- [KA10 Basic Instruction Diagnostic #9 (MAINDEC-10-DAKAI)](dakai/) + - SHIFT-ROTATE TEST (PART 1) diff --git a/apps/pdp10/diags/klad/SMFILE.MAC b/apps/pdp10/diags/klad/SMFILE.MAC.txt similarity index 100% rename from apps/pdp10/diags/klad/SMFILE.MAC rename to apps/pdp10/diags/klad/SMFILE.MAC.txt diff --git a/apps/pdp10/diags/klad/UUOERR.KLM.txt b/apps/pdp10/diags/klad/UUOERR.KLM.txt new file mode 100644 index 000000000..2a899e7ff --- /dev/null +++ b/apps/pdp10/diags/klad/UUOERR.KLM.txt @@ -0,0 +1,289 @@ +SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + +;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + +ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + IFDEF EXCASB,> + 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 60a3c03cd..4661100e6 100644 --- a/apps/pdp10/diags/klad/dakaa/README.md +++ b/apps/pdp10/diags/klad/dakaa/README.md @@ -280,5 +280,5 @@ DAKAA.MAC [[Download](DAKAA.MAC.txt)] {% highlight text %} -{% include_relative DAKAA.MAC.txt %} +{% include_relative DAKAAM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakab/README.md b/apps/pdp10/diags/klad/dakab/README.md index de51d0e45..cc8cf42cc 100644 --- a/apps/pdp10/diags/klad/dakab/README.md +++ b/apps/pdp10/diags/klad/dakab/README.md @@ -273,5 +273,5 @@ DAKAB.MAC [[Download](DAKAB.MAC.txt)] {% highlight text %} -{% include_relative DAKAB.MAC.txt %} +{% include_relative DAKABM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakac/README.md b/apps/pdp10/diags/klad/dakac/README.md index ac0beedb3..93d4a17b3 100644 --- a/apps/pdp10/diags/klad/dakac/README.md +++ b/apps/pdp10/diags/klad/dakac/README.md @@ -272,5 +272,5 @@ DAKAC.MAC [[Download](DAKAC.MAC.txt)] {% highlight text %} -{% include_relative DAKAC.MAC.txt %} +{% include_relative DAKACM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakad/README.md b/apps/pdp10/diags/klad/dakad/README.md index ec7024ef2..c3fea4b6a 100644 --- a/apps/pdp10/diags/klad/dakad/README.md +++ b/apps/pdp10/diags/klad/dakad/README.md @@ -288,5 +288,5 @@ DAKAD.MAC [[Download](DAKAD.MAC.txt)] {% highlight text %} -{% include_relative DAKAD.MAC.txt %} +{% include_relative DAKADM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakae/README.md b/apps/pdp10/diags/klad/dakae/README.md index c85042863..c76a97251 100644 --- a/apps/pdp10/diags/klad/dakae/README.md +++ b/apps/pdp10/diags/klad/dakae/README.md @@ -285,5 +285,5 @@ DAKAE.MAC [[Download](DAKAE.MAC.txt)] {% highlight text %} -{% include_relative DAKAE.MAC.txt %} +{% include_relative DAKAEM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakaf/README.md b/apps/pdp10/diags/klad/dakaf/README.md index 7cbbc5b55..643776ee3 100644 --- a/apps/pdp10/diags/klad/dakaf/README.md +++ b/apps/pdp10/diags/klad/dakaf/README.md @@ -272,5 +272,5 @@ DAKAF.MAC [[Download](DAKAF.MAC.txt)] {% highlight text %} -{% include_relative DAKAF.MAC.txt %} +{% include_relative DAKAFM.MAC.txt %} {% endhighlight %} diff --git a/apps/pdp10/diags/klad/dakag/README.md b/apps/pdp10/diags/klad/dakag/README.md index 62973ef8f..16e811452 100644 --- a/apps/pdp10/diags/klad/dakag/README.md +++ b/apps/pdp10/diags/klad/dakag/README.md @@ -274,5 +274,5 @@ DAKAG.MAC [[Download](DAKAG.MAC.txt)] {% highlight text %} -{% include_relative DAKAG.MAC.txt %} +{% include_relative DAKAGM.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..0fe783a9c --- /dev/null +++ b/apps/pdp10/diags/klad/dakah/README.md @@ -0,0 +1,279 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #8 +permalink: /apps/pdp10/diags/klad/dakah/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a 30724 DAKAH.MAC +--- + +PDP-10 KA10 Basic Instruction Diagnostic #8 +------------------------------------------- + +The *PDP-10 KA10 Basic Instruction Diagnostic #8* (MAINDEC-10-DAKAH) test code has been extracted from +[DAKAHM.MAC](DAKAHM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakahm.mac.html)] +for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below. + +Resources for this test include: + +- [Instructions](#dakahtxt) +- [History](#dakahhst) +- [Source Code](#dakahmac) +- [MACRO-10 Listing](DAKAH.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/dakah/DAKAH.SEQ.txt) + +{% include machine.html id="testka10" %} + +The Debugger's assemble ("a") command can be used to test the new built-in +[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset +of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language. +This command: + + a 30724 DAKAH.MAC + +will automatically read the [DAKAH.MAC](DAKAH.MAC.txt) source file (a slightly modified copy of [DAKAHM.MAC](DAKAHM.MAC.txt)), +assemble it, and then load the binary output at the specified address. + +--- + +DAKAH.TXT +--------- + +``` +MAINDEC-10-DAKAH.TXT + + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKAH-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (8) + + FUNCTION: PI, INTERRUPTS, LUUO'S, I/O + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 1976,1977 +DIGITAL EQUIPMENT CORPORATION +MARLBORO, MASS. 01752 + +THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, +OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE +MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM +AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND +OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. + +THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT +NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +EQUIPMENT CORPORATION. + +DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. + + MAINDEC-10-DAKAH.TXT + PAGE 2 + + + TABLE OF CONTENTS + ----------------- + +1.0 ABSTRACT + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + +2.2 STORAGE + +2.3 PRELIMINARY PROGRAMS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + +3.2 STARTING PROCEDURE + +3.3 OPERATING PROCEDURE + +4.0 ERRORS + +5.0 ITERATION COUNTER + +6.0 CYCLE TIME + +7.0 OPERATIONAL VARIATIONS + +8.0 MISCELLANEOUS + +9.0 LISTING + + MAINDEC-10-DAKAH.TXT + PAGE 3 + + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE + EIGHTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. + THE DIAGNOSTIC TESTS THE PI SYSTEM, INTERRUPTS, LUUO'S + AND INPUT/OUTPUT. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 WITH A MINIMUM OF 32K OF MEMORY + + PAPER TAPE READER + DECTAPE (OPTIONAL) + CONSOLE TELETYPE + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + CONSOLE FUNCTIONS WORKING PROPERLY + PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY + PREVIOUS PROCESSOR DIAGNOSTICS + + MAINDEC-10-DAKAH.TXT + PAGE 4 + + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104) + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + +3.2 STARTING PROCEDURE + + STAND-ALONE STARTING ADDRESS IS 30000. + + IF THE DIAGNOSTIC FAILS TO START CORRECTLY TRY STARTING AT THE + FIRST TEST INSTEAD OF AT THE BEGINNING OF THE CONTROL SEQUENCE. + (SEE LISTING). + +3.3 OPERATING PROCEDURE + + ONCE STARTED THE PROGRAM WILL CYCLE CONTINUALLY UNTIL STOPPED + OR AN ERROR OCCURS. + +4.0 ERRORS + + ERRORS ARE IN THE FORM OF HALT INSTRUCTIONS. THE LISTING + SHOULD BE CONSULTED TO DETERMINE THE CAUSE OF THE ERROR. A + NO OPERATION (JUMP) INSTRUCTION FOLLOWS EACH HALT. THIS + MAY BE USEFUL IN CONSTRUCTING A SCOPE LOOP TO CYCLE ON THE + FAILING INSTRUCTION. + +5.0 ITERATION COUNTER + + THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEM- + ORY INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND + INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION. + +6.0 CYCLE TIME + + THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND + IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, ETC. + + MAINDEC-10-DAKAH.TXT + PAGE 5 + + +7.0 OPERATIONAL VARIATIONS + + A. DIAGNOSTIC MONITOR + + THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PRO- + VIDE RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PRO- + VIDE A QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR + AREA OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN + THE PROGRAM IS USED IN THIS MANNER. THEY ARE: + + 1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PRO- + GRAM AND STARTS IT AT LOCATION 30002. + + 2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MON- + ITOR CONTROL FLAG WORD. + + B. USER MODE + + THE PROGRAM WILL OPERATE IN USER MODE AND AS SUCH PROVIDES + ASSURANCE THAT THE PROCESSOR IS PERFORMING ALL FUNCTIONS + CORRECTLY. USER MODE STARTING ADDRESS IS 30000. + + C. SYSTEM EXERCISER + + STARTING ADDRESS IS 30003. NO DATA SWITCHES ARE USED BY + THIS PROGRAM. + +8.0 MISCELLANEOUS + + NONE + +9.0 LISTING +``` + +DAKAH.HST +--------- + + THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAH + + ************************************************************************ + + PRODUCT CODE: MAINDEC-10-DAKAH + + PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #8 + + DATE RELEASED: JANUARY 1977 + + VERSION: 0.2 + + UPDATE AUTHOR: JOHN R. KIRCHOFF + EDWARD G. PRENTICE + + CHANGES MADE: + + 1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE. + + ************************************************************************ + + ORIGINAL VERSION: 0.1 + + ORIGINAL AUTHOR: RICHARD MALISKA + + ORIGINAL RELEASE: 16-MAR-72 + + ************************************************************************ + +DAKAH.MAC +--------- + +[[Download](DAKAH.MAC.txt)] + +{% highlight text %} +{% include_relative DAKAHM.MAC.txt %} +{% endhighlight %} 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..6353e6304 --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/DAKAI.MAC.txt @@ -0,0 +1,1872 @@ +;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 + +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/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..0632f4def --- /dev/null +++ b/apps/pdp10/diags/klad/dakai/README.md @@ -0,0 +1,422 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #9 +permalink: /apps/pdp10/diags/klad/dakai/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a 30724 DAKAI.MAC +--- + +PDP-10 KA10 Basic Instruction Diagnostic #9 +------------------------------------------- + +The *PDP-10 KA10 Basic Instruction Diagnostic #9* (MAINDEC-10-DAKAI) test code has been extracted from +[DAKAIM.MAC](DAKAIM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaim.mac.html)] +for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below. + +Resources for this test include: + +- [Instructions](#dakaitxt) +- [History](#dakaihst) +- [Source Code](#dakaimac) +- [MACRO-10 Listing](DAKAI.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/dakai/DAKAI.SEQ.txt) + +{% include machine.html id="testka10" %} + +The Debugger's assemble ("a") command can be used to test the new built-in +[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset +of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language. +This command: + + a 30724 DAKAI.MAC + +will automatically read the [DAKAI.MAC](DAKAI.MAC.txt) source file (a slightly modified copy of [DAKAIM.MAC](DAKAIM.MAC.txt)), +assemble it, and then load the binary output at the specified address. + +--- + +DAKAI.TXT +--------- + +``` +MAINDEC-10-DAKAI.TXT + + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKAI-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (9) + + FUNCTION: SHIFT-ROTATE TEST (PART 1) + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 1976,1977 +DIGITAL EQUIPMENT CORPORATION +MARLBORO, MASS. 01752 + +THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, +OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE +MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM +AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND +OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. + +THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT +NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +EQUIPMENT CORPORATION. + +DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. + + MAINDEC-10-DAKAI.TXT + PAGE 2 + + TABLE OF CONTENTS + ----------------- + +1.0 ABSTRACT + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + +2.2 STORAGE + +2.3 PRELIMINARY PROGRAMS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + +3.2 STARTING PROCEDURE + +3.3 OPERATING PROCEDURE + +4.0 DATA SWITCH FUNCTIONS + +5.0 ERRORS + +6.0 ITERATION COUNTER + +7.0 CYCLE TIME + +8.0 OPERATIONAL VARIATIONS + +9.0 MISCELLANEOUS + +10.0 LISTING + + MAINDEC-10-DAKAI.TXT + PAGE 3 + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE + NINTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. + THE DIAGNOSTIC TESTS THE SHIFTING AND ROTATING INSTRUCTIONS. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY + + PAPER TAPE READER + CONSOLE TELETYPE + DECTAPE + LINE PRINTER (OPTIONAL) + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + PREVIOUS PROCESSOR DIAGNOSTICS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM10 SUBROUTINE + PROGRAM BE RESIDENT IN THE PDP-10. + + PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104) + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + TIME SHARING - RUN UNDER DIAMON. + + MAINDEC-10-DAKAI.TXT + PAGE 4 + +3.2 STARTING PROCEDURE + + A. SELECT OPERATIONAL CONSOLE DATA SWITCH SETTINGS (REFER TO + 4.0 DATA SWITCH FUNCTIONS). + + B. EXEC MODE + + STAND-ALONE STARTING ADDRESS IS 30000. + + C. USER MODE + + RUN UNDER "DIAMON". + IN USER MODE THE FOLLOWING QUESTIONS WILL BE ASKED TO + SELECT THE OPERATIONAL SWITCHES: + + TELETYPE SWITCH CONTROL ? 0,S,Y OR N (CR) - + + IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE + SWITCHES ARE USED. + + IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS + ARE ASKED AND THE OPERATOR RESPONDS BY TYPING + THE ANSWER AS SIX OCTAL DIGITS REPRESENTING + THE DESIRED SWITCH SETTINGS. + + SPECIFY LH SWITCHES IN OCTAL- + + SPECIFY RH SWITCHES IN OCTAL- + + IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR + THE SWITCH SETTINGS. + + IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES + ARE USED. THIS IS ONLY VALID UPON RESTARTING + OF AN INTERRUPTED PROGRAM. + + MAINDEC-10-DAKAI.TXT + PAGE 5 + +3.3 OPERATING PROCEDURE + + A. TO THROUGHLY TEST ALL HARDWARE, ALL TEST CONTROL DATA + SWITCHES SHOULD BE SET TO 0. + + B. WHEN DEBUGGING HARDWARE, SET SWITCHES TO 0. ALLOW THE + TELETYPE TO PRINT THE ERROR MESSAGES. THIS ALLOWS THE + PROGRAM TO RUN A COMPLETE PASS AND THEN THE ERROR MESSAGES + MAY BE CORRELATED TO QUICKLY DIAGNOSE THE FAILURE. IF A + HARDWARE PROBLEM IS SUCH THAT THE ERROR MESSAGES, AFTER THE + FIRST ONE, HAVE NO MEANING (FIRST ERROR CAUSES ALL FOLLOWING + TESTS TO FAIL) SET THE LOOP ON ERROR SWITCH AND RESTART THE + TEST FROM THE BEGINNING. THE FIRST FAILURE WILL THEN CAUSE + THE PROGRAM TO ENTER A LOOP SUITABLE FOR SCOPING. + + THE ERROR MESSAGE USED IN CONJUNCTION WITH THE LISTING AND + SCOPING IF NECESSARY SHOULD ALLOW THE FAILING CONPONENT + TO BE ISOLATED AND REPLACED AND/OR REPAIRED. + + C. WHEN TAKING MARGINS, SET DATA SWITCHES 'NOPNT' AND 'DING'. + THIS WILL INHIBIT PRINTOUT BUT WILL ALLOW THE TELETYPE + BELL TO BE RUNG WHEN A ERROR OCCURS. IF THE MARGIN OBTAINED + IS UNACCEPTABLE, THE OPERATOR MAY REVERT TO STANDARD SWITCH + SETTINGS FOR DEBUGGING PURPOSES. + + D. ERROR INFORMATION MAY BE OBTAINED QUICKLY BY PRINTING + ERRORS ON THE LINE PRINTER. + + E. IN THE EVENT OF A PRINT ROUTINE FAILURE THE 'NOPNT' SWITCH + AND THE 'ERSTOP' SWITCH MAY BE SET TO INHIBIT PRINTOUT + BUT HALT THE PROGRAM POINTING TO THE ERROR. + + MAINDEC-10-DAKAI.TXT + PAGE 6 + +4.0 DATA SWITCH FUNCTIONS + + SWITCH STATE FUNCTION + ------ ----- -------- + + 0 ABORT 0 NORMAL OPERATION + 1 ABORT AT END OF PASS + + 1 RSTART NOT USED + + 2 TOTALS NOT USED + + 3 NOPNT 0 NORMAL TYPEOUT + 1 INHIBIT ALL PRINT/TYPEOUT + (EXCEPT FORCED) + + 4 PNTLPT 0 NORMAL OUTPUT TO TTY + 1 PRINT ALL DATA ON LPT + (LOGICAL DEVICE, USER MODE) + + 5 DING 0 NO FUNCTION + 1 RING TTY BELL ON ERROR + + 6 LOOPER 0 PROCEED TO NEXT TEST + 1 ENTER SCOPE LOOP ON TEST ERROR + + 7 ERSTOP 0 NO FUNCTION + 1 HALT ON TEST ERROR + + 8 PALERS 0 PRINT ONLY FIRST ERROR WHEN LOOPING + 1 PRINT ALL ERRORS, EVEN IF SAME ERROR + + 9 RELIAB NOT USED + + 10 TXTINH 0 PRINT FULL ERROR MESSAGES. + 1 INHIBIT COMMENT PORTION OF + ERROR MESSAGES. + + 11 INHPAG 0 ALLOW PAGING AND TRAP ENABLE + 1 INHIBIT PAGING AND TRAPPING + + 12 MODDVC NOT USED + + 13 INHCSH NOT USED + + MAINDEC-10-DAKAI.TXT + PAGE 7 + +5.0 ERRORS + + ERRORS ARE PRINTED ON THE TTY OR LINE PRINTER. THE ERROR + PRINTOUT CONTAINS THE TEST TITLE, THE PC OF THE FAILURE, ERROR + NUMBER AND THE CONTENTS OF AN APPLICABLE AC. + + THE PC VALUE IS USEFUL IN RELATING THE FAILURE TO THE LISTING. + THE ERROR NUMBER IS PROVIDED SUCH THAT AN ERROR DICTIONARY MAY + BE MADE AT SOME FUTURE DATE. + + WHEN THE SCOPE LOOP MODE IS USED THE MI REGISTER WILL COUNT + FOR EACH OCCURANCE OF AN ERROR. IF AN AUDIO INDICATION OF + A CONTINUING ERROR IS DESIRED THE 'DING' SWITCH MAY BE SET. + +6.0 ITERATION COUNTER + + THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEMORY + INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND + INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION. + +7.0 CYCLE TIME + + THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND + IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, + ETC. + MAINDEC-10-DAKAI.TXT + PAGE 8 + +8.0 OPERATIONAL VARIATIONS + + A. DIAGNOSTIC MONITOR + + THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PROVIDE + RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PROVIDE A + QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR AREA + OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN THE + PROGRAM IS USED IN THIS MANNER. THEY ARE: + + 1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PROGRAM + AND STARTS IT AT LOCATION 30002. + + 2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MONITOR + CONTROL WORD. + LH = 0, STAND-ALONE OPERATION + -1, RUNNING UNDER DIAGNOSTIC MONITOR + + RH = RIGHT HALF OF CONSOLE SWITCHES IF UNDER + DIAGNOSTIC MONITOR CONTROL. + + B. USER MODE + + TO OUTPUT THE PRINTED ERROR MESSAGES TO A USER SPECIFIED + DEVICE IN USER MODE, ASSIGN THE DESIRED OUTPUT DEVICE TO + DEVICE NAME 'DEV' AND SET SWITCH 'PNTLPT'. THE PHYSICAL + DEVICE USED CAN BE ANY DEVICE THAT CAN ACCEPT ASCII OUTPUT + FORMAT SUCH AS LPT, DSK, DTA, ETC. THE CORRESPONDING + OUTPUT FILE IS 'DAKAI.TMP' + + EXAMPLE DEVICE ASSIGNMENT: + + .ASSIGN DSK DEV + + IN USER MODE THE PROGRAM WILL MAKE 1000(8) PASSES AND THEN + RETURN TO DIAMON COMMAND MODE. + + MAINDEC-10-DAKAI.TXT + PAGE 9 + +8.0 OPERATIONAL VARIATIONS (CON'T) + + THE OUTPUT FILE (IF USED) MAY THEN BE LISTED BY USING THE + NORMAL MONITOR COMMANDS (PRINT, LIST, TYPE, PIP, ETC.). + + IF THE PROGRAM IS ABORTED BEFORE COMPLETION (BY ^C, ETC.) THE + OUTPUT FILE MAY BE CLOSED BY USING THE MONITOR 'REENTER' + COMMAND. + + C. SYSTEM EXERCISER + + START ADDRESS IS 30003. DATA SWITCHES ARE PRESTORED IN + 'SWTEXR' LOC 30023. + +9.0 MISCELLANEOUS + + THE NON-EX-MEMORY AND PARITY STOP SWITCHES SHOULD BE RESET + (0). THESE ERRORS, ILLEGAL UUO'S AND OTHER ERRORS OF THIS + TYPE ARE HANDLED BY PRINTOUT ON THE TELETYPE. + +10.0 LISTING +``` + +DAKAI.HST +--------- + + THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAI + + ************************************************************************ + + PRODUCT CODE: MAINDEC-10-DAKAI + + PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #9 + + DATE RELEASED: JANUARY 1977 + + VERSION: 0.2 + + UPDATE AUTHOR: JOHN R. KIRCHOFF + + CHANGES MADE: + + 1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE. + + ************************************************************************ + + ORIGINAL VERSION: 0.1 + + ORIGINAL AUTHOR: RICHARD MALISKA + + ORIGINAL RELEASE: 16-MAR-72 + + ************************************************************************ + +DAKAI.MAC +--------- + +[[Download](DAKAI.MAC.txt)] + +{% highlight text %} +{% include_relative DAKAIM.MAC.txt %} +{% endhighlight %} diff --git a/modules/pdp10/lib/macro10.js b/modules/pdp10/lib/macro10.js index 755a5e7f8..430686bf3 100644 --- a/modules/pdp10/lib/macro10.js +++ b/modules/pdp10/lib/macro10.js @@ -288,7 +288,10 @@ class Macro10 { /* * We know that local resources ending with ".MAC" are actually stored with a ".txt" extension. */ - if (sURL.indexOf(':') < 0 && sURL.slice(-4).toUpperCase() == ".MAC") sURL += ".txt"; + if (sURL.indexOf(':') < 0) { + var sExt = sURL.slice(-4).toUpperCase(); + if (".MAC.KLM".indexOf(sExt) >= 0) sURL += ".txt"; + } Web.getResource(sURL, null, true, function processMacro10(sFile, sResource, nErrorCode) { if (nErrorCode) { @@ -521,7 +524,7 @@ class Macro10 { } if (this.chASCII != null) { - sLine = this.addASCII(sLine); + sLine = this.defASCII(sLine); } var fParse = true; @@ -603,7 +606,7 @@ class Macro10 { */ var sLiteral = this.getLiteral(sOperands); if (sLiteral) { - sOperands = sOperands.replace(sLiteral, this.addMacro(Macro10.PSEUDO_OP.LITERAL, this.getLiteral(sRemainder))); + sOperands = sOperands.replace(sLiteral, this.defMacro(Macro10.PSEUDO_OP.LITERAL, this.getLiteral(sRemainder))); } /* @@ -620,39 +623,48 @@ class Macro10 { case Macro10.PSEUDO_OP.ASCII: case Macro10.PSEUDO_OP.ASCIZ: case Macro10.PSEUDO_OP.SIXBIT: - this.addASCII(sRemainder); + this.defASCII(sRemainder); break; case Macro10.PSEUDO_OP.END: - this.addEND(sOperands); + this.defEND(sOperands); break; case Macro10.PSEUDO_OP.EXP: - this.addEXP(sOperands); + this.defEXP(sOperands); + break; + + case Macro10.PSEUDO_OP.LOC: + this.defLocation(sOperands); break; case Macro10.PSEUDO_OP.XWD: - this.addXWD(sOperands); + this.defXWD(sOperands); break; case Macro10.PSEUDO_OP.DEFINE: case Macro10.PSEUDO_OP.IFE: + case Macro10.PSEUDO_OP.IFG: + case Macro10.PSEUDO_OP.IFL: case Macro10.PSEUDO_OP.IFN: case Macro10.PSEUDO_OP.IRP: case Macro10.PSEUDO_OP.IRPC: case Macro10.PSEUDO_OP.OPDEF: case Macro10.PSEUDO_OP.REPEAT: - this.addMacro(sOperator, sRemainder); + this.defMacro(sOperator, sRemainder); break; case Macro10.PSEUDO_OP.LALL: // TODO + case Macro10.PSEUDO_OP.LIST: // TODO + case Macro10.PSEUDO_OP.NOSYM: // TODO case Macro10.PSEUDO_OP.PAGE: // TODO case Macro10.PSEUDO_OP.SUBTTL: // TODO case Macro10.PSEUDO_OP.TITLE: // TODO + case Macro10.PSEUDO_OP.XLIST: // TODO break; default: - this.addWord(sOperator, sSeparator, sOperands); + this.defWord(sOperator, sSeparator, sOperands); break; } } @@ -762,6 +774,18 @@ class Macro10 { } break; + case Macro10.PSEUDO_OP.IFG: + if (macro.nOperand > 0) { + this.parseText(macro.sText); + } + break; + + case Macro10.PSEUDO_OP.IFL: + if (macro.nOperand < 0) { + this.parseText(macro.sText); + } + break; + case Macro10.PSEUDO_OP.IFN: if (macro.nOperand) { this.parseText(macro.sText); @@ -915,7 +939,7 @@ class Macro10 { continue; } if (fQuotes) continue; - if (sDelim.indexOf(ch) >= 0) { + if (!cNesting && sDelim.indexOf(ch) >= 0) { i--; break; } @@ -963,6 +987,12 @@ class Macro10 { if (nLocation === undefined) { nLocation = (this.nLocationScope >= 0? this.nLocationScope : this.nLocation); } + /* + * The SIXBIT (and presumably ASCII; not sure about ASCIZ) pseudo-ops can also be used in expressions + * (or at least assignments), so we check for those in the given expression and convert them to quoted + * sequences that the debugger's parseExpression() understands. + */ + sOperand = sOperand.replace(/SIXBIT\s*(\S)(.*?)\1/g, "'$2'").replace(/ASCII\s*(\S)(.*?)\1/g, '"$2"'); /* * Check for the "period" syntax that MACRO-10 uses to represent the value of the current location. * The Debugger's parseInstruction() method understands that syntax, but its parseExpression() method @@ -1068,21 +1098,23 @@ class Macro10 { sReserved = match[0]; var sLabel = match[1]; var name = '?' + sLabel; - if (this.tblMacros[name] !== undefined) { - this.error("reserved symbol redefined: " + sReserved); + /* + * We now allow reserved symbols to reused (which would make sense if they appeared in a macro). + */ + if (this.tblMacros[name] === undefined) { + var aParms, aDefaults, aValues; + aParms = aDefaults = aValues = []; + this.tblMacros[name] = { + name: name, + nOperand: Macro10.MACRO_OP.RESERVED, + aParms, + aDefaults, + aValues, + sText: sLabel + ": 0", + nLine: this.nLine + }; + this.aVariables.push(name); } - var aParms, aDefaults, aValues; - aParms = aDefaults = aValues = []; - this.tblMacros[name] = { - name: name, - nOperand: Macro10.MACRO_OP.RESERVED, - aParms, - aDefaults, - aValues, - sText: sLabel + ": 0", - nLine: this.nLine - }; - this.aVariables.push(name); } return sReserved; } @@ -1125,13 +1157,13 @@ class Macro10 { } /** - * addASCII(sOperands) + * defASCII(sOperands) * * @this {Macro10} * @param {string} sOperands * @return {string} (returns whatever portion of the string was not part of an ASCII pseudo-op) */ - addASCII(sOperands) + defASCII(sOperands) { var sRemain = sOperands; if (this.chASCII == null) { @@ -1159,7 +1191,7 @@ class Macro10 { } /** - * addMacro(sOperator, sOperands) + * defMacro(sOperator, sOperands) * * If sOperator is DEFINE (or OPDEF), then a macro definition is expected. If it's REPEAT, then we're * starting a REPEAT block instead. @@ -1178,7 +1210,7 @@ class Macro10 { * @param {string} sOperands * @return {string} */ - addMacro(sOperator, sOperands) + defMacro(sOperator, sOperands) { var i, match, name, nOperand, aParms, aDefaults, aValues, iMatch; @@ -1192,7 +1224,7 @@ class Macro10 { * (parenthesized) parameters exist on the same line, but the (angle-bracketed) * definition can continue on for multiple lines. */ - match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)([\s\S]*)/i); + match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i); if (!match) { this.error("unrecognized " + sOperator + ": " + sOperands); return sOperands; @@ -1201,7 +1233,7 @@ class Macro10 { /* * If this macro has defined parameters, parse them (and any defaults) now. */ - if (match[2]) { + if (match[2] && match[2] != ',') { aParms = this.getValues(match[2], true); aDefaults = this.getDefaults(aParms); } @@ -1343,44 +1375,6 @@ class Macro10 { return sRemain; } - /** - * addEND() - * - * Processes the END pseudo-op. - * - * @this {Macro10} - * @param {string} sOperands - */ - addEND(sOperands) - { - if (!sOperands) { - this.nAddrStart = this.nAddr; - } else { - this.nAddrStart = this.parseExpression(sOperands, true); - if (this.nAddrStart === undefined) { - this.error("unrecognized expression: " + sOperands); - } - } - } - - /** - * addEXP() - * - * Processes the EXP pseudo-op. - * - * @this {Macro10} - * @param {string} sOperands - */ - addEXP(sOperands) - { - var w = this.parseExpression(sOperands, true); - if (w !== undefined) { - this.genWord(w, this.dbg.sUndefined); - } else { - this.error("unrecognized expression: " + sOperands); - } - } - /** * addSymbol(name, value, nType) * @@ -1416,14 +1410,81 @@ class Macro10 { } /** - * addWord(sOperator, sSeparator, sOperands) + * defEND() + * + * Processes the END pseudo-op. + * + * @this {Macro10} + * @param {string} sOperands + */ + defEND(sOperands) + { + if (!sOperands) { + this.nAddrStart = this.nAddr; + } else { + this.nAddrStart = this.parseExpression(sOperands, true); + if (this.nAddrStart === undefined) { + this.error("unrecognized expression: " + sOperands); + } + } + } + + /** + * defEXP() + * + * Processes the EXP pseudo-op. + * + * @this {Macro10} + * @param {string} sOperands + */ + defEXP(sOperands) + { + var w = this.parseExpression(sOperands, true); + if (w !== undefined) { + this.genWord(w, this.dbg.sUndefined); + } else { + this.error("unrecognized expression: " + sOperands); + } + } + + /** + * defLocation(sOperands) + * + * Processes the LOC pseudo-op. + * + * @this {Macro10} + * @param {string} sOperands + */ + defLocation(sOperands) + { + this.nLocation = this.parseExpression(sOperands) || 0; + } + + /** + * defXWD() + * + * Processes the XWD pseudo-op. + * + * Since the XWD pseudo-op appears to be equivalent to two values separated by two commas, which defEXP() must also + * support, we can piggy-back on defExp(). + * + * @this {Macro10} + * @param {string} sOperands + */ + defXWD(sOperands) + { + this.defEXP(sOperands.replace(",", ",,")); + } + + /** + * defWord(sOperator, sSeparator, sOperands) * * @this {Macro10} * @param {string} sOperator * @param {string} sSeparator * @param {string} sOperands */ - addWord(sOperator, sSeparator, sOperands) + defWord(sOperator, sSeparator, sOperands) { var w = -1; @@ -1445,22 +1506,6 @@ class Macro10 { } } - /** - * addXWD() - * - * Processes the XWD pseudo-op. - * - * Since the XWD pseudo-op appears to be equivalent to two values separated by two commas, which addEXP() must also - * support, we can piggy-back on addExp(). - * - * @this {Macro10} - * @param {string} sOperands - */ - addXWD(sOperands) - { - this.addEXP(sOperands.replace(",", ",,")); - } - /** * genASCII() * @@ -1566,18 +1611,24 @@ Macro10.PSEUDO_OP = { END: "END", EXP: "EXP", IFE: "IFE", + IFG: "IFG", + IFL: "IFL", IFN: "IFN", IRP: "IRP", IRPC: "IRPC", LALL: "LALL", LITERAL: "LITERAL", // this is a pseudo-pseudo-op, used for internal purposes + LIST: "LIST", + LOC: "LOC", + NOSYM: "NOSYM", OPDEF: "OPDEF", PAGE: "PAGE", REPEAT: "REPEAT", SIXBIT: "SIXBIT", SUBTTL: "SUBTTL", TITLE: "TITLE", - XWD: "XWD" + XWD: "XWD", + XLIST: "XLIST" }; /*